DE202016008203U1 - Spracherkennungssystem - Google Patents
Spracherkennungssystem Download PDFInfo
- Publication number
- DE202016008203U1 DE202016008203U1 DE202016008203.6U DE202016008203U DE202016008203U1 DE 202016008203 U1 DE202016008203 U1 DE 202016008203U1 DE 202016008203 U DE202016008203 U DE 202016008203U DE 202016008203 U1 DE202016008203 U1 DE 202016008203U1
- Authority
- DE
- Germany
- Prior art keywords
- segment
- contexts
- speech
- transcription
- input
- 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
Links
- 238000013518 transcription Methods 0.000 claims abstract description 67
- 230000035897 transcription Effects 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 16
- 230000009471 action Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 241001620634 Roger Species 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/632—Query formulation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
- G10L15/197—Probabilistic grammars, e.g. word n-grams
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L2015/081—Search algorithms, e.g. Baum-Welch or Viterbi
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L2015/085—Methods for reducing search complexity, pruning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Artificial Intelligence (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
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.
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.
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. Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
- 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 Spracherkennungssystem100 zur Verfügung stellt. Ein Spracherkennungssystem100 enthält einen oder mehrere Computer, die programmiert sind, um von einer Anwendervorrichtung120 eine Spracheingabe110 von einem Anwender10 zu empfangen, eine Transkription der Spracheingabe110 zu bestimmen und die Transkription der Spracheingabe110 als eine Ausgabe zu liefern. Bei dem in1 gezeigten Beispiel kann die Ausgabe eine Suchanfrage150 sein, die zu einer Suchmaschine160 geliefert wird, um in Reaktion auf die Suchanfrage150 Suchergebnisse170 zu erhalten. Eines oder mehrere solcher Ergebnisse170 werden dann zur Anwendervorrichtung120 geliefert. Das Spracherkennungssystem100 kann beispielsweise auf einem oder mehreren Computern einschließlich eines Servers oder auf einer Anwendervorrichtung implementiert sein. - Das Spracherkennungssystem
100 enthält eine Spracherkennungsmaschine140 in Kommunikationsverbindung mit der Anwendervorrichtung120 über ein oder mehrere Netze180 . Das eine oder die mehreren Netze180 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 Anwendervorrichtung120 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 Spracheingabe110 vom Anwender10 zu empfangen. Die Anwendervorrichtung120 kann beispielsweise ein Schallwandler bzw. Akustisch-Elektrisch-Wandler oder -Sensor (z. B. ein Mikrofon) enthalten oder damit gekoppelt sein. In Reaktion darauf, dass der Anwender10 die Spracheingabe110 eingibt, kann die Spracheingabe der Spracherkennungsmaschine140 unterbreitet bzw. vorgelegt werden. (Allgemein kann dies durch Vorlegen von Daten, die die Spracheingabe darstellen oder codieren, zur Spracherkennungsmaschine140 durchgeführt werden. Die Spracherkennungsmaschine140 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 Teilbereich111 der Spracheingabe110 erkannt werden und kann dann ein zweiter Teilbereich112 erkannt werden. Ein oder mehrere Teilbereiche der Spracheingabe110 können als ein individuelles Segment der Spracheingabe110 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 Spracheingabe110 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 Spracherkennungssystems100 sein, das konfiguriert ist, um die Spracheingabe110 zu empfangen und zu verarbeiten. Bei dem in1 gezeigten beispielhaften System wandelt die Spracherkennungsmaschine140 die Spracheingabe110 in eine Text-Suchanfrage150 um, die zur Suchmaschine160 geliefert wird. Die Spracherkennungsmaschine140 enthält eine Sprachdecodierer142 , ein Kontextmodul144 und ein Kontexteinstellmodul146 . Der Sprachdecodierer142 , das Kontextmodul144 und das Kontexteinstellmodul146 können Softwarekomponenten des Spracherkennungssystems100 sein. - Wenn die Spracherkennungsmaschine
140 die Spracheingabe110 empfängt, bestimmt der Sprachdecodierer142 die Transkription für die Spracheingabe110 . Der Sprachdecodierer142 liefert dann die Transkription für die Spracheingabe110 als eine Ausgabe, z. B. als die zur Suchmaschine160 zu liefernde Suchanfrage150 . - Der Sprachdecodierer
142 verwendet ein Sprachenmodell, um Kandidatentranskriptionen für die Spracheingabe110 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 Sprachdecodierer142 die Spracheingabe verarbeitet. Jedes der Zwischen-Erkennungsergebnisse entspricht einem stabilen Segment der Transkription der Spracheingabe110 . Stabilitätskriterien zum Bestimmen eines stabilen Segments der Transkription werden nachfolgend unter Bezugnahme auf3 detaillierter beschrieben. - Der Sprachdecodierer
142 liefert jedes stabile Segment zum Kontexteinstellmodul146 . Das Kontexteinstellmodul146 identifiziert relevante Kontexte vom Kontextmodul144 . 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 Kontexteinstellmodul146 einmal relevante Kontexte identifiziert, stellt das Kontexteinstellmodul146 Gewichtungen zu den Kontexten basierend auf dem einen oder den mehreren stabilen Segmenten ein, die durch den Sprachdecodierer142 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 Kontexte148 und mit den Kontexten148 assoziierte Gewichtungen. Das Kontextmodul144 kann eine Softwarekomponente der Spracherkennungsmaschine140 sein, die konfiguriert ist, um zu veranlassen, dass eine Computervorrichtung einen oder mehrere Kontexte148 von der Anwendervorrichtung120 empfängt. Die Spracherkennungsmaschine140 kann konfiguriert sein, um die empfangenen Kontexte148 im Kontextmodul144 zu speichern. In einigen Fällen kann das Kontextmodul144 konfiguriert sein, um einen oder mehrere Kontexte148 zu erzeugen, die für den Anwender10 individuell angepasst sind. Die Spracherkennungsmaschine140 kann konfiguriert sein, um die erzeugten Kontexte148 im Kontextmodul144 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 Kontext210 , der mit „Tennisspieler” assoziiert ist, und einen Kontext220 , der mit Basketballspieler assoziiert ist, z. B. in einem Kontextmodul, z. B. dem Kontextmodul144 , zu speichern. Der Kontext210 enthält damit Einheiten, die bestimmten Tennisspielern entsprechen, wie beispielsweise „Roger Federer”, „Rafael Nadal” und „Novak Djokovic”. Der Kontext220 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 Kontexte210 ,220 zu speichern. Die Gewichtungen können das Ausmaß anzeigen, bis zu welchem eine oder mehrere Transkriptionen von Spracheingaben mit den Kontexten210 ,220 assoziiert sind. Wenn das Kontexteinstellmodul146 die Kontexte210 ,220 identifiziert, identifiziert das Kontexteinstellmodul auch die mit den Kontexten210 ,220 assoziierten Gewichtungen. - Wenn der Sprachdecodierer
142 die erste Kandidatentranskription „Wie viele Siege für den Tennisspieler” für das erste Segment111 der Spracheingabe110 erhält, liefert der Sprachdecodierer142 die erste Kandidatentranskription für das erste Segment111 zum Kontexteinstellmodul146 . Das Kontexteinstellmodul146 identifiziert die Kontexte210 ,220 als relevante Kontexte von dem Kontextmodul144 und die mit den Kontexten210 ,220 assoziierten Gewichtungen. Dann ist das Kontexteinstellmodul146 konfiguriert, um die jeweiligen Gewichtungen für die Kontexte210 ,220 basierend auf der ersten Kandidatentranskription für das erste Segment111 der Spracheingabe110 einzustellen. Insbesondere kann das Kontexteinstellmodul146 die jeweiligen Gewichtungen für die Kontexte210 ,220 zur Verwendung beim Erkennen nachfolgender Segmente der Spracheingabe110 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 Kontexteinstellmodul146 konfiguriert sein, um die Gewichtung für einen oder mehrere Kontexte einzustellen. Beispielsweise kann das Kontexteinstellmodul146 die Gewichtung für den Kontext210 z. B. von „10” auf „90” erhöhen, kann die Gewichtung für den Kontext220 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 Segment112 der Spracheingabe110 teilweise basierend auf den eingestellten Gewichtungen zu bestimmen. In Reaktion auf ein Einstellen der jeweiligen Gewichtungen für die Kontexte kann die Spracherkennungsmaschine140 konfiguriert sein, um die eingestellten Gewichtungen für die Kontexte210 ,220 im Kontextmodul144 einem Updaten zu unterziehen. Beim obigen Beispiel kann der Sprachdecodierer142 , um die zweite Kandidatentranskription für das zweite Segment112 der Spracheingabe110 zu bestimmen, basierend auf den eingestellten Gewichtungen dem Kontext210 eine höhere Gewichtung als dem Kontext220 zuteilen. Basierend auf den Gewichtungen zum Kontext210 kann der Sprachdecodierer142 „Roger Federer” als die zweite Kandidatentranskription für das zweite Segment112 der Spracheingabe110 bestimmen. - Gegensätzlich dazu kann der Sprachdecodierer
142 , wenn das Kontexteinstellmodul146 die Gewichtungen für die Kontexte210 ,220 nicht basierend auf der ersten Kandidatentranskription für das erste Segment111 einstellt, die zweite Kandidatentranskription für das zweite Segment112 basierend auf den im Kontextmodul144 gespeicherten Basisgewichtungen für die Kontexte210 ,220 bestimmen. Wenn der Kontext210 mehr gewichtet ist als der Kontext210 , kann der Sprachdecodierer die Namen der Basketballspieler, wie beispielsweise „Roger Bederer”, als die zweite Kandidatentranskription für das zweite Segment112 bestimmen. Somit kann der Sprachdecodierer142 ein inkorrektes Erkennungsergebnis liefern. - Nachdem der Sprachdecodierer
142 die gesamte Transkription der Spracheingabe110 erhält, kann der Sprachdecodierer142 die Transkription der Spracheingabe110 zur Ausgabe liefern. Die Ausgabe kann direkt zur Anwendervorrichtung geliefert werden oder kann zur zusätzlichen Verarbeitung verwendet werden. Beispielsweise wird in1 die ausgegebene Erkennung als eine Text-Suchanfrage150 verwendet. Beispielsweise kann der Sprachdecodierer142 , wenn der Sprachdecodierer142 „Roger Federer” als die zweite Kandidatentranskription für das zweite Segment112 der Spracheingabe110 bestimmt, die gesamte Transkription „wie viele Siege für den Tennisspieler Roger Federer?” als die Suchanfrage150 zur Suchmaschine160 ausgeben. - Die Suchanfrage
160 führt eine Suche unter Verwendung der Suchanfrage150 durch. Die Suchmaschine160 kann eine Web-Suchmaschine enthalten, die mit dem Spracherkennungssystem gekoppelt ist. Die Suchmaschine160 kann ein oder mehrere Ergebnisse170 in Reaktion auf die Suchanfrage150 bestimmen. Die Suchmaschine160 liefert die Suchergebnisse170 zur Anwendervorrichtung120 . Die Anwendervorrichtung120 kann eine Anzeigeschnittstelle enthalten, um die Suchergebnisse170 dem Anwender10 zu präsentieren. In einigen Fällen kann die Anwendervorrichtung120 eine Audio-Schnittstelle enthalten, um die Suchergebnisse170 dem Anwender10 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 Sprachdecodierer142 ist konfiguriert, um zu bestimmen, dass der Teilbereich der Spracheingabe110 die Stabilitätskriterien erfüllt. - Wenn der Sprachdecodierer
142 den Teilbereich311 der Spracheingabe310 empfängt, kann der Sprachdecodierer142 konfiguriert sein, um zu bestimmen, ob der Teilbereich311 der Spracheingabe310 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 Sprachdecodierer142 den Teilbereich311 der Spracheingabe310 empfängt, der Sprachdecodierer142 bestimmen, dass von dem Teilbereich311 semantisch erwartet wird, dass ihm ein Wort oder Worte folgen. Der Sprachdecodierer142 bestimmt dann, dass der Teilbereich311 die Stabilitätskriterien nicht erfüllt. Bei einigen Implementierungen kann, wenn der Sprachdecodierer142 „mein” als einen Teilbereich einer Spracheingabe empfängt, der Sprachdecodierer142 bestimmen, dass vom Teilbereich „mein” nicht erwartet wird, dass ihm ein Wort oder Worte folgen. Der Sprachdecodierer142 kann dann bestimmen, dass der Teilbereich „mein” die Stabilitätskriterien für ein Segment erfüllt. Der Sprachdecodierer142 kann das Segment zum Kontexteinstellmodul146 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 Sprachdecodierer142 „Spiel” als den Teilbereich312 der Spracheingabe310 empfängt, der Sprachdecodierer142 bestimmen, dass vom Teilbereich312 semantisch erwartet wird, dass ihm ein Wort oder Worte folgen, weil dem Teilbereich312 semantisch eine Teilwort oder Teilworte, wie beispielsweise „Spiel-er”, „Spiel-platz” und „Entscheidungs-spiel”, folgen können. Der Sprachdecodierer bestimmt dann, dass der Teilbereich311 die Stabilitätskriterien nicht erfüllt. Bei einigen Implementierungen kann, wenn der Sprachdecodierer142 „Spieler” als einen Teilbereich einer Spracheingabe empfängt, der Sprachdecodierer142 bestimmen, dass vom Teilbereich „Spieler” semantisch nicht erwartet wird, das ihm ein Wort oder Worte folgen. Der Sprachdecodierer142 kann dann bestimmen, dass der Teilbereich „Spieler” die Stabilitätskriterien für ein Segment erfüllt. Der Sprachdecodierer142 kann dann das Segment zum Kontexteinstellmodul146 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 Sprachdecodierer142 kann bestimmen, dass der Teilbereich der Spracheingabe310 die Stabilitätskriterien erfüllt, wenn die Zeitverzögerung nach dem Teilbereich der Spracheingabe310 eine Dauer hat, die einen Schwellen-Verzögerungswert erfüllt. Wenn der Sprachdecodierer142 den Teilbereich der Spracheingabe310 empfängt, kann der Sprachdecodierer142 die Zeitverzögerung ab dem Moment, zu welchem der Teilbereich empfangen wird, bis zu dem Moment, zu welchem der folgende Teilbereich der Spracheingabe310 empfangen wird, messen. Der Sprachdecodierer142 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 Verfahrens400 zum Bestimmen einer Transkription für eine empfangene Spracheingabe. Der Annehmlichkeit halber wird das Verfahren400 in Bezug auf ein System beschrieben werden, das das Verfahren400 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 Verfahren300 verwenden, um zu bestimmen, dass das erste Segment der Spracheingabe die Stabilitätskriterien erfüllt, wie es oben in Bezug auf3 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 auf2 , 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 Verfahrens500 zum Bereitstellen einer Sprachsuche. Der Annehmlichkeit halber wird das Verfahren500 in Bezug auf ein System beschrieben werden, das das Verfahren500 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 auf4 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 (10)
- 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.
- System 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.
- System nach Anspruch 2, wobei die Stabilitätskriterien ein oder mehrere semantische Merkmale des ersten Segments der Spracheingabe enthalten.
- System nach Anspruch 2 oder 3, wobei die Stabilitätskriterien eine Zeitverzögerung enthalten, die nach dem ersten Segment der Spracheingabe auftritt.
- System nach einem der Ansprüche 1–4, wobei das zweite Segment der Spracheingabe nach dem ersten Segment der Spracheingabe auftritt.
- System nach einem der Ansprüche 1–4, wobei der eine oder die mehreren Kontexte von einer Anwendervorrichtung empfangen werden.
- System 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.
- System nach einem der Ansprüche 1–7, 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.
- System nach einem der Ansprüche 1 bis 8, wobei der eine oder die mehreren Computer konfiguriert sind, um Operationen durchzuführen, die folgendes aufweisen: Liefern der Ausgabe als eine Suchanfrage.
- 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.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/989,642 US10049666B2 (en) | 2016-01-06 | 2016-01-06 | Voice recognition system |
US14/989,642 | 2016-01-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE202016008203U1 true DE202016008203U1 (de) | 2017-04-27 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102016125831.8A Active DE102016125831B4 (de) | 2016-01-06 | 2016-12-29 | Spracherkennungssystem und -verfahren |
Country Status (7)
Country | Link |
---|---|
US (6) | US10049666B2 (de) |
EP (2) | EP3822965A1 (de) |
JP (4) | JP6637604B2 (de) |
KR (2) | KR102150509B1 (de) |
CN (2) | CN112992146A (de) |
DE (2) | DE102016125831B4 (de) |
WO (1) | WO2017119965A1 (de) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10049666B2 (en) * | 2016-01-06 | 2018-08-14 | Google Llc | Voice recognition 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 |
US10097939B2 (en) | 2016-02-22 | 2018-10-09 | Sonos, Inc. | Compensation for speaker nonlinearities |
US9947316B2 (en) | 2016-02-22 | 2018-04-17 | Sonos, Inc. | Voice control of a media playback system |
US9820039B2 (en) | 2016-02-22 | 2017-11-14 | Sonos, Inc. | Default playback devices |
US9965247B2 (en) | 2016-02-22 | 2018-05-08 | Sonos, Inc. | Voice controlled media playback system based on user profile |
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 |
US10134399B2 (en) | 2016-07-15 | 2018-11-20 | Sonos, Inc. | Contextualization of voice inputs |
US10152969B2 (en) | 2016-07-15 | 2018-12-11 | Sonos, Inc. | Voice detection by multiple devices |
US10115400B2 (en) | 2016-08-05 | 2018-10-30 | Sonos, Inc. | Multiple voice services |
US9693164B1 (en) | 2016-08-05 | 2017-06-27 | Sonos, Inc. | Determining direction of networked microphone device relative to audio playback device |
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 |
US10621981B2 (en) | 2017-09-28 | 2020-04-14 | Sonos, Inc. | Tone interference cancellation |
US10482868B2 (en) | 2017-09-28 | 2019-11-19 | Sonos, Inc. | Multi-channel acoustic echo cancellation |
CN107644095A (zh) * | 2017-09-28 | 2018-01-30 | 百度在线网络技术(北京)有限公司 | 用于搜索信息的方法和装置 |
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 | 北京奇艺世纪科技有限公司 | 一种智能设备控制方法、装置及智能设备 |
WO2019152722A1 (en) | 2018-01-31 | 2019-08-08 | 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 |
US10878811B2 (en) | 2018-09-14 | 2020-12-29 | Sonos, Inc. | Networked devices, systems, and methods for intelligently deactivating wake-word engines |
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 |
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 |
JP7077487B2 (ja) * | 2018-11-30 | 2022-05-30 | グーグル エルエルシー | 音声処理 |
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 |
US11138975B2 (en) | 2019-07-31 | 2021-10-05 | Sonos, Inc. | Locally distributed keyword detection |
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 |
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 |
KR20210108098A (ko) | 2020-02-25 | 2021-09-02 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
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 |
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 |
US11984123B2 (en) | 2020-11-12 | 2024-05-14 | Sonos, Inc. | Network device interaction by range |
US11551700B2 (en) | 2021-01-25 | 2023-01-10 | Sonos, Inc. | Systems and methods for power-efficient keyword detection |
Family Cites Families (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6444211B2 (en) | 1991-04-03 | 2002-09-03 | Connaught Laboratories, Inc. | Purification of a pertussis outer membrane protein |
JP3254994B2 (ja) * | 1995-03-01 | 2002-02-12 | セイコーエプソン株式会社 | 音声認識対話装置および音声認識対話処理方法 |
US5986650A (en) | 1996-07-03 | 1999-11-16 | News America Publications, Inc. | Electronic television program guide schedule system and method with scan feature |
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 | キヤノン株式会社 | 音声認識システム、情報処理装置及びそれらの制御方法、プログラム |
EP1565906A1 (de) * | 2002-11-22 | 2005-08-24 | Koninklijke Philips Electronics N.V. | Spracherkennungseinrichtung und verfahren |
KR20040055417A (ko) * | 2002-12-21 | 2004-06-26 | 한국전자통신연구원 | 대화체 연속음성인식 장치 및 방법 |
WO2005122143A1 (ja) | 2004-06-08 | 2005-12-22 | Matsushita Electric Industrial Co., Ltd. | 音声認識装置および音声認識方法 |
JP2006050568A (ja) | 2004-07-06 | 2006-02-16 | Ricoh Co Ltd | 画像処理装置、プログラム及び画像処理方法 |
US7433819B2 (en) * | 2004-09-10 | 2008-10-07 | Scientific Learning Corporation | Assessing fluency based on elapsed time |
US7195999B2 (en) | 2005-07-07 | 2007-03-27 | Micron Technology, Inc. | Metal-substituted transistor gates |
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 | 삼성전자주식회사 | 주제 영역 검출을 이용한 대화체 음성 인식 장치 및 방법 |
WO2008018556A1 (en) | 2006-08-09 | 2008-02-14 | Mitsubishi Tanabe Pharma Corporation | Tablet |
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 |
TWI403663B (zh) | 2010-07-20 | 2013-08-01 | Foxsemicon Integrated Tech Inc | Led發光裝置 |
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 |
JP5698203B2 (ja) * | 2011-09-30 | 2015-04-08 | アップル インコーポレイテッド | バーチャルアシスタントのコマンド処理を容易にするためのコンテクスト情報の使用 |
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 |
US9152223B2 (en) | 2011-11-04 | 2015-10-06 | International Business Machines Corporation | Mobile device with multiple security domains |
US8571859B1 (en) | 2012-05-31 | 2013-10-29 | Google Inc. | Multi-stage speaker adaptation |
US8805684B1 (en) | 2012-05-31 | 2014-08-12 | Google Inc. | Distributed 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 |
US20140011465A1 (en) | 2012-07-05 | 2014-01-09 | Delphi Technologies, Inc. | Molded conductive plastic antenna |
US9380833B2 (en) | 2012-07-12 | 2016-07-05 | Diana Irving | Shoe insert |
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 |
WO2014093339A1 (en) * | 2012-12-11 | 2014-06-19 | Nuance Communications, Inc. | System and methods for virtual agent recommendation for multiple persons |
CN103871424A (zh) * | 2012-12-13 | 2014-06-18 | 上海八方视界网络科技有限公司 | 一种基于贝叶斯信息准则的线上说话人聚类分析方法 |
CN103064936B (zh) * | 2012-12-24 | 2018-03-30 | 北京百度网讯科技有限公司 | 一种基于语音输入的图像信息提取分析方法及装置 |
JP2014240940A (ja) * | 2013-06-12 | 2014-12-25 | 株式会社東芝 | 書き起こし支援装置、方法、及びプログラム |
US20150005801A1 (en) | 2013-06-27 | 2015-01-01 | Covidien Lp | Microcatheter system |
WO2015023996A2 (en) | 2013-08-15 | 2015-02-19 | Loec, Inc. | Method, system and device for switchless detection and charging |
EP2862164B1 (de) * | 2013-08-23 | 2017-05-31 | Nuance Communications, Inc. | Mehrsträngige automatische spracherkennung |
US10565984B2 (en) | 2013-11-15 | 2020-02-18 | Intel Corporation | System and method for maintaining speech recognition dynamic dictionary |
KR20160122236A (ko) * | 2014-02-13 | 2016-10-21 | 닛본 덴끼 가부시끼가이샤 | 통신 시스템, 통신 장치, 통신 방법 및 프로그램을 저장한 비일시적인 컴퓨터 판독가능 매체 |
US9679558B2 (en) * | 2014-05-15 | 2017-06-13 | Microsoft Technology Licensing, Llc | Language modeling for conversational understanding domains using semantic web resources |
US20150340024A1 (en) * | 2014-05-23 | 2015-11-26 | Google Inc. | Language Modeling Using Entities |
US20160018085A1 (en) | 2014-07-18 | 2016-01-21 | Soraa, Inc. | Compound light control lens field |
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 |
-
2016
- 2016-01-06 US US14/989,642 patent/US10049666B2/en active Active
- 2016-11-30 EP EP20217773.9A patent/EP3822965A1/de active Pending
- 2016-11-30 WO PCT/US2016/064092 patent/WO2017119965A1/en active Application Filing
- 2016-11-30 EP EP16816078.6A patent/EP3378061B1/de active Active
- 2016-11-30 KR KR1020187019323A patent/KR102150509B1/ko active IP Right Grant
- 2016-11-30 KR KR1020207024503A patent/KR102268087B1/ko active IP Right Grant
- 2016-11-30 JP JP2018534820A patent/JP6637604B2/ja active Active
- 2016-12-23 CN CN202110154554.7A patent/CN112992146A/zh active Pending
- 2016-12-23 CN CN201611207951.1A patent/CN107039040B/zh active Active
- 2016-12-29 DE DE102016125831.8A patent/DE102016125831B4/de active Active
- 2016-12-29 DE DE202016008203.6U patent/DE202016008203U1/de active Active
-
2018
- 2018-03-02 US US15/910,872 patent/US10269354B2/en active Active
-
2019
- 2019-03-14 US US16/353,441 patent/US10643617B2/en active Active
- 2019-12-17 JP JP2019227504A patent/JP6965331B2/ja active Active
-
2020
- 2020-04-01 US US16/837,250 patent/US11410660B2/en active Active
-
2021
- 2021-08-25 JP JP2021137163A patent/JP2021182168A/ja active Pending
-
2022
- 2022-07-11 US US17/811,605 patent/US11996103B2/en active Active
-
2023
- 2023-05-23 JP JP2023084794A patent/JP2023099706A/ja active Pending
-
2024
- 2024-04-30 US US18/650,864 patent/US20240282309A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240282309A1 (en) | 2024-08-22 |
CN107039040A (zh) | 2017-08-11 |
JP2023099706A (ja) | 2023-07-13 |
DE102016125831B4 (de) | 2022-02-03 |
US11410660B2 (en) | 2022-08-09 |
EP3378061A1 (de) | 2018-09-26 |
US10049666B2 (en) | 2018-08-14 |
KR102268087B1 (ko) | 2021-06-22 |
JP2020042313A (ja) | 2020-03-19 |
US20190214012A1 (en) | 2019-07-11 |
KR20180091056A (ko) | 2018-08-14 |
JP6965331B2 (ja) | 2021-11-10 |
EP3822965A1 (de) | 2021-05-19 |
CN107039040B (zh) | 2021-02-12 |
JP2019504358A (ja) | 2019-02-14 |
EP3378061B1 (de) | 2021-01-06 |
KR20200103876A (ko) | 2020-09-02 |
US10643617B2 (en) | 2020-05-05 |
US20220343915A1 (en) | 2022-10-27 |
KR102150509B1 (ko) | 2020-09-01 |
US20180190293A1 (en) | 2018-07-05 |
US10269354B2 (en) | 2019-04-23 |
US20200227046A1 (en) | 2020-07-16 |
JP2021182168A (ja) | 2021-11-25 |
WO2017119965A1 (en) | 2017-07-13 |
CN112992146A (zh) | 2021-06-18 |
US11996103B2 (en) | 2024-05-28 |
US20170193999A1 (en) | 2017-07-06 |
DE102016125831A1 (de) | 2017-07-06 |
JP6637604B2 (ja) | 2020-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102016125831B4 (de) | Spracherkennungssystem und -verfahren | |
DE202017106363U1 (de) | Neuronale Antwort-auf-Frage-Netze | |
DE202017106532U1 (de) | Suche nach einer neuronalen Architektur | |
DE202017105835U1 (de) | Neuronale Maschinenübersetzungssysteme | |
US10366093B2 (en) | Query result bottom retrieval method and apparatus | |
DE202016008302U1 (de) | Komprimierte rekurrente neuronale Netzmodelle | |
DE112016000509T5 (de) | Batch-Normalisierungsschichten | |
DE202017106606U1 (de) | Hotword-Erkennung auf der Server-Seite | |
DE102019000294A1 (de) | Erstellen unternehmensspezifischer Wissensgraphen | |
DE102018103303A1 (de) | Implementieren neuronaler Netze in Festkommaarithmetik-Berechnungssystemen | |
DE102016125508A1 (de) | Auffindbarkeitssystem für Sprachaktionen | |
DE102017125379A1 (de) | Generieren einer Ausgabe für eine Ausgabeschicht eines neuronalen Netzwerks | |
DE102014113870A1 (de) | Identifizieren und Anzeigen von Beziehungen zwischen Kandidatenantworten | |
DE112015004203T5 (de) | Neuschreibung von abfragen mithilfe von sitzungsinformationen | |
DE102021000736A1 (de) | Modellbasierte semantische Textsuche | |
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 | |
DE202017106609U1 (de) | Kontextuelles Eindeutigmachen von Anfragen | |
DE112016002198T5 (de) | Kontextualisieren von wissensfeldern | |
DE102018126041B4 (de) | Vorrichtung, verfahren und system zum verstehen gesprochener sprache unter nutzung eines dynamischen vokabulars | |
CN103678668A (zh) | 相关搜索结果的提示方法、服务器及系统 | |
CN108241613A (zh) | 一种提取关键词的方法及设备 | |
DE202017105856U1 (de) | Benachrichtigungssystem mit inhaltsspezifischen Schlüsselworten | |
CN113342968B (zh) | 文本摘要提取方法及装置 | |
DE212015000245U1 (de) | Assistives Browsen unter Verwendung von Kontext |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R207 | Utility model specification | ||
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: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE |
|
R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0017200000 Ipc: G06F0040000000 |
|
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 |