DE102016125831A1 - Spracherkennungssystem - Google Patents

Spracherkennungssystem Download PDF

Info

Publication number
DE102016125831A1
DE102016125831A1 DE102016125831.8A DE102016125831A DE102016125831A1 DE 102016125831 A1 DE102016125831 A1 DE 102016125831A1 DE 102016125831 A DE102016125831 A DE 102016125831A DE 102016125831 A1 DE102016125831 A1 DE 102016125831A1
Authority
DE
Germany
Prior art keywords
segment
contexts
transcription
speech input
speech
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.)
Granted
Application number
DE102016125831.8A
Other languages
English (en)
Other versions
DE102016125831B4 (de
Inventor
Petar Aleksic
Pedro J. Moreno Mengibar
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 DE102016125831A1 publication Critical patent/DE102016125831A1/de
Application granted granted Critical
Publication of DE102016125831B4 publication Critical patent/DE102016125831B4/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/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/632Query formulation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • 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
    • 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
    • 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
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • 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
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/197Probabilistic grammars, e.g. word n-grams
    • 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
    • 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/081Search algorithms, e.g. Baum-Welch or Viterbi
    • 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/085Methods for reducing search complexity, pruning

Abstract

Verfahren, Systeme und Vorrichtungen, die ein Computerprogramm enthalten, das auf einem Computerspeichermedium codiert ist, zur Spracherkennung. Gemäß einem Aspekt enthält ein Verfahren die Aktionen eines Empfangens einer Spracheingabe; eines Bestimmens einer Transkription für die Spracheingabe, wobei ein Bestimmen der Transkription für die Spracheingabe für eine Vielzahl von Segmenten der Spracheingabe folgendes enthält: Erhalten einer ersten Kandidatentranskription für ein erstes Segment der Spracheingabe; Bestimmen von einem oder mehreren Kontexten, die mit der ersten Kandidatentranskription assoziiert sind; Einstellen einer jeweiligen Gewichtung für jeden von dem einen oder den mehreren Kontexten; und Bestimmen einer zweiten Kandidatentranskription für ein zweites Segment der Spracheingabe basierend zum Teil auf den eingestellten Gewichtungen; und Liefern der Transkription der Vielzahl von Segmenten der Spracheingabe zur Ausgabe.

Description

  • HINTERGRUND
  • Diese Beschreibung betrifft eine Spracherkennung.
  • Herkömmliche Spracherkennungssysteme zielen darauf ab, eine von einem Anwender eingegebene Sprache in eine Textausgabe umzuwandeln. Die Textausgabe kann zu verschiedenen Zwecken verwendet werden, einschließlich beispielsweise als eine Suchanfrage, ein Befehl, eine Textverarbeitungseingabe, etc. Bei einem typischen Sprachsuchsystem empfängt eine Sprachschnittstelle eine Spracheingabe eines Anwenders und liefert die Spracheingabe zu einer Spracherkennungsmaschine. Die Spracherkennungsmaschine wandelt die Spracheingabe in eine Textsuchanfrage um. Das Sprachsuchsystem unterbreitet dann die Textsuchanfrage einer Suchmaschine, um ein oder mehrere Suchergebnisse zu erhalten.
  • ZUSAMMENFASSUNG
  • Im Allgemeinen kann ein innovativer Aspekt des in dieser Beschreibung beschriebenen Gegenstands in Verfahren verkörpert sein, die folgende Aktionen enthalten: Empfangen von Daten, die eine Spracheingabe codieren; Bestimmen einer Transkription für die Spracheingabe, wobei ein Bestimmen der Transkription für die Spracheingabe für eine Vielzahl von Segmenten der Spracheingabe folgendes enthält: Erhalten einer ersten Kandidatentranskription für ein erstes Segment der Spracheingabe; Bestimmen von einem oder mehreren Kontexten, die mit der ersten Kandidatentranskription assoziiert sind; Einstellen einer jeweiligen Gewichtung für jeden des einen oder der mehreren Kontexte; und Bestimmen einer zweiten Kandidatentranskription für ein zweites Segment der Spracheingabe basierend teilweise auf den eingestellten Gewichtungen; und Liefern der Transkription der Vielzahl von Segmenten der Spracheingabe zur Ausgabe. Ein in dieser Beschreibung beschriebenes Verfahren kann als ein computerimplementiertes Verfahren verkörpert sein. Andere Ausführungsformen des Aspekts enthalten entsprechende Computersysteme, Vorrichtungen und auf einer oder mehreren Computerspeichervorrichtungen aufgezeichnete Computerprogramme, die jeweils konfiguriert sind, um die Aktionen der Verfahren durchzuführen. Für ein System aus einem oder mehreren Computern, um konfiguriert zu sein, bestimmte Operationen oder Aktionen durchzführen, bedeutet es, dass das System auf ihm Software, Firmware, Hardware oder eine Kombination aus ihnen installiert hat, die beim Betrieb veranlassen, dass das System die Operationen oder Aktionen durchführt. Für ein oder mehrere Computerprogramme, um konfiguriert zu sein, bestimmte Operationen oder Aktionen durchzuführen, bedeutet es, dass das eine oder die mehreren Computerprogramme Anweisungen enthält oder enthalten, die dann, wenn sei durch eine Datenverarbeitungsvorrichtung ausgeführt werden, veranlassen, dass die Vorrichtung die Operationen oder Aktionen durchführt.
  • Ein weiterer innovativer Aspekt des in dieser Beschreibung beschriebenen Gegenstands kann in einem computerlesbaren Medium verkörpert sein, das Software speichert, die durch einen oder mehrere Computer ausführbare Anweisungen aufweist, die auf eine solche Ausführung hin veranlassen, dass der eine oder die mehreren Computer Operationen durchführt oder durchführen, die folgendes aufweisen: Empfangen von Daten, die eine Spracheingabe codieren; Bestimmen einer Transkription für die Spracheingabe, wobei ein Bestimmen der Transkription für die Spracheingabe für eine Vielzahl von Segmenten der Spracheingabe folgendes enthält: Erhalten einer ersten Kandidatentranskription für ein erstes Segment der Spracheingabe; Bestimmen von einem oder mehreren Kontexten, die mit der ersten Kandidatentranskription assoziiert sind; Einstellen einer jeweiligen Gewichtung für jeden des einen oder der mehreren Kontexte; und Bestimmen einer zweiten Kandidatentranskription für ein zweites Segment der Spracheingabe basierend teilweise auf den eingestellten Gewichtungen; und Liefern der Transkription der Vielzahl von Segmenten der Spracheingabe zur Ausgabe.
  • Die vorangehenden und andere Ausführungsformen können jeweils optional eines oder mehrere der folgenden Merkmale allein oder in irgendeiner Kombination enthalten. Beispielsweise enthält eine Ausführungsform alle folgenden Merkmale in Kombination. Das Verfahren enthält folgendes: Erhalten einer ersten Kandidatentranskription für ein erstes Segment der Spracheingabe, einschließlich: Bestimmen, dass das erste Segment der Spracheingabe Stabilitätskriterien erfüllt; und, in Reaktion auf ein Bestimmen, dass das erste Segment der Spracheingabe Stabilitätskriterien erfüllt, Erhalten der ersten Kandidatentranskription für das erste Segment der Spracheingabe. Die Stabilitätskriterien enthalten eine oder mehrere semantische Charakteristiken des ersten Segments der Spracheingabe. Die Stabilitätskriterien enthalten eine Zeitverzögerung, die nach dem ersten Segment der Spracheingabe auftritt. Das zweite Segment der Spracheingabe tritt nach dem ersten Segment der Spracheingabe auf. Der eine oder die mehreren Kontexte wird oder werden von einer Anwendervorrichtung empfangen. Der eine oder die mehreren Kontexte enthält oder enthalten Daten einschließlich eines geografischen Standorts eines Anwenders, einer Suchhistorie eines Anwenders, von Anwenderinteressen oder Anwenderaktivität. Das Verfahren enthält ein Speichern einer Vielzahl von Punkten bzw. Treffern für eine Vielzahl von Kontexten; und, in Reaktion auf ein Einstellen einer jeweiligen Gewichtung für jeden von einem oder mehreren Kontexten, Unterziehen der eingestellten Treffer für den einen oder die mehreren Kontexte einem Updaten. Das Verfahren enthält weiterhin ein Liefern der Ausgabe als eine Suchanfrage beispielsweise zu einer Suchmaschine – die Suchmaschine kann dann in Reaktion auf die Suchanfrage ein oder mehrere Ergebnisse zu einer Anwendervorrichtung liefern. Die erste Kandidatentranskription weist ein Wort, ein Teilwort oder eine Gruppe von Worten auf.
  • Bestimmte Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstands können implementiert werden, um einen oder mehrere der folgenden Vorteile zu realisieren. Verglichen mit einem herkömmlichen Spracherkennungssystem kann ein Spracherkennungssystem mehr genaue Textsuchanfragen basierend auf einem Segment einer Spracheingabe zur Verfügung stellen. Da das System Gewichtungen für Kontexte basierend auf dem Segment der Spracheingabe einstellt und eine Transkription des folgenden Segments der Spracheingabe teilweise basierend auf den eingestellten Gewichtungen bestimmt, kann das System eine Erkennungsleistungsfähigkeit dynamisch verbessern. Somit kann das System eine Genauigkeit einer Spracherkennung verbessern. Diese verbesserte Genauigkeit resultiert in einer verringerten Wahrscheinlichkeit, dass ein Anwender den Prozess eines Lieferns der Spracheingabe zum Verarbeiten durch das Spracherkennungssystem wiederholen werden muss, um dadurch das Spracherkennungssystem dafür verfügbar zu machen, andere Spracheingaben zu handhaben.
  • Die Details von einem oder mehreren Ausführungsformen des Gegenstands dieser Beschreibung sind in den beigefügten Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen offensichtlich werden. Es wird erkannt werden, dass Aspekte und Implementierungen kombiniert werden können, und dass im Zusammenhang von einem Aspekt oder einer Implementierung beschriebene Merkmale im Zusammenhang mit anderen Aspekten oder Implementierungen implementiert werden können.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Diagramm, das einen Überblick über ein beispielhaftes Spracherkennungssystem zur Verfügung stellt.
  • 2 ist ein Diagramm, das beispielhafte Kontexte darstellt.
  • 3 ist ein Diagramm, das einen beispielhaften Prozess zum Bestimmen darstellt, dass Stabilitätskriterien erfüllt sind.
  • 4 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Liefern einer Transkription einer Spracheingabe.
  • 5 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Bestimmen einer Transkription für eine Spracheingabe.
  • Gleiche Bezugszeichen in den verschiedenen Zeichnungen zeigen gleiche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist ein Diagramm, das einen Überblick über ein beispielhaftes Spracherkennungssystem 100 zur Verfügung stellt. Ein Spracherkennungssystem 100 enthält einen oder mehrere Computer, die programmiert sind, um von einer Anwendervorrichtung 120 eine Spracheingabe 110 von einem Anwender 10 zu empfangen, eine Transkription der Spracheingabe 110 zu bestimmen und die Transkription der Spracheingabe 110 als eine Ausgabe zu liefern. Bei dem in 1 gezeigten Beispiel kann die Ausgabe eine Suchanfrage 150 sein, die zu einer Suchmaschine 160 geliefert wird, um in Reaktion auf die Suchanfrage 150 Suchergebnisse 170 zu erhalten. Eines oder mehrere solcher Ergebnisse 170 werden dann zur Anwendervorrichtung 120 geliefert. Das Spracherkennungssystem 100 kann beispielsweise auf einem oder mehreren Computern einschließlich eines Servers oder auf einer Anwendervorrichtung implementiert sein.
  • Das Spracherkennungssystem 100 enthält eine Spracherkennungsmaschine 140 in Kommunikationsverbindung mit der Anwendervorrichtung 120 über ein oder mehrere Netze 180. Das eine oder die mehreren Netze 180 können Telefon- und/oder Computernetze einschließlich drahtloser zellularer Netze, drahtloser lokaler Netze (WLAN) oder Wi-Fi-Netze, verdrahteter Ethernet-Netze, anderer verdrahteter Netze oder irgendeiner geeigneten Kombination davon sein. Die Anwendervorrichtung 120 kann irgendein geeigneter Typ von Computervorrichtung sein, einschließlich, aber nicht darauf beschränkt, eines Mobiltelefons, eines Smartphones, eines Tablet-Computers, eines Musikabspielgeräts, eines E-Book-Readers, eines Laptop- oder Desktop-Computers, eines PDA oder einer anderen in der Hand zu haltenden oder mobilen Vorrichtung, die einen oder mehrere Prozessoren und computerlesbare Medien enthält.
  • Die Anwendervorrichtung 120 ist konfiguriert, um die Spracheingabe 110 vom Anwender 10 zu empfangen. Die Anwendervorrichtung 120 kann beispielsweise ein Schallwandler bzw. Akustisch-Elektrisch-Wandler oder -Sensor (z. B. ein Mikrofon) enthalten oder damit gekoppelt sein. In Reaktion darauf, dass der Anwender 10 die Spracheingabe 110 eingibt, kann die Spracheingabe der Spracherkennungsmaschine 140 unterbreitet bzw. vorgelegt werden. (Allgemein kann dies durch Vorlegen von Daten, die die Spracheingabe darstellen oder codieren, zur Spracherkennungsmaschine 140 durchgeführt werden. Die Spracherkennungsmaschine 140 kann die Daten verarbeiten, um die Spracheingabe aus den empfangenen Daten zu extrahieren.)
  • Die Spracherkennungsmaschine 140 kann die Spracheingabe sequentiell erkennen, z. B. kann ein erster Teilbereich 111 der Spracheingabe 110 erkannt werden und kann dann ein zweiter Teilbereich 112 erkannt werden. Ein oder mehrere Teilbereiche der Spracheingabe 110 können als ein individuelles Segment der Spracheingabe 110 basierend auf bestimmten Stabilitätskriterien erkannt werden. Ein Teilbereich kann ein Wort, ein Teilwort oder eine Gruppe von Worten enthalten. Bei einigen Implementierungen kann ein oder können mehrere Segmente der Spracheingabe 110 Zwischen-Erkennungsergebnisse liefern, die verwendet werden können, um einen oder mehrere Kontexte einzustellen, wie es nachfolgend detaillierter beschrieben wird.
  • Obwohl durchgehend zur Illustration ein Beispiel einer Suchanfrage verwendet wird, kann die Spracheingabe 110 irgendeinen Typ von Sprachkommunikation darstellen, einschließlich sprachbasierender Anweisungen, Suchmaschinenanfrageausdrücke, Diktat, Dialogsysteme oder irgendeiner anderen Eingabe, die transkribierte Sprache verwendet oder die eine Software unter Verwendung transkribierter Sprache aufruft, um ein Aktion durchzuführen.
  • Die Spracherkennungsmaschine 140 kann eine Softwarekomponente des Spracherkennungssystems 100 sein, das konfiguriert ist, um die Spracheingabe 110 zu empfangen und zu verarbeiten. Bei dem in 1 gezeigten beispielhaften System wandelt die Spracherkennungsmaschine 140 die Spracheingabe 110 in eine Text-Suchanfrage 150 um, die zur Suchmaschine 160 geliefert wird. Die Spracherkennungsmaschine 140 enthält eine Sprachdecodierer 142, ein Kontextmodul 144 und ein Kontexteinstellmodul 146. Der Sprachdecodierer 142, das Kontextmodul 144 und das Kontexteinstellmodul 146 können Softwarekomponenten des Spracherkennungssystems 100 sein.
  • Wenn die Spracherkennungsmaschine 140 die Spracheingabe 110 empfängt, bestimmt der Sprachdecodierer 142 die Transkription für die Spracheingabe 110. Der Sprachdecodierer 142 liefert dann die Transkription für die Spracheingabe 110 als eine Ausgabe, z. B. als die zur Suchmaschine 160 zu liefernde Suchanfrage 150.
  • Der Sprachdecodierer 142 verwendet ein Sprachenmodell, um Kandidatentranskriptionen für die Spracheingabe 110 zu erzeugen. Das Sprachenmodell enthält Wahrscheinlichkeitswerte, die zu Worten oder Sequenzen von Worten gehören. Beispielsweise kann das Sprachenmodell ein N-Gramm-Modell sein. Zwischen-Erkennungsergebnisse können bestimmt werden, wenn der Sprachdecodierer 142 die Spracheingabe verarbeitet. Jedes der Zwischen-Erkennungsergebnisse entspricht einem stabilen Segment der Transkription der Spracheingabe 110. Stabilitätskriterien zum Bestimmen eines stabilen Segments der Transkription werden nachfolgend unter Bezugnahme auf 3 detaillierter beschrieben.
  • Der Sprachdecodierer 142 liefert jedes stabile Segment zum Kontexteinstellmodul 146. Das Kontexteinstellmodul 146 identifiziert relevante Kontexte vom Kontextmodul 144. Jeder identifizierte Kontext kann mit einer Gewichtung assoziiert werden. Basisgewichtungen für jeden Kontext können anfangs gemäß verschiedenen Kriterien spezifiziert werden, wie beispielsweise basierend auf eine Popularität der Kontexte, einer zeitlichen Nähe der Kontexte (d. h. ob ein bestimmter Kontext in einer jüngsten Zeitperiode aktiv verwendet wird), oder einer jüngsten oder globalen Nutzung der Kontexte. Die Basisgewichtung kann eine Anfangstendenz basierend auf einer Wahrscheinlichkeit erzeugen, dass eine Anwendereingabe mit bestimmten Kontexten assoziiert ist. Wenn das Kontexteinstellmodul 146 einmal relevante Kontexte identifiziert, stellt das Kontexteinstellmodul 146 Gewichtungen zu den Kontexten basierend auf dem einen oder den mehreren stabilen Segmenten ein, die durch den Sprachdecodierer 142 geliefert sind. Die Gewichtungen können eingestellt werden, um das Ausmaß anzuzeigen, bis zu welchem Transkriptionen von Spracheingaben mit bestimmten Kontexten assoziiert sind.
  • Das Kontextmodul 144 speichert die Kontexte 148 und mit den Kontexten 148 assoziierte Gewichtungen. Das Kontextmodul 144 kann eine Softwarekomponente der Spracherkennungsmaschine 140 sein, die konfiguriert ist, um zu veranlassen, dass eine Computervorrichtung einen oder mehrere Kontexte 148 von der Anwendervorrichtung 120 empfängt. Die Spracherkennungsmaschine 140 kann konfiguriert sein, um die empfangenen Kontexte 148 im Kontextmodul 144 zu speichern. In einigen Fällen kann das Kontextmodul 144 konfiguriert sein, um einen oder mehrere Kontexte 148 zu erzeugen, die für den Anwender 10 individuell angepasst sind. Die Spracherkennungsmaschine 140 kann konfiguriert sein, um die erzeugten Kontexte 148 im Kontextmodul 144 zu speichern.
  • Die Kontexte 148 können beispielsweise folgendes enthalten: (1) Daten, die Anwenderaktivitäten, wie beispielsweise Zeitintervalle zwischen wiederholten Spracheingaben, Blickverfolgungsinformation, die eine Augenbewegung von einer Vorderseitenkamera nahe dem Bildschirm einer Anwendervorrichtung wiedergibt; (2) Daten, die Umstände beschreiben, wenn eine Spracheingabe ausgegeben wird, wie beispielsweise den Typ einer verwendeten mobilen Anwendung, den Standort eines Anwenders, den Typ einer verwendeten Vorrichtung, oder die aktuelle Zeit; (3) einer Suchmaschine unterbreitete frühere Sprach-Suchanfragen; (4) Daten, die den Typ einer einer Spracherkennungsmaschine unterbreiteten Spracheingabe beschreiben, wie beispielsweise einen Befehl, eine Anforderung oder eine Suchanfrage zu einer Suchmaschine; und (5) Datensätze bzw. Einheiten, wie beispielsweise Elemente bestimmter Kategorien, Platznamen, etc. Kontexte können beispielsweise aus früheren Suchanfragen, Anwenderinformation, Datensatz- bzw. Einheitendatenbanken, etc. ausgebildet sein.
  • 2 ist ein Diagramm, das beispielhafte Kontexte darstellt. Eine Spracherkennungsmaschine ist konfiguriert, um einen Kontext 210, der mit „Tennisspieler” assoziiert ist, und einen Kontext 220, der mit Basketballspieler assoziiert ist, z. B. in einem Kontextmodul, z. B. dem Kontextmodul 144, zu speichern. Der Kontext 210 enthält damit Einheiten, die bestimmten Tennisspielern entsprechen, wie beispielsweise „Roger Federer”, „Rafael Nadal” und „Novak Djokovic”. Der Kontext 220 enthält damit Einheiten, die bestimmen Basketballspielern entsprechen, wie beispielsweise „Roger Bederer”, Rafael Madall” und „Novak Jocovich”.
  • Das Kontextmodul 144 kann konfiguriert sein, um Gewichtungen für die Kontexte 210, 220 zu speichern. Die Gewichtungen können das Ausmaß anzeigen, bis zu welchem eine oder mehrere Transkriptionen von Spracheingaben mit den Kontexten 210, 220 assoziiert sind. Wenn das Kontexteinstellmodul 146 die Kontexte 210, 220 identifiziert, identifiziert das Kontexteinstellmodul auch die mit den Kontexten 210, 220 assoziierten Gewichtungen.
  • Wenn der Sprachdecodierer 142 die erste Kandidatentranskription „Wie viele Siege für den Tennisspieler” für das erste Segment 111 der Spracheingabe 110 erhält, liefert der Sprachdecodierer 142 die erste Kandidatentranskription für das erste Segment 111 zum Kontexteinstellmodul 146. Das Kontexteinstellmodul 146 identifiziert die Kontexte 210, 220 als relevante Kontexte von dem Kontextmodul 144 und die mit den Kontexten 210, 220 assoziierten Gewichtungen. Dann ist das Kontexteinstellmodul 146 konfiguriert, um die jeweiligen Gewichtungen für die Kontexte 210, 220 basierend auf der ersten Kandidatentranskription für das erste Segment 111 der Spracheingabe 110 einzustellen. Insbesondere kann das Kontexteinstellmodul 146 die jeweiligen Gewichtungen für die Kontexte 210, 220 zur Verwendung beim Erkennen nachfolgender Segmente der Spracheingabe 110 einstellen.
  • Die Basisgewichtungen für die jeweiligen Kontexte können der Spracherkennung, beispielsweise aufgrund einer historischen Popularität von Spracheingaben in Bezug auf Basketball im Vergleich mit Tennis, anfangs eine Tendenz in Richtung zum Kontext von Basketball mit einer höheren Anfangsgewichtung geben. Jedoch kann, eingestellt basierend auf dem Zwischen-Erkennungsergebnis, der Spracherkennung eine Tendenz in Richtung zum Kontext von Tennis gegeben sein. Bei diesem Beispiel enthält die erste Kandidatentranskription „Wie viele Siege für den Tennisspieler” der Spracheingabe 110 den Ausdruck „Tennisspieler”. Basierend auf dem Ausdruck „Tennisspieler” der ersten Kandidatentranskription kann das Kontexteinstellmodul 146 konfiguriert sein, um die Gewichtung für einen oder mehrere Kontexte einzustellen. Beispielsweise kann das Kontexteinstellmodul 146 die Gewichtung für den Kontext 210 z. B. von „10” auf „90” erhöhen, kann die Gewichtung für den Kontext 220 z. B. von „90” auf „10” verringern oder kann eine Kombination aus Erhöhen und Verringern von Gewichtungen durchführen.
  • Der Sprachdecodierer 142 kann konfiguriert sein, um die zweite Kandidatentranskription für das zweite Segment 112 der Spracheingabe 110 teilweise basierend auf den eingestellten Gewichtungen zu bestimmen. In Reaktion auf ein Einstellen der jeweiligen Gewichtungen für die Kontexte kann die Spracherkennungsmaschine 140 konfiguriert sein, um die eingestellten Gewichtungen für die Kontexte 210, 220 im Kontextmodul 144 einem Updaten zu unterziehen. Beim obigen Beispiel kann der Sprachdecodierer 142, um die zweite Kandidatentranskription für das zweite Segment 112 der Spracheingabe 110 zu bestimmen, basierend auf den eingestellten Gewichtungen dem Kontext 210 eine höhere Gewichtung als dem Kontext 220 zuteilen. Basierend auf den Gewichtungen zum Kontext 210 kann der Sprachdecodierer 142 „Roger Federer” als die zweite Kandidatentranskription für das zweite Segment 112 der Spracheingabe 110 bestimmen.
  • Gegensätzlich dazu kann der Sprachdecodierer 142, wenn das Kontexteinstellmodul 146 die Gewichtungen für die Kontexte 210, 220 nicht basierend auf der ersten Kandidatentranskription für das erste Segment 111 einstellt, die zweite Kandidatentranskription für das zweite Segment 112 basierend auf den im Kontextmodul 144 gespeicherten Basisgewichtungen für die Kontexte 210, 220 bestimmen. Wenn der Kontext 210 mehr gewichtet ist als der Kontext 210, kann der Sprachdecodierer die Namen der Basketballspieler, wie beispielsweise „Roger Bederer”, als die zweite Kandidatentranskription für das zweite Segment 112 bestimmen. Somit kann der Sprachdecodierer 142 ein inkorrektes Erkennungsergebnis liefern.
  • Nachdem der Sprachdecodierer 142 die gesamte Transkription der Spracheingabe 110 erhält, kann der Sprachdecodierer 142 die Transkription der Spracheingabe 110 zur Ausgabe liefern. Die Ausgabe kann direkt zur Anwendervorrichtung geliefert werden oder kann zur zusätzlichen Verarbeitung verwendet werden. Beispielsweise wird in 1 die ausgegebene Erkennung als eine Text-Suchanfrage 150 verwendet. Beispielsweise kann der Sprachdecodierer 142, wenn der Sprachdecodierer 142 „Roger Federer” als die zweite Kandidatentranskription für das zweite Segment 112 der Spracheingabe 110 bestimmt, die gesamte Transkription „wie viele Siege für den Tennisspieler Roger Federer?” als die Suchanfrage 150 zur Suchmaschine 160 ausgeben.
  • Die Suchanfrage 160 führt eine Suche unter Verwendung der Suchanfrage 150 durch. Die Suchmaschine 160 kann eine Web-Suchmaschine enthalten, die mit dem Spracherkennungssystem gekoppelt ist. Die Suchmaschine 160 kann ein oder mehrere Ergebnisse 170 in Reaktion auf die Suchanfrage 150 bestimmen. Die Suchmaschine 160 liefert die Suchergebnisse 170 zur Anwendervorrichtung 120. Die Anwendervorrichtung 120 kann eine Anzeigeschnittstelle enthalten, um die Suchergebnisse 170 dem Anwender 10 zu präsentieren. In einigen Fällen kann die Anwendervorrichtung 120 eine Audio-Schnittstelle enthalten, um die Suchergebnisse 170 dem Anwender 10 zu präsentieren.
  • 3 ist ein Diagramm, das einen beispielhaften Prozess zum Bestimmen darstellt, dass Stabilitätskriterien für ein gegebenes Segment erfüllt sind. Der Sprachdecodierer 142 ist konfiguriert, um zu bestimmen, dass der Teilbereich der Spracheingabe 110 die Stabilitätskriterien erfüllt.
  • Wenn der Sprachdecodierer 142 den Teilbereich 311 der Spracheingabe 310 empfängt, kann der Sprachdecodierer 142 konfiguriert sein, um zu bestimmen, ob der Teilbereich 311 der Spracheingabe 310 die Stabilitätskriterien erfüllt. Die Stabilitätskriterien zeigen an, ob es wahrscheinlich ist oder nicht, dass der Teilbereich durch zusätzliche Spracherkennung geändert wird.
  • Die Stabilitätskriterien können ein oder mehrere semantische Merkmale enthalten. Wenn von einem Teilbereich einer Spracheingabe semantisch erwartet wird, dass ihm ein Wort oder Worte folgen, kann der Sprachdecodierer 142 bestimmen, dass der Teilbereich die Stabilitätskriterien nicht erfüllt. Beispielsweise kann, wenn der Sprachdecodierer 142 den Teilbereich 311 der Spracheingabe 310 empfängt, der Sprachdecodierer 142 bestimmen, dass von dem Teilbereich 311 semantisch erwartet wird, dass ihm ein Wort oder Worte folgen. Der Sprachdecodierer 142 bestimmt dann, dass der Teilbereich 311 die Stabilitätskriterien nicht erfüllt. Bei einigen Implementierungen kann, wenn der Sprachdecodierer 142 „mein” als einen Teilbereich einer Spracheingabe empfängt, der Sprachdecodierer 142 bestimmen, dass vom Teilbereich „mein” nicht erwartet wird, dass ihm ein Wort oder Worte folgen. Der Sprachdecodierer 142 kann dann bestimmen, dass der Teilbereich „mein” die Stabilitätskriterien für ein Segment erfüllt. Der Sprachdecodierer 142 kann das Segment zum Kontexteinstellmodul 146 liefern, um die Gewichtungen für die Kontexte einzustellen.
  • Der Sprachdecodierer 142 kann auch bestimmen, dass ein Teilbereich die Stabilitätskriterien nicht erfüllt, wenn vom Teilbereich semantisch erwartet wird, dass ihm ein weiteres Teilwort oder weitere Teilworte folgen. Beispielsweise kann, wenn der Sprachdecodierer 142 „Spiel” als den Teilbereich 312 der Spracheingabe 310 empfängt, der Sprachdecodierer 142 bestimmen, dass vom Teilbereich 312 semantisch erwartet wird, dass ihm ein Wort oder Worte folgen, weil dem Teilbereich 312 semantisch eine Teilwort oder Teilworte, wie beispielsweise „Spiel-er”, „Spiel-platz” und „Entscheidungs-spiel”, folgen können. Der Sprachdecodierer bestimmt dann, dass der Teilbereich 311 die Stabilitätskriterien nicht erfüllt. Bei einigen Implementierungen kann, wenn der Sprachdecodierer 142 „Spieler” als einen Teilbereich einer Spracheingabe empfängt, der Sprachdecodierer 142 bestimmen, dass vom Teilbereich „Spieler” semantisch nicht erwartet wird, das ihm ein Wort oder Worte folgen. Der Sprachdecodierer 142 kann dann bestimmen, dass der Teilbereich „Spieler” die Stabilitätskriterien für ein Segment erfüllt. Der Sprachdecodierer 142 kann dann das Segment zum Kontexteinstellmodul 146 liefern, um die Gewichtungen für Kontexte einzustellen.
  • Bei einigen Implementierungen können die Stabilitätskriterien eine Zeitverzögerung enthalten, die nach einem Teilbereich der Spracheingabe 310 auftritt. Der Sprachdecodierer 142 kann bestimmen, dass der Teilbereich der Spracheingabe 310 die Stabilitätskriterien erfüllt, wenn die Zeitverzögerung nach dem Teilbereich der Spracheingabe 310 eine Dauer hat, die einen Schwellen-Verzögerungswert erfüllt. Wenn der Sprachdecodierer 142 den Teilbereich der Spracheingabe 310 empfängt, kann der Sprachdecodierer 142 die Zeitverzögerung ab dem Moment, zu welchem der Teilbereich empfangen wird, bis zu dem Moment, zu welchem der folgende Teilbereich der Spracheingabe 310 empfangen wird, messen. Der Sprachdecodierer 142 kann dann bestimmen, dass der Teilbereich die Stabilitätskriterien erfüllt, wenn die Zeitverzögerung den Schwellen-Verzögerungswert übersteigt.
  • 4 ist ein Ablaufdiagramm eines beispielhaften Verfahrens 400 zum Bestimmen einer Transkription für eine empfangene Spracheingabe. Der Annehmlichkeit halber wird das Verfahren 400 in Bezug auf ein System beschrieben werden, das das Verfahren 400 durchführt.
  • Das System verarbeitet (410) die empfangene Spracheingabe in der Reihenfolge, in welcher sie gesprochen wird, um einen Teilbereich der Spracheingabe als ein erstes Segment zu bestimmen. Das System erhält (420) eine erste Kandidatentranskription für das erste Segment der Spracheingabe. Um die erste Kandidatentranskription für das erste Segment zu erhalten, kann das System bestimmen, ob das erste Segment der Spracheingabe Stabilitätskriterien erfüllt. Wenn das erste Segment der Spracheingabe die Stabilitätskriterien erfüllt, kann das System die erste Kandidatentranskription für das erste Segment erhalten. Wenn das erste Segment der Spracheingabe die Stabilitätskriterien nicht erfüllt, kann das System die erste Kandidatentranskription nicht erhalten. Dann kann das System einen oder mehrere Teilbereiche der Spracheingabe empfangen und ein neues Segment der Spracheingabe erkennen, um zu bestimmen, ob das neue erste Segment der Spracheingabe die Stabilitätskriterien erfüllt. Das System kann das Verfahren 300 verwenden, um zu bestimmen, dass das erste Segment der Spracheingabe die Stabilitätskriterien erfüllt, wie es oben in Bezug auf 3 beschrieben ist.
  • Das System bestimmt (430) einen oder mehrere Kontexte, die für das erste Segment relevant sind, aus einer Sammlung von Kontexten. Bestimmte Kontexte, die relevant für das erste Segment sind, können basierend auf dem durch das erste Segment gelieferten Kontext bestimmt werden. Beispielsweise können bestimmte Schlüsselworte des ersten Segments als relevant für bestimmte Kontexte identifiziert werden. Nimmt man wieder Bezug auf 2, kann das System den mit „Tennisspieler” assoziierten Kontext und den mit „Basketballspieler” assoziierten Kontext identifizieren. Der Tennisspieler-Kontext kann mit Schlüsselworten, wie beispielsweise „Roger Federer”, „Rafael Nadal” und „Novak Djokovic”, assoziiert sein. Der Basketballspieler-Kontext kann mit Schlüsselworten, wie beispielsweise „Roger Bederer”, „Rafael Madall” und „Novak Jocovich”, assoziiert sein. Das System kann konfiguriert sein, um eine Gewichtung für jeden der Kontexte zu speichern. Wenn das System die Kontexte identifiziert, kann das System auch die jeweiligen Gewichtungen für die Kontexte identifizieren. Die jeweiligen Gewichtungen für die Kontexte zeigen das Ausmaß an, bis zu welchem eine oder mehrere Transkriptionen von Spracheingaben mit den Kontexten assoziiert sind.
  • Das System stellt die jeweiligen Gewichtungen für jeden von dem einen oder den mehreren Kontexten ein (440). Das System kann die jeweilige Gewichtung für jeden der Kontexte basierend auf der ersten Kandidatentranskription der Spracheingabe einstellen. Beispielsweise enthält die erste Kandidatentranskription „wie viele Siege für den Tennisspieler” der Spracheingabe den Ausdruck „Tennisspieler”. Basierend auf dem Ausdruck „Tennisspieler” der ersten Kandidatentranskription kann das System konfiguriert sein, um die Gewichtungen der Kontexte einzustellen. Beispielsweise kann das System die Gewichtung für den Kontext z. B. von „10” auf ”90” erhöhen, kann die Gewichtung für den Kontext z. B. von „90” auf „10” verringern oder kann eine Kombination aus Erhöhung und Verringerung von Gewichtungen durchführen.
  • Bei einigen Implementierungen wird nur die Gewichtung des relevantesten Kontextes eingestellt (z. B. erhöht), während alle anderen Kontexte konstant gehalten werden. Bei einigen anderen Implementierungen werden alle anderen Kontexte verringert, während der relevanteste Kontext konstant gehalten wird. Weiterhin kann irgendeine geeignete Kombination aus beidem auftreten. Beispielsweise kann der relevante Kontext um einen anderen Betrag erhöht werden als ein anderer Kontext verringert wird.
  • Das System bestimmt (450) eine zweite Kandidatentranskription für ein zweites Segment der Spracheingabe basierend teilweise auf den eingestellten Gewichtungen. In Reaktion auf ein Einstellen der jeweiligen Gewichtungen für die Kontexte kann das System die eingestellten Gewichtungen für die Kontexte einem Updaten unterziehen. Beispielsweise kann das System, basierend auf den eingestellten Gewichtungen, dem ersten Kontext mehr Gewichtung zuteilen, der als relevanter für das erste Segment identifiziert ist, als einem zweiten Kontext. Basierend auf dem eingestellten gewichteten Kontext kann der Sprachdecodierer die zweite Kandidatentranskription für das zweite Segment der Spracheingabe bestimmen. Dieser Prozess dauert an, bis es keine zusätzlichen Teilbereiche der Spracheingabe gibt, die zu erkennen sind.
  • 5 ist ein Ablaufdiagramm eines beispielhaften Verfahrens 500 zum Bereitstellen einer Sprachsuche. Der Annehmlichkeit halber wird das Verfahren 500 in Bezug auf ein System beschrieben werden, das das Verfahren 500 durchführt.
  • Das System empfängt (510) eine Spracheingabe. Das System kann konfiguriert sein, um die Spracheingabe von einem Anwender zu empfangen. Das System kann jedes Segment der Spracheingabe in Echtzeit empfangen, während der Anwender spricht.
  • Wenn das System die Spracheingabe empfängt, bestimmt (520) das System eine Transkription für die Spracheingabe. Das System bestimmt das Transkript beispielsweise wie es oben in Bezug auf 4 beschrieben ist. Wenn das System einmal die gesamte Transkription der Spracheingabe bestimmt (520), liefert (530) das System die Transkription der Spracheingabe zur Ausgabe. Das System kann die Ausgabe als eine Text-Suchanfrage liefern. Das System kann die Suchergebnisse zum Anwender liefern. Bei einigen Implementierungen kann das System eine Anzeigeschnittstelle zur Verfügung stellen, um die Suchergebnisse dem Anwender zu präsentieren. Bei anderen Implementierungen kann das System eine Audioschnittstelle zur Verfügung stellen, um die Suchergebnisse dem Anwender zu präsentieren.
  • Ausführungsformen des Gegenstands und der Operationen, die in dieser Beschreibung beschrieben sind, können in einer digitalen elektronischen Schaltung oder in Computersoftware, -firmware oder -hardware implementiert sein, einschließlich der Strukturen, die in dieser Beschreibung offenbart sind, und ihrer strukturellen Äquivalente, oder in Kombinationen von einem oder mehreren von ihnen. Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstands können als ein oder mehrere Computerprogramme implementiert sein, z. B. ein oder mehrere Module von Computerprogrammanweisungen, codiert auf Computerspeichermedien zur Ausführung durch eine Datenverarbeitungsvorrichtung oder um deren Betrieb zu steuern. Alternativ oder zusätzlich können die Programmanweisungen auf einem künstlich erzeugten verbreiteten Signal codiert sein, z. B. einem maschinenerzeugten elektrischen, optischen oder elektromagnetischen Signal, das erzeugt ist, um Information zum Senden zu einer geeigneten Empfängervorrichtung zur Ausführung durch eine Datenverarbeitungsvorrichtung zu codieren. Ein Computerspeichermedium kann eine computerlesbare Speichervorrichtung, ein computerlesbares Substrat, eine Speicheranordnung oder -vorrichtung für direkten oder seriellen Zugriff oder eine Kombination aus einer oder mehreren von ihnen sein oder darin enthalten sein. Darüber hinaus kann, während ein Computerspeichermedium kein verbreitetes Signal ist, ein Computerspeichermedium eine Quelle oder ein Zielort von in einem künstlich erzeugten ausgebreiteten Signal codierten Computerprogrammanweisungen sein. Das Computerspeichermedium kann auch eine oder mehrere separate physikalische Komponenten oder Medien sein oder darin enthalten sein, wie z. B. mehrere CDs, Platten bzw. Disketten oder andere Speichervorrichtungen.
  • Die in dieser Beschreibung beschriebenen Operationen können als Operationen implementiert sein, die durch eine Datenverarbeitungsvorrichtung an Daten durchgeführt werden, die auf einer oder mehreren computerlesbaren Speichervorrichtungen gespeichert sind oder von anderen Quellen empfangen sind.
  • Der Ausdruck „Datenverarbeitungsvorrichtung” umfasst alle Arten von Geräten, Vorrichtungen und Maschinen zum Verarbeiten von Daten, einschließlich beispielsweise einer programmierbaren Verarbeitungseinheit, eines Computers, eines Systems auf einem Chip, eines Personalcomputersystems, eines Desktopcomputers, eines Laptops, eines Notebooks, eines Netbookcomputers, eines Großrechner-Computersystems, eines in der Hand gehaltenen Computers, einer Workstation, eines Network-Computers, eines Anwendungsservers, einer Speichervorrichtung, einer Unterhaltungselektronikvorrichtung, wie beispielsweise einer Kamera, eines Camcorders, eines Digitalempfängers, einer mobilen Vorrichtung, einer Videospielkonsole, einer in der Hand gehaltenen Videospielvorrichtung, einer peripheren Vorrichtung, wie beispielsweise eines Schalters, eines Modems, eines Routers oder allgemein irgendeines anderen Typs von Computer- oder Elektronikvorrichtung, oder von mehreren oder Kombinationen von den vorangehenden. Die Vorrichtung kann seine spezielle Logikschaltung enthalten, wie z. B. eine im Feld programmierbare (Logik-)Gatter-Anordnung (FPGA = Field Programmable Gate Array) oder eine anwendungsspezifische integrierte Schaltung (ASIC = Application-Specific Integrated Circuit). Die Vorrichtung kann auch, zusätzlich zur Hardware, einen Code enthalten, der eine Ausführungsumgebung für das in Frage stehende Computerprogramm erzeugt, wie z. B. einen Code, der Prozessorfirmware, einen Protokollstapel, eine Datenmanagementsystem, ein Betriebssystem, eine Kreuzplattform-Laufzeitumgebung, eine virtuelle Maschine oder eine Kombination von einem oder mehreren von ihnen bildet.
  • Ein Computerprogramm (das auch als ein Programm, Software, Softwareanwendung, Skript oder Code bekannt ist) kann in irgendeiner Form einer Programmiersprache geschrieben sein, einschließlich kompilierter oder interpretierter Sprachen, deklarativer oder prozeduraler Sprache, und es kann in irgendeiner Form genutzt werden, einschließlich als alleinstehendes Programm oder als Modul, Komponente, Unterprogramm, Objekt oder eine andere Einheit, die zur Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm kann, muss aber nicht, einer Datei in einem Dateiensystem entsprechen. Ein Programm kann in einem Teilbereich einer Datei gespeichert sein, die andere Programme oder Daten hält (z. B. ein oder mehrere Skripte, die in einem Auszeichnungssprachendokument gespeichert sind), in einer einzelnen Datei, die für das in Frage stehende Programm bestimmt ist, oder in mehreren koordinierten Dateien (z. B. Dateien, die ein oder mehrere Module, Unterprogramme oder Teilbereiche eines Codes speichern). Ein Computerprogramm kann genutzt werden, um auf einem Computer oder auf mehreren Computern, die an einer Stelle oder über mehrere Stellen verteilt lokalisiert und durch ein Kommunikationsnetzwerk miteinander verbunden sind, ausgeführt zu werden.
  • Die in dieser Beschreibung beschriebenen Prozesse und logischen Abläufe können durch eine oder mehrere programmierbare Verarbeitungseinheiten durchgeführt werden, die ein oder mehrere Computerprogramme ausführen, um Aktionen durch Bearbeiten von eingegebenen Daten und Erzeugen einer Ausgabe durchzuführen. Die Prozesse und logischen Abläufe können auch durch eine spezielle Logikschaltung durchgeführt werden und eine Vorrichtung kann auch als solche implementiert werden, wie z. B. eine im Feld programmierbare (Logik-)Gatter-Anordnung (FPGA = Field Programmable Gate Array) oder eine anwendungsspezifische integrierte Schaltung (ASIC = Application-Specific Integrated Circuit).
  • Verarbeitungseinheiten, die für die Ausführung eines Computerprogramms geeignet sind, enthalten beispielsweise sowohl allgemeine als auch spezielle Mikroprozessoren, und irgendeine oder mehrere Verarbeitungseinheiten von irgendeiner Art von digitalem Computer. Allgemein wird eine Verarbeitungseinheit Anweisungen und Daten von einem Nurlesespeicher oder einem Direktzugriffsspeicher oder beiden empfangen. Die wesentlichen Elemente eines Computers sind eine Verarbeitungseinheit zum Durchführen von Aktionen gemäß Anweisungen und eine oder mehrere Speichervorrichtungen zum Speichern von Anweisungen und Daten. Allgemein wird ein Computer auch eine oder mehrere Massenspeichervorrichtungen zum Speichern von Daten enthalten oder operativ damit gekoppelt sein, um Daten von diesen zu empfangen oder Daten zu diesen zu transferieren oder beides, wie z. B. magnetische, magnetooptische Platten oder optische Platten. Jedoch muss ein Computer solche Vorrichtungen nicht haben. Darüber hinaus kann ein Computer in einer anderen Vorrichtung eingebettet sein, wie z. B. einem Mobiltelefon, einem persönlichen digitalen Assistenten (PDA), einem mobilen Audio- oder Videoabspielgerät, einer Spielkonsole, einem Empfänger für das globale Positioniersystem (GPS), einer Netzroutingvorrichtung oder einer portablen Speichervorrichtung (wie z. B. einem Flashlaufwerk mit universellem seriellen Bus (USB)), um nur einige zu nennen. Vorrichtungen, die zum Speichern von Computerprogrammanweisungen und Daten geeignet sind, enthalten alle Formen eines nichtflüchtigen Speichers, Medien und Speichervorrichtungen, einschließlich beispielsweise Halbleiterspeichervorrichtungen, z. B. EPROM, EEPROM und Flashspeichervorrichtungen; Magnetplatten, z. B. interne Festplatten oder entfernbare Platten; magnetooptische Platten; und CD-ROM- und DVD-ROM-Scheiben. Die Verarbeitungseinheit und der Speicher können durch eine spezielle Logikschaltung ergänzt oder in eine solche eingebaut sein.
  • Um für eine Interaktion mit einem Anwender zu sorgen, können Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstands auf einem Computer implementiert sein, der eine Anzeigevorrichtung, z. B. einen CRT-(Kathodenstrahlröhren-) oder LCD-(Flüssigkristallanzeige-)Monitor, zum Anzeigen von Information zum Anwender und eine Tastatur und eine Zeigevorrichtung, z. B. eine Maus oder einen Trackball, wodurch der Anwender eine Eingabe zum Computer liefern kann, hat. Andere Arten von Vorrichtungen können ebenso gut verwendet werden, um für eine Interaktion mit einem Anwender zu sorgen; beispielsweise kann eine zum Anwender gelieferte Rückkopplung irgendeine Form einer sensorischen Rückkopplung sein, z. B. eine visuelle Rückkopplung, eine Audio-Rückkopplung oder eine taktile Rückkopplung; und eine Eingabe von einem Anwender kann in irgendeiner Form empfangen werden, einschließlich akustischer, sprachlicher oder taktiler Eingabe. Zusätzlich kann ein Computer mit einem Anwender durch Senden von Dokumenten zu und Empfangen von Dokumenten von einer Vorrichtung interagieren, die durch den Anwender verwendet wird; wie beispielsweise durch Senden von Webseiten zu einem Web-Browser auf einer Clientvorrichtung eines Anwenders in Reaktion auf vom Web-Browser empfangenen Anforderungen.
  • Ausführungsformen des in dieser Beschreibung beschriebenen Gegenstands können in einem Computersystem implementiert sein, das eine Backend-Komponente, z. B. wie einen Datenserver, enthält oder das eine Middleware-Komponente, z. B. einen Anwendungsserver, enthält oder das eine Frontend-Komponente, z. B. eine Client-Computer mit einer grafischen Anwenderschnittstelle oder einem Web-Browser, durch welchen ein Anwender mit einer Implementierung des in dieser Beschreibung beschriebenen Gegenstands interagieren kann, oder eine Routing-Vorrichtung, z. B. einen Netzwerk-Router, oder irgendeine Kombination aus einer oder mehreren von solchen Backend-, Middleware- oder Frontend-Komponenten enthält. Die Komponenten des Systems können durch irgendeine Form oder irgendein Medium von digitaler Datenkommunikation, z. B. einem Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken enthalten ein lokales Netz („LAN”) und ein Weitverkehrsnetz („WAN”), eine Internetz (z. B. das Internet) und Peer-to-Peer-Netze (z. B. Ad-hoc-Peer-to-Peer-Netze).
  • Das Computersystem kann Clients und Server enthalten. Ein Client und ein Server sind allgemein entfernt voneinander und interagieren typischerweise durch ein Kommunikationsnetzwerk. Die Beziehung von Client und Server entsteht mittels Computerprogrammen, die auf den jeweiligen Computer ausführen und eine Client-Server-Beziehung zueinander haben. Bei einigen Ausführungsformen sendet ein Server Daten (z. B. eine HTML-Seite) zu einer Clientvorrichtung (z. B. zu Zwecken eines Anzeigens von Daten zu und eines Empfangens einer Anwendereingabe von einem Anwender, der mit der Clientvorrichtung interagiert). Bei der Clientvorrichtung erzeugte Daten (z. B. ein Ergebnis der Anwenderinteraktion) können von der Clientvorrichtung beim Server empfangen werden.
  • Ein System aus einem oder mehreren Computern kann konfiguriert sein, um bestimmte Aktionen mittels eines Innehabens von Software, Firmware, Hardware oder einer Kombination von ihnen, die auf dem System installiert ist, durchzuführen, das oder die bei einer Operation veranlasst oder veranlassen, dass das System die Aktionen durchführt. Ein oder mehrere Computerprogramme können konfiguriert sein, um bestimmte Aktionen mittels eines Enthaltens von Anweisungen durchzuführen, die dann, wenn sie durch eine Datenverarbeitungsvorrichtung ausgeführt werden, veranlassen, dass die Vorrichtung die Aktionen durchführt.
  • Während diese Beschreibung viele spezifische Implementierungsdetails enthält, sollten diese nicht als Beschränkungen für den Schutzumfang von irgendwelchen Erfindungen oder von dem, was beansprucht ist, ausgelegt werden, sondern vielmehr als Beschreibungen von Merkmalen, die spezifisch für bestimmte Ausführungsformen von bestimmten Erfindungen sind. Gewisse Merkmale, die in dieser Beschreibung im Zusammenhang mit separaten Ausführungsformen beschrieben sind, können auch in Kombination in einer einzigen Ausführungsform implementiert werden. Gegensätzlich dazu können verschiedene Merkmale, die im Zusammenhang mit einer einzigen Ausführungsform beschrieben sind, auch in mehreren Ausführungsformen separat oder in irgendeiner geeigneten Unterkombination implementiert werden. Darüber hinaus können, obwohl Merkmale oben derart beschreiben sein können, dass sie in gewissen Kombinationen agieren, und anfänglich sogar als solches beansprucht sind, ein oder mehrere Merkmale aus einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden, und die beanspruchte Kombination kann zu einer Unterkombination oder einer Variation einer Unterkombination geführt werden.
  • Gleichermaßen sollte, während Operationen in den Zeichnungen in einer besonderen Reihenfolge gezeigt sind, dies nicht als erforderlich verstanden werden, dass solche Operationen in der gezeigten besonderen Reihenfolge oder in einer sequentiellen Reihenfolge durchgeführt werden oder dass alle dargestellten Operationen durchgeführt werden, um erwünschte Ergebnisse zu erreichen. In gewissen Fällen kann Multitasking und Parallelverarbeitung vorteilhaft sein. Darüber hinaus sollte die Trennung von verschiedenen Systemkomponenten bei den oben beschriebenen Ausführungsformen nicht derart verstanden werden, dass eine solche Trennung bei allen Ausführungsformen erforderlich ist, und es sollte verstanden werden, dass die beschriebenen Programmkomponenten und Systeme allgemein zusammen in einem einzigen Softwareprodukt integriert oder in mehrere Softwareprodukte gepackt sein können.
  • Somit sind bestimmte Ausführungsformen des Gegenstands beschrieben worden. Andere Ausführungsformen sind innerhalb des Schutzumfangs der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen vorgetragenen Aktionen in einer anderen Reihenfolge durchgeführt werden und erreichen noch erwünschte Ergebnisse. Zusätzlich erfordern die in den beigefügten Figuren gezeigten Prozesse nicht notwendigerweise die gezeigte besondere Reihenfolge oder sequentielle Reihenfolge, um erwünschte Ergebnisse zu erreichen. Bei bestimmten Implementierungen kann Multitasking und Parallelverarbeitung vorteilhaft sein. Demgemäß sind andere Ausführungsformen innerhalb des Schutzumfangs der folgenden Ansprüche.

Claims (20)

  1. Verfahren, das folgendes aufweist: Empfangen von Daten, die eine Spracheingabe darstellen; Bestimmen einer Transkription für die Spracheingabe, wobei ein Bestimmen der Transkription für die Spracheingabe für eine Vielzahl von Segmenten der Spracheingabe folgendes enthält: Erhalten einer ersten Kandidatentranskription für ein erstes Segment der Spracheingabe; Bestimmen von einem oder mehreren Kontexten, die mit der ersten Kandidatentranskription assoziiert sind; Einstellen einer jeweiligen Gewichtung für jeden von dem einen oder den mehreren Kontexten; und Bestimmen einer zweiten Kandidatentranskription für ein zweites Segment der Spracheingabe basierend zum Teil auf den eingestellten Gewichtungen; und Liefern der Transkription der Vielzahl von Segmenten der Spracheingabe zur Ausgabe.
  2. Verfahren nach Anspruch 1, wobei ein Erhalten einer ersten Kandidatentranskription für ein erstes Segment der Spracheingabe folgendes aufweist: Bestimmen, dass das erste Segment der Spracheingabe Stabilitätskriterien erfüllt; und in Reaktion auf ein Bestimmen, dass das erste Segment der Spracheingabe Stabilitätskriterien erfüllt, Erhalten der ersten Kandidatentranskription für das erste Segment der Spracheingabe.
  3. Verfahren nach Anspruch 2, wobei die Stabilitätskriterien ein oder mehrere semantische Merkmale des ersten Segments der Spracheingabe enthalten.
  4. Verfahren nach Anspruch 2 oder 3, wobei die Stabilitätskriterien eine Zeitverzögerung enthalten, die nach dem ersten Segment der Spracheingabe auftritt.
  5. Verfahren nach einem der Ansprüche 1–4, wobei das zweite Segment der Spracheingabe nach dem ersten Segment der Spracheingabe auftritt.
  6. Verfahren nach einem der Ansprüche 1–5, wobei der eine oder die mehreren Kontexte von einer Anwendervorrichtung empfangen werden.
  7. Verfahren nach Anspruch 6, wobei der eine oder die mehreren Kontexte Daten enthalten, die einen geografischen Standort eines Anwenders, eine Suchhistorie eines Anwenders, Interessen eines Anwenders oder eine Aktivität eines Anwenders enthalten.
  8. Verfahren nach einem der Ansprüche 1–7, das folgendes aufweist: Speichern einer Vielzahl von Punkten bzw. Treffern für eine Vielzahl von Kontexten; und in Reaktion auf ein Einstellen einer jeweiligen Gewichtung für jeden des einen oder der mehreren Kontexte Unterziehen der eingestellten Punkte für den einen oder die mehreren Kontexte einem Updaten.
  9. Verfahren nach einem der Ansprüche 1 bis 8, das weiterhin folgendes aufweist: Liefern der Ausgabe als Suchanfrage.
  10. Verfahren nach Anspruch 1, wobei die erste Kandidatentranskription ein Wort, eine Teilwort oder eine Gruppe von Worten aufweist.
  11. System, das folgendes aufweist: einen oder mehrere Computer und eine oder mehrere Speichervorrichtungen, die Anweisungen speichern, die in Betrieb versetzbar sind, wenn sie durch den einen oder die mehreren Computer ausgeführt werden, um zu veranlassen, dass der eine oder die mehreren Computer Operationen durchführen, die folgendes aufweisen: Empfangen von Daten, die eine Spracheingabe darstellen; Bestimmen einer Transkription für die Spracheingabe, wobei ein Bestimmen der Transkription für die Spracheingabe für eine Vielzahl von Segmenten der Spracheingabe folgendes enthält: Erhalten einer ersten Kandidatentranskription für ein erstes Segment der Spracheingabe; Bestimmen von einem oder mehreren Kontexten, die mit der ersten Kandidatentranskription assoziiert sind; Einstellen einer jeweiligen Gewichtung für jeden von dem einen oder den mehreren Kontexten; und Bestimmen einer zweiten Kandidatentranskription für ein zweites Segment der Spracheingabe basierend zum Teil auf den eingestellten Gewichtungen; und Liefern der Transkription der Vielzahl von Segmenten der Spracheingabe zur Ausgabe.
  12. System nach Anspruch 11, wobei ein Erhalten einer ersten Kandidatentranskription für ein erstes Segment der Spracheingabe folgendes aufweist: Bestimmen, dass das erste Segment der Spracheingabe Stabilitätskriterien erfüllt; und in Reaktion auf ein Bestimmen, dass das erste Segment der Spracheingabe Stabilitätskriterien erfüllt, Erhalten der ersten Kandidatentranskription für das erste Segment der Spracheingabe.
  13. System nach Anspruch 12, wobei die Stabilitätskriterien ein oder mehrere semantische Merkmale des ersten Segments der Spracheingabe enthalten.
  14. System nach Anspruch 12 oder 13, wobei die Stabilitätskriterien eine Zeitverzögerung enthalten, die nach dem ersten Segment der Spracheingabe auftritt.
  15. System nach einem der Ansprüche 11–14, wobei das zweite Segment der Spracheingabe nach dem ersten Segment der Spracheingabe auftritt.
  16. System nach einem der Ansprüche 11–14, wobei der eine oder die mehreren Kontexte von einer Anwendervorrichtung empfangen werden.
  17. System nach Anspruch 16, wobei der eine oder die mehreren Kontexte Daten enthalten, die einen geografischen Standort eines Anwenders, eine Suchhistorie eines Anwenders, Interessen eines Anwenders oder eine Aktivität eines Anwenders enthalten.
  18. System nach einem der Ansprüche 11–17, wobei der eine oder die mehreren Computer konfiguriert sind, um Operationen durchzuführen, die folgendes aufweisen: Speichern einer Vielzahl von Punkten bzw. Treffern für eine Vielzahl von Kontexten; und in Reaktion auf ein Einstellen einer jeweiligen Gewichtung für jeden des einen oder der mehreren Kontexte Unterziehen der eingestellten Punkte für den einen oder die mehreren Kontexte einem Updaten.
  19. System nach einem der Ansprüche 11 bis 18, wobei der eine oder die mehreren Computer konfiguriert sind, um Operationen durchzuführen, die folgendes aufweisen: Liefern der Ausgabe als eine Suchanfrage.
  20. Computerlesbares Medium, das Software speichert, die Anweisungen aufweist, die durch einen oder mehrere Computer ausführbar sind, die auf eine solcher Ausführung hin veranlassen, dass der eine oder die mehreren Computer Operationen durchführen, die ein Verfahren aufweisen, wie es in einem der Ansprüche 1 bis 10 definiert ist.
DE102016125831.8A 2016-01-06 2016-12-29 Spracherkennungssystem und -verfahren Active DE102016125831B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/989,642 2016-01-06
US14/989,642 US10049666B2 (en) 2016-01-06 2016-01-06 Voice recognition system

Publications (2)

Publication Number Publication Date
DE102016125831A1 true DE102016125831A1 (de) 2017-07-06
DE102016125831B4 DE102016125831B4 (de) 2022-02-03

Family

ID=57589199

Family Applications (2)

Application Number Title Priority Date Filing Date
DE102016125831.8A Active DE102016125831B4 (de) 2016-01-06 2016-12-29 Spracherkennungssystem und -verfahren
DE202016008203.6U Active DE202016008203U1 (de) 2016-01-06 2016-12-29 Spracherkennungssystem

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE202016008203.6U Active DE202016008203U1 (de) 2016-01-06 2016-12-29 Spracherkennungssystem

Country Status (7)

Country Link
US (5) US10049666B2 (de)
EP (2) EP3822965A1 (de)
JP (4) JP6637604B2 (de)
KR (2) KR102268087B1 (de)
CN (2) CN107039040B (de)
DE (2) DE102016125831B4 (de)
WO (1) WO2017119965A1 (de)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049666B2 (en) * 2016-01-06 2018-08-14 Google Llc Voice recognition system
US10743101B2 (en) 2016-02-22 2020-08-11 Sonos, Inc. Content mixing
US9947316B2 (en) 2016-02-22 2018-04-17 Sonos, Inc. Voice control of a media playback system
US10509626B2 (en) 2016-02-22 2019-12-17 Sonos, Inc Handling of loss of pairing between networked devices
US10264030B2 (en) 2016-02-22 2019-04-16 Sonos, Inc. Networked microphone device control
US10095470B2 (en) 2016-02-22 2018-10-09 Sonos, Inc. Audio response playback
US9965247B2 (en) 2016-02-22 2018-05-08 Sonos, Inc. Voice controlled media playback system based on user profile
US10142754B2 (en) 2016-02-22 2018-11-27 Sonos, Inc. Sensor on moving component of transducer
US9978390B2 (en) 2016-06-09 2018-05-22 Sonos, Inc. Dynamic player selection for audio signal processing
US10152969B2 (en) 2016-07-15 2018-12-11 Sonos, Inc. Voice detection by multiple devices
US10134399B2 (en) 2016-07-15 2018-11-20 Sonos, Inc. Contextualization of voice inputs
US9693164B1 (en) 2016-08-05 2017-06-27 Sonos, Inc. Determining direction of networked microphone device relative to audio playback device
US10115400B2 (en) 2016-08-05 2018-10-30 Sonos, Inc. Multiple voice services
US9794720B1 (en) 2016-09-22 2017-10-17 Sonos, Inc. Acoustic position measurement
US9942678B1 (en) 2016-09-27 2018-04-10 Sonos, Inc. Audio playback settings for voice interaction
US9743204B1 (en) 2016-09-30 2017-08-22 Sonos, Inc. Multi-orientation playback device microphones
US10181323B2 (en) 2016-10-19 2019-01-15 Sonos, Inc. Arbitration-based voice recognition
CN108447471B (zh) 2017-02-15 2021-09-10 腾讯科技(深圳)有限公司 语音识别方法及语音识别装置
US11276395B1 (en) * 2017-03-10 2022-03-15 Amazon Technologies, Inc. Voice-based parameter assignment for voice-capturing devices
US11183181B2 (en) 2017-03-27 2021-11-23 Sonos, Inc. Systems and methods of multiple voice services
US10475449B2 (en) 2017-08-07 2019-11-12 Sonos, Inc. Wake-word detection suppression
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
US10051366B1 (en) 2017-09-28 2018-08-14 Sonos, Inc. Three-dimensional beam forming with a microphone array
CN107644095A (zh) * 2017-09-28 2018-01-30 百度在线网络技术(北京)有限公司 用于搜索信息的方法和装置
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
US10880650B2 (en) 2017-12-10 2020-12-29 Sonos, Inc. Network microphone devices with automatic do not disturb actuation capabilities
US10818290B2 (en) 2017-12-11 2020-10-27 Sonos, Inc. Home graph
CN108182943B (zh) * 2017-12-29 2021-03-26 北京奇艺世纪科技有限公司 一种智能设备控制方法、装置及智能设备
US11343614B2 (en) 2018-01-31 2022-05-24 Sonos, Inc. Device designation of playback and network microphone device arrangements
US11175880B2 (en) 2018-05-10 2021-11-16 Sonos, Inc. Systems and methods for voice-assisted media content selection
US10847178B2 (en) 2018-05-18 2020-11-24 Sonos, Inc. Linear filtering for noise-suppressed speech detection
US10959029B2 (en) 2018-05-25 2021-03-23 Sonos, Inc. Determining and adapting to changes in microphone performance of playback devices
US10629205B2 (en) * 2018-06-12 2020-04-21 International Business Machines Corporation Identifying an accurate transcription from probabilistic inputs
US10681460B2 (en) 2018-06-28 2020-06-09 Sonos, Inc. Systems and methods for associating playback devices with voice assistant services
US11076035B2 (en) 2018-08-28 2021-07-27 Sonos, Inc. Do not disturb feature for audio notifications
US10461710B1 (en) 2018-08-28 2019-10-29 Sonos, Inc. Media playback system with maximum volume setting
US10587430B1 (en) 2018-09-14 2020-03-10 Sonos, Inc. Networked devices, systems, and methods for associating playback devices based on sound codes
US10878811B2 (en) 2018-09-14 2020-12-29 Sonos, Inc. Networked devices, systems, and methods for intelligently deactivating wake-word engines
US11024331B2 (en) 2018-09-21 2021-06-01 Sonos, Inc. Voice detection optimization using sound metadata
US10811015B2 (en) 2018-09-25 2020-10-20 Sonos, Inc. Voice detection optimization based on selected voice assistant service
US11100923B2 (en) 2018-09-28 2021-08-24 Sonos, Inc. Systems and methods for selective wake word detection using neural network models
US10692518B2 (en) 2018-09-29 2020-06-23 Sonos, Inc. Linear filtering for noise-suppressed speech detection via multiple network microphone devices
US11627012B2 (en) 2018-10-09 2023-04-11 NewTekSol, LLC Home automation management system
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
KR20210083331A (ko) * 2018-11-30 2021-07-06 구글 엘엘씨 스피치 프로세싱
US11183183B2 (en) 2018-12-07 2021-11-23 Sonos, Inc. Systems and methods of operating media playback systems having multiple voice assistant services
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
US11120794B2 (en) 2019-05-03 2021-09-14 Sonos, Inc. Voice assistant persistence across multiple network microphone devices
US10586540B1 (en) 2019-06-12 2020-03-10 Sonos, Inc. Network microphone device with command keyword conditioning
US11200894B2 (en) 2019-06-12 2021-12-14 Sonos, Inc. Network microphone device with command keyword eventing
US11361756B2 (en) 2019-06-12 2022-06-14 Sonos, Inc. Conditional wake word eventing based on environment
US11138969B2 (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
US11138975B2 (en) 2019-07-31 2021-10-05 Sonos, Inc. Locally distributed keyword detection
WO2021040092A1 (ko) 2019-08-29 2021-03-04 엘지전자 주식회사 음성 인식 서비스 제공 방법 및 장치
US11189286B2 (en) 2019-10-22 2021-11-30 Sonos, Inc. VAS toggle based on device orientation
US11610588B1 (en) * 2019-10-28 2023-03-21 Meta Platforms, Inc. Generating contextually relevant text transcripts of voice recordings within a message thread
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
US11556307B2 (en) 2020-01-31 2023-01-17 Sonos, Inc. Local voice data processing
US11308958B2 (en) 2020-02-07 2022-04-19 Sonos, Inc. Localized wakeword verification
US11482224B2 (en) 2020-05-20 2022-10-25 Sonos, Inc. Command keywords with input detection windowing
US11308962B2 (en) 2020-05-20 2022-04-19 Sonos, Inc. Input detection windowing
US11727919B2 (en) 2020-05-20 2023-08-15 Sonos, Inc. Memory allocation for keyword spotting engines
US11698771B2 (en) 2020-08-25 2023-07-11 Sonos, Inc. Vocal guidance engines for playback devices
US11551700B2 (en) 2021-01-25 2023-01-10 Sonos, Inc. Systems and methods for power-efficient keyword detection

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3254994B2 (ja) * 1995-03-01 2002-02-12 セイコーエプソン株式会社 音声認識対話装置および音声認識対話処理方法
US6418431B1 (en) 1998-03-30 2002-07-09 Microsoft Corporation Information retrieval and speech recognition based on language models
US6360201B1 (en) * 1999-06-08 2002-03-19 International Business Machines Corp. Method and apparatus for activating and deactivating auxiliary topic libraries in a speech dictation system
US6513006B2 (en) * 1999-08-26 2003-01-28 Matsushita Electronic Industrial Co., Ltd. Automatic control of household activity using speech recognition and natural language
US20020157116A1 (en) * 2000-07-28 2002-10-24 Koninklijke Philips Electronics N.V. Context and content based information processing for multimedia segmentation and indexing
JP3581648B2 (ja) * 2000-11-27 2004-10-27 キヤノン株式会社 音声認識システム、情報処理装置及びそれらの制御方法、プログラム
AU2003278431A1 (en) * 2002-11-22 2004-06-18 Koninklijke Philips Electronics N.V. Speech recognition device and method
KR20040055417A (ko) * 2002-12-21 2004-06-26 한국전자통신연구원 대화체 연속음성인식 장치 및 방법
WO2005122143A1 (ja) 2004-06-08 2005-12-22 Matsushita Electric Industrial Co., Ltd. 音声認識装置および音声認識方法
US7433819B2 (en) * 2004-09-10 2008-10-07 Scientific Learning Corporation Assessing fluency based on elapsed time
US7590536B2 (en) * 2005-10-07 2009-09-15 Nuance Communications, Inc. Voice language model adjustment based on user affinity
KR100755677B1 (ko) * 2005-11-02 2007-09-05 삼성전자주식회사 주제 영역 검출을 이용한 대화체 음성 인식 장치 및 방법
CN101266793B (zh) 2007-03-14 2011-02-02 财团法人工业技术研究院 通过对话回合间上下文关系来减少辨识错误的装置与方法
US8788267B2 (en) * 2009-09-10 2014-07-22 Mitsubishi Electric Research Laboratories, Inc. Multi-purpose contextual control
US8417530B1 (en) 2010-08-20 2013-04-09 Google Inc. Accent-influenced search results
IL209008A (en) * 2010-10-31 2015-09-24 Verint Systems Ltd A system and method for analyzing ip traffic of targets
US8352245B1 (en) * 2010-12-30 2013-01-08 Google Inc. Adjusting language models
US8296142B2 (en) * 2011-01-21 2012-10-23 Google Inc. Speech recognition using dock context
US9159324B2 (en) 2011-07-01 2015-10-13 Qualcomm Incorporated Identifying people that are proximate to a mobile device user via social graphs, speech models, and user context
US8650031B1 (en) * 2011-07-31 2014-02-11 Nuance Communications, Inc. Accuracy improvement of spoken queries transcription using co-occurrence information
EP2575128A3 (de) * 2011-09-30 2013-08-14 Apple Inc. Benutzung von Kontextinformation um die Verarbeitung von Kommandos in einem virtuellen Assistenten zu ermöglichen
US9256396B2 (en) * 2011-10-10 2016-02-09 Microsoft Technology Licensing, Llc Speech recognition for context switching
US8909512B2 (en) * 2011-11-01 2014-12-09 Google Inc. Enhanced stability prediction for incrementally generated speech recognition hypotheses based on an age of a hypothesis
US8805684B1 (en) 2012-05-31 2014-08-12 Google Inc. Distributed speaker adaptation
US8571859B1 (en) 2012-05-31 2013-10-29 Google Inc. Multi-stage speaker adaptation
US8515750B1 (en) 2012-06-05 2013-08-20 Google Inc. Realtime acoustic adaptation using stability measures
US9043205B2 (en) 2012-06-21 2015-05-26 Google Inc. Dynamic language model
US8880398B1 (en) 2012-07-13 2014-11-04 Google Inc. Localized speech recognition with offload
US8484017B1 (en) * 2012-09-10 2013-07-09 Google Inc. Identifying media content
WO2014039106A1 (en) * 2012-09-10 2014-03-13 Google Inc. Answering questions using environmental context
US20140122069A1 (en) * 2012-10-30 2014-05-01 International Business Machines Corporation Automatic Speech Recognition Accuracy Improvement Through Utilization of Context Analysis
EP2912567A4 (de) * 2012-12-11 2016-05-18 Nuance Communications Inc System und verfahren für empfehlung eines virtuellen agenten für mehrere personen
CN103871424A (zh) * 2012-12-13 2014-06-18 上海八方视界网络科技有限公司 一种基于贝叶斯信息准则的线上说话人聚类分析方法
CN103064936B (zh) * 2012-12-24 2018-03-30 北京百度网讯科技有限公司 一种基于语音输入的图像信息提取分析方法及装置
JP2014240940A (ja) * 2013-06-12 2014-12-25 株式会社東芝 書き起こし支援装置、方法、及びプログラム
EP2862164B1 (de) * 2013-08-23 2017-05-31 Nuance Communications, Inc. Mehrsträngige automatische spracherkennung
KR101912177B1 (ko) 2013-11-15 2018-10-26 인텔 코포레이션 음성 인식 동적 사전을 유지하기 위한 시스템 및 방법
WO2015122143A1 (ja) * 2014-02-13 2015-08-20 日本電気株式会社 通信システム、通信装置、通信方法及びプログラムが格納された非一時的なコンピュータ可読媒体
US9679558B2 (en) * 2014-05-15 2017-06-13 Microsoft Technology Licensing, Llc Language modeling for conversational understanding domains using semantic web resources
US10628483B1 (en) * 2014-08-07 2020-04-21 Amazon Technologies, Inc. Entity resolution with ranking
US9552816B2 (en) * 2014-12-19 2017-01-24 Amazon Technologies, Inc. Application focus in speech-based systems
US9805713B2 (en) * 2015-03-13 2017-10-31 Google Inc. Addressing missing features in models
US9966073B2 (en) * 2015-05-27 2018-05-08 Google Llc Context-sensitive dynamic update of voice to text model in a voice-enabled electronic device
US10491967B1 (en) * 2015-12-21 2019-11-26 Amazon Technologies, Inc. Integrating a live streaming video service with external computing systems
US10049666B2 (en) * 2016-01-06 2018-08-14 Google Llc Voice recognition system

Also Published As

Publication number Publication date
EP3378061B1 (de) 2021-01-06
US20200227046A1 (en) 2020-07-16
JP2021182168A (ja) 2021-11-25
EP3378061A1 (de) 2018-09-26
JP2023099706A (ja) 2023-07-13
KR102268087B1 (ko) 2021-06-22
DE202016008203U1 (de) 2017-04-27
CN107039040B (zh) 2021-02-12
DE102016125831B4 (de) 2022-02-03
KR20200103876A (ko) 2020-09-02
JP6637604B2 (ja) 2020-01-29
CN107039040A (zh) 2017-08-11
US10269354B2 (en) 2019-04-23
EP3822965A1 (de) 2021-05-19
US10049666B2 (en) 2018-08-14
US20180190293A1 (en) 2018-07-05
KR20180091056A (ko) 2018-08-14
CN112992146A (zh) 2021-06-18
JP2020042313A (ja) 2020-03-19
US11410660B2 (en) 2022-08-09
JP6965331B2 (ja) 2021-11-10
US10643617B2 (en) 2020-05-05
US20190214012A1 (en) 2019-07-11
US20220343915A1 (en) 2022-10-27
WO2017119965A1 (en) 2017-07-13
JP2019504358A (ja) 2019-02-14
US20170193999A1 (en) 2017-07-06
KR102150509B1 (ko) 2020-09-01

Similar Documents

Publication Publication Date Title
DE102016125831B4 (de) Spracherkennungssystem und -verfahren
DE202017106363U1 (de) Neuronale Antwort-auf-Frage-Netze
DE202017105835U1 (de) Neuronale Maschinenübersetzungssysteme
DE102017125256A1 (de) Suche nach einer neuronalen Architektur
DE102016125838A1 (de) Komprimierte rekurrente neuronale netzmodelle
JP2021192251A (ja) バッチ正規化レイヤ
DE102017125001A1 (de) Streaming-Dialogmanagement in Echtzeit
DE202017106606U1 (de) Hotword-Erkennung auf der Server-Seite
WO2021128729A1 (zh) 确定搜索结果的方法、装置、设备和计算机存储介质
DE102020001790A1 (de) Auf maschinellem Lernen basierende Text-in-Bild-Einbettungstechniken
US20170329782A1 (en) Query result bottom retrieval method and apparatus
DE102016125918A1 (de) Komprimierte rekurrente neuronale Netzwerkmodelle
DE102018103303A1 (de) Implementieren neuronaler Netze in Festkommaarithmetik-Berechnungssystemen
DE102017125379A1 (de) Generieren einer Ausgabe für eine Ausgabeschicht eines neuronalen Netzwerks
DE102016125508A1 (de) Auffindbarkeitssystem für Sprachaktionen
DE112015004203T5 (de) Neuschreibung von abfragen mithilfe von sitzungsinformationen
DE112016002370T5 (de) Lokales persistent machen von daten für eine selektiv offline taugliche sprachaktion in einer sprachfähigen elektronischen vorrichtung
DE202017107393U1 (de) Vorhersagen eines Suchmaschinen-Einordnungssignalwerts
DE112015006069T5 (de) Absichtsinferenzsystem und absichtsinferenzverfahren
DE102018126041B4 (de) Vorrichtung, verfahren und system zum verstehen gesprochener sprache unter nutzung eines dynamischen vokabulars
DE112018006345T5 (de) Abrufen von unterstützenden belegen für komplexe antworten
DE202016008230U1 (de) Sprachwiedererkennung mit externen Datenquellen
DE202017105856U1 (de) Benachrichtigungssystem mit inhaltsspezifischen Schlüsselworten
DE202017106609U1 (de) Kontextuelles Eindeutigmachen von Anfragen
DE202018100069U1 (de) Ausführen von Berechnungsgraphen in Graphikverarbeitungseinheiten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R138 Derivation of utility model

Ref document number: 202016008203

Country of ref document: DE

R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: PROCK, THOMAS, DR., GB

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017200000

Ipc: G06F0040000000

R082 Change of representative

Representative=s name: PROCK, THOMAS, DR., GB

R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0040000000

Ipc: G10L0015260000

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final