-
TECHNISCHES GEBIET DER ERFINDUNG
-
Diese Offenbarung bezieht sich auf Systeme und Verfahren zur Spracherkennung und -erfassung von Sprachbefehlen.
-
HINTERGRUND
-
Viele elektronische Geräte für Verbraucher haben Funktionen, die gänzlich oder teilweise über durch eine menschliche Stimme geäußerte Sprachbefehle gesteuert werden. Diese Sprachsteuerung ermöglicht es Benutzern, die Geräte ohne den Gebrauch der Hände des Benutzers und mit weniger Knöpfen oder Schaltern an dem Gerät zu verwenden.
-
Derartige Geräte können einen ständig aufnahmebereiten Betriebszustand benötigen, so dass das Gerät die Sprachbefehle „hören“ und erfassen kann. Daher ist das Gerät in dem ständig aufnahmebereiten Betriebszustand eingeschaltet und wartet auf einen Sprachbefehl. Die Qualität eines ständig aufnahmebereiten Betriebszustands wird generell über zwei Parameter bestimmt: den gesamten mittleren Energieverbrauch und die Falscherkennungsrate von Sprachbefehlen.
-
Ausführungsformen der Erfindung beheben Defizite in bereits existierenden Geräten.
-
ZUSAMMENFASSUNG DER OFFENBARUNG
-
Ausführungsformen der offenbarten Gegenstände beziehen sich auf ein ständig aufnahmebereites Sprachbefehlserkennungs- und -erfassungssystem mit niedriger Leistungsaufnahme. Durch die Verwendung eines Betriebszustandes mit niedrigem Betriebsstrom kann das System seinen gesamten mittleren Energieverbrauch reduzieren. In dem Betriebszustand mit dem niedrigsten Betriebsstrom wartet das System auf Anzeichen von Sprachaktivität. Jeder darauffolgende Betriebszustand weist eine stetig steigende Sprachbefehlserkennungssicherheit, solange bis zum Betriebszustand mit dem höchsten Betriebsstrom, in dem der Sprachbefehl erkannt, ausgewertet und verarbeitet wird.
-
Gemäß zumindest einiger Ausführungsformen kann ein System zum Erkennen und Erfassen von Sprachbefehlen einen Sprachaktivitätsdetektor („voice-activity detector“, VAD) umfassen, welcher dazu ausgelegt ist, ein durch den VAD empfangenes digitales Audiosignal zu empfangen, die Amplitude des durch den VAD empfangenen digitalen Audiosignals zu bestimmen, die Amplitude des durch den VAD empfangenen digitalen Audiosignals mit einem ersten Schwellwert und einem zweiten Schwellwert zu vergleichen, ein VAD-Unterbrechungssignal zu unterdrücken, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals den ersten Schwellwert oder den zweiten Schwellwert nicht überschreitet, das VAD-Unterbrechungssignal zu erzeugen, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals den ersten Schwellwert und den zweiten Schwellwert überschreitet, und eine Spektralanalyse des durch den VAD empfangenen digitalen Audiosignals vorzunehmen, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals zwischen dem ersten Schwellwert und dem zweiten Schwellwert liegt.
-
Gemäß einem anderen Aspekt können zumindest einige Ausführungsformen eines Verfahrens zum Erkennen und Erfassen von Sprachbefehlen die Schritte umfassen: Empfangen, durch einen Sprachaktivitätsdetektor („voice-activity detector“, VAD), eines durch den VAD empfangenen digitalen Audiosignals; Bestimmen, durch den VAD, die Amplitude des durch den VAD empfangenen digitalen Audiosignals; Vergleichen, durch den VAD, der Amplitude des durch den VAD empfangenen digitalen Audiosignals mit einem ersten Schwellwert und einem zweiten Schwellwert; Unterdrücken, durch den VAD, eines VAD-Unterbrechungssignals, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals den ersten Schwellwert oder den zweiten Schwellwert nicht überschreitet; Erzeugen, durch den VAD, des VAD-Unterbrechungssignals, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals den ersten Schwellwert und den zweiten Schwellwert überschreitet; und Vornehmen, durch den VAD, einer Spektralanalyse des durch den VAD empfangenen digitalen Audiosignals, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals zwischen dem ersten Schwellwert und dem zweiten Schwellwert liegt.
-
Demgemäß können die beschriebenen Systeme und Verfahren im Vergleich zu herkömmlichen Geräten eine geringere Sprachbefehlsfalscherkennungsrate bei gleichzeitig geringerem mittlerem Energieverbrauch bieten.
-
Figurenliste
-
- 1 zeigt ein funktionales Blockschaubild eines Sprachbefehlserkennungs- und -erfassungssystem gemäß Ausführungsformen der Erfindung.
- 2 zeigt ein Schaltbild einer Aufweckschaltung, die in dem in 1 gezeigten Spracherkennungsmodul enthalten sein kann.
- 3 zeigt einen beispielhaften Signalverlauf von Audiosignalen menschlicher Sprache, bei dem die Ordinate die Signalamplitude und die Abszisse den Zeitverlauf repräsentiert.
- 4 zeigt ein Ablaufdiagramm, welches einen beispielhaften Verarbeitungsablauf in dem in 1 dargestellten Spracherkennungsmodul illustriert.
- 5 zeigt ein Beispiel für ein Taktschaltereignis gemäß einem Merkmal eines Sprachbefehlserkennungs- und -erfassungssystems.
-
In der folgenden ausführlichen Beschreibung werden Bezugszeichen mit dem Muster 1xx im Allgemeinen in 1 und 2 dargestellt, während Bezugszeichen mit 3xx im Allgemeinen in 3 dargestellt werden. Gleichermaßen werden Bezugszeichen mit 4xx im Allgemeinen in 4 gezeigt, und Bezugszeichen mit 5xx im Allgemeinen in 5.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Wie in dieser Anmeldung beschrieben beziehen sich Ausführungsformen der Erfindung auf ein ständig aufnahmebereites Sprachbefehlserkennungs- und - erfassungssystem mit niedriger Leistungsaufnahme. Die offenbarte Technologie beinhaltet eine Anzahl diskreter Betriebszustände mit unterschiedlichen Stromaufnahmewerten. Die Betriebszustände zeichnen sich durch die zusammengenommenen Zustände der einzelnen Subsysteme aus. In dem Betriebszustand mit dem niedrigsten Betriebsstrom wartet das System auf Anzeichen von Sprachaktivität. Jeder darauffolgende Betriebszustand weist eine stetig steigende Sprachbefehlserkennungssicherheit, solange bis zum Betriebszustand mit dem höchsten Betriebsstrom, in dem der Sprachbefehl erkannt, ausgewertet und verarbeitet wird.
-
Durch die Verwendung eines Betriebszustandes mit niedrigerem Betriebsstrom kann das System den gesamten mittleren Energieverbrauch des Systems reduzieren. Außerdem kann das System die Sprachbefehlsfalscherkennungsrate durch die Auswahl aller oder nur einiger der verfügbaren Betriebszustände reduzieren. Beispielsweise kann das System einen Schlafzustand vermeiden, um den Anfang einer Äußerung zu erfassen, und ihn nicht abzuschneiden. Demgemäß kann das beschriebene System im Vergleich zu herkömmlichen Geräten eine geringere Sprachbefehlsfalscherkennungsrate bei gleichzeitig geringerem mittlerem Energieverbrauch bieten.
-
Daher kann die offenbarte Technologie nützlich für jedes sprachaktivierbare und - steuerbare System sein, beispielsweise auch für drahtgebundene oder drahtlose Kopfhörer, tragbare Produkte, Lautsprecherleisten, Videospielsteuerungen und mobile Geräte wie etwa Telefone und Tablets. Diese sprachaktivierbaren und -steuerbaren Systeme können einen intelligenten persönlichen Assistenten oder einen anderen Software-Agenten aufweisen.
-
1 zeigt ein funktionales Blockschaubild von Teilen eines Sprachbefehlserkennungs- und -erfassungssystem gemäß Ausführungsformen der Erfindung. Wie in 1 dargestellt, kann ein Sprachbefehlserkennungs- und -erfassungssystem 100 einen Analog-Digital-Wandler (ADC) 101, einen Herabtaktungs- bzw. Downsamplingfilter 102, einen Direktzugriffsspeicher („random access memory“, RAM) für Sprache 103, und einen Sprachaktivitätsdetektor („voice-activity detector“, VAD) 104 aufweisen, welcher Signale an ein Spracherkennungsmodul 105 eines digitalen Signalprozessors (DSP) 106 ausgibt. Der Downsamplingfilter 102 und das Sprach-RAM 103 können jeweils Teil des DSP 106 sein oder eng mit selbigem gekoppelt sein. Der ADC 101, der Downsamplingfilter 102, der Sprach-RAM 103, der VAD-Block 104 und der DSP 106 werden jeweils durch ein Taktgebersystem 107 gesteuert, welches eine Vielzahl von Takterzeugungsmechanismen aufweist und welches weiter unten ausführlicher erläutert wird.
-
Der VAD-Block 104 kann einen Abtastwertkombiniererblock 108, einen Amplituden-VAD-Block 109, einen Spektralanalyse-Block 110 und einen Steuerungsblock 111 aufweisen. Der Spektralanalyse-Block 110 kann einen VAD-RAM 112, einen Block 113 für eine schnelle Fouriertransformation („fast Fourier transformation“, FFT), einen spektralen Tiefpassfilter („low-pass filter“, LPF) 114 und einen spektralen VAD-Block 115 aufweisen. Merkmale des VAD-Blocks 104 können durch programmierbare Parameter implementiert werden. Da der VAD-Block 104 vorzugsweise in Hardware implementiert ist, wird er hierin als Hardware-VAD bezeichnet. Nichtsdestoweniger kann der VAD-Block 104 in gewissen Ausführungsformen in Software oder Firmware ausgeführt sein.
-
Der ADC 101 kann ein stereophonischer ADC sein, der ein digitales Audiosignal 123 bei beispielsweise 2 Msps (Millionen Abtastwerten pro Sekunde) aus einem analogen Audioeingabesignal erzeugen kann, welches unter Umständen ein Sprachsignal beinhalten kann. Der ADC 101 kann beispielsweise Pulsdichtemodulation (PDM), Pulscodierungsmodulation (PCM) oder andere Techniken für das Erzeugen des digitalen Audiosignals 123 aus einem analogen Audioeingabesignal 122 einsetzen.
-
Der ADC 101 kann eine Aufweckschaltung 118 aufweisen, um Audioaktivität zu erkennen und eine Aktivierungsfunktionalität für die übrigen Teile des ADC 101 und somit auch den VAD-Block 104 bereitzustellen. Dementsprechend kann die Aufweckschaltung 118 das analoge Audioeingabesignal 122 mit einem Schwellwert vergleichen, um zu ermitteln, ob es einen Anfangspegel einer Audioaktivität gibt. Wenn das analoge Audioeingabesignal 122 unterhalb des Anfangspegels einer Audioaktivität liegt, bleiben die übrigen Teile des ADC 101 inaktiv. Aber wenn das analoge Audioeingabesignal 122 oberhalb des Anfangspegels einer Audioaktivität liegt, werden die übrigen Teile des ADC 101 aktiv. Dieser Schwellwert wird hierin manchmal als Aufweck-Schwellniveau bezeichnet.
-
Daher kann der ADC 101 zwei Betriebszustände aufweisen. In einem Betriebszustand vergleicht der ADC 101 Pegel mittels der Aufweckschaltung 118, aber erzeugt keine digitalen Abtastwerte. Dadurch kann der Wandlerabschnitt des ADC 101 vollständig in diesem Pegelvergleichsbetriebszustand oder auch Schlafzustand heruntergefahren werden, wodurch ein Betriebszustand mit niedriger Leistungsaufnahme für den ADC 101 möglich wird. Vorzugsweise befindet sich die Aufweckschaltung 118 im Schlafzustand in einem Zustand niedriger Leistungsaufnahme, das heißt, dass die Aufweckschaltung 118 pro Kanal weniger als ungefähr 15% der Leistung aufnimmt, die die Aufweckschaltung 118 und der ADC 101 zusammen aufnehmen, wenn beide aktiv sind. Noch bevorzugter ist es, wenn die Aufweckschaltung 118 pro Kanal weniger als ungefähr 12% der Leistung aufnimmt, die die Aufweckschaltung 118 und der ADC 101 zusammen aufnehmen, wenn beide aktiv sind. Noch wesentlich bevorzugter ist es, wenn die Aufweckschaltung 118 pro Kanal weniger als ungefähr 8% der Leistung aufnimmt, die die Aufweckschaltung 118 und der ADC 101 zusammen aufnehmen, wenn beide aktiv sind. Im zweiten Betriebszustand oder auch dem aktiven Zustand erzeugt der ADC 101 digitale Signale aus dem analogen Audioeingabesignal 122.
-
2 zeigt ein Schaltbild, welches Teile einer Aufweckschaltung darstellt. Wie in 2 illustriert kann die Aufweckschaltung 118 einen Audiovorverstärker 119 mit einer zusätzlichen Verstärkerstufe 120 und einer Vergleicherstufe 121 aufweisen. Die Vergleicherstufe 121 kann zum Beispiel ein Schmitt-Trigger sein. Dementsprechend kann die Aufweckschaltung das analoge Audioeingabesignal 122 aufnehmen, das analoge Audioeingabesignal 122 mit dem Audiovorverstärker 119 und der zusätzlichen Verstärkerstufe 120 verstärken und das aufbereitete analoge Audioeingabesignal mit einem Sprachpegelschwellwert mittels der Vergleicherstufe 121 vergleichen. Falls das aufbereitete analoge Audioeingabesignal den Sprachpegelschwellwert überschreitet, aktiviert die Aufweckschaltung die übrigen Teile des ADC 101, um Abtastwerte zu erzeugen. Der Sprachpegelschwellwert kann das oben erläuterte Aufweck-Schwellniveau sein.
-
Zusätzlich zum Verstärken des Signals können der Audiovorverstärker 119 und die zusätzliche Verstärkerstufe 120 das analoge Audioeingabesignal 122 aufbereiten, beispielsweise durch Gleichtaktunterdrückung und/oder Netzteilunterdrückung. Vorzugsweise können die Verstärkungsfaktoren des Audiovorverstärkers 119 und der zusätzlichen Verstärkerstufe 120 jeweils programmierbar sein. Zur Veranschaulichung kann der Audiovorverstärker 119 so programmiert oder voreingestellt werden, dass er einen Verstärkungsfaktor von beispielsweise +6 dB, +10 dB, +16 dB oder +26 dB aufweist, und die zusätzliche Verstärkerstufe 120 kann so programmiert oder voreingestellt werden, dass sie einen Verstärkungsfaktor von beispielsweise +20 dB aufweist. Andere Werte können ebenfalls programmiert oder voreingestellt werden.
-
Im Rückgriff auf 1 umfasst ein von einem analogen Signal abgeleitetes digitales Signal auf technisch bekannte Art und Weise eine Anzahl von Abtastwerten, deren Anzahl von der Abtastrate des ADC abhängt. Der Downsamplingfilter 102 verringert die Abtastrate des digitalen Audiosignals 123 auf zum Beispiel 16 ksps (Tausend Abtastwerte pro Sekunde).
-
Die sich ergebenden digitalen Audioabtastwerte 124 werden in dem Sprach-RAM 103 für eine nachfolgende Spracherkennung durch das Spracherkennungsmodul 105 des DSP 106 gespeichert. Vorzugsweise ist das Sprach-RAM 103 als Ringspeicher ausgeführt, um die in der Abtastrate verringerten digitalen Audioabtastwerte 124 fortlaufend in einem die Eingangsreihenfolge beachtenden Format („first-in, first-out“, FIFO) zu erfassen. In Varianten, in denen das Sprach-RAM 103 Teil des DSP 106 ist oder mit letzterem eng gekoppelt ist, reduziert sich der Systemaufwand, wenn der digitale Signalprozessor den Sprach-RAM 103 auswerten muss.
-
Zusätzlich dazu kann jede Anzahl von Kanälen in dem Sprach-RAM 103 erfasst werden; deshalb sind die erfassten Kanäle nicht auf den Kanal oder die Kanäle beschränkt, die dem VAD-Block 104 zugeleitet werden. Mehrkanalerfassung erlaubt es dem VAD-Block 104 den DSP 106 zu unterbrechen, wenn der Verdacht auf Sprachäußerungen besteht, und sie ermöglicht es dem DSP 106 Mehrkanalaudiosignale für die Nutzung in einer woanders durchzuführenden Spracherkennung, wie etwa auf einem ASIC oder einem Server, nachzubearbeiten.
-
Die digitalen Audioabtastwerte 124 mit reduzierter Abtastrate werden hierin manchmal als durch den VAD empfangene digitale Audiosignale bezeichnet. Jene werden in dem Abtastwertkombiniererblock 108 zu einem beispielsweise monophonen Datenstrom mit 8 ksps kombiniert. Der Abtastwertkombiniererblock 108 kann zum Beispiel einen Kanal der digitalen Audioabtastwerte 124 mit reduzierter Abtastrate auswählen und jeden zweiten Abtastwert des ausgewählten Kanals abgreifen. Um die Abtastwerte zu kombinieren kann der Abtastwertkombiniererblock 108 stattdessen oder zusätzlich dazu eine Strahlumformfunktionalität mit Verzögerungselementen und Linearkombinationsschaltelementen aufweisen. Unabhängig von dem durch den Abtastwertkombiniererblock 108 eingesetzten Verfahren ist das Ergebnis ein kombiniertes digitales Audiosignal 125 mit niedrigerer Abtastrate als die durch den Downsamplingfilter 102 erzeugten digitalen Audioabtastwerte 124 mit reduzierter Abtastrate.
-
Der Amplituden-VAD-Block 109 bestimmt die Amplitude des kombinierten digitalen Audiosignals 125 durch eine Analyse des Ergebnisses von dem Abtastwertkombiniererblock 108.
-
Der Steuerungsblock 111 entscheidet, ob der Spektralanalyseblock 110 ausgelöst wird, ob ein VAD-Unterbrechungssignal 116 an das Spracherkennungsmodul 105 des DSP 106 gesendet wird, um die Spracherkennung zu beginnen, oder keines von beiden. Das heißt, dass der Steuerungsblock 111 entscheidet, ob er genug Informationen hat, um zu entscheiden, ob er ein VAD-Unterbrechungssignal 116 auf der Basis des Ausgabesignals des Amplituden-VAD-Blocks 109 ausgeben soll. Falls er nicht genug Informationen besitzt, löst der Steuerungsblock 111 den Spektralanalyseblock 110 aus, um zusätzliche Informationen zu gewinnen. Der Steuerungsblock 111 kann zum Beispiel einen Tiefpassfilter für die Signalamplitude und zwei Vergleicher aufweisen. Ein erster der zwei Vergleicher kann einen verhältnismäßig geringen Schwellwert im Vergleich zu einem zweiten der zwei Vergleicher aufweisen, der einen verhältnismäßig hohen Schwellwert hat. Falls die durch den Amplituden-VAD-Block 109 ermittelte Amplitude den niedrigeren Schwellwert überschreitet, den höheren Schwellwert aber nicht, entscheidet der Steuerungsblock 111, dass der Spektralanalyseblock 110 aktiviert werden muss. Falls die Signalamplitude den höheren Schwellwert überschreitet, kann der Steuerungsblock 111 entscheiden, unabhängig von der spektralen VAD-Entscheidung durch den Spektralanalyseblock 110 ein VAD-Unterbrechungssignal 116 zu erzeugen. Alternativ dazu kann der Steuerungsblock 111 entscheiden, ein VAD-Unterbrechungssignal 116 zu erzeugen, aber den Spektralanalyseblock 110 nicht zu aktivieren, falls die Signalamplitude den höheren Schwellwert überschreitet. Falls andererseits jedoch die durch den Amplituden-VAD-Block 109 ermittelte Amplitude den niedrigeren Schwellwert nicht überschreitet, entscheidet der Steuerungsblock 111, dass der ein VAD-Unterbrechungssignal 116 nicht erzeugt werden soll, und aktiviert auch nicht den Spektralanalyseblock 110.
-
Wenn beispielsweise das analoge Audioeingabesignal 122 an den ADC 101 eine hinreichend geringe Lautstärke aufweist, wird seine Signalamplitude (ermittelt durch den Amplituden-VAD-Block 109 aus dem kombinierten digitalen Audiosignal 125) den niedrigeren Schwellwert des Steuerungsblocks 111 nicht überschreiten. Demgemäß wird der Steuerungsblock 111 weder den Spektralanalyseblock 110 aktivieren noch ein VAD-Unterbrechungssignal 116 erzeugen. Falls andererseits jedoch das analoge Audioeingabesignal 122 hinreichend laut ist, wird seine durch den Amplituden-VAD-Block 109 ermittelte Signalamplitude den höheren Schwellwert des Steuerungsblocks 111 überschreiten. Demgemäß wird der Steuerungsblock 111 ein VAD-Unterbrechungssignal 116 erzeugen, um dem Spracherkennungsmodul 105 des DSP 106 zu signalisieren, dass es in den weiter unten im Zusammenhang mit 4 beschriebenen Spracherkennungsmodus 407 wechseln soll. Falls die Signalamplitude des analogen Audioeingabesignals 122 andernfalls den niedrigeren Schwellwert überschreitet, nicht aber den höheren Schwellwert, aktiviert der Steuerungsblock 111 den Spektralanalyseblock 110 und wartet dessen Analyseergebnisse ab, bevor er entscheidet, ob er ein VAD-Unterbrechungssignal 116 erzeugt oder nicht.
-
Das kombinierte digitale Audiosignal 125 von dem Abtastwertkombiniererblock 108 wird in dem Sprach-RAM 112 gespeichert. Dies kann im Wesentlichen simultan mit dem Empfang des kombinierten digitalen Audiosignals 125 an dem Amplituden-VAD-Block 109 erfolgen. Der Sprach-RAM 112 kann beispielsweise ein 1024-Wort- und 20-Bit-RAM sein. In dieser Beispielvariante können 512 Wörter des VAD-RAMs 112 als FFT-Arbeitsspeicher für eine lokale 256-Punkt-FFT genutzt werden. Daher können 256 Wörter des VAD-RAMs 112 für die Speicherung von Eingabeabtastwerten und 256 Wörter des VAD-RAMs 112 für die Speicherung von spektralen Amplituden von 256 Frequenzintervallen genutzt werden. Dies ist nur eine Beispielvariante, und andere Konfigurationen können ebenfalls genutzt werden.
-
Der FFT-Block 113 führt eine schnelle Fourier-Transformation des in dem VAD-RAM 112 gespeicherten kombinierten digitalen Audiosignals 125 durch. Als beispielhafte Implementierung kann die FFT eine 256-Punkt-FFT sein und aus 8 Quadratwurzel-FFT-Stufen bestehen. Der FFT-Block 113 kann die resultierende Potenz jedes Frequenzintervalls in den VAD-RAM 112 schreiben. Um bei dem Beispiel mit den Abtastwerten von 8 ksps und der 256-Punkt-FFT zu bleiben, würde die FFT alle 32 ms durchgeführt werden. Mit anderen Worten ist die Größe des FFT-Fensters in diesem Beispiel 32 ms.
-
Der spektrale TPF
114 berechnet
wobei x die Größe des letztstufigen FFT-Ergebnis, y die gespeicherte spektrale Amplitude für das entsprechende Frequenzintervall, N ein Glättungsfaktor, der die Auswirkungen von zufälligem Rauschen abmildern kann, und y' der neu aktualisierte Wert für y ist. Der spektrale TPF
114 kann auch einen Akkumulator aufweisen, der die spektralen Amplituden summiert, um die mittlere Amplitude zu berechnen.
-
Der Spektralanalyseblock 110 entscheidet bei Aktivierung durch den Steuerungsblock 111, ob der Steuerungsblock 111 mittels der Ergebnisse des spektralen TPF 114 ein VAD-Unterbrechungssignal 116 erzeugen soll. Diese Entscheidung nützt den Umstand aus, dass Sprachsignale - auch Sprachbefehle, die Teil eines analogen Audioeingabesignals 122 sind - mehrfache Harmonische aufweisen. Speziell nachdem das kombinierte digitale Audiosignal 125 von dem VAD-RAM 112 den FFT-Block 113 und den spektralen TPF 114 passiert hat, wird die sich ergebende spektrale Amplitude für jede Frequenz durch die mittlere Amplitude aller von der FFT stammenden Frequenzintervalle geteilt. Wie in dieser Offenbarung bezeichnet, wird das Verhältnis der Spektralamplitude einer bestimmten Frequenz zur mittleren Amplitude aller Frequenzintervalle die relative Amplitude genannt.
-
In einem beispielhaften Verfahren zählt der spektrale VAD-Block 115 die Anzahl von Frequenzintervallen, die eine relative Amplitude oberhalb eines bestimmten Schwellwerts aufweisen. Vorzugsweise beträgt dieser Schwellwert für hohe Amplituden zwischen dem etwa 1,5-fachen und dem etwa 5-fachen der mittleren Amplitude. Noch bevorzugter beträgt der Schwellwert für hohe Amplituden zwischen dem etwa 2-fachen und dem etwa 4-fachen der mittleren Amplitude. Sogar noch bevorzugter beträgt der Schwellwert für hohe Amplituden das etwa 3-fache der mittleren Amplitude. Falls die Anzahl von Intervallen mit hoher Amplitude eine bestimmte Anzahl überschreitet, die hier als Intervallzahlschwellniveau bezeichnet wird, entscheidet der spektrale VAD-Block 115, dass der Steuerungsblock 111 ein VAD-Unterbrechungssignal 116 erzeugen sollte. Vorzugweise liegt dieses Intervallzahlschwellniveau zwischen etwa zwei und etwa 15 Intervallen. Noch bevorzugter liegt das Intervallzahlschwellniveau zwischen etwa drei und etwa zwölf Intervallen. Sogar noch bevorzugter liegt das Intervallzahlschwellniveau zwischen etwa fünf und etwa zehn Intervallen.
-
In einem anderen beispielhaften Verfahren wertet der spektrale VAD-Block 115 Spitzenwertabstände aus, um zu entscheiden, ob der Steuerungsblock 111 ein VAD-Unterbrechungssignal 116 erzeugen sollte. In diesem Zusammenhang ist ein Spitzenwertintervall ein Frequenzintervall mit einer Amplitude, die höher als die ihrer Nachbarn ist und bei der die relative Amplitude des Frequenzintervalls oberhalb eines Schwellwertes liegt. Vorzugsweise beträgt dieser relative Amplitudenschwellwert zwischen etwa dem 1,5-fachen und dem etwa 5-fachen der mittleren Amplitude. Noch bevorzugter beträgt der relative Amplitudenschwellwert zwischen etwa dem doppelten und dem etwa 4-fachen der mittleren Amplitude. Sogar noch bevorzugter beträgt der relative Amplitudenschwellwert etwa das 3-fache der mittleren Amplitude. Falls der Abstand zwischen dem ersten Spitzenwertintervall (d.h. dem Spitzenwertintervall mit der niedrigsten Frequenz) und dem letzten Spitzenwertintervall (d.h. dem Spitzenwertintervall mit der höchsten Frequenz) einen bestimmten Wert überschreitet, entscheidet der spektrale VAD-Block 115, dass der Steuerungsblock 111 ein VAD-Unterbrechungssignal 116 erzeugen sollte. Vorzugsweise ist dieser Spitzenwertabstandsschwellwert zwischen etwa 0,5 kHz und etwa 5 kHz. Noch bevorzugter ist der Spitzenwertabstandsschwellwert zwischen etwa 1 kHz und etwa 3 kHz. Sogar noch bevorzugter beträgt der Spitzenwertabstandsschwellwert etwa 2 kHz.
-
Der spektrale VAD-Block 115 kann entweder eines oder beide der erläuterten Beispielverfahren einsetzen. Andere ähnliche Verfahren können ebenfalls genutzt werden. Vorzugsweise sind der Schwellwert für hohe Amplituden, das Intervallzahlschwellniveau, der relativen Amplitudenschwellwert und der Spitzenwertabstandsschwellwert jeweils individuell programmierbar, wie beispielsweise über eine Nutzerschnittstelle.
-
Der spektrale VAD-Block 115 kann auch die höchste Spitzenwertamplitude in den Frequenzintervallen und die Position des höchsten Spitzenwertes bestimmen (d.h. welches Frequenzintervall den höchsten Spitzenwert aufweist). Falls die höchste Spitzenwertamplitude und ihre Position sich über einen bestimmten Zeitraum nicht ändern, wie etwa zwei Sekunden lang oder länger, umfasst das analoge Audioeingabesignal 122 wahrscheinlich Rauschen in gleichbleibender Tonlage. Bei einem Ausblenden wird Rauschen in gleichbleibender Tonlage nicht durch den spektralen VAD-Block 115 berücksichtigt, wenn dieser entscheidet, ob der Steuerungsblock 111 ein VAD-Unterbrechungssignal 116 erzeugen sollte.
-
3 zeigt einen Beispielsignalverlauf von Audiosignalen menschlicher Sprache, wobei die Ordinate die Signalamplitude und die Abszisse den Zeitablauf charakterisiert. Wie in 3 dargestellt kann ein eingehender Sprachbefehl 300, wie er durch den ADC 101 empfangen wird, eine Auslösephrase 301 oder auch Schlüsselphrase, und eine Befehlsphrase 302 sowie eine Endpunkt 303 der Auslösephrase genannte Phase zwischen der Auslösephrase 301 und der Befehlsphrase 302 aufweisen. Die Befehlsphrase 302 kann ebenso einen Endpunkt 304 der Befehlsphrase aufweisen. The Auslösephrase 301 kann zum Beispiel eine durch einen Nutzer geäußerte Phrase sein, die dazu gedacht ist, einen intelligenten persönlichen Assistenten zu aktivieren oder einen Server anderweitig zu alarmieren, dass ein Befehl durch einen Nutzer folgen wird. Bei der Nutzung derzeitiger intelligenter persönlicher Assistenten als Beispiele kann die Auslösephrase 301 zum Beispiel „OK Google,“ „Hey Siri,“ „Hello Jarvis,“ oder „Hey Cortana“ sein. Ein Beispiel einer Befehlsphrase 302 ist „Wie ist das Wetter heute?“ Nichtsdestoweniger muss der Sprachbefehl 300 nicht unbedingt sowohl eine Auslösephrase 301 als auch eine Befehlsphrase 302 aufweisen.
-
Wieder im Bezug auf 1 veranlasst das VAD-Unterbrechungssignal 116 das Spracherkennungsmodul 105 des DSP 106 einen Spracherkennungsalgorithmus auszuführen. Als Beispiel können drei Stufen der Spracherkennung durch den DSP 106 existieren: VAD-Hysterese mit Stilleerkennung; Spracherkennungsschlüsselphrasenübersetzung 1x mit Stilleerkennung; und softwarebasierte Aktivitätserkennung mit Schlüsselphrasenübersetzung > 1x, Serverübertragung und Stilleerkennung.
-
Bei der VAD- Hysterese mit Stilleerkennung baut das Spracherkennungsmodul 105 eine länger währende Hysterese der Hardware-VAD-Entscheidung des VAD-Blocks 104 auf. Beispielsweise kann die Hysterese über einen Zeitraum aufgebaut werden, der die Größe des FFT-Fensters überschreitet. Als Beispiel einer möglichen Implementierung kann die Größe des FFT-Fensters 32 ms in dem oben genannten Beispiel mit den Abtastwerten von 8 ksps und der 256-Punkt-FFT betragen. Demzufolge kann die Hysterese der Hardware-VAD-Entscheidung über einen Zeitraum aufgebaut werden, etliche Male länger ist als das Zeitfenster von 32 ms. Beispielweise kann die Hysterese für einen Zeitraum aufgebaut werden, der mindestens doppelt so lang ist wie die Größe des FFT-Fensters. Vorzugsweise ist der Zeitraum zwischen fünfmal und zehnmal so lang wie die Größe des FFT-Fensters. Mit Stilleerkennung entscheidet das Spracherkennungsmodul 105, ob der analysierte Frame ein Sprachsignal enthält. Falls nicht, wird der Frame als Frame mit Stille gewertet.
-
Bei der Spracherkennungsschlüsselphrasenübersetzung 1x mit Stilleerkennung, durchsucht das Spracherkennungsmodul 105 den analysierten Frame nach einer Auslösephrase 301, während das Spracherkennungsmodul 105 genauso wie oben beschrieben auch eine Stilleerkennung durchführt.
-
Bei softwarebasierter Aktivitätserkennung mit Schlüsselphrasenübersetzung >1x, Serverübertragung und Stilleerkennung, durchsucht das Spracherkennungsmodul 105 den analysierten Frame nach einer Auslösephrase 301, während das Spracherkennungsmodul 105 genauso wie oben beschrieben auch eine Stilleerkennung durchführt. Zusätzlich dazu kann das Spracherkennungsmodul 105 bei Erkennung oder Erfassung einer Auslösephrase 301 Sprachbefehlsinformationen an einen Server übertragen. Die Sprachbefehlsinformationen können zum Beispiel die Auslösephrase 301 oder ein der Auslösephrase 301, der Befehlsphrase 302 oder einem anderen Befehl entsprechendes Signal an den Server sein, in Erwiderung auf die erfasste Auslösephrase 301, oder beliebige Kombinationen selbiger zu reagieren.
-
Die Schlüsselphrasenübersetzung >1x wird grundsätzlich mit einer höheren Verarbeitungsgeschwindigkeit durchgeführt als die Schlüsselphrasenübersetzung 1x. Beispielsweise kann die Schlüsselphrasenübersetzung 1x durch den DSP 106 bei einer Betriebsfrequenz von 12 MHz durchgeführt werden, während die Schlüsselphrasenübersetzung >lx durch den DSP 106 bei einer Betriebsfrequenz von mehr als 12 MHz durchgeführt wird, wie etwa bis zu 98 MHz. Dies ist weiter unten im Zusammenhang mit dem Taktgebersystem 107 beschrieben. Die höhere Verarbeitungsgeschwindigkeit kann es beispielsweise ermöglichen, dass der Auswerteprozess im zeitlichen Ablauf auf den Zeiger des Ringspeichers des Sprach-RAMs 103 aufholen kann.
-
4 zeigt ein Ablaufdiagramm eines beispielhaften Verfahrens 400 eines Spracherkennungsmoduls, wie etwa des Spracherkennungsmoduls 105 des in 1 illustrierten DSP 106. Das Spracherkennungsmodul beginnt im Software-VAD-Zustand 401. Danach bestimmt das Spracherkennungsmodul 402, ob der analysierte Frame ein Frame mit Stille ist, d.h. dass der Frame kein Sprachsignal beinhaltet. Falls der Frame kein Frame mit Stille ist, geht der Vorgang auf den Spracherkennungszustand über, der weite unten beschrieben wird. Falls der Frame ein Frame mit Stille ist, bestimmt der Vorgang in 403, ob sich eine Zeitüberschreitung durch Stille ergeben hat. Eine Zeitüberschreitung durch Stille kann beispielsweise vorkommen, falls der Ringspeicher mit Frames mit Stille gefüllt ist oder falls ein Hystereseschwellniveau für Stille erreicht ist. Vorzugsweise ist der Hystereseschwellniveau für Stille durch einen Nutzer programmierbar. Falls es keine Zeitüberschreitung durch Stille gibt, kehrt der Vorgang zum Software-VAD-Zustand 401 zurück. Falls es eine Zeitüberschreitung durch Stille gibt, schreitet der Vorgang voran zu einem Aussetzzustand 404, in dem der DSP solange untätig bleibt, bis er ein VAD-Unterbrechungssignal 116 von dem VAD-Block 104 erhält. Wenn das Spracherkennungsmodul bei 405 ein VAD-Unterbrechungssignal 116 von dem VAD-Block 104, verlässt der DSP den untätigen Zustand und tritt in einen aktiveren Zustand 406 ein, wie etwa einen 12-MHz-Zustand. Der Vorgang geht dann mit dem vollständigen Spracherkennungszustand 407 weiter.
-
In dem Spracherkennungszustand 407 durchsucht das Spracherkennungsmodul 105 des DSP 106 bei 408 den analysierten Frame auf eine Auslösephrase 301. Daher stellt der Block 408 die Software-VAD-Entscheidung dar. Falls eine Auslösephrase erkannt worden ist, öffnet der Vorgang bei 409 eine Sprachdatenverbindung mit einem Host bzw. Server, um die Sprachbefehlsinformationen an den Host oder Server für eine Weiterverarbeitung oder ein Handeln in Erwiderung der Auslösephrase 301 zu übermitteln. Wie oben angegeben kann die Sprachbefehlsinformation eine Befehlsphrase 302 sein, die an den Server geschickt wird. Falls keine Auslösephrase erkannt worden ist, kehrt der Vorgang zu dem Software-VAD-Zustand 401 zurück und geht wie oben beschrieben weiter. Das heißt, dass das Spracherkennungsmodul bei 402 bestimmt, ob der analysierte Frame ein Frame mit Stille wie oben erläutert ist. Falls der Vorgang bei 403 bestimmt, dass eine Zeitüberschreitung durch Stille aufgetreten ist, wird die während des Spracherkennungszustands 407 begonnene Spracherkennung gestoppt werden, wenn der Vorgang zu einem Aussetzzustand 404 übergeht, um ein VAD-Unterbrechungssignal 116 von dem VAD-Block 104 abzuwarten wie oben beschrieben.
-
Deshalb baut der Software-VAD-Zustand 401 eine länger andauernde Hysterese der Hardware-VAD-Entscheidung durch den VAD-Block 104 auf. Die beschriebene Implementierung kann ein Majoritätsentscheidungssystem sein und nur mit der Hardware-VAD-Entscheidung wie oben für den VAD-Block 104 der 1 beschrieben arbeiten oder andere Frame-basierte Erkennungen in der Software miteinbeziehen.
-
Wenn das System aufnahmebereit ist, werden die Sprachabtastwerte in einen Ringspeicher oder FIFO gespeichert, wie etwa den im Zusammenhang mit 1 erläuterten Sprach-RAM 103. Der FIFO oder Vergangenheitspuffer wird Frame für Frame in der Software eingelesen. Je nach Modus kann die Tiefe des FIFO variieren. Die Software ist so strukturiert, dass sie so viele Daten wie möglich aufnimmt und kann gelegentlich den DSP 106 dynamisch auf der Basis seines Zustandes drosseln. Zum Beispiel kann die DSP-Geschwindigkeit während des Wartens auf ein Software-VAD-Ereignis recht langsam sein, da die verwendeten Algorithmen keine große Anzahl von Zyklen benötigen. Aber falls eine ausreichende Sprachaktivität ermittelt worden ist, die es rechtfertigt, den vollständigen Spracherkennungszustand 407 ablaufen zu lassen, kann die DSP-Geschwindigkeit erhöht werden.
-
Die Frame-basierte Entscheidungsfindung in der Software kann eine geringfügige Latenz bezogen auf die von dem ADC 101 kommenden Echtzeitabtastwerte verursachen. Die Software muss aus dem FIFO auslesen und den Spracherkennungsalgorithmus retroaktiv von dem Zeitpunkt an laufen lassen, zu dem der Sprachbefehl 300 das erste Mal erkannt worden ist. Die DSP-Geschwindigkeit kann auch erhöht werden, um den Versatz zur Echtzeit „aufzuholen“, und die DSP-Geschwindigkeit kann verringert werden, sobald die Anzahl der ausstehenden Frames unter einen vorgegebenen Schwellwert gesunken ist. Beispielsweise kann der DSP als die Echtzeit „eingeholt“ angesehen werden, wenn die Anzahl von ausstehenden Frames wieder auf Eins gesunken ist.
-
Wenn der Spracherkennungszustand 407 und der Durchsuchzustand 408 eine Auslösephrase erkennen, kann das System einen Endpunktalgorithmus ablaufen lassen, um den Endpunkt einer Auslösephrase zu erkennen, wie etwa den in 3 gezeigten Endpunkt 303, und dann alle Daten vor oder bis zu inklusive dem Ende der Auslösephrase verwerfen. Das ermöglicht es dem System, einen bestimmten Anteil des FIFOs zu leeren und den FIFO-Speicher dann für eine Einmaläußerungserkennung, wie weiter unten erläutert, umzuwidmen. Das System verwendet die Software-VAD-Entscheidung weiterhin, um zu bestimmen, ob sich der Nutzer nach der ersten Spracherkennung weiter äußert, während die Abtastwerte in dem FIFO gepuffert werden.
-
Gemäß einer Funktion der sogenannten Einmaläußerungserkennung wird dauerhafte Sprachdurchsuchung verwendet, um zu bestimmen, ob der Nutzer nach dem Äußern einer Auslösephrase 301 weiterspricht. Demnach puffert das System für eine Einmaläußerungserkennung Daten, um die Latenz beim Öffnen einer Sprachverbindung zu einem Host oder Server nach dem Erkennen einer Auslösephrase 301 auszugleichen. Die Software-VAD-Entscheidung ermöglicht es dem System zu bestimmen, ob der Nutzer während der Einmaläußerungszeitüberschreitung - einer bestimmten Zeitspanne nach dem Erkennen der Auslösephrase - gesprochen hat, und kann auch verwendet werden, um einen bestimmten Zeitraum an vorangehender Stille zu verwerfen, nachdem die Auslösephrase 301 erkannt worden ist. Dadurch kann Latenz ausgeglichen werden. Auch können alle überflüssigen Abtastwerte in dem Sprach-RAM 103 verworfen oder als Stille gekennzeichnet werden, sobald der Endpunkt der Einmaläußerung erkannt worden ist. In diesem Zusammenhang bedeutet Einmaläußerung die ermittelte Auslösephrase 301 sowie jedwede zusätzliche Sprachäußerung innerhalb der Einmaläußerungszeitüberschreitung wie etwa eine Befehlsphrase 302. Dementsprechend werden alle nachfolgenden Sprachpakete für eine Interaktion mit dem Host oder Server, wie etwa einem intelligenten persönlichen Assistenten im Wesentlichen in Echtzeit aufgenommen, so dass die Interaktion dialogorientierter wird.
-
Wie oben angemerkt umfasst das Taktgebersystem eine Vielzahl von Takterzeugungsmechanismen. Die Takterzeugungsmechanismen nehmen vorzugsweise verschiedene Mengen an Leistung auf, um einen Takt zu erzeugen, und sind asynchron. Zum Beispiel kann ein erster Takterzeugungsmechanismus, oder ein Takterzeugungsmechanismus für einen Schlafzustand, eine Schaltung mit Phasenregelschleife („phase-locked loop“, PLL) ohne einen laufenden Kristalloszillator verwenden, um einen Takt bei beispielsweise 12,288 MHz zu erzeugen. Als weiteres Beispiel kann ein zweiter Takterzeugungsmechanismus, oder ein Takterzeugungsmechanismus mit niedriger Leistungsaufnahme, eine Schaltung mit Phasenregelschleife („phase-locked loop“, PLL) mit laufendem Kristalloszillator verwenden, um einen Takt bei beispielsweise 12,288 MHz zu erzeugen. Ein dritter Takterzeugungsmechanismus, oder ein Takterzeugungsmechanismus mit hoher Leistungsaufnahme, kann den zweiten Takterzeugungsmechanismus verwenden, um daraus einen Takt bei beispielsweise bis zu 98 MHz abzuleiten. Wie hierin beschrieben hat der erste Takterzeugungsmechanismus einen geringeren Energieverbrauch als der zweite Takterzeugungsmechanismus, und der zweite Takterzeugungsmechanismus hat einen geringeren Energieverbrauch als der dritte Takterzeugungsmechanismus. Gleichermaßen ist der dritte Takterzeugungsmechanismus schneller als der zweite Takterzeugungsmechanismus, und der zweite Takterzeugungsmechanismus ist stabiler als der erste Takterzeugungsmechanismus.
-
Das Taktgebersystem 107 ist dazu ausgelebt, zwischen den verfügbaren Takterzeugungsmechanismen umzuschalten. Daher kann für einen geringeren Energieverbrauch der erste Takterzeugungsmechanismus statt des zweiten Takterzeugungsmechanismus oder des dritten Takterzeugungsmechanismus eingesetzt werden. Gleichermaßen kann der zweite Takterzeugungsmechanismus statt des dritten Takterzeugungsmechanismus für eine geringere Leistungsaufnahme eingesetzt werden. Demgemäß kann der erste Takterzeugungsmechanismus beispielsweise dann verwendet werden, wenn der VAD-Block 104 aktiv ist, aber der DSP 106 keinen Spracherkennungsalgorithmus ablaufen lässt. Der zweite Takterzeugungsmechanismus kann beispielsweise dann verwendet werden, wenn der DSP 106 einen Spracherkennungsalgorithmus ablaufen lässt, nachdem er ein VAD-Unterbrechungssignal 116 von dem VAD-Block 104 erhalten hat. Und der dritte Takterzeugungsmechanismus kann beispielsweise dann verwendet werden, wenn höhere Verarbeitungsgeschwindigkeit erforderlich oder gewünscht sind. Dies kann sich zum Beispiel dann ergeben, wenn der Vorgang eine Sprachdatenverbindung mit dem Host oder Server öffnet, um in dem > 1x Schlüsselphrasendurchsuchungszustand zu arbeiten, oder wenn der Spracherkennungsalgorithmus mehr Zyklen benötigt, um in dem 1x Schlüsselphrasendurchsuchungszustand zu arbeiten. Andere Konfigurationen können ebenso eingesetzt werden. Da digitale Audiologikschaltungen üblicherweise bei 12 MHz arbeiten, könnte jeder dieser beispielhaften Takte verwendet werden.
-
Wenn das Taktgebersystem 107 zwischen den Takterzeugungsmechanismen umschaltet, schaltet es vorzugsweise gleichzeitig für das gesamte Sprachbefehlserkennungs- und -erfassungssystem 100 um, inklusive des DSP 106, des Sprach-RAMs 103, des VAD-Blocks 104, des Downsamplingfilters 102, und des ADCs 101. Da die Datenraten des ADCs 101 Bruchteile des 12,288-MHz-Quelltaktes sind, schaltet der 12,288-MHz-Quelltakt bei einer bestimmte Phase der bruchteiligen Takte.
-
Ein Beispiel eines Taktschaltereignisses wird in 5 dargestellt, in der das beispielhafte Taktschaltereignis mit dem Pfeil 517 gekennzeichnet ist. Wie in 5 illustriert kann das Taktgebersystem, wie etwa das Taktgebersystem 107 bei einem Umschalten zwischen der momentanen asynchronen Taktquelle und einer neuen asynchronen Taktquelle die momentane asynchrone Taktquelle bei einer bestimmten Phase quasi anhalten und auf die Flanke der neuen Taktquelle warten. Das ermöglicht es dem Taktgebersystem zwischen Taktquellen bei einer bestimmten Phase des Takterzeugungsmechanismus umzuschalten. Dementsprechend sorgt das Taktgebersystem für eine Taktflankenanpassung zwischen unterschiedlichen Taktraten.
-
Ein Umschalten zwischen asynchronen Taktquellen ermöglicht es, Takte mit verhältnismäßig geringer Leistungsaufnahme für einige Funktionen oder in einigen Situationen des Systems einzusetzen, und Takte mit höherer Qualität für andere Funktionen oder in anderen Situationen einzusetzen. Weiterhin erlaubt es das gleichzeitige Umschalten zwischen asynchronen Taktquellen für alle Aspekte des Systems, kontinuierlich Abtastwerte zu erfassen, so dass Unterbrechungen lediglich am verpassten Abtastzeitpunkt zum Zeitpunkt der Taktschaltung auftreten.
-
Wie oben angemerkt, umfasst das ständig aufnahmebereite Sprachbefehlserkennungs- und -erfassungssystem 100 mit niedriger Leistungsaufnahme, eine Anzahl von diskreten Betriebszuständen. Unter erneuter Bezugnahme auf 1 können als eine beispielhafte Implementierung sechs beispielhafte Betriebszustände wie unten erläutert eingerichtet werden, in ihrer Reihenfolge gemäß steigender Leistungsaufnahme.
-
BEISPIELHAFTE BETRIEBSZUSTÄNDE
-
Beispielhafter Betriebszustand 1: Schlafzustand, wartend auf Hardware-Amplitudenauslösung
-
In diesem Zustand vergleicht der ADC 101 Pegel, aber erzeugt keine Abtastwerte für den VAD-Block 104 oder den Sprach-RAM 103. Wenn das Niveau der Sprachaktivität ein vorgegebenes Minimalniveau überschreitet, löst die Aufweckschaltung 118 in den verbleibenden Teilen des ADC 101 eine Abtastwerterzeugung aus. Wie oben beschrieben muss der Wandlerabschnitt des ADC 101 keine Leistung aufnehmen, während sich der ADC 101 in diesem Pegelvergleichszustand befindet. Dementsprechend sind der VAD-Block 104 und der Sprach-RAM 103 inaktiv. Der Takt befindet sich im Schlafzustand und der DSP 106 ist untätig.
-
Beispielhafter Betriebszustand 2: Ständig aufnahmebereiter Zustand, wartend auf Hardware-Amplitudensprachauslösung
-
In diesem Zustand erzeugt der ADC 101 Abtastwerte für den VAD-Block 104 und den Sprach-RAM 103 aus dem analogen Audioeingabesignal 122. Der Sprach-RAM 103 schreibt die Abtastwerte in seinen Ringspeicher. Der Takt befindet sich Zustand niedriger Leistungsaufnahme und der DSP 106 ist untätig. Der VAD-Block 104 befindet sich im Amplitudenerfassungszustand, das heißt, dass der Amplituden-VAD-Block 109 aktiv ist. Unter erneuter Bezugnahme auf das weiter oben beschriebene Beispiel für den Betrieb des Steuerungsblockes 111 überschreitet die Signalamplitude des analogen Audioeingabesignals 122 an den ADC 101 nicht den niedrigeren Schwellwert des Steuerungsblockes 111. Dementsprechend wird der Steuerungsblock 111 weder den Spektralanalyseblock 110 auslösen noch ein VAD-Unterbrechungssignal 116 erzeugen.
-
Beispielhafter Betriebszustand 3: Ständig aufnahmebereiter Zustand, wartend auf Hardware-Spektralsprachauslösung
-
In diesem Zustand erzeugt der ADC 101 Abtastwerte für den VAD-Block 104 und den Sprach-RAM 103 aus dem analogen Audioeingabesignal 122. Der Sprach-RAM 103 schreibt die Abtastwerte in seinen Ringspeicher. Der Takt befindet sich Zustand niedriger Leistungsaufnahme und der DSP 106 ist untätig. Der VAD-Block 104 befindet sich im Spektralerfassungszustand, das heißt, dass der Spektralanalyseblock 110 aktiv ist. Unter erneuter Bezugnahme auf das weiter oben beschriebene Beispiel für den Betrieb des Steuerungsblockes 111 überschreitet die Signalamplitude des analogen Audioeingabesignals 122 an den ADC 101 den niedrigeren Schwellwert des Steuerungsblockes 111, aber nicht den höheren Schwellwert des Steuerungsblockes 111. Dementsprechend aktiviert der Steuerungsblock 111 den Spektralanalyseblock 110 und wartet auf dessen Ergebnisse.
-
Beispielhafter Betriebszustand 4: Spracherfassung mit niedriger Leistungsaufnahme
-
In diesem Zustand erzeugt der ADC 101 Abtastwerte für den VAD-Block 104 und den Sprach-RAM 103 aus dem analogen Audioeingabesignal 122. Der Sprach-RAM 103 schreibt die Abtastwerte in seinen Ringspeicher, und der Takt befindet sich Zustand niedriger Leistungsaufnahme. Der VAD-Block 104 befindet sich im Spektralerfassungszustand oder im Amplitudenerfassungszustand. Unter erneuter Bezugnahme auf das weiter oben beschriebene Beispiel für den Betrieb des Steuerungsblockes 111 überschreitet die Signalamplitude des analogen Audioeingabesignals 122 an den ADC 101 sowohl den niedrigeren Schwellwert des Steuerungsblockes 111 als auch den höheren Schwellwert des Steuerungsblockes 111. Dementsprechend generiert der Steuerungsblock 111 ein VAD-Unterbrechungssignal 116 unabhängig von der spektralen VAD-Entscheidung des Spektralanalyseblocks 110. Der DSP 106 befindet sich im VAD-Hysteresezustand mit Stilleerkennung, das heißt zum Beispiel, dass der DSP 106 gemäß dem Verfahren mit den mit 401-405 gekennzeichneten Elementen in 4 vorgeht.
-
Beispielhafter Betriebszustand 5: Spracherkennung mit niedriger Leistungsaufnahme
-
In diesem Zustand erzeugt der ADC 101 Abtastwerte für den VAD-Block 104 und den Sprach-RAM 103 aus dem analogen Audioeingabesignal 122. Der Sprach-RAM 103 schreibt die Abtastwerte in seinen Ringspeicher, und der Puffer wird durch den DSP 106 ausgelesen. Der Takt befindet sich Zustand niedriger Leistungsaufnahme. Der VAD-Block 104 befindet sich im Spektralerfassungszustand oder im Amplitudenerfassungszustand, wie oben beschrieben, wobei der VAD-Block 104 ein VAD-Unterbrechungssignal 116 erzeugt hat. Der DSP 106 befindet sich im Spracherkennungszustand 407, in dem der Spracherkennungsalgorithmus des DSP 106 den analysierten Frame nach einer Auslösephrase 301 durchsucht. Daher geht der DSP 106 zum Beispiel gemäß dem Verfahren mit den mit 401-405 gekennzeichneten Elementen in 4 vor, inklusive einer Stilleerkennung, so dass eine Entscheidung gemäß „Nein“ bei Element 408 erfolgt.
-
Beispielhafter Betriebszustand 6: Sprachbefehlsverarbeitung mit niedriger Leistungsaufnahme
-
In diesem Zustand erzeugt der ADC 101 Abtastwerte für den VAD-Block 104 und den Sprach-RAM 103 aus dem analogen Audioeingabesignal 122. Der Sprach-RAM 103 schreibt die Abtastwerte in seinen Ringspeicher, und der Puffer wird durch den DSP 106 ausgelesen. Der Takt befindet sich Zustand hoher Leistungsaufnahme Der VAD-Block 104 befindet sich im Spektralerfassungszustand oder im Amplitudenerfassungszustand, wie oben beschrieben. Der Spracherkennungsalgorithmus des DSP 106 durchsucht den analysierten Frame nach einer Auslösephrase 301, wobei eine Entscheidung gemäß „Ja“ bei Element 408 der 4 erfolgt. Daher geht der DSP 106 zum Beispiel gemäß dem Verfahren mit den mit 401-409 gekennzeichneten Elementen in 4 vor, inklusive einer Stilleerkennung.
-
Bei Ausführungsformen können diese Betriebszustände unabhängig voneinander aktiviert oder deaktiviert werden. Daher kann das System in solchen Ausführungsformen auswählen, ob es alle oder nur einige der verfügbaren Betriebszustände nutzt. Beispielsweise kann das System zur Verringerung falscher Amplitudenauslösungen in einer lauten Umgebung einen verhältnismäßig hohen Zustand, wie etwa einen der oben beschriebenen Betriebszustände 3, 4, 5 oder 6 auswählen und einen verhältnismäßig niedrigen Zustand, wie etwa einen der oben beschriebenen Betriebszustände 1 oder 2 meiden. Ebenso kann das System zur Vermeidung eines Schlafzustandes und zur Sicherstellung, dass der Anfang einer Auslösephrase 301 erkannt und nicht abgeschnitten wird, einen verhältnismäßig niedrigen Betriebszustand wie etwa den oben beschriebenen Betriebszustand 1 meiden. Andererseits kann das System für eine Verringerung des Energieverbrauchs einen verhältnismäßig niedrigen Betriebszustand, wie etwa einen der der oben beschriebenen Betriebszustände 1, 2, 3, 4 oder 5 gegenüber einem verhältnismäßig hohen Betriebszustand.
-
VERANSCHAULICHENDE BEISPIELE
-
Veranschaulichende Beispiele der offenbarten Technologien werden unten ausgeführt. Eine Ausführungsform der Technologie kann ein oder mehrere, oder jede beliebige Kombination der unten beschriebenen Beispiele umfassen.
-
Beispiel 1 umfasst ein System zum Erkennen und Erfassen von Sprachbefehlen mit einem Sprachaktivitätsdetektor („voice-activity detector“, VAD), welcher dazu ausgelegt ist, ein durch den VAD empfangenes digitales Audiosignal zu empfangen, die Amplitude des durch den VAD empfangenen digitalen Audiosignals zu bestimmen, die Amplitude des durch den VAD empfangenen digitalen Audiosignals mit einem ersten Schwellwert und einem zweiten Schwellwert zu vergleichen, ein VAD-Unterbrechungssignal zu unterdrücken, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals den ersten Schwellwert oder den zweiten Schwellwert nicht überschreitet, das VAD-Unterbrechungssignal zu erzeugen, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals den ersten Schwellwert und den zweiten Schwellwert überschreitet, und eine Spektralanalyse des durch den VAD empfangenen digitalen Audiosignals vorzunehmen, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals zwischen dem ersten Schwellwert und dem zweiten Schwellwert liegt.
-
Beispiel 2 umfasst das System des Beispiels 1, weiterhin mit einem Analog-Digital-Wandler (ADC), welcher dazu ausgelegt ist, ein analoges Audioeingabesignal zu empfangen, und welcher einen Wandlerabschnitt aufweist, welcher dazu ausgelegt ist, aus dem analogen Audioeingabesignal ein digitales Audiosignal mit einer Abtastrate des ADC zu erzeugen.
-
Beispiel 3 umfasst das System des Beispiels 2, bei dem der ADC eine Aufweckschaltung aufweist, die dazu ausgelegt ist zu bestimmen, ob das analoge Audioeingabesignal einen Anfangspegel einer Audioaktivität aufweist, den ADC in einen Schlafzustand zu versetzen, in dem der Wandlerabschnitt des ADC kein digitales Audiosignal erzeugt, wenn das analoge Audioeingabesignal keinen Anfangspegel einer Audioaktivität aufweist, und den ADC in einen aktiven Zustand zu versetzen, in dem der Wandlerabschnitt des ADC ein digitales Audiosignal erzeugt, wenn das analoge Audioeingabesignal den Anfangspegel einer Audioaktivität aufweist.
-
Beispiel 4 umfasst das System des Beispiels 3, bei dem zum Bestimmen, ob das analoge Audioeingabesignal einen Anfangspegel einer Audioaktivität aufweist, die Aufweckschaltung dazu ausgelegt ist, das analoge Audioeingabesignal mit einem Aufweck-Schwellniveau zu vergleichen.
-
Beispiel 5 umfasst das System eines der Beispiele 3 bis 4, bei dem die Aufweckschaltung einen Audiovorverstärker mit einer zusätzlichen Verstärkerstufe, welcher dazu ausgelegt ist, das analoge Audioeingabesignal zu verstärken, und eine Vergleicherstufe umfasst, welche dazu ausgelegt ist, das verstärkte analoge Audioeingabesignal mit einem Aufweck-Schwellniveau zu vergleichen, welches einen Anfangspegel einer Audioaktivität charakterisiert.
-
Beispiel 6 umfasst das System eines der Beispiele 3 bis 5, bei dem der Wandlerabschnitt des ADC ohne Leistungsaufnahme ist, wenn sich der ADC im Schlafzustand befindet, und bei dem der Wandlerabschnitt des ADC Leistung aufnimmt, wenn sich der ADC im aktiven Zustand befindet.
-
Beispiel 7 umfasst das System eines der Beispiele 2 bis 6, weiterhin umfassend einen Downsamplingfilter zwischen dem ADC und dem VAD, welcher dazu ausgelegt ist, das digitale Audiosignal zu empfangen und das digitale Audiosignal zu verarbeiten, um reduzierte digitale Audiosignalabtastwerte mit reduzierter Abtastrate zu erzeugen, welche geringer ist als die Abtastrate des ADC.
-
Beispiel 8 umfasst das System eines der Beispiele 1 bis 7, bei dem der VAD einen Abtastwertkombiniererblock, welcher dazu ausgelegt ist, das durch den VAD empfangene digitale Audiosignal mit einer Abtastrate als Eingabesignal zu empfangen und das durch den VAD empfangene digitale Audiosignal so zu verarbeiten, dass ein kombiniertes digitales Audiosignal mit einer Amplitude erzeugt wird, welches eine Abtastrate aufweist, die geringer ist als die Abtastrate des durch den VAD empfangenen digitalen Audiosignals, einen Amplituden-VAD-Block, welcher dazu ausgelegt ist, die Amplitude des kombinierten digitalen Audiosignals zu bestimmen, einen Spektralanalyseblock, welcher dazu ausgelegt ist, eine Spektralanalyse des durch den VAD empfangenen digitalen Audiosignals vorzunehmen, und einen Steuerungsblock mit zwei Vergleichern aufweist. Der Steuerungsblock ist dazu ausgelegt, die Amplitude des durch den VAD empfangenen digitalen Audiosignals mit einem ersten Schwellwert und einem zweiten Schwellwert zu vergleichen, ein VAD-Unterbrechungssignal zu unterdrücken und den Spektralanalyseblock zu aktivieren, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals weder den ersten Schwellwert noch den zweiten Schwellwert überschreitet, und das VAD-Unterbrechungssignal zu erzeugen, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals sowohl den ersten Schwellwert als auch den zweiten Schwellwert überschreitet.
-
Beispiel 9 umfasst das System des Beispiels 8, bei dem der Spektralanalyseblock einen VAD-Speicher mit wahlfreiem Direktzugriff (VAD-RAM), welcher dazu ausgelegt ist, das kombinierte digitale Audiosignal von dem Abtastwertkombiniererblock zu empfangen und zu speichern, einen Block für schnelle Fouriertransformation (FFT-Block), welcher dazu ausgelegt ist, eine schnelle Fouriertransformation (FFT) des in dem VAD-RAM gespeicherten kombinierten digitalen Audiosignals vorzunehmen und FFT-Ergebnisse auszugeben, einen spektralen Tiefpassfilter (TPF), welcher dazu ausgelegt ist, eine mittlere Amplitude der FFT-Ergebnisse zu bestimmen, und einen spektralen VAD-Block umfasst, welcher dazu ausgelegt ist, die Ergebnisse des spektralen TPF auszuwerten und auf der Basis der Auswertung der Ergebnisse des spektralen TPF dem Steuerungsblock zu signalisieren, ein VAD-Unterbrechungssignal zu erzeugen oder die Unterdrückung der Ausgabe eines VAD-Unterbrechungssignals aufrechtzuerhalten.
-
Beispiel 10 umfasst das System eines der Beispiele 1 bis 9, weiterhin umfassend einen digitalen Signalprozessor (DSP), welcher dazu ausgelegt ist, das VAD-Unterbrechungssignal von dem VAD zu empfangen und das durch den VAD empfangene digitale Audiosignal auf Vorhandensein einer Auslösephrase zu untersuchen.
-
Beispiel 11 umfasst das System des Beispiels 10, weiterhin umfassend einen Sprachspeicher mit wahlfreiem Direktzugriff (Sprach-RAM), welcher dazu ausgelegt ist, das durch den VAD empfangene digitale Audiosignal zu empfangen und in einem die Reihenfolge beachtenden Format (FIFO-Format) zu speichern, und auf welchen durch den DSP zugegriffen werden kann.
-
Beispiel 12 umfasst das System eines der Beispiele 10 bis 11, weiterhin umfassend ein Taktgebersystem mit einer Vielzahl von asynchronen Takterzeugungsmechanismen, von denen jeder der asynchronen Takterzeugungsmechanismen eine unterschiedliche Leistungsaufnahme aufweist, wobei das Taktgebersystem dazu ausgelegt ist, zwischen den asynchronen Takterzeugungsmechanismen umzuschalten.
-
Beispiel 13 umfasst ein Verfahren zum Erkennen und Erfassen von Sprachbefehlen mit den Schritten: Empfangen, durch einen Sprachaktivitätsdetektor („voiceactivity detector“, VAD), eines durch den VAD empfangenen digitalen Audiosignals; Bestimmen, durch den VAD, die Amplitude des durch den VAD empfangenen digitalen Audiosignals; Vergleichen, durch den VAD, der Amplitude des durch den VAD empfangenen digitalen Audiosignals mit einem ersten Schwellwert und einem zweiten Schwellwert; Unterdrücken, durch den VAD, eines VAD-Unterbrechungssignals, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals den ersten Schwellwert oder den zweiten Schwellwert nicht überschreitet; Erzeugen, durch den VAD, des VAD-Unterbrechungssignals, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals den ersten Schwellwert und den zweiten Schwellwert überschreitet; und Vornehmen, durch den VAD, einer Spektralanalyse des durch den VAD empfangenen digitalen Audiosignals, wenn die Amplitude des durch den VAD empfangenen digitalen Audiosignals zwischen dem ersten Schwellwert und dem zweiten Schwellwert liegt.
-
Beispiel 14 umfasst das Verfahren des Beispiels 13, weiterhin mit den Schritten: Empfangen, durch einen Analog-Digital-Wandler (ADC), eines analogen Audioeingabesignals; Bestimmen, durch eine Aufweckschaltung, ob das analoge Audioeingabesignal einen Anfangspegel einer Audioaktivität aufweist; Versetzen des ADC in einen Schlafzustand, in dem der Wandlerabschnitt des ADC kein digitales Audiosignal erzeugt, wenn das analoge Audioeingabesignal keinen Anfangspegel einer Audioaktivität aufweist; und Versetzen des ADC in einen aktiven Zustand zu versetzen, in dem der Wandlerabschnitt des ADC ein digitales Audiosignal mit einer ADC-Abtastrate erzeugt, wenn das analoge Audioeingabesignal den Anfangspegel einer Audioaktivität aufweist.
-
Beispiel 15 umfasst das Verfahren des Beispiels 14, bei dem das Bestimmen, ob das analoge Audioeingabesignal einen Anfangspegel einer Audioaktivität aufweist, ein Vergleichen des analogen Audioeingabesignals mit einem Aufweck-Schwellniveau aufweist.
-
Beispiel 16 umfasst das Verfahren einer der Beispiele 14 bis 15, weiterhin mit den Schritten: Ausschalten des Wandlerabschnitts des ADC, wenn sich der ADC im Schlafzustand befindet; und Einschalten des Wandlerabschnitts des ADC, wenn sich der ADC im aktiven Zustand befindet.
-
Beispiel 17 umfasst das Verfahren einer der Beispiele 14 bis 16, weiterhin mit den Schritten: Empfangen, durch einen digitalen Signalprozessor (DSP), des VAD-Unterbrechungssignals von dem VAD; und Analysieren, durch den DSP, durch den VAD empfangenen digitalen Audiosignals, um eine Auslösephrase zu erfassen.
-
Beispiel 18 umfasst das Verfahren einer der Beispiele 13 bis 17, weiterhin umfassend die Schritte: Empfangen und Speichern, durch einen Sprachspeicher mit wahlfreiem Direktzugriff (Sprach-RAM), des durch den VAD empfangenen digitalen Audiosignals und in einem die Reihenfolge beachtenden Format (FIFO-Format).
-
Beispiel 19 umfasst das Verfahren des Beispiels 18, weiterhin mit dem Schritt: Verwerfen aller Daten in dem Sprach-RAM vor einem Endpunkt der Auslösephrase, falls eine Auslösephrase durch den DSP erfasst worden ist.
-
Beispiel 20 umfasst das Verfahren einer der Beispiele 17 bis 19, weiterhin mit dem Schritt: Bestimmen, ob ein Nutzer während einer vorgegebenen Zeitüberschreitungszeitspanne nach der Auslösephrase gesprochen hat, falls eine Auslösephrase durch den DSP erfasst worden ist.
-
Die zuvor beschriebenen Versionen der offenbarten Gegenstände haben viele Vorteile, die entweder beschrieben wurden oder für einen Fachmann erkennbar wären. Dennoch sind all diese Vorteile oder Merkmale nicht in allen Versionen der offenbarten Vorrichtungen, Systeme oder Verfahren erforderlich. Darüber hinaus wird in dieser schriftlichen Beschreibung auf bestimmte Merkmale Bezug genommen. Es sollte klar sein, dass die Offenbarung in dieser Beschreibung alle möglichen Kombinationen dieser bestimmten Merkmale umfasst. Wenn beispielsweise ein bestimmtes Merkmal im Rahmen eines bestimmten Aspekts oder einer bestimmten Ausführungsform offenbart wird, kann dieses Merkmal, soweit möglich, auch im Rahmen anderer Aspekte und Ausführungsformen verwendet werden.
-
Darüber hinaus können Ausführungsformen der Erfindung auf einer eigens dafür geschaffenen Hardware, auf Firmware, digitalen Signalprozessoren oder auf einem eigens dafür programmierten Mehrzweckrechner einschließlich eines Prozessors, der nach programmierten Anweisungen arbeitet, betrieben werden. Der hierin verwendete Begriff „Prozessor“ umfasst Mikroprozessoren, Mikrocomputer, ASICs und dedizierte Hardware-Controller. Ein oder mehrere Aspekte der Erfindung können in computerverwendbaren Daten und computerausführbaren Anweisungen, wie beispielsweise in einem oder mehreren Programmmodulen, verkörpert sein, die von einem oder mehreren Computern (einschließlich Überwachungsmodulen) oder anderen Geräten ausgeführt werden. Im Allgemeinen beinhalten Programmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen usw., die bestimmte Aufgaben erfüllen oder bestimmte abstrakte Datentypen implementieren, wenn sie von einem Prozessor in einem Computer oder einer anderen Vorrichtung ausgeführt werden. Die computerausführbaren Anweisungen können auf einem nichtflüchtigen, computerlesbaren Medium gespeichert werden, wie beispielsweise auf einer Festplatte, einer optischen Platte, einem Wechselspeichermedium, einem Festkörperspeicher, einem RAM usw. Wie es einem Fachmann geläufig wird, kann die Funktionalität der Programmmodule beliebig kombiniert oder in verschiedenen Ausführungsformen verteilt werden. Darüber hinaus kann die Funktionalität ganz oder teilweise in Firmware oder Hardware-Äquivalenten wie integrierten Schaltungen, feldprogrammierbaren Logikgatteranordnungen („Field Programmable Gate Arrays“, FPGAs) und dergleichen verkörpert werden. Bestimmte Datenstrukturen können verwendet werden, um einen oder mehrere Aspekte der Erfindung effektiver umzusetzen, und diese Datenstrukturen werden als von den hierin beschriebenen computerausführbaren Anweisungen und computerverwendbaren Daten umfasst angesehen.
-
Darüber hinaus wird in dieser Anwendung der Begriff „umfasst“ und seine grammatikalischen Entsprechungen verwendet, um zu kennzeichnen, dass optional andere Komponenten, Merkmale, Schritte, Prozesse, Operationen usw. vorhanden sind. So kann beispielsweise ein Artikel, der die Komponenten A, B und C umfasst, nur die Komponenten A, B und C enthalten, oder er kann die Komponenten A, B und C zusammen mit einer oder mehreren anderen Komponenten enthalten. Auch wenn in dieser Anwendung auf ein Verfahren mit zwei oder mehr definierten Schritten oder Operationen verwiesen wird, können die definierten Schritte oder Operationen in beliebiger Reihenfolge oder gleichzeitig ausgeführt werden, es sei denn, der Kontext schließt diese Möglichkeiten aus.
-
Obwohl spezifische Ausführungsformen der Erfindung zur Veranschaulichung veranschaulicht und beschrieben wurden, versteht es sich, dass verschiedene Änderungen vorgenommen werden können, ohne vom Geist und Umfang der Erfindung abzuweichen. Dementsprechend sollte die Erfindung außer wie durch die beigefügten Ansprüche angegeben nicht als eingeschränkt betrachtet werden.