DE202017106606U1 - Hotword-Erkennung auf der Server-Seite - Google Patents

Hotword-Erkennung auf der Server-Seite Download PDF

Info

Publication number
DE202017106606U1
DE202017106606U1 DE202017106606.1U DE202017106606U DE202017106606U1 DE 202017106606 U1 DE202017106606 U1 DE 202017106606U1 DE 202017106606 U DE202017106606 U DE 202017106606U DE 202017106606 U1 DE202017106606 U1 DE 202017106606U1
Authority
DE
Germany
Prior art keywords
threshold
utterances
audio signal
key set
client device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE202017106606.1U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202017106606U1 publication Critical patent/DE202017106606U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/30Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • G10L15/32Multiple recognisers used in sequence or in parallel; Score combination systems therefor, e.g. voting systems
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L2015/088Word spotting
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Abstract

Nichtflüchtiges Computer-Speichermedium, das mit Anweisungen codiert ist, die, wenn sie durch einen Computer ausgeführt werden, den Computer veranlassen, Vorgänge auszuführen, umfassend: Empfangen eines Audiosignals, das eine oder mehrere Äußerungen codiert, die eine erste Äußerung beinhalten; Bestimmen, ob zumindest ein Teil der ersten Äußerung einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein; als Reaktion auf Bestimmen, dass zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, Senden des Audiosignals an ein Serversystem, das bestimmt, ob die erste Äußerung einen zweiten Schwellenwert erfüllt, der Schlüsselsatz zu sein, wobei der zweite Schwellenwert restriktiver als der erste Schwellenwert ist; und Empfangen, von dem Serversystem, getaggter Textdaten, die die eine oder die mehreren Äußerungen repräsentieren, die in dem Audiosignal codiert sind, wenn das Serversystem bestimmt, dass die erste Äußerung den zweiten Schwellenwert erfüllt.

Description

  • HINTERGRUND
  • Automatische Spracherkennung ist eine Technologie, die neben anderen Gerätetypen in mobilen Geräten Anwendung findet. Eine Aufgabe als gemeinsames Ziel dieser Technologie ist es, Sprachbefehle verwenden zu können, um ein Gerät aus dem Ruhezustand aufzuwecken und elementare gesprochene Interaktionen mit dem Gerät auszuführen. Beispielsweise kann es für das Gerät wünschenswert sein, ein „Hotword“ (Stichwort) zu erkennen, das signalisiert, dass das Gerät aktiviert werden soll, wenn sich das Gerät in einem Ruhezustand befindet.
    Geschützt durch und Gegenstand des Gebrauchsmusters sind, gemäß den Anforderungen des Gebrauchsmustergesetzes, nur Vorrichtungen, die in den beigefügten Ansprüchen definiert sind, aber keine Verfahren. Für den Fall, dass in der Beschreibung Bezug auf Verfahren genommen wird, dienen diese Bezugnahmen nur der Veranschaulichung der Vorrichtung oder der Vorrichtungen, für die Schutz nach den beigefügten Ansprüchen gesucht wird.
  • KURZDARSTELLUNG
  • Ein System kann zwei Schwellenwerte nutzen, um zu bestimmen, ob ein Nutzer einen Schlüsselsatz ausgesprochen hat. Ein Client-Gerät, das in das System eingeschlossen ist, nutzt den ersten niedrigeren Schwellenwert, um zu bestimmen, ob ein Teil der von dem Nutzer gesprochenen Wörter einem Teil des Schlüsselsatzes entspricht. Wenn beispielsweise der Schlüsselsatz „OK Google“ ist, kann das Client-Gerät den ersten niedrigeren Schwellenwert nutzen, um zu bestimmen, ob der Nutzer „OK“ oder „OK G“ oder „OK Google“ gesagt hat. Wenn das Client-Gerät bestimmt, dass der Anteil der von dem Nutzer gesprochenen Wörter einem Teil des Schlüsselsatzes entspricht, sendet das Client-Gerät Daten für die Wörter an einen Server. Der Server nutzt einen zweiten höheren Schwellenwert, um zu bestimmen, ob die von dem Nutzer gesprochenen Wörter denen des Schlüsselsatzes entsprechen. Der Server analysiert den gesamten Schlüsselsatz, um zu bestimmen, ob der Nutzer den Schlüsselsatz gesprochen hat. Wenn der Server bestimmt, dass der Schlüsselsatz in den Wörtern enthalten ist, kann der Server andere von dem Nutzer gesprochene Wörter parsen, um Daten für eine Aktion zu erzeugen, die das Client-Gerät ausführen soll.
  • In einigen Implementierungen kann ein Client-Gerät ein Audiosignal empfangen, das eine oder mehrere Äußerungen codiert. Eine Äußerung ist die Vokalisierung (ein Nutzer, der spricht) eines Wortes oder von Wörtern, die eine einzelne Bedeutung für den Computer repräsentieren. Eine Äußerung kann ein einzelnes Wort, einige Wörter, ein Satz oder auch mehrere Sätze sein. Eine Äußerung kann dabei ein n-Gramm umfassen, das eine zusammenhängende Sequenz von n-Elementen (n gleich oder größer 1) aus einer gegebenen Sequenz von Text oder Sprache ist. Die Elemente können Phoneme, Silben, Buchstaben, Wörter oder Basispaare sein, um nur einige Beispiele zu nennen. Das Client-Gerät nutzt einen ersten Schwellenwert, um zu bestimmen, ob eine oder mehrere Äußerungen, die zu Beginn des Audiosignals codiert werden, einen ersten Schwellenwert erfüllen, ein Schlüsselsatz zu sein. Das Client-Gerät kann einen Teil einer Äußerung, eine einzelne Äußerung aus der einen oder den mehreren ersten Äußerungen, wenn der Schlüsselsatz mehrere Wörter beinhaltet, oder beides analysieren. In der Praxis besteht eine Äußerung, die einem Schlüsselsatz entspricht, für den bestimmt wird, ob er den ersten Schwellenwert erfüllt, normalerweise aus Sprachelementen, wie mindestens einer Vielzahl von Phonemen, mindestens einer Vielzahl von Silben oder einem oder mehreren Wörtern, um den Schlüsselsatz in einem bestimmten Sinne einmalig und unterscheidbar von zufällig und allgemein häufig ausgesprochenen Äußerungen, wie einzelnen Buchstaben, einzelnen Phonemen usw., zu machen.
  • Wenn das Client-Gerät bestimmt, dass die eine oder die mehreren ersten Äußerungen den ersten Schwellenwert erfüllen, ein Schlüsselsatz zu sein, sendet das Client-Gerät das Audiosignal für eine zusätzliche Analyse an ein Spracherkennungssystem, das z. B. in einem Server beinhaltet ist, der vom Client-Gerät getrennt ist. Das Spracherkennungssystem empfängt das Audiosignal. Das Spracherkennungssystem analysiert die eine oder die mehreren ersten Äußerungen, um zu bestimmen, ob die eine oder die mehreren ersten Äußerungen einen zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein. Der zweite Schwellenwert ist restriktiver als der erste Schwellenwert, z. B. ist der erste Schwellenwert weniger genau oder niedriger als der zweite Schwellenwert. Wenn beispielsweise der erste Schwellenwert und der zweite Schwellenwert beides Wahrscheinlichkeiten sind, hat der erste Schwellenwert, z. B. fünfzig Prozent, eine geringere Wahrscheinlichkeit als der zweite Schwellenwert, mit z. B. fünfundsiebzig oder neunzig Prozent. Für die eine oder die mehreren ersten Äußerungen, um den ersten Schwellenwert oder den zweiten Schwellenwert zu erfüllen, ein Schlüsselsatz zu sein, kann ein entsprechendes System bestimmen, dass die Wahrscheinlichkeit der einen oder mehreren ersten Äußerungen, der Schlüsselsatz zu sein, größer ist als, oder größer oder gleich dem jeweiligen Schwellenwert.
  • Das Spracherkennungssystem empfängt vom Client-Gerät Daten für das gesamte Audiosignal, das die eine oder mehreren ersten Äußerungen beinhaltet, sodass das Spracherkennungssystem alle Daten analysieren kann, die im Audiosignal beinhaltet sind. Das gesamte Audiosignal kann mehrere n-Gramme beinhalten, die von dem Nutzer nach der einen oder den mehreren ersten Äußerungen ausgesprochen wurden, zumindest solange die n-Gramme in ein bestimmtes Zeitfenster fallen oder gemäß einer anderen Metrik innerhalb eines Höchstabstands von der einen oder den mehreren ersten Äußerungen liegen. Um beispielsweise die Möglichkeit zu reduzieren, dass das Spracherkennungssystem Daten für ein Audiosignal empfängt, die zu Beginn des Audiosignals eine Teiläußerung beinhalten, empfängt das Spracherkennungssystem, um die Spracherkennungsanalyse durch das Spracherkennungssystem, oder beides, zu verbessern, das gesamte Audiosignal von dem Client-Gerät, wenn das Client-Gerät bestimmt, dass zumindest ein Teil der einen oder der mehreren Äußerungen den ersten Schwellenwert erfüllt, der Schlüsselsatz zu sein. Dies kann es dem Server erlauben, eine automatisierte Sprachanalyse des Audiosignals zu verbessern, wegen der größeren Menge an Ressourcen, die dem Server im Vergleich zum Client-Gerät zur Verfügung stehen, einer größeren Anzahl an Sprachelementen in dem Server als in dem Client, z. B. robustere Analysemodelle im Server, oder beides, wodurch die Erkennung verbessert wird.
  • In einigen Implementierungen kann das Client-Gerät eine Vorsilbe oder einen Teil einer der ersten Äußerungen analysieren. Wenn beispielsweise der Schlüsselsatz „OK Google“ lautet, kann das Client-Gerät bestimmen, dass die eine oder die mehreren ersten Äußerungen „OK G“ oder „OK“ codieren, ohne die gesamte zweite Äußerung zu analysieren, und kann das Audiosignal als Reaktion an das Spracherkennungssystem senden. In anderen Worten, die eine oder die mehreren Äußerungen, für die bestimmt wird, ob sie den ersten Schwellenwert erfüllen, können aus nur einem Teil des Schlüsselsatzes bestehen, z. B. dem Anfangsteil des Schlüsselsatzes. Wenn der erste Schwellenwert erfüllt wird, können „weitere Äußerungen“ oder „zweite Äußerungen“, die Sprachelemente nach den ersten Äußerungen umfassen, z. B. innerhalb eines Schwellenabstands zu den ersten Äußerungen, zusammen mit den ersten durch den Server zu analysierenden Äußerungen an den Server gesendet werden, um festzustellen, ob die Kombination der ersten und zweiten Äußerungen zusammen den zweiten Schwellenwert erfüllt und ob eine Übereinstimmung mit dem Schlüsselsatz besteht.
  • In einigen Implementierungen kann das Client-Gerät, mit den Daten für das Audiosignal, und an das Spracherkennungssystem, Daten für den Schlüsselsatz senden. Die Daten für den Schlüsselsatz können aus einem Text bestehen, der den Schlüsselsatz repräsentiert, oder aus einem Identifikator, z. B. für das Client-Gerät, den das Spracherkennungssystem nutzen kann, um den Schlüsselsatz zu bestimmen. Das Spracherkennungssystem kann die Daten für den Schlüsselsatz nutzen, um zu bestimmen, ob die eine oder die mehreren ersten Äußerungen, die im Audiosignal enthalten sind, den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • Im Allgemeinen kann ein innovativer Aspekt des in dieser Spezifikation beschriebenen Gegenstands in Verfahren enthalten sein, die die Aktionen beinhalten, ein Audiosignal zu empfangen, das die eine oder die mehreren Äußerungen, die eine erste Äußerung beinhalten, codiert; zu bestimmen, ob zumindest ein Teil der ersten Äußerung einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein; als Reaktion auf das Bestimmen, dass zumindest der Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, ein Audiosignal an ein Serversystem zu senden, das bestimmt, ob die erste Äußerung einen zweiten Schwellenwert erfüllt, der Schlüsselsatz zu sein, wobei der zweite Schwellenwert retriktiver ist als der erste Schwellenwert; und von dem Serversystem, getaggte Textdaten zu empfangen, die die eine oder mehreren Äußerungen repräsentieren, die in dem Audiosignal codiert sind, wenn das Serversystem bestimmt, dass die erste Äußerung den zweiten Schwellenwert erfüllt. Andere Ausführungsformen dieses Aspekts beinhalten entsprechende Computersysteme, Vorrichtungen und Computerprogramme, die auf einem oder mehreren Computerspeichergeräten aufgezeichnet sind, die jeweils so konfiguriert sind, dass sie Aktionen der Verfahren durchführen. Ein System aus einem oder mehreren Computern kann konfiguriert sein, um bestimmte Vorgänge oder Aktionen mittels Software, Firmware, Hardware oder einer Kombination derselben, die auf dem System installiert sind, durchzuführen und deren Betrieb das System veranlasst, die Aktionen auszuführen. Ein oder mehrere Computerprogramme können konfiguriert sein, bestimmte Vorgänge oder Aktionen auszuführen, da sie Anweisungen beinhalten, die, wenn sie durch eine Datenverarbeitungsvorrichtung bearbeitet werden, das Gerät zur Ausführung der Aktion veranlassen.
  • Im Allgemeinen kann ein innovativer Aspekt des in dieser Spezifikation beschriebenen Gegenstands in Verfahren enthalten sein, die die Aktionen des Empfangens, von einem Client-Gerät, eines Audiosignals, das eine oder mehrere Äußerungen codiert, beinhaltend eine oder mehrere erste Äußerungen, für die das Client-Gerät bestimmt hat, dass zumindest ein Teil der einen oder mehreren ersten Äußerungen einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein; Bestimmens, ob die eine oder die mehreren ersten Äußerungen einen zweiten Schwellenwert erfüllen, zumindest ein Teil des Schlüsselsatzes zu sein, wobei der zweite Schwellenwert restriktiver ist als der erste Schwellenwert; und Sendens, an das Client-Gerät, eines Ergebnisses der Bestimmung beinhalten, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein. Andere Ausführungsformen dieses Aspekts beinhalten entsprechende Computersysteme, Vorrichtungen und Computerprogramme, die auf einem oder mehreren Computerspeichergeräten aufgezeichnet sind, die jeweils konfiguriert sind, um die Aktionen der Verfahren auszuführen. Ein System aus einem oder mehreren Computern kann konfiguriert sein, um bestimmte Vorgänge oder Aktionen mittels Software, Firmware, Hardware oder einer Kombination derselben, die auf dem System installiert sind, durchzuführen und deren Betrieb das System veranlasst, die Aktionen auszuführen. Ein oder mehrere Computerprogramme können konfiguriert sein, bestimmte Vorgänge oder Aktionen auszuführen, da sie Anweisungen beinhalten, die, wenn sie durch eine Datenverarbeitungsvorrichtung bearbeitet werden, das Gerät zur Ausführung der Aktion veranlassen.
  • Die vorstehenden und andere Ausführungsformen können jeweils optional eines oder mehrere der folgenden Merkmale allein oder in Kombination beinhalten. Das Verfahren kann das Ausführen einer Aktion unter Verwendung der getaggten Textdaten nach Empfangen, von dem Serversystem, der getaggten Textdaten umfassen, die die eine oder die mehreren Äußerungen repräsentieren, die im Audiosignal codiert sind, wenn das Serversystem bestimmt, dass die erste Äußerung den zweiten Schwellenwert erfüllt. Die eine oder mehreren Äußerungen können zwei oder mehr Äußerungen beinhalten, wobei die erste Äußerung vor den anderen Äußerungen der zwei oder mehr Äußerungen in dem Audiosignal codiert wird. Die Aktion unter Verwendung der getaggten Textdaten auszuführen, kann beinhalten, eine Aktion unter Verwendung der getaggten Textdaten für die eine oder die mehreren Äußerungen, die in dem Audiosignal nach der ersten Äußerung codiert sind, auszuführen. Zu bestimmen, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, kann beinhalten, zu bestimmen, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, der zwei oder mehr Wörter beinhaltet.
  • In einigen Implementierungen kann das Verfahren beinhalten, ein zweites Audiosignal zu empfangen, das zwei oder mehr zweite Äußerungen codiert, die eine zweite Äußerung beinhalten; zu bestimmen, ob zumindest ein Teil der zweiten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein; und als Reaktion auf das Bestimmen, dass zumindest der Teil der zweiten Äußerung den ersten Schwellenwert nicht erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, das zweite Audiosignal zu verwerfen. Das Verfahren kann beinhalten, zu bestimmen, keine Aktion unter Verwendung von Daten aus dem zweiten Audiosignal auszuführen, als Reaktion auf das Bestimmen, dass zumindest ein Teil der zweiten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein. Zu bestimmen, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, kann beinhalten, zu bestimmen, ob zumindest ein Teil der ersten Äußerung eine erste Wahrscheinlichkeit erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein.
  • In einigen Implementierungen kann das Senden, an das Client-Gerät, des Ergebnisses der Bestimmung, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, von Daten, die anzeigen, dass der Schlüsselsatz wahrscheinlich nicht in dem Audiosignal beinhaltet ist, als Reaktion auf das Bestimmen beinhalten, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert nicht erfüllen, der Schlüsselsatz zu sein. Das Senden, an das Client-Gerät, des Ergebnisses der Bestimmung, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, kann das Senden, an das Client-Gerät, von Daten für das Audiosignal als Reaktion auf das Bestimmen beinhalten, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein. Das Senden, an das Client-Gerät, von Daten für das Audiosignal als Reaktion auf das Bestimmen, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, kann das Senden, an das Client-Gerät, von getaggten Textdaten beinhalten, die die eine oder die mehreren Äußerungen, die im Audiosignal codiert sind, repräsentieren. Das Verfahren kann beinhalten, das gesamte Audiosignal zu analysieren, um erste Daten für jede der einen oder mehreren Äußerungen zu bestimmen. Das Senden, an das Client-Gerät, der Daten für das Audiosignal als Reaktion auf das Bestimmen, dass die erste oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, kann das Senden, an das Client-Gerät, der ersten Daten für das Audiosignal als Reaktion auf das Bestimmen beinhalten, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • In einigen Implementierungen kann das Bestimmen, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Bestimmen beinhalten, unter Verwendung eines Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein. Ein Sprachmodell kann eine Wahrscheinlichkeitsverteilung über eine Sequenz von Sprachelementen definieren, z. B. Phoneme, Silben oder Wörter, die eine Wahrscheinlichkeit anzeigen, dass die Sequenz der Sprachelemente in der durch die Sequenz spezifizierten Reihenfolge auftritt. Bei der automatisierten Spracherkennung legen ein oder mehrere Computer Töne mit Sprachelementsequenzen übereinander, die von dem Sprachmodell definiert sind, und bestimmen entsprechende Wahrscheinlichkeiten für die Sprachelementsequenzen. Unter Verwendung der Wahrscheinlichkeiten in dem Sprachmodell kann der eine oder die mehreren Computer zwischen Sprachelementen unterscheiden, z. B. Wörtern und Sätzen, die ähnlich klingen, angesichts des Kontextes der einzelnen Sprachelemente in der Sequenz, z. B. in Anbetracht der Reihenfolge, in der die Sprachelemente in der Sequenz auftreten. Das Verfahren kann beinhalten, das Sprachmodell für den Schlüsselsatz vor dem Bestimmen individuell anzupassen, unter Verwendung des Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein. Das Verfahren kann beinhalten, Text zu empfangen, der den Schlüsselsatz identifiziert. Das individuelle Anpassen des Sprachmodells für den Schlüsselsatz kann beinhalten, das Sprachmodell für den Schlüsselsatz anzupassen, unter Verwendung des Textes, der den Schlüsselsatz identifiziert. Das Verfahren kann beinhalten, einen Identifikator zu empfangen; und unter Verwendung des Identifikators die Schlüsselsatz-Daten für den Schlüsselsatz zu bestimmen. Das individuelle Anpassen des Sprachmodells für den Schlüsselsatz kann beinhalten, das Sprachmodell für den Schlüsselsatz, unter Verwendung der Schlüsselsatz-Daten, anzupassen. Das Bestimmen, unter Verwendung des Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, kann das Bestimmen beinhalten, unter Verwendung des Sprachmodells und eines Akustikmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein. Ein Akustikmodell kann ein Mapping zwischen einem Phonem oder einem anderen Sprachelement, und einer Vokalisierung des Phonems oder dem entsprechenden anderen Sprachelement definieren. Ein Computer kann ein Akustikmodell in einem automatischen Spracherkennungsprozess nutzen, um das Verhältnis zwischen einer Vokalisierung eines Sprachelements, das in einem Audiosignal codiert ist, und dem entsprechenden Sprachelement zu bestimmen. Unter Verwendung des Sprachmodells und des Akustikmodells zu bestimmen, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, beinhaltet das Bereitstellen von Daten für die eine oder die mehreren ersten Äußerungen an das Sprachmodell, um das Sprachmodell zu veranlassen, eine erste Ausgabe zu erzeugen; das Bereitstellen von Daten für die eine oder die mehreren ersten Äußerungen an das Akustikmodell, um das Akustikmodell zu veranlassen, eine zweite Ausgabe zu erzeugen; das Kombinieren der ersten Ausgabe und der zweiten Ausgabe, um eine kombinierte Ausgabe zu erzeugen; und das Bestimmen, unter Verwendung der kombinierten Ausgabe, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein. Das Verfahren kann beinhalten, das Sprachmodell für einen Standard-Schlüsselsatz auszuwählen. Das Verfahren kann beinhalten, zu bestimmen, ob der Standard-Schlüsselsatz verwendet wird.
  • Der in dieser Spezifikation beschriebene Gegenstand kann in besondere Ausführungsformen implementiert sein und kann zu einem oder mehreren der folgenden Vorteile führen. In einigen Implementierungen können die in diesem Dokument beschriebenen Systeme und Verfahren die von einem Client-Gerät während der Hotword-Analyse mit einem ersten, niedrigeren Schwellenwert genutzten Ressourcen reduzieren oder eine Genauigkeit der Hotword-Analyse mittels eines zweiten, restriktiveren Schwellenwerts in einem Spracherkennungssystem verbessern, oder beides. In einigen Implementierungen können die unten beschriebenen Systeme und Verfahren Text in einem Audiosignal präziser parsen, segmentieren oder beides, z. B. können sie einen in dem Audiosignal codierten Schlüsselsatz, separat von anderen in dem Audiosignal codierten Äußerungen genauer identifizieren, durch Senden eines gesamten Audiosignals, das den Schlüsselsatz beinhaltet, zur Analyse an ein Spracherkennungssystem. In einigen Implementierungen können die unten beschriebenen Systeme und Verfahren, im Vergleich zu anderen Systemen, die Client-Verarbeitungszeit reduzieren, ein Audiosignal schneller an ein Spracherkennungssystem senden, oder beides, wenn der Client einen niedrigeren Hotword-Analyse-Schwellenwert nutzt als ein restriktiverer Hotword-Analyse-Schwellenwert, der von dem Spracherkennungssystem verwendet wird. In einigen Implementierungen können die unten beschriebenen Systeme und Verfahren die Bandbreitennutzung reduzieren, wenn das Client-Gerät weniger Audiosignale an ein Serversystem zur Analyse sendet, da eine Äußerung einen ersten, niedrigeren Schwellenwert nicht erfüllt.
  • Die Details einer oder mehrerer Implementierungen des in dieser Spezifikation beschriebenen Gegenstands sind in den zugehörigen Zeichnungen und der nachfolgenden Beschreibung dargelegt. Weitere Merkmale, Aspekte und Vorteile des Gegenstands werden anhand der Beschreibung, der Zeichnungen und der Patentansprüche ersichtlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Beispiel einer Umgebung, in der ein Client-Gerät ein Audiosignal unter Verwendung eines ersten Schwellenwerts analysiert und ein Spracherkennungssystem das Audiosignal unter Verwendung eines zweiten Schwellenwerts analysiert, der restriktiver ist als der erste Schwellenwert.
  • 2 ist ein Flussdiagramm eines Prozesses, um zu bestimmen, ob eine Aktion ausgeführt werden soll.
  • 3 ist ein Flussdiagramm eines Prozesses, um getaggte Textdaten für ein Audiosignal zu erzeugen.
  • 4 ist ein Blockdiagramm eines Computersystems, das in Verbindung mit in diesem Dokument beschriebenen computerimplementierten Verfahren verwendet werden kann.
  • In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Beispiel einer Umgebung 100, in der ein Client-Gerät 102 ein Audiosignal unter Verwendung eines ersten Schwellenwerts analysiert und ein Spracherkennungssystem 112 das Audiosignal, unter Verwendung eines zweiten Schwellenwerts, analysiert, der restriktiver ist als der erste Schwellenwert. Das Client-Gerät 102 nutzt den ersten Schwellenwert, um zu bestimmen, ob das Audiosignal zumindest einen Teil eines Schlüsselsatzes codiert. Wenn das Client-Gerät 102 bestimmt, dass das Audiosignal den ersten Schwellenwert erfüllt, der Schlüsselsatz zu sein, sendet das Client-Gerät 102 das Audiosignal an das Spracherkennungssystem 112, das den zweiten Schwellenwert nutzt, um zu bestimmen, ob das Audiosignal den gesamten Schlüsselsatz codiert. Zu diesem Zweck kann das Client-Gerät 102 nicht nur das Audiosignal, das einen Teil des erkannten Schlüsselsatzes repräsentiert, sondern das gesamte Audiosignal, oder zumindest Teile des Audiosignals, die innerhalb eines bestimmten Bereichs liegen, nach dem Teil, der den erkannten Teil des Schlüsselsatzes repräsentiert, an das Spracherkennungssystem 112 senden.
  • Wenn das Spracherkennungssystem 112 bestimmt, dass das Audiosignal den gesamten Schlüsselsatz codiert, kann das Spracherkennungssystem 112 dem Client-Gerät 102 getaggte Textdaten der sprachlich erkannten in dem Audiosignal codierten Äußerungen bereitstellen, um es dem Client-Gerät 102 zu erlauben, eine Aktion, basierend auf dem Audiosignal, auszuführen. Dabei können die getaggten Textdaten die sprachlich erkannten Äußerungen und „Tags“ umfassen, die Aktionen repräsentieren, die ausgeführt werden sollen oder auf andere Weise eine Textkategorie innerhalb der erkannten Äußerungen identifizieren, sodass das Client-Gerät 102 den Tag und die sprachlich erkannten Äußerungen, die dem Tag entsprechen, identifizieren kann. Das Client-Gerät 102 kann die getaggten Textdaten nutzen, um eine auszuführende Aktion zu bestimmen, z. B. auszuführende Anweisungen, um zu bestimmen, welche Teile der sprachlich erkannten Äußerungen analysiert werden sollen, wann bestimmt werden soll, ob eine Aktion ausgeführt wird, oder beides.
  • Das Client-Gerät 102 beinhaltet ein Mikrofon 104, das das Audiosignal erfasst. Beispielsweise kann das Client-Gerät 102 in einem Kleinleistungsmodus, z. B. Standby, sein, während das Mikrofon 104 zumindest einen Teil des Audiosignals erfasst. Der Teil, der zumindest einen Teil des Audiosignals darstellt, kann das gesamte Audiosignal, ein oder mehrere erste Äußerungen, die in dem Audiosignal enthalten sind, oder ein anderer Teil des Beginns des Audiosignals sein. Ein Beispiel von Äußerungen, die in einem Audiosignal codiert sind, ist „OK Google, spiele etwas Musik“. In diesem Beispiel können die ersten Äußerungen „OK“ oder „OK Google“ sein.
  • Das Mikrofon 104 stellt das Audiosignal oder einen Teil des Audiosignals, während das Audiosignal erfasst wird, einem Client-Hotword-Erfassungsmodul 106 bereit. Beispielsweise kann das Mikrofon 104 oder eine Kombination von Komponenten in dem Client-Gerät 102, Teile des Audiosignals an das Client-Hotword-Erfassungsmodul 106 bereitstellen, während das Audiosignal durch das Mikrofon 104 erfasst wird.
  • Das Client-Hotword-Erfassungsmodul 106 bestimmt, zum Zeitpunkt TA, ob das Audiosignal einen ersten Schwellenwert 108 erfüllt. Beispielsweise kann das Client-Hotword-Erfassungsmodul 106 zumindest einen Teil der einen oder der mehreren ersten Äußerungen analysieren, die am Anfang des Audiosignals enthalten sind, um zu bestimmen, ob der Teil der einen oder der mehreren ersten Äußerungen den ersten Schwellenwert 108 erfüllen, ein Schlüsselsatz zu sein. Der Teil der ersten Äußerungen kann „OK“ oder „OK Google“ sein. Ein Beispiel eines Schlüsselsatz kann „OK Google“ sein. In einigen Beispielen ist das Client-Hotword-Erfassungsmodul 106 konfiguriert, um das Auftreten von nur einem Schlüsselsatz zu erfassen. In einigen Implementierungen ist das Client-Hotword-Erfassungsmodul konfiguriert, um das Auftreten eines von vielen verschiedenen Schlüsselsätzen, z. B. von zehn Schlüsselsätzen, zu erfassen. Die mehreren verschiedenen Schlüsselsätze beinhalten eine begrenzte Anzahl verschiedener Schlüsselsätze, für die das Client-Hotword-Erfassungsmodul 106 trainiert ist.
  • Das Client-Hotword-Erfassungsmodul 106 kann eine Wahrscheinlichkeit bestimmen, dass zumindest ein Teil der ersten Äußerungen gleich ist wie zumindest ein Teil des Schlüsselsatzes. Zu diesem Zweck kann das Client-Hotword-Erfassungsmodul 106 jeden bekannten automatisierten Spracherkennungsansatz anwenden, der den zumindest einen Teil der ersten Äußerungen in Phoneme oder andere linguistische Einheiten segmentiert und ein Akustikmodell und/oder Sprachmodell nutzt, um eine Wahrscheinlichkeit zu erlangen, ob die ersten Äußerungen mit einem Schlüsselsatz oder einem Teil eines Schlüsselsatzes übereinstimmen. Der Teil des Schlüsselsatzes kann der Anfangsteil des Schlüsselsatzes sein, z. B. der die Sprachelemente am Anfang des Schlüsselsatzes beinhaltet. Das Client-Hotword-Erfassungsmodul 106 kann die Wahrscheinlichkeit mit dem ersten Schwellenwert 108 vergleichen. Wenn die Wahrscheinlichkeit den ersten Schwellenwert 108 erfüllt, kann das Client-Gerät 102 das Audiosignal an das Spracherkennungssystem 112, z. B. auf einem oder mehreren Servern positioniert, senden. Wenn die Wahrscheinlichkeit den ersten Schwellenwert 108 nicht erfüllt, kann das Client-Gerät 102 beispielsweise keine weitere Aktion, basierend auf den in dem Audiosignal enthaltenen Äußerungen, ausführen und kann das Audiosignal verwerfen.
  • Das Client-Hotword-Erfassungsmodul 106 kann bestimmen, dass der Schlüsselsatz „OK Google“ ist und dass die Äußerung „OK“, als eine der ersten Äußerungen in dem Audiosignal, den ersten Schwellenwert 108 erfüllt, Teil eines Schlüsselsatzes zu sein. In einigen Beispielen kann das Client-Hotword-Erfassungsmodul 106 bestimmen, dass die Äußerung „OK Google“ aus dem Audiosignal den ersten Schwellenwert 108 erfüllt, ein Teil des Schlüsselsatzes zu sein, beispielsweise der gesamte Schlüsselsatz zu sein.
  • In einigen Implementierungen kann, wenn das Client-Hotword-Erfassungsmodul 106 bestimmt, dass eine oder ein Teil der ersten Äußerungen den ersten Schwellenwert 108 erfüllt, ein Teil des Schlüsselsatzes zu sein, das Client-Hotword-Erfassungsmodul 106 bestimmen, ob eine Gesamtlänge der ersten Äußerungen mit einer Länge für die Schlüsselsätze übereinstimmt. Beispielsweise kann das Client-Hotword-Erfassungsmodul 106 bestimmen, dass eine Zeit, während der die eine oder die mehreren ersten Äußerungen ausgesprochen wurden, mit einer Durchschnittszeit übereinstimmt, in der der Schlüsselsatz ausgesprochen wird. Die Durchschnittszeit kann für einen Nutzer des Client-Geräts 102 oder für mehrere verschiedene Personen gelten, z. B. beinhaltend den Nutzer des Client-Geräts 102.
  • In einigen Implementierungen kann das Client-Hotword-Erfassungsmodul 106 bestimmen, dass die Gesamtlänge der ersten Äußerungen und eine Gesamtzahl von n-Grammen, z. B. Wörter, die in den ersten Äußerungen enthalten sind, mit einer Gesamtlänge des Schlüsselsatzes und einer Anzahl von n-Grammen, die in dem Schlüsselsatz enthalten sind, übereinstimmen, z. B. wenn nur ein Teil einer ersten Äußerung oder der ersten Äußerungen analysiert wird. Beispielsweise kann das Client-Hotword-Erfassungsmodul 106 eine Anzahl von Schweigephasen zwischen den ersten Äußerungen, die die Anzahl der ersten Äußerungen anzeigt, bestimmen. Das Client-Hotword-Erfassungsmodul 106 kann die Anzahl der ersten Äußerungen, die Sprechlänge der ersten Äußerungen oder beides mit einer Gesamtzahl an Wörtern in dem Schlüsselsatz, mit der Sprechlänge des Schlüsselsatzes oder beidem vergleichen. Wenn das Client-Hotword-Erfassungsmodul 106 bestimmt, dass die Gesamtzahl der ersten Äußerungen und die Gesamtzahl der Wörter in dem Schlüsselsatz gleich sind, dass die Sprechlänge der ersten Äußerungen innerhalb eines Schwellenbetrags von der Sprechlänge des Schlüsselsatzes liegt oder beides, kann das Client-Hotword-Erfassungsmodul 106 bestimmen, dass die ersten Äußerungen in dem Audiosignal den ersten Schwellenwert 108 erfüllen, der Schlüsselsatz zu sein, z. B. wenn zumindest ein Teil der ersten Äußerungen den ersten Schwellenwert 108 erfüllt, ein Teil des Schlüsselsatzes zu sein.
  • Die ersten Äußerungen können den ersten Schwellenwert 108 erfüllen, ein Schlüsselsatz zu sein, wenn die Wahrscheinlichkeit größer ist als der erste Schwellenwert 108. Die ersten Äußerungen können den ersten Schwellenwert 108 erfüllen, ein Schlüsselsatz zu sein, wenn die Wahrscheinlichkeit größer oder gleich dem ersten Schwellenwert 108 ist. In einigen Beispielen erfüllen die ersten Äußerungen den ersten Schwellenwert 108 nicht, ein Schlüsselsatz zu sein, wenn die Wahrscheinlichkeit geringer ist als der erste Schwellenwert 108. Die ersten Äußerungen können den ersten Schwellenwert 108 nicht erfüllen, ein Schlüsselsatz zu sein, wenn die Wahrscheinlichkeit geringer oder gleich dem ersten Schwellenwert 108 ist.
  • Als Reaktion auf das Bestimmen, dass zumindest ein Teil der ersten Äußerungen den ersten Schwellenwert 108 erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, sendet das Client-Gerät 102, zum Zeitpunkt TB, das Audiosignal an das Spracherkennungssystem 112. Das Spracherkennungssystem 112 empfängt das Audiosignal und nutzt ein Server-Hotword-Erfassungsmodul 114, um zu bestimmen, zum Zeitpunkt TC, ob das Audiosignal einen zweiten Schwellenwert 116 erfüllt, der Schlüsselsatz zu sein. Beispielsweise nutzt das Spracherkennungssystem 112 das Server-Hotword-Erfassungsmodul 114, um zu bestimmen, ob das Audiosignal den zweiten Schwellenwert 116 erfüllt, ein Schlüsselsatz zu sein.
  • Der zweite Schwellenwert 116 ist restriktiver als der erste Schwellenwert 108. Beispielsweise ist es bei dem Server-Hotword-Erfassungsmodul 114, unter Verwendung des zweiten Schwellenwerts 116, weniger wahrscheinlich, inkorrekt zu bestimmen, dass die ersten Äußerungen denselben Text repräsentieren wie ein Schlüsselsatz, z. B. falsch positiv sind, verglichen mit dem Client-Hotword-Erfassungsmodul 106, unter Verwendung des ersten Schwellenwerts 108. In einigen Beispielen hat, wenn die Schwellenwerte Wahrscheinlichkeiten sind, der erste Schwellenwert 108 einen geringeren numerischen Wert wie der zweite Schwellenwert 116.
  • Das Server-Hotword-Erfassungsmodul 114 kann ein Sprachmodell 118, ein Akustikmodell 120 oder beides benutzen, um zu bestimmen, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert 116 erfüllen, ein Schlüsselsatz zu sein. Das Sprachmodell 118 und das Akustikmodell 120 sind jeweils, unter Verwendung einer großen Menge an Trainingsdaten, trainiert, z. B. im Vergleich zu dem Client-Hotword-Erfassungsmodul 106. Beispielsweise kann das Sprachmodell 118, das Akustikmodell 120 oder beides anhand von 30000 Stunden Trainingsdaten trainiert werden. Das Client-Hotword-Erfassungsmodul 106 kann anhand von 100 Stunden Trainingsdaten trainiert werden.
  • In einigen Beispielen kann das Server-Hotword-Erfassungsmodul 114 während der Übertragung ein Hotword-Biasing-Modell erstellen, das das Sprachmodell 118, das Akustikmodell 120 oder beides beinhaltet, um es für die Analyse des Audiosignals zu nutzen. Ein Hotword-Biasing-Modell kann eine Kombination eines Sprachmodells, das eine Wahrscheinlichkeitsverteilung über eine Sequenz von Sprachelementen definiert, und einem Akustikmodell sein, das ein Mapping zwischen Sprachelementen und entsprechenden Vokalisierungen der Sprachelemente definiert, das für einige Schlüsselsätze oder Hotwords spezifisch ist. Das Spracherkennungssystem 112 kann ein Hotword-Biasing-Modell für das Client-Gerät 102 erstellen, das für den Schlüsselsatz oder die Schlüsselsätze spezifisch ist, für die das Client-Gerät 102 die eine oder die mehreren ersten Äußerungen analysiert hat.
  • Beispielsweise kann das Server-Hotword-Erfassungsmodul 114 Daten von dem Client-Gerät 102 empfangen, das einen Schlüsselsatz identifiziert, für den das Server-Hotword-Erfassungsmodul 114 das Audiosignal analysiert, um zu bestimmen, ob das Client-Gerät 102 aus dem Ruhezustand aufwachen oder eine Aktion ausführen soll oder beides. Die Daten, die den Schlüsselsatz identifizieren, können Textdaten für den Schlüsselsatz sein, z. B. ein Textstring, oder ein Identifikator für das Client-Gerät 102, die beispielsweise jeweils in die Anfrage, das von dem Client-Gerät 102 empfangene Audiosignal zu analysieren, beinhaltet sein können. Das Server-Hotword-Erfassungsmodul 114 kann den Identifikator für das Client-Gerät 102 nutzen, um auf eine Datenbank zuzugreifen und den Schlüsselsatz für das Client-Gerät 102 und das Audiosignal zu bestimmen. Das Server-Hotword-Erfassungsmodul 114 kann den bestimmten Schlüsselsatz oder die Schlüsselsätze für das Client-Gerät 102 nutzen, um ein Hotword-Biasing-Modell für das Client-Gerät 102, unter Verwendung eines bestehenden Sprachmodells 118, eines bestehenden Akustikmodells 120 oder beidem zu erstellen, die bereits in einem Speicher des Spracherkennungssystems 112 abgelegt sind.
  • In einigen Beispielen kann das Server-Hotword-Erfassungsmodul 114 ein vorgefertigtes Hotword-Biasing-Modell nutzen. Beispielsweise kann das Server-Hotword-Erfassungsmodul 114 mehrere Audiosignale von dem Client-Gerät 102 oder von mehreren verschiedenen Client-Geräten analysieren, die alle für denselben Schlüsselsatz, unter Verwendung desselben Hotword-Biasing-Modells, sind.
  • Das Hotword-Biasing-Modell kann ein oder mehrere n-Gramme identifizieren, für die das Hotword-Biasing-Modell eine Analyse ausführt. Wenn beispielsweise der Schlüsselsatz „OK Google“ ist, kann das Hotword-Biasing-Modell Punktzahlen für ein oder mehrere n-Gramme „<S> OK Google“, „<S> OK“ oder „OK Google“ erzeugen, wobei <S> eine Ruhephase zu Beginn eines Satzes bezeichnet.
  • Entweder das Sprachmodell 118 oder das Akustikmodell 120 oder beide können die n-Gramme für das Hotword-Biasing-Modell nutzen, um zu bestimmen, ob das Audiosignal den Schlüsselsatz enthält. Beispielsweise kann das Sprachmodell 118 ein oder mehrere n-Gramme verwenden, um eine Punktzahl zu erzeugen, die eine Wahrscheinlichkeit anzeigt, dass das Audiosignal den Schlüsselsatz beinhaltet. Das Sprachmodell 118 kann die n-Gramme oder einige der n-Gramme nutzen, um eine Wahrscheinlichkeit zu erhöhen, dass der Schlüsselsatz korrekt in dem Audiosignal identifiziert wird, wenn die eine oder die mehreren ersten Äußerungen gleich sind wie der Schlüsselsatz. Wenn beispielsweise der Schlüsselsatz zwei oder mehr Wörter beinhaltet, kann das Sprachmodell 118 den Schlüsselsatz, z. B. „OK Google“, zu dem Sprachmodell 118 hinzufügen, um die Wahrscheinlichkeit zu erhöhen, dass der Schlüsselsatz identifiziert wird, z. B. im Vergleich dazu, wenn das Sprachmodell 118 nicht bereits den Schlüsselsatz enthält.
  • Das Akustikmodell 120 kann einen oder mehrere n-Gramme verwenden, um eine Punktzahl zu erzeugen, die eine Wahrscheinlichkeit anzeigt, dass das Audiosignal den Schlüsselsatz beinhaltet. Beispielsweise kann das Akustikmodell 120 mehrere Punktzahlen für verschiedene Sätze erzeugen, den Schlüsselsatz beinhaltend, und die Punktzahl für den Schlüsselsatz als Ausgabe auswählen.
  • Das Server-Hotword-Erfassungsmodul 114 kann die beiden Punktzahlen von dem Sprachmodell 118 und dem Akustikmodell 120 empfangen. Das Server-Hotword-Erfassungsmodul 114 kann die beiden Punktzahlen kombinieren, um eine Gesamtpunktzahl für das Audiosignal zu bestimmen. Das Server-Hotword-Erfassungsmodul 114 kann die Gesamtpunktzahl mit dem zweiten Schwellenwert 116 vergleichen. Wenn die Gesamtpunktzahl den zweiten Schwellenwert 116 erfüllt, bestimmt das Server-Hotword-Erfassungsmodul 114, dass das Audiosignal wahrscheinlich den Schlüsselsatz codiert. Wenn die Gesamtpunktzahl den zweiten Schwellenwert 116 nicht erfüllt, bestimmt das Server-Hotword-Erfassungsmodul 114, dass das Audiosignal wahrscheinlich den Schlüsselsatz nicht codiert.
  • Als Reaktion auf das Bestimmen, dass das Audiosignal den Schlüsselsatz wahrscheinlich nicht codiert, kann das Spracherkennungssystem 112 eine Meldung an das Client-Gerät 102 senden, die anzeigt, dass das Audiosignal den Schlüsselsatz wahrscheinlich nicht codiert. In einigen Beispielen kann das Spracherkennungssystem 112 dem Client-Gerät 102 keine Meldung senden, wenn es bestimmt, dass das Audiosignal wahrscheinlich den Schlüsselsatz nicht codiert.
  • Wenn das Server-Hotword-Erfassungsmodul 114 bestimmt, dass das Audiosignal den Schlüsselsatz wahrscheinlich codiert, erzeugt ein getaggter Textgenerator 122 getaggten Text für das Audiosignal. Der getaggte Textgenerator 122 kann Daten von dem Sprachmodell 118, dem Akustikmodell 120 oder beidem empfangen, die die in dem Audiosignal codierten n-Gramme anzeigen. Beispielsweise kann der getaggte Textgenerator 122 Daten von dem Akustikmodell 120, die Punktzahlen für n-Gramme anzeigen, die wahrscheinlich in dem Audiosignal codiert sind, Daten, die die n-Gramme repräsentieren, die in dem Audiosignal codiert sind oder andere geeignete Daten empfangen.
  • Der getaggte Textgenerator 122 kann Daten von dem Sprachmodell 118, dem Akustikmodell 120 oder beidem nutzen, um Tags für die in dem Audiosignal codierten n-Gramme zu erzeugen. Wenn beispielsweise das Audiosignal „OK Google spiele etwas Musik“ codiert, kann der getaggte Textgenerator 122 Daten erzeugen, die den String „<hotword biasing> OK Google </hotword biasing> spiele etwas Musik“ repräsentieren. Der Tag „<hotword biasing>“ identifiziert dabei den ersten String „OK Google“ als Hotword. Der Tag „</hotword biasing>“ identifiziert das Ende des Hotword und zeigt an, dass der folgende String wahrscheinlich eine Anweisung für das Client-Gerät 102 beinhaltet, a) die durch einen automatisierten Spracherkennungsprozess erkannt wurde und b) die das Client-Gerät 102 analysieren sollte, um zu bestimmen, ob das Client-Gerät 102 eine entsprechende Anweisung ausführen kann.
  • Das Spracherkennungssystem 112 stellt den getaggten Text für das Audiosignal an das Client-Gerät 102 zum Zeitpunkt TD bereit. Das Client-Gerät 102 empfängt den getaggten Text und analysiert den getaggten Text, um eine auszuführende Aktion zu bestimmen. Beispielsweise kann das Client-Gerät 102 die in dem Text enthaltenen Tags nutzen, um zu bestimmen, welcher Teil des Texts mit dem Schlüsselsatz übereinstimmt, z. B. die eine oder die mehreren ersten Äußerungen, und welcher Teil des Texts mit einer auszuführenden Aktion für das Client-Gerät 102 übereinstimmt. Beispielsweise kann das Client-Gerät 102, unter Verwendung des Texts „spiele etwas Musik“ bestimmen, eine Musik-Wiedergabeanwendung zu starten und Musik zu spielen. Das Client-Gerät 102 kann eine Nutzereingabe bereitstellen, die ein Musik-Genre, einen Musiksender, einen Künstler oder eine andere Art von Musik für die Wiedergabe, unter Verwendung der Musikwiedergabe-Anwendung, abfragt.
  • In einigen Implementierungen kann das Client-Gerät 102 konfiguriert sein, um einen aus mehreren verschiedenen Schlüsselsätzen, die in einem Audiosignal codiert sind, zu erfassen. Beispielsweise kann das Client-Gerät 102 eine Eingabe empfangen, die ein nutzerspezifisches Hotword, wie „Hey Indigo“ oder „Hey Gennie“, repräsentiert. Das Client-Gerät 102 kann das Spracherkennungssystem 112 mit Daten bereitstellen, die das nutzerspezifische Hotword repräsentieren. Beispielsweise kann das Client-Gerät 102 eine Textrepräsentation des nutzerspezifischen Hotword mit dem Audiosignal senden. In einigen Beispielen kann das Client-Gerät 102 das Spracherkennungssystem 112 mit Daten für das nutzerspezifische Hotword bereitstellen, das das Spracherkennungssystem 112 mit einem Identifikator für das Client-Gerät 102 verbindet, z. B. mit einem Benutzerkonto für das Client-Gerät 102.
  • Das Client-Gerät 102 kann verschiedene Schlüsselsätze für verschiedene physische geografische Standorte haben. Beispielsweise kann das Client-Gerät 102 einen ersten Schlüsselsatz für das Zuhause des Nutzers und einen zweiten unterschiedlichen Schlüsselsatz für das Büro des Nutzers haben. Das Client-Gerät 102 kann ein oder mehrere Standortgeräte 110 nutzen, um einen aktuellen physischen Standort für das Client-Gerät 102 zu bestimmen und einen entsprechenden Schlüsselsatz auszuwählen. Das Client-Gerät 102 kann Daten an das Spracherkennungssystem 112 mit dem Audiosignal senden, das den Schlüsselsatz, basierend auf dem physischen geografischen Standort des Client-Geräts 102, identifiziert. Die Standortgeräte 110 können ein oder mehrere aus einem globalen Positionierungssystem, einem drahtlosen Gerät, das eine drahtlose Signatur erfasst, z. B. einem drahtlosen Hotspot oder einem anderen Gerät, das eine Signatur übermittelt, oder einer Mobilfunkantenne, die Informationen der Mobilfunk-Basisstationen erfasst, beinhalten.
  • In einigen Beispielen kann das Client-Gerät 102 Daten an das Spracherkennungssystem 112 senden, das den physischen geografischen Standort des Client-Geräts 102 anzeigt. Beispielsweise kann das Client-Hotword-Erfassungsmodul 106 für mehrere, z. B. fünf verschiedene Schlüsselsätze konfiguriert sein, die jeweils mit demselben n-Gramm Vorsatz, z. B. „OK“, beginnen und die jeweils an einem unterschiedlichen physischen geografischen Standort verwendet werden. Beispielsweise kann das Client-Gerät 102 einen Schlüsselsatz „OK Google“ an einem ersten Standort haben und „OK Indigo“ an einem zweiten Standort, der sich von dem ersten Standort unterscheidet. Das Client-Hotword-Erfassungsmodul 106 kann bestimmen, dass ein Audiosignal den n-Gramm Vorsatz beinhaltet, ohne zu bestimmen, welcher der mehreren verschiedenen Schlüsselsätze in dem Audiosignal codiert werden kann. Das Client-Gerät 102 kann bei einer Bestimmung durch das Client-Hotword-Erfassungsmodul 106, dass Äußerungen in dem Audiosignal den ersten Schwellenwert 108, ein Schlüsselsatz zu sein, erfüllen, das Audiosignal und die Standortdaten für das Client-Gerät 102 an das Spracherkennungssystem 112 senden. Das Spracherkennungssystem 112 empfängt das Audiosignal und die Standortdaten und nutzt die Standortdaten, um einen Schlüsselsatz aus den mehreren verschiedenen Schlüsselsätzen für die Verwendung bei der Analyse zu bestimmen. Das Server-Hotword-Erfassungsmodul 114 nutzt den bestimmten Schlüsselsatz, um das Audiosignal zu analysieren und bestimmt, ob das Audiosignal den zweiten Schwellenwert 116 erfüllt, der bestimmte Schlüsselsatz zu sein.
  • In einigen Implementierungen befindet sich das Client-Gerät 102 im Ruhezustand, z. B. in einem Kleinleistungsmodus, wenn das Client-Gerät 102 das Audiosignal, z. B. unter Verwendung des Mikrofons 104, erfasst. Im Schlafmodus kann das Client-Gerät 102 nicht den vollen Funktionsumfang haben. Beispielsweise können einige Funktionen des Client-Geräts 102 deaktiviert sein, um den Akkuverbrauch zu verringern.
  • Das Client-Gerät 102 kann aus dem Ruhezustand aufgeweckt werden, bei der Bestimmung, dass die ersten Äußerungen den ersten Schwellenwert 108 erfüllen, ein Schlüsselsatz zu sein. Beispielsweise kann das Client-Gerät 102 ein oder mehrere Netzwerkverbindungsgeräte, ein oder mehrere Standortgeräte 110 oder beides aktivieren, um es dem Client-Gerät 102 zu erlauben, mit dem Spracherkennungssystem 112 zu kommunizieren.
  • Wenn das Client-Gerät 102 die getaggten Textdaten von dem Spracherkennungssystem 112 empfängt, verlässt das Client-Gerät 102 den Schlafmodus. Beispielsweise aktiviert das Client-Gerät 102 weitere Funktionen des Client-Geräts 102, um eine Aktion zu bestimmen, die unter Verwendung des getaggten Textes ausgeführt werden soll, oder um eine Aktion auszuführen, die unter Verwendung des getaggten Textes bestimmt wurde, oder beides.
  • Das Spracherkennungssystem 112 ist ein Beispiel für ein System, das in Form von Computerprogrammen auf einem oder mehreren Computern an einem oder mehreren Standorten implementiert ist, in denen die in diesem Dokument beschriebenen Systeme, Komponenten und Techniken implementiert sind. Das Client-Gerät 102 kann einen Personal-Computer, ein mobiles Kommunikationsgerät oder ein anderes Gerät beinhalten, das Daten über ein Netzwerk 124 senden und empfangen kann. Das Netzwerk 124, wie beispielsweise ein lokales Netzwerk (LAN), ein Wide Area Network (WAN), das Internet oder eine Kombination daraus verbindet das Client-Gerät 102 und das Spracherkennungssystem 112. Das Spracherkennungssystem 112 kann einen einzelnen Server-Computer oder mehrere Server-Computer nutzen, die in Verbindung miteinander betrieben werden, einschließlich beispielsweise eines Satzes von Remote-Computern, die als Cloud-Computing-Service eingesetzt sind.
  • 2 ist ein Flussdiagramm eines Prozesses 200, um zu bestimmen, ob eine Aktion ausgeführt werden soll. Zum Beispiel kann der Prozess 200 durch das Client-Gerät 102 aus der Umgebung 100 verwendet werden.
  • Ein Client-Gerät empfängt ein Audiosignal, das eine oder mehrere Äußerungen, beinhaltend eine erste Äußerung (202), codiert. Das Client-Gerät kann jeden geeigneten Gerätetyp nutzen, um das Audiosignal zu erfassen. In einigen Beispielen kann das Client-Gerät das Audiosignal von einem anderen Gerät, z. B. einer Smartwatch, empfangen.
  • Das Client-Gerät bestimmt, ob zumindest ein Teil der ersten Äußerung einen ersten Schwellenwert, zumindest ein Teil eines Schlüsselsatzes (204) zu sein, erfüllt. Das Client-Gerät kann Daten für einen oder mehrere Schlüsselsätze beinhalten. Das Client-Gerät kann bestimmen, ob zumindest ein Teil der ersten Äußerung zumindest eine vorbestimmte Wahrscheinlichkeit hat, die durch den ersten Schwellenwert, ein Teil eines der Schlüsselsätze zu sein, definiert ist. Der Teil der ersten Äußerung kann ein oder mehrere n-Gramme von der ersten Äußerung oder einen anderen geeigneten Segmenttyp aus der ersten Äußerung beinhalten. In einigen Beispielen kann, wenn der Schlüsselsatz zwei oder mehr Wörter enthält, der Teil ein einzelnes Wort aus zwei oder mehr ersten Äußerungen beinhalten. In einigen Beispielen kann das Client-Gerät bestimmen, ob mehrere erste Äußerungen, z. B. eine oder mehrere erste Äußerungen, den ersten Schwellenwert erfüllen, einer der Schlüsselsätze zu sein.
  • Als Reaktion auf das Bestimmen, dass zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, sendet das Client-Gerät das Audiosignal an ein Serversystem, das bestimmt, ob die erste Äußerung einen zweiten Schwellenwert erfüllt, der Schlüsselsatz (206) zu sein. Der zweite Schwellenwert ist restriktiver als der erste Schwellenwert. Beispielsweise kann das Client-Gerät das Audiosignal oder einen Teil des Audiosignals an den Server, z. B. ein Spracherkennungssystem, senden, um den Server zu veranlassen, zu bestimmen, ob die erste Äußerung den zweiten Schwellenwert erfüllt, der Schlüsselsatz zu sein. Der Server analysiert immer alle ersten Äußerungen, um zu bestimmen, ob die ersten Äußerungen den zweiten Schwellenwert erfüllen, der gesamte Schlüsselsatz zu sein.
  • In einigen Implementierungen kann der Teil des Audiosignals, den das Client-Gerät an das Serversystem sendet, die ersten Äußerungen, die den ersten Schwellenwert erfüllen, und eine oder mehrere andere Äußerungen beinhalten. Beispielsweise kann das Client-Gerät weiter das Audiosignal empfangen, während die ersten Äußerungen analysiert werden, sodass der zusätzliche Teil des empfangenen Audiosignals die eine oder die mehreren anderen Äußerungen beinhaltet. Das Client-Gerät kann den Teil des Audiosignals, der die ersten Äußerungen und die weiteren Äußerungen beinhaltet, an den Server senden.
  • Das Client-Gerät bestimmt, ob Antwortdaten, die von dem Serversystem empfangen wurden, getaggte Textdaten beinhalten, die die eine oder die mehreren Äußerungen, die in dem Audiosignal (208) codiert sind, repräsentieren. Beispielsweise kann das Client-Gerät die Antwortdaten von dem Server als Reaktion auf das Senden des Audiosignals an den Server empfangen. Das Client-Gerät kann die Antwortdaten analysieren, um zu bestimmen, ob die Antwortdaten getaggte Textdaten enthalten.
  • Als Reaktion auf das Bestimmen, dass die Antwortdaten getaggte Textdaten beinhalten, die die eine oder die mehreren in dem Audiosignal codierten Äußerungen repräsentieren, führt das Client-Gerät eine Aktion unter Verwendung der getaggten Textdaten (210) durch. Beispielsweise nutzt das Client-Gerät die Tags in den Daten, um die auszuführende Aktion zu bestimmen. Die Tags können anzeigen, welcher Teil der getaggten Daten und welcher entsprechende Teil des Audiosignals zu den ersten Äußerungen für den Schlüsselsatz gehört. Die Tags können anzeigen, welcher Teil der getaggten Daten zu einer Aktion gehört, die für das Client-Gerät ausgeführt wird, z. B. „spiele etwas Musik.“
  • Als Reaktion auf das Bestimmen, dass zumindest ein Teil der ersten Äußerung den ersten Schwellenwert nicht erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, oder als Reaktion auf das Bestimmen, dass die Antwortdaten keine getaggten Textdaten beinhalten, bestimmt das Client-Gerät, keine Aktion unter Verwendung von Daten aus dem Audiosignal (212) auszuführen. Wenn beispielsweise keine der ersten Äußerungen den ersten Schwellenwert erfüllt, der Schlüsselsatz zu sein, führt das Client-Gerät keine Aktion unter Verwendung des Audiosignals aus. In einigen Beispielen, wenn das Client-Gerät eine Meldung von dem Server empfängt, die anzeigt, dass das Audiosignal den Schlüsselsatz nicht codiert hat, z. B. die Antwortdaten enthalten keine getaggten Textdaten, führt das Client-Gerät keine Aktion unter Verwendung des Audiosignals aus.
  • Als Reaktion auf das Bestimmen, dass zumindest ein Teil der ersten Äußerung den ersten Schwellenwert nicht erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, oder als Reaktion auf das Bestimmen, dass die Antwortdaten keine getaggten Textdaten beinhalten, verwirft das Client-Gerät das Audiosignal (214). Wenn beispielsweise keine der ersten Äußerungen den ersten Schwellenwert erfüllt, der Schlüsselsatz zu sein, kann das Client-Gerät das Audiosignal verwerfen. In einigen Beispielen kann, wenn das Client-Gerät eine Meldung von dem Server empfängt, die anzeigt, dass das Audiosignal den Schlüsselsatz nicht codiert hat, z. B. die Antwortdaten enthalten keine getaggten Textdaten, das Client-Gerät das Audiosignal verwerfen. In einigen Implementierungen kann das Client-Gerät das Audiosignal nach einer vorbestimmten Zeit verwerfen, wenn eine der folgenden Bedingungen eintritt.
  • Die Reihenfolge der Schritte in dem oben beschriebenen Prozess 200 dient nur der Veranschaulichung und das Bestimmen, ob eine Aktion ausgeführt wird, kann in unterschiedlichen Reihenfolgen ausgeführt werden. Beispielsweise kann das Client-Gerät das Audiosignal verwerfen und dann eine Aktion unter Verwendung von Daten aus dem Audiosignal nicht ausführen oder kann diese beiden Schritte gleichzeitig ausführen.
  • In einigen Implementierungen kann der Prozess 200 zusätzliche Schritte oder weniger Schritte beinhalten, oder einige der Schritte können in mehrere Schritte aufgeteilt werden. Beispielsweise kann das Client-Gerät das Audiosignal entweder verwerfen oder eine Aktion nicht unter Verwendung von Daten aus dem Audiosignal ausführen, statt beide Schritte auszuführen.
  • 3 ist ein Flussdiagramm eines Prozesses 300, um getaggte Textdaten für ein Audiosignal zu erzeugen. Zum Beispiel kann der Prozess 300 durch das Spracherkennungssystem 112 aus der Umgebung 100 verwendet werden.
  • Ein Spracherkennungssystem empfängt von einem Client-Gerät ein Audiosignal, das eine oder mehrere Äußerungen codiert, die eine oder mehrere erste Äußerungen beinhalten, für die das Client-Gerät bestimmt hat, dass zumindest ein Teil der ersten Äußerungen einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein (302). Das Spracherkennungssystem kann das Audiosignal von dem Client-Gerät über ein Netzwerk empfangen. Das Client-Gerät kann das Audiosignal an das Spracherkennungssystem als Teil eine Prozesses geschickt haben, der das Ausführen der Schritte 202 bis 206 beinhaltet, die oben unter Bezugnahme auf 2 beschrieben sind.
  • Dieses Spracherkennungssystem passt ein Sprachmodell für den Schlüsselsatz (304) individuell an. Beispielsweise kann das Spracherkennungssystem eine Wahrscheinlichkeit erhöhen, dass das Sprachmodell, das nicht spezifisch für einen bestimmten Schlüsselsatz ist, ein Auftreten des in dem Audiosignal codierten Schlüsselsatzes genau identifiziert. In einigen Beispielen kann das Spracherkennungssystem Gewichte für das für den Schlüsselsatz spezifische Sprachmodell anpassen.
  • In einigen Implementierungen kann das Spracherkennungssystem bestimmen, ob ein Standard-Schlüsselsatz verwendet werden soll. Beispielsweise kann das Spracherkennungssystem bestimmen, ob eine von dem Client-Gerät empfangene Meldung, die das Audiosignal enthält, auch Daten beinhaltet, die einen Schlüsselsatz identifizieren, z. B. Text für den Schlüsselsatz oder einen Identifikator, der verwendet werden kann, um einen Schlüsselsatz in einer Datenbank zu suchen. Das Spracherkennungssystem kann bestimmen, einen Standard-Schlüsselsatz zu nutzen, wenn die Meldung keine Daten enthält, die einen Schlüsselsatz identifizieren. Beispielsweise kann das Spracherkennungssystem bestimmen, dass das Client-Gerät oder ein entsprechendes Benutzerkonto keinen individuell angepassten Schlüsselsatz hat und kann einen Standard-Schlüsselsatz verwenden.
  • Das Spracherkennungssystem bestimmt, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, ein Schlüsselsatz zu sein, basierend auf einer Ausgabe aus dem Sprachmodell, einem Akustikmodell oder beidem (306). Beispielsweise stellt das Spracherkennungssystem das Audiosignal dem Sprachmodell, dem Akustikmodell oder beiden bereit. Das Spracherkennungssystem empfängt eine Punktzahl des Sprachmodells, des Akustikmodells oder beidem, dass beide eine Wahrscheinlichkeit anzeigen, dass die eine oder die mehreren ersten Äußerungen der Schlüsselsatz sind. Das Spracherkennungssystem kann die separaten Punktzahlen aus dem Sprachmodell und dem Akustikmodell kombinieren, um zu bestimmen, ob die kombinierte Punktzahl für das Audiosignal den zweiten Schwellenwert erfüllt, ein Schlüsselsatz zu sein.
  • Als Reaktion auf das Bestimmen, dass die erste Äußerung den zweiten Schwellenwert erfüllt, ein Schlüsselsatz zu sein, basierend auf einer Ausgabe aus dem Sprachmodell, dem Akustikmodell oder beidem, analysiert das Spracherkennungssystem das gesamte Audiosignal, um Daten für jede der einen oder der mehreren Äußerungen (308) zu bestimmen. Beispielsweise erzeugt ein Akustikmodell eine Ausgabe, die einen Textstring für die Wörter anzeigt, die in dem Audiosignal wahrscheinlich codiert werden. Ein getaggter Textgenerator kann Tags auf den Textstring anwenden, die ein oder mehrere Attribute von n-Grammen anzeigen, z. B. Wörter, die in dem Textstring enthalten sind. Beispielsweise kann der getaggte Textgenerator Tags auf den Textstring anwenden, die einen Schlüsselsatz, ein Aktionswort, z. B. „abspielen“ einer Anwendung, z. B. Musikwiedergabegerät, oder eine Kombination von zwei oder mehr davon, identifizieren.
  • Das Spracherkennungssystem sendet an das Client-Gerät getaggte Textdaten, die die eine oder die mehreren Äußerungen repräsentieren, die in dem Audiosignal codiert sind, das unter Verwendung der Daten für jede der einen oder der mehreren Äußerungen (310) erzeugt wurde. Das Spracherkennungssystem kann die getaggten Textdaten an das Client-Gerät senden, um das Client-Gerät zu veranlassen, eine Aktion unter Verwendung der getaggten Textdaten auszuführen.
  • Als Reaktion auf das Bestimmen, dass die erste Äußerung den zweiten Schwellenwert, ein Schlüsselsatz zu sein, nicht erfüllt, basierend auf einer Ausgabe aus dem Sprachmodell, dem Akustikmodell oder beidem, sendet das Spracherkennungssystem Daten an das Client-Gerät, die anzeigen, dass der Schlüsselsatz wahrscheinlich nicht in dem Audiosignal (312) codiert ist. Beispielsweise kann das Spracherkennungssystem das Client-Gerät mit einer Meldung bereitstellen, die anzeigt, dass das Client-Gerät keine Aktion unter Verwendung der Daten für das Audiosignal ausführen darf.
  • In einigen Implementierungen kann der Prozess 300 zusätzliche Schritte oder weniger Schritte beinhalten, oder einige der Schritte können in mehrere Schritte aufgeteilt sein. Beispielsweise kann das Spracherkennungssystem das Sprachmodell nicht individuell anpassen. In einigen Beispielen kann das Spracherkennungssystem bestimmen, ob die erste Äußerung den zweiten Schwellenwert, ein Schlüsselsatz zu sein, erfüllt, unter Verwendung von anderen Daten oder Systemen als dem Sprachmodell, dem Akustikmodell oder beidem.
  • Ausführungsformen des Gegenstands und die in dieser Spezifikation beschriebenen funktionalen Tätigkeiten können in digitalen elektronischen Schaltungen oder in einer konkret darin enthaltenen Computer-Software, Firmware in die Hardware implementiert werden, einschließlich der in dieser Spezifikation offenbarten Strukturen und deren strukturellen Entsprechungen oder in Kombinationen von einer oder mehreren derselben. Die in dieser Spezifikation beschriebenen Ausführungsformen des Gegenstandes können als ein oder mehrere Computerprogramme implementiert werden, d. h. als ein oder mehrere Module mit Computerprogrammanweisungen, die auf einem materiellen, nichtflüchtigen Programmträger codiert sind, um dann von einem Datenverarbeitungsgerät ausgeführt zu werden bzw. den Betrieb desselben zu steuern. Alternativ oder ergänzend dazu können die Programmanweisungen auf einem künstlich erzeugten sich ausbreitendem Signal, wie beispielsweise einem maschinenerzeugten elektrischen, optischen oder elektromagnetischen Signal, kodiert werden, welches erzeugt wird, um Informationen zur Übertragung an ein geeignetes Empfängergerät zu kodieren, welche dann von einem Datenverarbeitungsgerät ausgeführt werden. Bei dem Computer-Speichermedium kann es sich um ein maschinenlesbares Speichergerät, ein maschinenlesbares Speichersubstrat, einen frei adressierbaren oder seriellen Zugriffsspeicher oder eine Kombination aus einem oder mehreren derselben handeln.
  • Der Begriff „Datenverarbeitungsgerät“ bezieht sich auf Datenverarbeitungshardware und beinhaltet sämtliche Gerätearten, Apparate und Maschinen zur Verarbeitung von Daten, wie zum Beispiel einen programmierbaren Prozessor, einen Computer oder mehrere Prozessoren oder Computer. Bei dem Gerät kann es sich auch um eine zweckgebundene Logikschaltung, wie z. B. einen FPGA (integrierter Schaltkreis) oder einen ASIC (anwendungsspezifischen integrierten Schaltkreis) handeln bzw. kann dieselben enthalten. Das Gerät kann, zusätzlich zur Hardware, wahlweise Code beinhalten, der eine Ausführungsumgebung für Computerprogramme, wie z. B. Maschinencode in Prozessorfirmware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem oder eine Kombination aus einem oder mehreren derselben, bildet.
  • Ein Computerprogramm, auf das sich auch bezogen oder das auch als Programm, Software, Softwareanwendung, Modul, Softwaremodul, Script oder Code beschrieben wird, kann in einer beliebigen Programmiersprachenform geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder verfahrensorientierter Sprachen, und das Programm kann in jeder beliebigen Form eingesetzt werden, darunter als unabhängiges Programm oder als ein Modul, eine Komponente, eine Subroutine oder eine andere Einheit, die zur Benutzung in einer Rechenumgebung geeignet ist. Ein Computerprogramm kann, muss jedoch nicht einer Datei in einem Dateisystem entsprechen. Ein Programm kann in einem Teil einer Datei gespeichert sein, das andere Programme oder Daten enthält, wie z. B. eine oder mehrere Skripte, die in einem Auszeichnungssprachen-Dokument, in einer einzelnen dem betreffenden Programm gewidmeten Datei oder in mehreren koordinierten Dateien, wie beispielsweise Dateien, die ein oder mehrere Module, Teilprogramme oder Maschinencode-Abschnitte enthalten, gespeichert sein. Ein Computerprogramm kann auf einem Computer oder auf mehreren Computern bereitgestellt und ausgeführt werden, die sich an einem Standort oder an mehreren Standorten verteilt befinden und über ein Kommunikationsnetzwerk miteinander verbunden sind.
  • Die in dieser Spezifikation beschriebenen Prozesse und Logikabläufe können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Funktionen durch das Verarbeiten von Eingabedaten und das Erzeugen von Ausgaben auszuführen. Die Prozesse und Logikabläufe können zudem durch eine Spezial-Logikschaltung, wie z. B. einen FPGA (integrierten Schaltkreis) oder einen ASIC (anwendungsspezifischen integrierten Schaltkreis) ausgeführt und das Gerät in Form derselben implementiert werden.
  • Die für die Ausführung eines Computerprogramms geeigneten Computer können beispielsweise allgemeine oder spezielle Mikroprozessoren oder auch beides oder eine andere Art von Zentralverarbeitungseinheit beinhalten. In der Regel empfängt eine zentrale Verarbeitungseinheit Befehle und Daten von einem Festwertspeicher oder einem Direktzugriffsspeicher oder auch von beiden. Die wesentlichen Elemente eines Computers sind eine zentrale Recheneinheit zum Durchführen bzw. Ausführen von Befehlen und ein oder mehrere Speichergeräte zum Speichern von Befehlen und Daten. In der Regel beinhaltet ein Computer eine oder mehrere Massenspeichergeräte zum Speichern von Daten, wie z. B magnetische, magneto-optische oder optische Festplatten oder wird operativ gekoppelt, um Daten von denselben zu empfangen oder auf dieselben zu übertragen. Ein Computer muss jedoch nicht über diese Geräte verfügen. Des Weiteren kann ein Computer in einem anderen Gerät, unter anderem z. B. in einem Mobiltelefon, einem Smartphone, einem persönlichen digitalen Assistenten (PDA), einem mobilen Audio- oder Videoplayer, einer Spielekonsole, einem globalen Positionsbestimmungssystem (GPS) oder einem tragbaren Speichergerät, z. B. in einem USB-Stick, integriert sein.
  • Zu den computerlesbaren zum Speichern von Computerprogrammanweisungen und Daten geeigneten Medien gehören sämtliche Arten von Festspeichern, Medien und Speichergeräten, einschließlich Halbleiterspeicherelemente, z. B. EPROM, EEPROM und Flash-Speichergeräte, magnetische Festplatten, z. B. interne Festplatten oder Wechselplatten, magneto-optische Festplatten sowie CD-ROM- und DVD-ROM-Laufwerke. Der Prozessor und der Speicher können durch eine Spezial-Logikschaltung ergänzt oder in dieselbe integriert werden.
  • Um die Interaktion mit einem Nutzer zu ermöglichen, können in dieser Spezifikation beschriebene Ausführungsformen des Gegenstandes auf einem Computer mit einem Anzeigegerät, wie z. B. einem LCD-(Flüssigkristallanzeigen)-Monitor, einem OLED(organische Leuchtdiode)-Monitor oder einem anderen Monitor, welcher dem Nutzer Informationen anzeigt, sowie einer Tastatur und einem Zeigegerät, z. B. einer Maus oder einem Trackball, mit denen der Nutzer Eingaben an den Computer vornehmen kann, implementiert werden. Darüber hinaus können andere Geräte verwendet werden, um die Interaktion mit einem Nutzer zu ermöglichen; zum Beispiel kann es sich bei der Rückmeldung an den Nutzer um jegliche Arten sensorischer Rückmeldungen, wie z. B. visuelle, akustische oder taktile Rückmeldungen, handeln; ebenso können die Eingaben des Nutzers in beliebiger Form, d. h. unter anderem auch akustisch, sprachlich oder taktil, empfangen werden. Darüber hinaus kann ein Computer mit einem Nutzer interagieren, indem er Dokumente an ein vom Nutzer verwendetes Gerät sendet und Dokumente von demselben Gerät empfängt; z. B. Webseiten auf einem Client-Gerät des Nutzers, als Reaktion auf vom Webbrowser empfangene Anfragen an einen Webbrowser, sendet.
  • Die in dieser Spezifikation beschriebenen Ausführungsformen des Gegenstandes können in einem Computersystem implementiert werden, das eine Backend-Komponente, wie z. B. einen Datenserver, oder eine Middleware-Komponente, wie z. B. einen Anwendungsserver oder eine Frontend-Komponente, wie z. B. einen Client-Computer mit einer grafischen Benutzeroberfläche oder eine beliebige Kombination einer oder mehrerer der besagten Backend-, Middleware- oder Frontend-Komponenten oder einen Web-Browser beinhaltet, durch den ein Nutzer mit einer in dieser Spezifikation beschriebenen Implementierung des Gegenstandes interagieren kann. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk (LAN) und ein Großraumnetzwerk (WAN), wie z. B. das Internet.
  • Das Computersystem kann Clients und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern ausgeführt werden und eine Client-Server-Beziehung zueinander aufweisen. In einigen Ausführungsformen überträgt ein Server Daten, z. B. eine HyperText Markup Language(HTML)-Seite an ein Nutzergerät, z. B. zum Zwecke der Anzeige von Daten und Empfangen von Nutzereingaben von einem Nutzer, der mit dem Nutzergerät interagiert, das als Client agiert. Daten, die am Nutzergerät erzeugt werden, z. B. ein Ergebnis der Nutzerinteraktion, können vom Nutzergerät auf dem Server empfangen werden.
  • 4 zeigt ein Blockdiagramm von Computergeräten 400, 450, die zum Implementieren der in diesem Dokument beschriebenen Systeme und Verfahren, entweder als Client oder Server oder als Vielzahl von Servern, verwendet werden können. Computergerät 400 soll verschiedene Formen von Digitalcomputern, zum Beispiel Laptops, Desktops, Workstations, persönliche digitale Assistenten, Server, Blade-Server, Mainframes und andere geeignete Computer, darstellen. Das Computergerät 450 soll verschiedene Formen mobiler Geräte, wie persönliche digitale Assistenten, Mobiltelefone, Smartphones, Smartwatches, auf dem Kopf getragene Geräte und andere ähnliche Computergeräte darstellen. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen, sowie ihre Funktionen sind im rein beispielhaften Sinne zu erachten und stellen keine Einschränkung der in diesem Dokument beschriebenen und/oder beanspruchten Implementierungen dar.
  • Das Computergerät 400 beinhaltet einen Prozessor 402, einen Speicher 404, ein Speichergerät 406, eine Hochgeschwindigkeitsschnittstelle 408, die sich mit Speicher 404 und Hochgeschwindigkeits-Erweiterungsanschlüssen 410 verbindet, und eine Niedergeschwindigkeitsschnittstelle 412, die sich mit dem Niedergeschwindigkeitsbus 414 und dem Speichergerät 406 verbindet. Alle Komponenten 402, 404, 406, 408, 410 und 412 sind über verschiedene Busse miteinander verbunden und können auf einer gemeinsamen Hauptplatine oder auf andere angemessene Weisen installiert sein. Der Prozessor 402 kann Ausführungsanweisungen innerhalb des Computergeräts 400 verarbeiten, einschließlich Anweisungen, die im Speicher 404 oder im Speichergerät 406 gespeichert sind, um die grafischen Informationen für ein GUI auf einem externen Eingabe-/Ausgabegerät, z. B. auf dem mit der Hochgeschwindigkeitsschnittstelle 408 verbundenen Bildschirm 416, anzuzeigen. In anderen Implementierungen können gegebenenfalls mehrere Prozessoren und/oder mehrere Busse zusammen mit mehreren Speichern und Speicherarten verwendet sein. Außerdem können mehrere Computergeräte 400 verbunden sein, wobei jedes Gerät Teile der erforderlichen Operationen (z. B. als Serverbank, Gruppe von Blade-Servern oder ein Multiprozessorsystem) bereitstellt.
  • Der Speicher 404 speichert Informationen innerhalb des Computergeräts 400. In einer Implementierung ist der Speicher 404 ein computerlesbares Medium. In einer Implementierung handelt es sich bei dem Speicher 404 um eine nichtflüchtige Speichereinheit oder -einheiten. In einer weiteren Implementierung handelt es sich bei Speicher 404 um eine nichtflüchtige Speichereinheit bzw. -einheiten.
  • Das Speichergerät 406 ist in der Lage, Massenspeicher für die Computergeräte 400 bereitzustellen. In einer Implementierung ist das Speichergerät 406 ein computerlesbares Medium. In verschiedenen Implementierungen kann das Speichergerät 406 ein Diskettenlaufwerk, eine Festplatte, ein optisches Laufwerk oder ein Bandlaufwerk, ein Flash-Speicher oder ein anderes ähnliches Halbleiterspeichergerät oder ein Array von Geräten, einschließlich Geräten in einem Speichernetzwerk oder anderen Konfigurationen, sein. In einer Implementierung ist ein Computerprogrammprodukt in einem Informationsträger physisch enthalten. Das Computerprogrammprodukt beinhaltet Befehle, bei deren Ausführung ein oder mehrere Verfahren wie die vorstehend beschriebenen durchgeführt werden. Der Informationsträger ist ein computer- oder maschinenlesbarer Datenträger, wie der Speicher 404, das Speichergerät 406 oder der Speicher des Prozessors 402.
  • Der Hochgeschwindigkeitscontroller 408 verwaltet bandbreitenintensive Operationen für das Computergerät 400, während der Niedergeschwindigkeitscontroller 412 weniger bandbreitenintensive Operationen verwaltet. Diese Zuweisung von Funktionen ist lediglich exemplarisch. In einer Implementierung ist der Hochgeschwindigkeitscontroller 408 mit Speicher 404, Anzeige 416 (z. B. über einen Grafikprozessor oder -beschleuniger) und mit den Hochgeschwindigkeitserweiterungsanschlüssen 410, die verschiedene Erweiterungskarten (nicht dargestellt) aufnehmen können, verbunden. In der Implementierung ist der Niedergeschwindigkeitscontroller 412 mit dem Speichergerät 406 und dem Niedergeschwindigkeits-Erweiterungsanschluss 414 verbunden. Der Niedergeschwindigkeitserweiterungsanschluss, der ggf. verschiedene Kommunikationsanschlüsse (z. B. USB, Bluetooth, Ethernet, Funkethernet) beinhaltet, kann an ein oder mehrere Eingabe-/Ausgabegeräte, wie z. B. eine Tastatur, ein Zeigegerät, einen Scanner oder ein Netzwerkgerät wie einen Switch oder Router, z. B. durch einen Netzwerkadapter gekoppelt sein.
  • Das Computergerät 400 kann, wie in der Abbildung dargestellt, in einer Reihe unterschiedlicher Formen implementiert sein. Es kann beispielsweise als Standardserver 420 oder in einer Gruppe jener Server mehrfach implementiert sein. Es kann außerdem als Teil eines Rackserversystems 424 implementiert sein. Zusätzlich kann es in einem Personal-Computer, wie z. B. einem Laptop 422, implementiert sein. Alternativ können Komponenten von Computergerät 400 mit anderen Komponenten in einem Mobilgerät (nicht dargestellt), wie z. B. Gerät 450, kombiniert sein. Jedes dieser Geräte kann ein oder mehrere Computergerät(e) 400, 450, enthalten, während sich ein gesamtes System aus mehreren miteinander kommunizierenden Computergeräten 400, 450 zusammensetzen kann.
  • Das Computergerät 450 beinhaltet neben anderen Komponenten einen Prozessor 452, einen Speicher 464 und ein Ein-/Ausgabegerät, wie z. B. einen Bildschirm 454, eine Kommunikationsschnittstelle 466 und einen Transceiver 468. Das Gerät 450 kann ebenfalls mit einem Speichergerät, wie z. B. einem Microdrive, oder einem anderen Gerät ausgestattet sein, um zusätzlichen Speicher bereitzustellen. Alle Komponenten 450, 452, 464, 454, 466 und 468 sind miteinander über verschiedene Busse verbunden und verschiedene der Komponenten können auf einer gemeinsamen Hauptplatine oder auf eine andere angemessene Weise montiert sein.
  • Der Prozessor 452 kann Anweisungen für die Ausführung in dem Computergerät 450 verarbeiten, einschließlich Anweisungen, die im Speicher 464 gespeichert sind. Der Prozessor kann auch separate analoge und digitale Prozessoren beinhalten. Der Prozessor kann zum Beispiel die Koordinierung der anderen Komponenten des Geräts 450, wie z. B. die Steuerung der Benutzeroberflächen, die vom Gerät 450 ausgeführten Anwendungen und die drahtlose Kommunikation des Geräts 450, ermöglichen.
  • Der Prozessor 452 kann über die Steuerschnittstelle 458 und die Anzeigeschnittstelle 456, verbunden mit einer Anzeige 454, mit einem Nutzer kommunizieren. Die Anzeige 454 kann zum Beispiel ein TFT-LCD-Display oder eine OLED-Anzeige oder eine andere geeignete Anzeigetechnologie sein. Die Anzeigeschnittstelle 456 kann geeignete Schaltungen zum Ansteuern der Anzeige 454 umfassen, um einem Nutzer grafische und andere Informationen zu präsentieren. Die Steuerschnittstelle 458 kann Befehle von einem Nutzer empfangen und sie zur Eingabe in den Prozessor 452 konvertieren. Zusätzlich kann eine externe Schnittstelle 462 in Kommunikation mit Prozessor 452 bereitgestellt werden, um die Nahbereichskommunikation von Gerät 450 mit anderen Geräten zu ermöglichen. Externe Schnittstelle 462 kann beispielsweise drahtgebundene Kommunikation (z. B. über ein Docking-Verfahren) oder drahtlose Kommunikation (z. B. über Bluetooth oder andere Technologien) bereitstellen.
  • Der Speicher 464 speichert Informationen innerhalb des Computergeräts 450. In einer Implementierung ist der Speicher 464 ein computerlesbares Medium. In einer Implementierung handelt es sich bei dem Speicher 464 um eine flüchtige Speichereinheit oder -einheiten. In einer anderen Implementierung handelt es sich bei dem Speicher 464 um eine nichtflüchtige Speichereinheit oder -einheiten. Der Erweiterungsspeicher 474 kann ebenfalls durch die Erweiterungsschnittstelle 472, zu der beispielsweise eine SIMM-Schnittstelle gehören kann, mit Gerät 450 bereitgestellt und verbunden werden. Die Speichererweiterung 474 kann zusätzlichen Speicherplatz für das Gerät 450 bereitstellen oder ebenfalls Anwendungen oder andere Informationen für das Gerät 450 speichern. Insbesondere kann Erweiterungsspeicher 474 Anweisungen zum Ausführen oder Ergänzen der oben beschriebenen Prozesse sowie sichere Informationen beinhalten. Daher kann der Erweiterungsspeicher 474 beispielsweise als ein Sicherheitsmodul für Gerät 450 bereitgestellt und mit Anweisungen programmiert werden, die eine sichere Benutzung von Gerät 450 erlauben. Zusätzlich dazu können über die SIMM-Karten sichere Anwendungen zusammen mit zusätzlichen Informationen, wie dem Ablegen von Identifizierungsinformationen auf der SIMM-Karte auf eine Weise, die nicht gehackt werden kann, bereitgestellt werden.
  • Der Speicher kann, wie nachfolgend beschrieben, zum Beispiel Flashspeicher und/oder MRAM-Speicher beinhalten. In einer Implementierung ist ein Computerprogramm-Produkt in einem Informationsträger physisch enthalten. Das Computerprogramm-Produkt beinhaltet Befehle, bei deren Ausführung ein oder mehrere Verfahren wie die vorstehend beschriebenen durchgeführt werden. Der Informationsträger ist ein computer- oder maschinenlesbares Speichermedium, wie z. B. Speicher 464, Erweiterungsspeicher 474 oder der Speicher auf Prozessor 452.
  • Das Gerät 450 kann über die Kommunikationsschnittstelle 466 drahtlos kommunizieren, die bei Bedarf eine digitale Signalverarbeitungsschaltung beinhalten kann. Die Kommunikationsschnittstelle 466 kann Verbindungen mit verschiedenen Kommunikationsmodi oder -protokollen aufbauen, wie z. B. GSM-Sprachanrufe, SMS, EMS, oder MMS-Messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000 oder GPRS. Diese Kommunikation kann beispielsweise durch Funkfrequenz-Sendeempfänger 468 erfolgen. Zusätzlich kann eine Kurzstreckenkommunikation, wie z. B. unter Verwendung eines Bluetooth-, WLAN- oder eines anderen solchen Sendeempfängers (nicht dargestellt) erfolgen. Zusätzlich kann das GPS-Empfängermodul 470 zusätzliche drahtlose Daten an Gerät 450 bereitstellen, die von Anwendungen auf dem Gerät 450 entsprechend verwendet werden können.
  • Gerät 450 kann zudem unter Verwendung des Audiocodec 460, der gesprochene Informationen von einem Nutzer empfangen und diese in nutzbare digitale Informationen konvertieren kann, hörbar kommunizieren. Der Audiocodec 460 kann ebenfalls hörbaren Ton für einen Nutzer erzeugen, wie beispielsweise durch einen Lautsprecher zum Beispiel in einem Mobilteil von Gerät 450. Dieser Ton kann einen Ton von Sprachanrufen, aufgenommene Töne (z. B. Sprachnachrichten, Musikdateien usw.) und auch Töne beinhalten, die von Anwendungen erzeugt werden, die auf Gerät 450 ausgeführt werden.
  • Computergerät 450 kann, wie in der Abbildung dargestellt, in einer Reihe unterschiedlicher Formen implementiert sein. Es kann beispielsweise als Mobiltelefon 480 implementiert sein. Es kann außerdem als Teil eines Smartphones 482, persönlichen digitalen Assistenten oder eines anderen ähnlichen mobilen Geräts implementiert sein.
  • Verschiedene Implementierungen der hier beschriebenen Systeme und Techniken können in digitalen elektronischen Schaltungen, integrierten Schaltungen, speziell konzipierten ASICs (anwendungsorientierten integrierten Schaltungen), Computerhardware, Firmware, Software und/oder Kombinationen derselben realisiert sein. Diese verschiedenen Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, bei dem es sich um einen Spezial- oder Universalprozessor handeln kann, und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Befehlen an ein Speichersystem, mindestens ein Eingabegerät und mindestens ein Ausgabegerät gekoppelt ist.
  • Diese Computerprogramme (auch bekannt als Programme, Software, Softwareanwendungen oder Code) beinhalten Maschinenbefehle für einen programmierbaren Prozessor und können in einer höheren prozeduralen und/oder objektorientierten Programmiersprache und/oder in Assembler-/Maschinensprache implementiert sein. Wie hierin verwendet, bezeichnen die Begriffe „maschinenlesbares Medium“, „computerlesbares Medium“ ein beliebiges Computerprogramm-Produkt, eine beliebige Vorrichtung und/oder ein beliebiges Gerät (z. B. magnetische Platten, optische Platten, Speicher, programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor, darunter auch einem maschinenlesbaren Medium, das Maschinenbefehle als maschinenlesbares Signal empfängt, Maschinenbefehle und/oder Daten bereitzustellen. Der Begriff „maschinenlesbares Signal“ bezeichnet ein beliebiges Signal, das verwendet wird, um einem programmierbaren Prozessor Maschinenbefehle und/oder Daten bereitzustellen.
  • Um eine Interaktion mit einem Nutzer zu ermöglichen, können die hierin beschriebenen Systeme und Techniken auf einem Computer implementiert werden, der ein Anzeigegerät (wie z. B. einen CRT-(Kathodenstrahlröhren) oder LCD-(Flüssigkristallanzeige)-Monitor) aufweist, um dem Nutzer Informationen anzuzeigen, sowie eine Tastatur und eine Zeigegerät (z. B. eine Maus oder einen Trackball) aufweist, mittels derer der Benutzer eine Eingabe an den Computer vornehmen kann. Es können auch andere Arten von Einrichtungen verwendet werden, um für eine Interaktion mit einem Benutzer zu sorgen; beispielsweise kann eine an den Benutzer bereitgestellte Rückkopplung eine beliebige Form sensorischer Rückkopplung sein, wie z. B. eine visuelle Rückkopplung, auditive Rückkopplung oder taktile Rückkopplung; und die Eingabe vom Nutzer kann in beliebiger Form empfangen werden, einschließlich akustischer, Sprach- oder taktiler Eingabe.
  • Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert werden, das eine Backendkomponente (z. B. als einen Datenserver) umfasst, oder das eine Middlewarekomponente (z. B. einen Applikationsserver) umfasst, oder das eine Frontendkomponente (z. B. einen Clientcomputer mit einer grafischen Benutzerschnittstelle oder einem Webbrowser umfasst, durch die bzw. den ein Nutzer mit einer hier beschriebenen Implementierung von Systemen und Techniken interagieren kann) oder jeder Kombination aus solchen Backend-, Middleware- oder Frontendkomponenten. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation (wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein). Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN“), ein Großraumnetzwerk („WAN“) und das Internet.
  • Das Computersystem kann Clients und Server beinhalten. Ein Client und ein Server befinden sich im Allgemeinen entfernt voneinander und interagieren typischerweise über ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computern ausgeführt werden und eine Client-Server-Beziehung zueinander aufweisen.
  • Obwohl diese Beschreibung viele spezifische Implementierungsdetails beinhaltet, sollten diese nicht als Einschränkungen des Umfangs ausgelegt werden, was beansprucht werden kann, sondern vielmehr als Beschreibungen von Merkmalen, die für bestimmte Ausführungsformen spezifisch sein können. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können auch in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Merkmale vorstehend ggf. als in bestimmten Kombinationen wirkend beschrieben und zunächst auch als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination herausgenommen und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
  • Gleichermaßen soll dies, obwohl die Abläufe in den Zeichnungen in einer bestimmten Reihenfolge dargestellt sind, nicht so verstanden werden, dass die besagten Abläufe in der dargestellten Reihenfolge oder in fortlaufender Reihenfolge durchgeführt werden müssen bzw. alle dargestellten Abläufe durchgeführt werden müssen, um die erwünschten Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den vorstehend beschriebenen Ausführungsformen nicht als in allen Ausführungsformen erforderlich aufgefasst werden, und es versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in mehrere Softwareprodukte aufgeteilt werden können.
  • Weitere Implementierungen werden in den folgenden Beispielen zusammengefasst:
    Beispiel 1: Ein nichtflüchtiges Computer-Speichermedium, das mit Anweisungen codiert ist, die, wenn sie durch einen Computer ausgeführt werden, den Computer veranlassen, Vorgänge auszuführen, umfassend:
    Empfangen eines Audiosignals, das eine oder mehrere Äußerungen codiert, die eine erste Äußerung beinhalten;
    Bestimmen, ob zumindest ein Teil der ersten Äußerung einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein;
    als Reaktion auf Bestimmen, dass zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, Senden des Audiosignals an ein Serversystem, das bestimmt, ob die erste Äußerung einen zweiten Schwellenwert erfüllt, der Schlüsselsatz zu sein, wobei der zweite Schwellenwert restriktiver als der erste Schwellenwert ist; und
    Empfangen, von dem Serversystem, getaggter Textdaten, die die eine oder die mehreren Äußerungen repräsentieren, die in dem Audiosignal codiert sind, wenn das Serversystem bestimmt, dass die erste Äußerung den zweiten Schwellenwert erfüllt.
  • Beispiel 2: Das Computer-Speichermedium von Beispiel 1, wobei die Vorgänge das Ausführen einer Aktion unter Verwendung der getaggten Textdaten nach Empfangen, von dem Serversystem, der getaggten Textdaten umfassen, die die eine oder die mehreren Äußerungen repräsentieren, die im Audiosignal codiert sind, wenn das Serversystem bestimmt, dass die erste Äußerung den zweiten Schwellenwert erfüllt.
  • Beispiel 3: Das Computer-Speichermedium von Beispiel 1 oder 2, wobei:
    die eine oder die mehreren Äußerungen zwei oder mehr Äußerungen umfassen, wobei die erste Äußerung vor den anderen Äußerungen von den zwei oder mehr Äußerungen in dem Audiosignal codiert ist; und
    Ausführen der Aktion unter Verwendung der getaggten Textdaten Ausführen einer Aktion unter Verwendung der getaggten Textdaten für die eine oder die mehreren Äußerungen umfasst, die in dem Audiosignal nach der ersten Äußerung codiert sind.
  • Beispiel 4: Das Computer-Speichermedium von einem der Beispiele 1 bis 3, wobei Bestimmen, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, das Bestimmen umfasst, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, der zwei oder mehr Wörter beinhaltet.
  • Beispiel 5: Das Computer-Speichermedium von einem der Beispiele 1 bis 4, die Vorgänge umfassend:
    Empfangen eines zweiten Audiosignals, das zwei oder mehr zweite Äußerungen codiert, die eine zweite Äußerung beinhalten;
    Bestimmen, ob zumindest ein Teil der zweiten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein; und
    als Reaktion auf Bestimmen, dass zumindest der Teil der zweiten Äußerung den ersten Schwellenwert nicht erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, Verwerfen des zweiten Audiosignals.
  • Beispiel 6: Das Computer-Speichermedium von Beispiel 5, wobei die Vorgänge das Bestimmen, eine Aktion nicht unter Verwendung von Daten aus dem zweiten Audiosignal auszuführen, als Reaktion auf das Bestimmen umfassen, dass zumindest ein Teil der zweiten Äußerung den ersten Schwellenwert nicht erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein.
  • Beispiel 7: Das Computer-Speichermedium von einem der Beispiele 1 bis 6, wobei das Bestimmen, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, das Bestimmen umfasst, ob zumindest ein Teil der ersten Äußerung eine erste Wahrscheinlichkeit erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein.
  • Beispiel 8: Ein System, das einen oder mehrere Computer und ein oder mehrere Speichergeräte umfasst, auf denen Anweisungen gespeichert sind, die betriebsbereit sind, wenn sie durch den einen oder die mehreren Computer ausgeführt werden, um den einen oder die mehreren Computer zu veranlassen, Vorgänge auszuführen, umfassend:
    Empfangen, von einem Client-Gerät, eines Audiosignals, das eine oder mehrere Äußerungen codiert, die eine oder mehrere erste Äußerungen beinhalten, für die das Client-Gerät bestimmt hat, dass zumindest ein Teil der einen oder mehreren ersten Äußerungen einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein;
    Bestimmen, ob die eine oder die mehreren ersten Äußerungen einen zweiten Schwellenwert erfüllen, zumindest ein Teil des Schlüsselsatzes zu sein, wobei der zweite Schwellenwert restriktiver als der erste Schwellenwert ist; und
    Senden, an das Client-Gerät, eines Ergebnisses der Bestimmung, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • Beispiel 9: Das System von Beispiel 8, wobei das Senden, an das Client-Gerät, des Ergebnisses der Bestimmung, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, von Daten, die anzeigen, dass der Schlüsselsatz wahrscheinlich nicht in dem Audiosignal beinhaltet ist, als Reaktion auf das Bestimmen umfasst, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert nicht erfüllen, der Schlüsselsatz zu sein.
  • Beispiel 10: Das System von Beispiel 8 oder 9, wobei das Senden, an das Client-Gerät, des Ergebnisses der Bestimmung, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, von Daten für das Audiosignal als Reaktion auf das Bestimmen umfasst, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • Beispiel 11: Das System von einem der Beispiele 8 bis 10, wobei das Senden, an das Client-Gerät, von Daten für das Audiosignal als Reaktion auf das Bestimmen, dass die erste oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, von getaggten Textdaten umfasst, die die eine oder die mehreren Äußerungen, die im Audiosignal codiert sind, repräsentieren.
  • Beispiel 12: Das System von einem der Beispiele 8 bis 11, wobei die Vorgänge umfassen, das gesamte Audiosignal zu analysieren, um erste Daten für jede der einen oder der mehreren Äußerungen zu bestimmen, wobei das Senden, an das Client-Gerät, der Daten für das Audiosignal als Reaktion auf das Bestimmen, dass die erste oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, der ersten Daten für das Audiosignal als Reaktion auf das Bestimmen umfasst, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • Beispiel 13: Das System von einem der Beispiele 8 bis 12, wobei Bestimmen, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Bestimmen umfasst, unter Verwendung eines Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • Beispiel 14: Das System von einem der Beispiele 8 bis 13, wobei die Vorgänge umfassen, das Sprachmodell für den Schlüsselsatz vor dem Bestimmen anzupassen, unter Verwendung des Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • Beispiel 15: Das System von einem der Beispiele 8 bis 14, wobei die Vorgänge das Empfangen von Text umfasst, der den Schlüsselsatz identifiziert, wobei das individuelle Anpassen des Sprachmodells für den Schlüsselsatz das individuelle Anpassen des Sprachmodells für den Schlüsselsatz unter Verwendung des Textes, der den Schlüsselsatz identifiziert, umfasst.
  • Beispiel 16: Das System von einem der Beispiele 8 bis 15, die Vorgänge umfassend:
    Empfangen eines Identifikators; und
    Bestimmen, unter Verwendung des Identifikators, von Schlüsselsatz-Daten für den Schlüsselsatz, wobei das individuelle Anpassen des Sprachmodells für den Schlüsselsatz das individuelle Anpassen des Sprachmodells für den Schlüsselsatz unter Verwendung der Schlüsselsatz-Daten umfasst.
  • Beispiel 17: Das System von einem der Beispiele 8 bis 16, wobei das Bestimmen, unter Verwendung des Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Bestimmen umfasst, unter Verwendung des Sprachmodells und eines Akustikmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • Beispiel 18: Das System von einem der Beispiele 8 bis 17, wobei das Bestimmen, unter Verwendung des Sprachmodells und des Akustikmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, umfasst:
    Bereitstellen von Daten für die eine oder die mehreren ersten Äußerungen an das Sprachmodell, um das Sprachmodell zu veranlassen, eine erste Ausgabe zu erzeugen;
    Bereitstellen von Daten für die eine oder die mehreren ersten Äußerungen an das Akustikmodell, um das Akustikmodell zu veranlassen, eine zweite Ausgabe zu erzeugen;
    Kombinieren der ersten Ausgabe und der zweiten Ausgabe, um eine kombinierte Ausgabe zu erzeugen; und
    Bestimmen, unter Verwendung der kombinierten Ausgabe, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  • Beispiel 19: Das System von einem der Beispiele 8 bis 18, wobei die Vorgänge das Auswählen des Sprachmodells für einen Standard-Schlüsselsatz umfassen.
  • Beispiel 20: Das System von einem der Beispiele 8 bis 19, wobei die Vorgänge das Bestimmen umfassen, ob der Standard-Schlüsselsatz verwendet werden soll.
  • Beispiel 21: Ein computerimplementiertes Verfahren umfassend:
    Empfangen eines Audiosignals, das eine oder mehrere Äußerungen codiert, die eine erste Äußerung beinhalten;
    Bestimmen, ob zumindest ein Teil der ersten Äußerung einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein;
    als Reaktion auf Bestimmen, dass zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, Senden des Audiosignals an ein Serversystem, das bestimmt, ob die erste Äußerung einen zweiten Schwellenwert erfüllt, der Schlüsselsatz zu sein, wobei der zweite Schwellenwert restriktiver als der erste Schwellenwert ist; und
    Empfangen, von dem Serversystem, getaggter Textdaten, die die eine oder die mehreren Äußerungen repräsentieren, die in dem Audiosignal codiert sind, wenn das Serversystem bestimmt, dass die erste Äußerung den zweiten Schwellenwert erfüllt.
  • Es wurden bestimmte Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen liegen innerhalb des Umfangs der folgenden Ansprüche. Die in den Ansprüchen ausgeführten Handlungen können beispielsweise in einer anderen Reihenfolge ausgeführt werden und dennoch wünschenswerte Ergebnisse erzielen. Die in den beigefügten Abbildungen dargestellten Verfahren erfordern beispielsweise nicht notwendigerweise die dargestellte Reihenfolge oder sequenzielle Reihenfolge, um erwünschte Ergebnisse zu erzielen. In manchen Fällen können Multitasking und Parallelverarbeitung von Vorteil sein.

Claims (20)

  1. Nichtflüchtiges Computer-Speichermedium, das mit Anweisungen codiert ist, die, wenn sie durch einen Computer ausgeführt werden, den Computer veranlassen, Vorgänge auszuführen, umfassend: Empfangen eines Audiosignals, das eine oder mehrere Äußerungen codiert, die eine erste Äußerung beinhalten; Bestimmen, ob zumindest ein Teil der ersten Äußerung einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein; als Reaktion auf Bestimmen, dass zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein, Senden des Audiosignals an ein Serversystem, das bestimmt, ob die erste Äußerung einen zweiten Schwellenwert erfüllt, der Schlüsselsatz zu sein, wobei der zweite Schwellenwert restriktiver als der erste Schwellenwert ist; und Empfangen, von dem Serversystem, getaggter Textdaten, die die eine oder die mehreren Äußerungen repräsentieren, die in dem Audiosignal codiert sind, wenn das Serversystem bestimmt, dass die erste Äußerung den zweiten Schwellenwert erfüllt.
  2. Computer-Speichermedium nach Anspruch 1, wobei die Vorgänge das Ausführen einer Aktion unter Verwendung der getaggten Textdaten nach Empfangen, von dem Serversystem, der getaggten Textdaten umfassen, die die eine oder die mehreren Äußerungen repräsentieren, die im Audiosignal codiert sind, wenn das Serversystem bestimmt, dass die erste Äußerung den zweiten Schwellenwert erfüllt.
  3. Computer-Speichermedium nach Anspruch 1 oder 2, wobei: die eine oder die mehreren Äußerungen zwei oder mehr Äußerungen umfassen, wobei die erste Äußerung vor den anderen Äußerungen von den zwei oder mehr Äußerungen in dem Audiosignal codiert ist; und Ausführen der Aktion unter Verwendung der getaggten Textdaten Ausführen einer Aktion unter Verwendung der getaggten Textdaten für die eine oder die mehreren Äußerungen umfasst, die in dem Audiosignal nach der ersten Äußerung codiert sind.
  4. Computer-Speichermedium nach einem der Ansprüche 1 bis 3, wobei Bestimmen, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, das Bestimmen umfasst, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, der zwei oder mehr Wörter einschließt.
  5. Computer-Speichermedium nach einem der Ansprüche 1 bis 4, die Vorgänge umfassend: Empfangen eines zweiten Audiosignals, das zwei oder mehr zweite Äußerungen codiert, die eine zweite Äußerung beinhalten; Bestimmen, ob zumindest ein Teil der zweiten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein; und als Reaktion auf Bestimmen, dass zumindest der Teil der zweiten Äußerung den ersten Schwellenwert nicht erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, Verwerfen des zweiten Audiosignals.
  6. Computer-Speichermedium nach Anspruch 5, wobei die Vorgänge das Bestimmen, eine Aktion nicht unter Verwendung von Daten aus dem zweiten Audiosignal auszuführen, als Reaktion auf das Bestimmen umfassen, dass zumindest ein Teil der zweiten Äußerung den ersten Schwellenwert nicht erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein.
  7. Computer-Speichermedium nach einem der Ansprüche 1 bis 6, wobei das Bestimmen, ob zumindest ein Teil der ersten Äußerung den ersten Schwellenwert erfüllt, zumindest ein Teil des Schlüsselsatzes zu sein, das Bestimmen umfasst, ob zumindest ein Teil der ersten Äußerung eine erste Wahrscheinlichkeit erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein.
  8. System, das einen oder mehrere Computer und ein oder mehrere Speichergeräte umfasst, auf denen Anweisungen gespeichert sind, die betriebsbereit sind, wenn sie durch den einen oder die mehreren Computer ausgeführt werden, um den einen oder die mehreren Computer zu veranlassen, Vorgänge auszuführen, umfassend: Empfangen, von einem Client-Gerät, eines Audiosignals, das eine oder mehrere Äußerungen codiert, die eine oder mehrere erste Äußerungen beinhalten, für die das Client-Gerät bestimmt hat, dass zumindest ein Teil der einen oder mehreren ersten Äußerungen einen ersten Schwellenwert erfüllt, zumindest ein Teil eines Schlüsselsatzes zu sein; Bestimmen, ob die eine oder die mehreren ersten Äußerungen einen zweiten Schwellenwert erfüllen, zumindest ein Teil des Schlüsselsatzes zu sein, wobei der zweite Schwellenwert restriktiver als der erste Schwellenwert ist; und Senden, an das Client-Gerät, eines Ergebnisses der Bestimmung, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  9. System nach Anspruch 8, wobei das Senden, an das Client-Gerät, des Ergebnisses der Bestimmung, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, von Daten, die anzeigen, dass der Schlüsselsatz wahrscheinlich nicht in dem Audiosignal beinhaltet ist, als Reaktion auf das Bestimmen umfasst, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert nicht erfüllen, der Schlüsselsatz zu sein.
  10. System nach Anspruch 8 oder 9, wobei das Senden, an das Client-Gerät, des Ergebnisses der Bestimmung, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, von Daten für das Audiosignal als Reaktion auf das Bestimmen umfasst, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  11. System nach Anspruch 10, wobei das Senden, an das Client-Gerät, von Daten für das Audiosignal als Reaktion auf das Bestimmen, dass die erste oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, von getaggten Textdaten umfasst, die die eine oder die mehreren Äußerungen, die im Audiosignal codiert sind, repräsentieren.
  12. System nach Anspruch 10 oder 11, wobei die Vorgänge umfassen, das gesamte Audiosignal zu analysieren, um erste Daten für jede der einen oder der mehreren Äußerungen zu bestimmen, wobei das Senden, an das Client-Gerät, der Daten für das Audiosignal als Reaktion auf das Bestimmen, dass die erste oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Senden, an das Client-Gerät, der ersten Daten für das Audiosignal als Reaktion auf das Bestimmen umfasst, dass die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  13. System nach einem der Ansprüche 8 bis 12, wobei Bestimmen, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Bestimmen umfasst, unter Verwendung eines Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  14. System nach Anspruch 13, wobei die Vorgänge umfassen, das Sprachmodell für den Schlüsselsatz vor dem Bestimmen anzupassen, unter Verwendung des Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  15. System nach Anspruch 14, wobei die Vorgänge das Empfangen von Text umfasst, der den Schlüsselsatz identifiziert, wobei das individuelle Anpassen des Sprachmodells für den Schlüsselsatz das individuelle Anpassen des Sprachmodells für den Schlüsselsatz unter Verwendung des Textes, der den Schlüsselsatz identifiziert, umfasst.
  16. System nach Anspruch 14 oder 15, die Vorgänge umfassend: Empfangen eines Identifikators; und Bestimmen, unter Verwendung des Identifikators, von Schlüsselsatz-Daten für den Schlüsselsatz, wobei das individuelle Anpassen des Sprachmodells für den Schlüsselsatz das individuelle Anpassen des Sprachmodells für den Schlüsselsatz unter Verwendung der Schlüsselsatz-Daten umfasst.
  17. System nach einem der Ansprüche 13 bis 16, wobei das Bestimmen, unter Verwendung des Sprachmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, das Bestimmen umfasst, unter Verwendung des Sprachmodells und eines Akustikmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  18. System nach Anspruch 17, wobei das Bestimmen, unter Verwendung des Sprachmodells und des Akustikmodells, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein, umfasst: Bereitstellen von Daten für die eine oder die mehreren ersten Äußerungen an das Sprachmodell, um das Sprachmodell zu veranlassen, eine erste Ausgabe zu erzeugen; Bereitstellen von Daten für die eine oder die mehreren ersten Äußerungen an das Akustikmodell, um das Akustikmodell zu veranlassen, eine zweite Ausgabe zu erzeugen; Kombinieren der ersten Ausgabe und der zweiten Ausgabe, um eine kombinierte Ausgabe zu erzeugen; und Bestimmen, unter Verwendung der kombinierten Ausgabe, ob die eine oder die mehreren ersten Äußerungen den zweiten Schwellenwert erfüllen, der Schlüsselsatz zu sein.
  19. System nach einem der Ansprüche 13 bis 18, wobei die Vorgänge das Auswählen des Sprachmodells für einen Standard-Schlüsselsatz umfassen.
  20. System nach Anspruch 19, wobei die Vorgänge das Bestimmen umfassen, ob der Standard-Schlüsselsatz verwendet werden soll.
DE202017106606.1U 2017-02-14 2017-10-30 Hotword-Erkennung auf der Server-Seite Active DE202017106606U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/432,358 2017-02-14
US15/432,358 US10311876B2 (en) 2017-02-14 2017-02-14 Server side hotwording

Publications (1)

Publication Number Publication Date
DE202017106606U1 true DE202017106606U1 (de) 2018-02-14

Family

ID=60452744

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202017106606.1U Active DE202017106606U1 (de) 2017-02-14 2017-10-30 Hotword-Erkennung auf der Server-Seite

Country Status (7)

Country Link
US (5) US10311876B2 (de)
EP (2) EP3767623A1 (de)
JP (2) JP6855588B2 (de)
KR (1) KR102332944B1 (de)
CN (2) CN116504238A (de)
DE (1) DE202017106606U1 (de)
WO (1) WO2018151772A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021005206B3 (de) 2021-10-19 2022-11-03 Mercedes-Benz Group AG Verfahren und Vorrichtung zur Bestimmung eines mehrteiligen Schlüsselwortes

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10264030B2 (en) 2016-02-22 2019-04-16 Sonos, Inc. Networked microphone device control
US9826306B2 (en) 2016-02-22 2017-11-21 Sonos, Inc. Default playback device designation
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US10095470B2 (en) 2016-02-22 2018-10-09 Sonos, Inc. Audio response playback
US9978390B2 (en) 2016-06-09 2018-05-22 Sonos, Inc. Dynamic player selection for audio signal processing
DE102016114265A1 (de) * 2016-08-02 2018-02-08 Claas Selbstfahrende Erntemaschinen Gmbh Verfahren zum zumindest teilweise maschinellen Transferieren einer in einer Quellsprache abgefassten Wortfolge in eine Wortfolge einer Zielsprache
US10115400B2 (en) 2016-08-05 2018-10-30 Sonos, Inc. Multiple voice services
US9942678B1 (en) 2016-09-27 2018-04-10 Sonos, Inc. Audio playback settings for voice interaction
US10181323B2 (en) 2016-10-19 2019-01-15 Sonos, Inc. Arbitration-based voice recognition
US10311876B2 (en) 2017-02-14 2019-06-04 Google Llc Server side hotwording
KR20180118461A (ko) * 2017-04-21 2018-10-31 엘지전자 주식회사 음성 인식 장치 및 음성 인식 방법
US10475449B2 (en) 2017-08-07 2019-11-12 Sonos, Inc. Wake-word detection suppression
CN107591151B (zh) * 2017-08-22 2021-03-16 百度在线网络技术(北京)有限公司 远场语音唤醒方法、装置和终端设备
US10048930B1 (en) 2017-09-08 2018-08-14 Sonos, Inc. Dynamic computation of system response volume
US10446165B2 (en) 2017-09-27 2019-10-15 Sonos, Inc. Robust short-time fourier transform acoustic echo cancellation during audio playback
US10482868B2 (en) 2017-09-28 2019-11-19 Sonos, Inc. Multi-channel acoustic echo cancellation
US10621981B2 (en) 2017-09-28 2020-04-14 Sonos, Inc. Tone interference cancellation
US10466962B2 (en) 2017-09-29 2019-11-05 Sonos, Inc. Media playback system with voice assistance
CN110809796B (zh) * 2017-10-24 2020-09-18 北京嘀嘀无限科技发展有限公司 具有解耦唤醒短语的语音识别系统和方法
TWI661319B (zh) * 2017-11-30 2019-06-01 財團法人資訊工業策進會 根據文本產生控制指令之裝置、方法及其電腦程式產品
US10672380B2 (en) * 2017-12-27 2020-06-02 Intel IP Corporation Dynamic enrollment of user-defined wake-up key-phrase for speech enabled computer system
WO2019152722A1 (en) 2018-01-31 2019-08-08 Sonos, Inc. Device designation of playback and network microphone device arrangements
CN108665900B (zh) * 2018-04-23 2020-03-03 百度在线网络技术(北京)有限公司 云端唤醒方法及系统、终端以及计算机可读存储介质
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US10959029B2 (en) 2018-05-25 2021-03-23 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
US10681460B2 (en) 2018-06-28 2020-06-09 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US10461710B1 (en) 2018-08-28 2019-10-29 Sonos, Inc. Media playback system with maximum volume setting
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
US10587430B1 (en) 2018-09-14 2020-03-10 Sonos, Inc. Networked devices, systems, and methods for associating playback devices based on sound codes
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US11308939B1 (en) * 2018-09-25 2022-04-19 Amazon Technologies, Inc. Wakeword detection using multi-word model
US11100923B2 (en) 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
CN111048068B (zh) * 2018-10-11 2023-04-18 阿里巴巴集团控股有限公司 语音唤醒方法、装置、系统及电子设备
US11899519B2 (en) 2018-10-23 2024-02-13 Sonos, Inc. Multiple stage network microphone device with reduced power consumption and processing load
EP3654249A1 (de) 2018-11-15 2020-05-20 Snips Erweiterte konvolutionen und takt zur effizienten schlüsselwortauffindung
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
US11232788B2 (en) * 2018-12-10 2022-01-25 Amazon Technologies, Inc. Wakeword detection
US11132989B2 (en) 2018-12-13 2021-09-28 Sonos, Inc. Networked microphone devices, systems, and methods of localized arbitration
US10602268B1 (en) 2018-12-20 2020-03-24 Sonos, Inc. Optimization of network microphone devices using noise classification
US10867604B2 (en) 2019-02-08 2020-12-15 Sonos, Inc. Devices, systems, and methods for distributed voice processing
US11315556B2 (en) 2019-02-08 2022-04-26 Sonos, Inc. Devices, systems, and methods for distributed voice processing by transmitting sound data associated with a wake word to an appropriate device for identification
US11093720B2 (en) * 2019-03-28 2021-08-17 Lenovo (Singapore) Pte. Ltd. Apparatus, method, and program product for converting multiple language variations
KR20210110666A (ko) * 2019-04-01 2021-09-08 구글 엘엘씨 재충전식 디바이스에서 캐스팅 요청 및/또는 사용자 입력의 적응적 관리
WO2020226948A1 (en) * 2019-05-03 2020-11-12 Google Llc Phoneme-based contextualization for cross-lingual speech recognition in end-to-end models
US11120794B2 (en) 2019-05-03 2021-09-14 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
KR20200141860A (ko) 2019-06-11 2020-12-21 삼성전자주식회사 전자 장치 및 그 제어 방법
US10586540B1 (en) 2019-06-12 2020-03-10 Sonos, Inc. Network microphone device with command keyword conditioning
US11361756B2 (en) 2019-06-12 2022-06-14 Sonos, Inc. Conditional wake word eventing based on environment
US11200894B2 (en) 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
US11282500B2 (en) * 2019-07-19 2022-03-22 Cisco Technology, Inc. Generating and training new wake words
US11138975B2 (en) 2019-07-31 2021-10-05 Sonos, Inc. Locally distributed keyword detection
US10871943B1 (en) 2019-07-31 2020-12-22 Sonos, Inc. Noise classification for event detection
US20210050003A1 (en) * 2019-08-15 2021-02-18 Sameer Syed Zaheer Custom Wake Phrase Training
WO2021071115A1 (en) * 2019-10-07 2021-04-15 Samsung Electronics Co., Ltd. Electronic device for processing user utterance and method of operating same
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
US11200900B2 (en) 2019-12-20 2021-12-14 Sonos, Inc. Offline voice control
US11562740B2 (en) 2020-01-07 2023-01-24 Sonos, Inc. Voice verification for media playback
US11308958B2 (en) 2020-02-07 2022-04-19 Sonos, Inc. Localized wakeword verification
US11308962B2 (en) 2020-05-20 2022-04-19 Sonos, Inc. Input detection windowing
US11482224B2 (en) 2020-05-20 2022-10-25 Sonos, Inc. Command keywords with input detection windowing
US11610578B2 (en) * 2020-06-10 2023-03-21 Google Llc Automatic hotword threshold tuning
US11698771B2 (en) 2020-08-25 2023-07-11 Sonos, Inc. Vocal guidance engines for playback devices
US11749267B2 (en) * 2020-11-20 2023-09-05 Google Llc Adapting hotword recognition based on personalized negatives
US20230019737A1 (en) * 2021-07-14 2023-01-19 Google Llc Hotwording by Degree
JP7267636B1 (ja) 2021-10-21 2023-05-02 株式会社アートクリフ 情報処理装置、情報処理システム、情報処理方法およびプログラム
US20230267155A1 (en) * 2022-02-23 2023-08-24 The Knot Worldwide Inc. Matching online accounts with overlapping characteristics based on non-homogenous data types

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1207517B1 (de) * 2000-11-16 2007-01-03 Sony Deutschland GmbH Verfahren zur Spracherkennung
US8838449B2 (en) * 2010-12-23 2014-09-16 Microsoft Corporation Word-dependent language model
JP5596649B2 (ja) * 2011-09-26 2014-09-24 株式会社東芝 文書マークアップ支援装置、方法、及びプログラム
WO2014039106A1 (en) * 2012-09-10 2014-03-13 Google Inc. Answering questions using environmental context
US8468023B1 (en) * 2012-10-01 2013-06-18 Google Inc. Handsfree device with countinuous keyword recognition
US9704486B2 (en) 2012-12-11 2017-07-11 Amazon Technologies, Inc. Speech recognition power management
US9378733B1 (en) 2012-12-19 2016-06-28 Google Inc. Keyword detection without decoding
US9842489B2 (en) 2013-02-14 2017-12-12 Google Llc Waking other devices for additional data
US9361885B2 (en) 2013-03-12 2016-06-07 Nuance Communications, Inc. Methods and apparatus for detecting a voice command
JP2015011170A (ja) * 2013-06-28 2015-01-19 株式会社ATR−Trek ローカルな音声認識を行なう音声認識クライアント装置
US9202462B2 (en) 2013-09-30 2015-12-01 Google Inc. Key phrase detection
US8768712B1 (en) 2013-12-04 2014-07-01 Google Inc. Initiating actions based on partial hotwords
GB2524222B (en) 2013-12-18 2018-07-18 Cirrus Logic Int Semiconductor Ltd Activating speech processing
US9484022B2 (en) * 2014-05-23 2016-11-01 Google Inc. Training multiple neural networks with different accuracy
US20160055847A1 (en) * 2014-08-19 2016-02-25 Nuance Communications, Inc. System and method for speech validation
US9418656B2 (en) * 2014-10-29 2016-08-16 Google Inc. Multi-stage hotword detection
US9779725B2 (en) 2014-12-11 2017-10-03 Mediatek Inc. Voice wakeup detecting device and method
US9508340B2 (en) 2014-12-22 2016-11-29 Google Inc. User specified keyword spotting using long short term memory neural network feature extractor
EP3067884B1 (de) 2015-03-13 2019-05-08 Samsung Electronics Co., Ltd. Spracherkennungssystem und spracherkennungsverfahren dafür
US10311876B2 (en) * 2017-02-14 2019-06-04 Google Llc Server side hotwording
US10762903B1 (en) * 2017-11-07 2020-09-01 Amazon Technologies, Inc. Conversational recovery for voice user interface
US11017778B1 (en) * 2018-12-04 2021-05-25 Sorenson Ip Holdings, Llc Switching between speech recognition systems
KR20210110666A (ko) * 2019-04-01 2021-09-08 구글 엘엘씨 재충전식 디바이스에서 캐스팅 요청 및/또는 사용자 입력의 적응적 관리

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021005206B3 (de) 2021-10-19 2022-11-03 Mercedes-Benz Group AG Verfahren und Vorrichtung zur Bestimmung eines mehrteiligen Schlüsselwortes

Also Published As

Publication number Publication date
US10706851B2 (en) 2020-07-07
US11699443B2 (en) 2023-07-11
EP3559944A1 (de) 2019-10-30
WO2018151772A1 (en) 2018-08-23
US10311876B2 (en) 2019-06-04
US11049504B2 (en) 2021-06-29
JP7189248B2 (ja) 2022-12-13
CN110268469B (zh) 2023-05-23
CN110268469A (zh) 2019-09-20
US20230343340A1 (en) 2023-10-26
US20200365158A1 (en) 2020-11-19
EP3559944B1 (de) 2020-09-09
US20180233150A1 (en) 2018-08-16
EP3767623A1 (de) 2021-01-20
JP2020507815A (ja) 2020-03-12
KR20190109532A (ko) 2019-09-25
JP6855588B2 (ja) 2021-04-07
KR102332944B1 (ko) 2021-11-30
CN116504238A (zh) 2023-07-28
US20190304465A1 (en) 2019-10-03
JP2021107927A (ja) 2021-07-29
US20210287678A1 (en) 2021-09-16

Similar Documents

Publication Publication Date Title
DE202017106606U1 (de) Hotword-Erkennung auf der Server-Seite
DE112016000292B4 (de) Verfahren und Vorrichtung zur die Privatsphäre bewahrenden Trainingskorpusauswahl
DE102018010463B3 (de) Tragbare Vorrichtung, computerlesbares Speicherungsmedium, Verfahren und Einrichtung für energieeffiziente und leistungsarme verteilte automatische Spracherkennung
DE102017125396B4 (de) Abfrage-Endpunktbestimmung auf Basis der Lippenerkennung
DE202017105669U1 (de) Modalitätslernen an mobilen Vorrichtungen
DE112016002185T5 (de) Sprachaktivitätserkennung
DE112018006101T5 (de) Dynamische Anmeldung einer benutzerdefinierten Aufweck-Schlüsselphrase für ein sprachfähiges Computersystem
DE202016008260U1 (de) Erlernen von Aussprachen einer personalisierten Entität
DE102014107027A1 (de) Management von virtuellen Assistentaktionseinheiten
DE202016008230U1 (de) Sprachwiedererkennung mit externen Datenquellen
WO2018039510A1 (en) Reward augmented model training
DE202017105741U1 (de) Automatisierte Sprachaussprachezuteilung
DE102018126041B4 (de) Vorrichtung, verfahren und system zum verstehen gesprochener sprache unter nutzung eines dynamischen vokabulars
DE102021000736A1 (de) Modellbasierte semantische Textsuche
DE202016008204U1 (de) Suchergebnis unter vorherigem Abrufen von Sprachanfragen
US20190197165A1 (en) Method and computer device for determining an intent associated with a query for generating an intent-specific response
DE102018131935A1 (de) Time-Capsule-basierte Sprechhilfe
CN110268472A (zh) 用于自动化对话系统的检测机构
DE102017125475B4 (de) Verfahren und System zur Sprachsyntheseeinheitenauswahl
DE112019000305T5 (de) Automatische ausführung von aktionen durch eine mobile computervorrichtung
CN112925895A (zh) 自然语言软件运维方法及装置
DE102020215954A1 (de) Dialogsystem und verfahren zum steuern desselben
US20230005490A1 (en) Packet loss recovery method for audio data packet, electronic device and storage medium
DE112018005844T5 (de) Phonetische Muster zum Fuzzy Matching bei Verarbeitung natürlicher Sprache
CN114203201A (zh) 口语评测方法、装置、设备、存储介质及程序产品

Legal Events

Date Code Title Description
R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R151 Utility model maintained after payment of second maintenance fee after six years