-
VERWANDTE ANMELDUNGEN
-
Diese Anmeldung ist eine internationale Anmeldung der am 5. Juni 2018 eingereichten, nicht vorläufigen US-Anmeldung Nr.
16/000,102 , die die Priorität und den Vorteil der am 12. März 2018 eingereichten, vorläufigen US-Anmeldung Nr.
62/641,753 beansprucht, welche in ihrer Gesamtheit beide durch Bezugnahme hierin einbezogen werden.
-
GEBIET DER TECHNIK
-
Diese Offenbarung betrifft die Spracherkennung, insbesondere die Sprechbeginn- und Aktivierungsphrasendetektion.
-
ALLGEMEINER STAND DER TECHNIK
-
Immer mehr moderne Computergeräte besitzen Spracherkennungsfähigkeiten, aufgrund derer Benutzer zahlreiche unterschiedliche Computeraufgaben über Sprachbefehle und natürliche Sprache durchführen können. Geräte wie Mobiltelefone oder intelligente Lautsprecher stellen integrierte virtuelle Assistenten bereit, die auf Benutzerbefehle oder Anforderungen eines Benutzers in natürlicher Sprache reagieren können, indem sie zum Abrufen angeforderter Informationen oder zum Steuern von anderen Geräten wie Leuchten, Heizungs- und Klimaanlagensteuerungen, Audio- oder Videoanlagen etc. über lokale Netze und/oder Weitverkehrsnetze kommunizieren. Geräte mit Spracherkennungsfähigkeiten bleiben oft so lange in einem Modus mit einem geringen Stromverbrauch, bis ein spezielles Wort oder eine spezielle Phrase (d. h. eine Aktivierungsphrase) gesagt wird, wodurch ein Benutzer das Gerät, nachdem das Gerät hierdurch eingeschaltet worden ist, unter Nutzung von Sprachbefehlen steuern kann.
-
Die Implementierung einer Aktivierungsphrasendetektion hat jedoch zur Folge, dass mehr Strom verbraucht wird, weil das Gerät zum Teil, unter anderem das Mikrofon und einige Sprachdetektionsschaltungselemente, über längere Zeit in einem eingeschalteten Zustand bleibt. Des Weiteren kann dadurch, dass weitere Schaltungselemente zum Durchführen der Aktivierungsphrasendetektion genutzt werden, zusätzliche Latenz entstehen, die sich während der gewöhnlichen Spracherkennung in einer langsameren Ansprechzeit äußert.
-
Figurenliste
-
Die vorliegende Offenbarung wird beispielhaft und ohne Einschränkung in den Figuren der beiliegenden Zeichnungen veranschaulicht.
- 1 ist ein Blockschaltbild eines Computersystems gemäß einer Ausführungsform.
- 2 veranschaulicht ein Blockschaltbild eines Phrasendetektionsschaltkreises gemäß einer Ausführungsform.
- 3A veranschaulicht einen Ansatz zum Synchronisieren eines Datenstroms mit einem History Buffer gemäß einer Ausführungsform.
- 4 veranschaulicht ein Ablaufschema eines Prozesses zum Durchführen einer Aktivierungsphrasendetektion in einem Computersystem gemäß einer Ausführungsform.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden Beschreibung werden zahlreiche spezielle Einzelheiten wie spezielle beispielhafte Systeme, Komponenten, Verfahren etc. angeführt, um ein hinreichendes Verständnis diverser Ausführungsformen des beanspruchten Gegenstands zu vermitteln. Für den Fachmann versteht es sich jedoch, dass mindestens einige Ausführungsformen auch ohne diese speziellen Einzelheiten praktisch umsetzbar sind. In anderen Fällen werden hinlänglich bekannte Komponenten und Verfahren nicht im Detail beschrieben oder werden anhand eines einfachen Blockschaltbilds präsentiert, um die Verständlichkeit des beanspruchten Gegenstands nicht unnötig zu erschweren. Mithin sind die speziellen Einzelheiten, die angeführt werden, lediglich beispielhaft. Einzelne Implementierungen können von diesen beispielhaften Einzelheiten abweichen, sind aber dennoch als im Schutzbereich des beanspruchten Gegenstands liegend anzusehen.
-
Bei einem spracherkennungsfähigen Gerät ermöglicht die Implementierung einer WUPD-Technologie (WUPD = WakeUp Phrase Detection, Aktivierungsphrasendetektion) ein Power-Gating der Hauptverarbeitungselemente des Geräts, die so lange in einem Zustand mit einem geringen Stromverbrauch (z. B. einem Schlafzustand) gehalten werden, bis die Aktivierungsphrase detektiert wird. In einer Ausführungsform wird auf die WUPD, weil sie selbst beträchtliche Strom- und Verarbeitungsressourcen verwendet, durch eine SOD-Technologie (SOT = Speech Onset Detection, Sprechbeginndetektion) oder eine NTLA-Technologie (NTLA = Noise Threshold Level Analyzer, Geräuschschwellenwertanalyse), die weniger Strom als die WUPD verbrauchen, ebenfalls ein Gating angewendet. Sobald die SOD- oder NTLA-Schaltungsanordnung ein Sprechbeginnereignis detektiert, wird die WUPD-Schaltungsanordnung eingeschaltet (nämlich in einen Zustand mit einem höheren Stromverbrauch umgestellt), um zu bestimmen, ob die Aktivierungsphrase gesagt worden ist.
-
Gemäß einem Ansatz werden Audiodaten aus dem Mikrofon durch die SOD-Schaltungsanordnung zum Detektieren eines Sprechbeginnereignisses und danach durch die WUPD-Schaltungsanordnung zum Detektieren der Aktivierungsphrase seriell verarbeitet; allerdings erhöht eine Nutzung von Audiodaten von hoher Qualität zum Durchführen einer SOD die Komplexität und den Stromverbrauch unnötig, denn im Grunde kann eine SOD unter Nutzung von Audiodaten, deren Qualität niedriger als bei einer WUPD ist, durchgeführt werden. Eine serielle Verarbeitung von Audiodaten erhöht zudem die Latenz, weil eine WUPD dann wirksam ist, wenn in den Audiodaten eine geräuschlose (oder relativ geräuscharme) Zeit vor einem Sprechbeginn umfasst ist. In einer Ausführungsform ist die geräuschlose oder relativ geräuscharme Zeit gekennzeichnet durch einen Schallpegel, der unter einem zuvor bestimmten Detektionsschwellenwert oder unter einem Schwellenbetrag über dem Umgebungsgeräuschpegel liegt. Ein History Buffer erfasst diese geräuschlose Zeit vor einem Sprechbeginn; jedoch erhöht ein History Buffer in der Pipeline die Latenz zwischen der Mikrofoneingabe und der WUPD-Eingabe.
-
Eine Ausführungsform eines Computergeräts implementiert einen Phrasendetektionsschaltkreis, der zwei Verarbeitungspipelines umfasst, eine erste Pipeline mit hoher Latenz und für niedrige Audioqualität zum Durchführen einer SOD (oder NTLA) und eine zweite Pipeline mit niedriger Latenz und für hohe Audioqualität zum Durchführen einer WUPD-Verarbeitung. In einer solchen Ausführungsform erfolgt die SOD als Reaktion auf das Detektieren eines Sprech- oder anderen Schallbeginnereignisses durch eine Aktivierung der WUPD-Schaltungsanordnung. In der Zeit, in der auf ein Sprechbeginnereignis gewartet wird, wird Strom gespart, da die SOD mit Audiodaten von niedrigerer Qualität arbeitet, wodurch die SOD-Schaltungsanordnung bei einer niedrigeren Taktfrequenz arbeiten kann. Ein History Buffer in der Pipeline mit hoher Latenz nimmt Audiosamples vor dem Sprechbeginnereignis auf. Der History Buffer ist für die WUPD-Schaltungsanordnung über eine dedizierte Schnittstelle zugänglich und erhöht nicht die Latenz von Audiodaten von hoher Qualität, die der WUPD-Schaltungsanordnung über die zweite Pipeline mit niedriger Latenz bereitgestellt werden.
-
Die SOD-Schaltungsanordnung aktiviert als Reaktion auf das Detektieren des Sprechbeginnereignisses die WUPD-Schaltungsanordnung, der Strom in einem anderen Stromversorgungsbereich als der SOD-Schaltungsanordnung zugeführt wird. Die SOD-Schaltungsanordnung arbeitet in einem Stromversorgungsbereich mit einem geringen Stromverbrauch, der über längere Zeitabschnitte mit Strom versorgt wird, während die WUPD nur begrenzt lang, nachdem ein Sprechbeginnereignis detektiert worden ist, in einem Stromversorgungsbereich, der eine größere Strommenge verbraucht, arbeitet.
-
Die WUPD-Schaltungsanordnung umfasst eine Verarbeitungseinheit, die, wenn die WUPD-Schaltungsanordnung eingeschaltet wird, (im Vergleich zur SOD) komplexere und bei einer Zufuhr von mehr Strom erfolgende Berechnungen durchführt, um zu bestimmen, ob ein bestimmtes Aktivierungswort oder eine bestimmte Aktivierungsphrase gesagt worden ist. Die WUPD bestimmt dies basierend auf den in den History Buffer aufgenommenen Audiodaten (die mit der Zeit vor dem Sprechbeginn korrespondieren) und den über die Pipeline mit niedriger Latenz empfangenen Audiodaten von hoher Qualität. Mithin werden die WUPD und die anschließenden Spracherkennungstasks unter Nutzung der Pipeline für hohe Qualität und mit niedriger Latenz durchgeführt, wodurch sich die Empfindlichkeit, mit der auf Benutzerbefehle reagiert wird, verbessert.
-
1 veranschaulicht eine Ausführungsform eines Computersystems 100, in dem SOD- und WUPD-Schaltungselemente implementiert sind. Allgemein ist das Computersystem 100 als eines von etlichen unterschiedlichen Geräten ausgebildet, etwa als Laptop oder Desktop-Rechner, Mobilgerät, intelligenter Lautsprecher, Fahrzeug-Infotainment-System, Heimgerät etc., ohne jedoch darauf begrenzt zu sein. Das Computersystem 100 umfasst etliche Komponenten 102-111, die über einen Bus 101 miteinander kommunizieren. Jede der Komponenten 102-111 im Computersystem 100 ist dazu fähig, entweder direkt über den Bus 101 oder über eine oder mehrere der anderen Komponenten 102-111 mit jeglichen der anderen Komponenten 102-111 zu kommunizieren. Die Komponenten 101-108 im Computersystem 100 sind in einer einzigen festen Umhüllung wie einem Laptop- oder Desktop-Gehäuse, einer Mobiltelefonschale oder einem Chassis eines intelligenten Lautsprechers untergebracht. In alternativen Ausführungsformen sind einige der Komponenten des Computersystems 100 als Peripheriegeräte ausgebildet, sodass sich nicht das gesamte Computersystem 100 in einer einzigen festen Umhüllung befindet.
-
Das Computersystem 100 umfasst zudem Bedienungsgeräte zum Empfangen von Informationen von einem Benutzer oder Bereitstellen von Informationen für einen Benutzer. Genauer umfasst das Computersystem 100 ein Eingabegerät 102 wie eine Tastatur, eine Maus, einen Touchscreen oder ein anderes Gerät zum Empfangen von Informationen vom Benutzer. Das Computersystem 100 zeigt dem Benutzer Informationen über eine Anzeige 103 wie einen Monitor, eine LED-Anzeige (LED = Light Emitting Diode, lichtemittierende Diode), eine Flüssigkristallanzeige oder ein anderes Ausgabegerät an.
-
Darüber hinaus umfasst das Computersystem 100 eine Netzkarte 107 zum Senden und Empfangen von Daten über ein Kabel- oder Funknetz. Das Computersystem 100 umfasst zudem ein oder mehrere Peripheriegeräte 108. Die Peripheriegeräte 108 können Massenspeicher, Standortdetektionselemente, Sensoren, Eingabegeräte oder Geräte von anderen Typen, die vom Computersystem 100 genutzt werden, umfassen.
-
Das Computersystem 100 umfasst eine Verarbeitungseinheit 104. Die Verarbeitungseinheit 104 empfängt und führt in einem Speichersystem 105 gespeicherte Anweisungen 106 aus. In einer Ausführungsform umfasst die Verarbeitungseinheit 104 mehrere Verarbeitungskerne, die auf einem gemeinsamen IC-Substrat untergebracht sind. Das Speichersystem 105 umfasst Speicherelemente, die vom Computersystem 100 genutzt werden, wie RAM-Module (RAM = Random Access Memory, Arbeitsspeicher), ROM-Module (ROM = Read Only Memory, Festwertspeicher), Festplatten und andere nichtflüchtige, computerlesbare Medien.
-
Einige Ausführungsformen des Computersystems 100 umfassen möglicherweise weniger oder mehr Komponenten als die in 1 veranschaulichte Ausführungsform. Manche Ausführungsformen sind zum Beispiel ohne eine Anzeige 103 oder Eingabegeräte 102 implementiert. Weitere Ausführungsformen weisen möglicherweise nicht nur eine bestimmte Komponente, sondern mehrere davon auf; zum Beispiel könnte eine Ausführungsform des Computersystems 100 mehrere Verarbeitungseinheiten 104, Busse 101, Netzkarten 107, Speichersysteme 105 etc. aufweisen.
-
Allgemein repräsentiert das Computersystem 100 ein Gerät mit Spracherkennungsfähigkeiten; mithin umfasst das System 100 ein Mikrofon 111 zum Empfangen von Sprachbefehlen und sonstigen Sprachdaten und einen Lautsprecher 109 zum Bereitstellen einer Rückkopplung synthetisierter Stimmdaten an den Benutzer und/oder zum Wiedergeben sonstiger Töne, etwa von Musik, Warntönen etc. Die Verarbeitungseinheit 104 führt Anweisungen 106 aus dem Speichersystem 105 aus, um eine Spracherkennungsengine, die zur Erkennung eines oder mehrerer Sprachbefehle fähig ist, zu implementieren. Das Computersystem 100 reagiert auf einen erkannten Sprachbefehl dadurch, dass es einen dem Sprachbefehl zugeordneten Task, der das Steuern lokaler oder entfernter Hardwareressourcen, das Abrufen von Informationen etc. umfassen kann, durchführt. Zum Beispiel können einer oder mehrere der erkannten Sprachbefehle bewirken, dass das Computersystem 100 eine oder mehrere Netznachrichten über ein Netz über die Netzkarte 107 überträgt, damit Informationen aus dem Internet abgerufen werden können, ein Telefonanruf getätigt werden kann oder Heimgeräte oder Home-Entertainment-Systeme entfernt gesteuert werden können. In einer Ausführungsform erzeugt das Lautsprechergerät 109 als Reaktion auf die erkannten Sprachbefehle eine Schallausgabe, um dem Benutzer zu bestätigen, dass der Sprachbefehl richtig erkannt oder ausgeführt worden ist, oder um abgerufene oder kalkulierte Informationen an den Benutzer zurückzuleiten.
-
In einer Ausführungsform erfolgt für unterschiedliche Teile des Computersystems 100 ein Power-Gating, um Strom zu sparen, wenn diese gerade nicht genutzt werden. Zum Beispiel wird die Verarbeitungseinheit 104, die die Spracherkennungsengine implementiert, so lange in einem Schlafzustand gehalten, bis der Phrasendetektionsschaltkreis 110 detektiert, dass vom Benutzer eine Aktivierungsphrase gesagt worden ist. Der Phrasendetektionsschaltkreis 110 empfängt von einem Schallwandler (d. h. vom Mikrofon 111) ein Audiosignal und detektiert ein Sprechbeginnereignis (d. h. wenn ein Benutzer nach einer geräuschlosen Zeit anfängt zu sprechen) und detektiert anschließend, ob die detektierten Sprachdaten die Aktivierungsphrase umfassen.
-
2 veranschaulicht eine Ausführungsform des Phrasendetektionsschaltkreises 110, der eine SOD-Schaltungsanordnung und eine WUPD-Schaltungsanordnung umfasst. In einer Ausführungsform ist der Phrasendetektionsschaltkreis 110 ganz oder teilweise durch eine Schaltungsanordnung in einem IC-Bauelement (nämlich auf einem einzigen IC-Substrat) oder in einer einzigen Baugruppe implementiert. In alternativen Ausführungsformen sind die Komponenten des Phrasendetektionsschaltkreises 110 zwischen mehreren IC-Bauelementen, Baugruppen oder sonstigen Schaltungsbestandteilen aufgeteilt. Der Phrasendetektionsschaltkreis 110 umfasst eine erste Pipeline mit niedriger Latenz und für hohe Qualität zum Übertragen von Audiodaten von einer Audiodatenquelle an die WUPD-Schaltungsanordnung und eine Pipeline mit hoher Latenz und für niedrige Qualität zum Übertragen von Audiodaten von der Audiodatenquelle an die WUPD-Schaltungsanordnung.
-
In einer Ausführungsform ist die Audiodatenquelle ein PDM-Frontend (PDM = Pulsdichtemodulator) 211, das mit dem Mikrofon 111 verbunden ist. In dem PDM-Frontend 211 erzeugt der PDM 221 einen pulsdichtemodulierten Bitstrom basierend auf einem Signal aus einem Wandler (d. h. dem Mikrofon 111). Der PDM 221 übermittelt ein Taktsignal an das Mikrofon 111, das die anfängliche Sampling-Frequenz bestimmt, und empfängt dann ein Datensignal aus dem Mikrofon 111, das den aus der Umgebung aufgenommenen Schall darstellt. Aus dem Datensignal erzeugt der PDM 221 einen PDM-Bitstrom und stellt den Bitstrom einem Dezimierer 222 bereit, der die Audiodaten, die der Pipeline mit hoher Latenz und der Pipeline mit niedriger Latenz bereitgestellt werden, durch Verringern der Sampling-Frequenz des pulsdichtemodulierten Bitstroms aus dem PDM 221 erzeugt.
-
In einer alternativen Ausführungsform ist die Audiodatenquelle ein zusätzliches ADU-Frontend (AUX-ADU-Frontend, ADU = Analog-Digital-Umsetzer) 230. Im zusätzlichen ADU-Frontend 230 setzt ein Analog-Digital-Umsetzer 231 ein analoges Signal aus dem Mikrofon 111 in ein digitales Audiosignal um. Das digitale Audiosignal wird einem Dezimierer 232 bereitgestellt, der die Sampling-Frequenz des digitalen Audiosignals aus dem ADU 231 zum Erzeugen der Audiodaten, die der Pipeline mit hoher Latenz und der Pipeline mit niedriger Latenz bereitgestellt werden, verringert.
-
Die Pipeline mit hoher Latenz und für niedrige Qualität umfasst einen weiteren Dezimierer 212 und einen History Buffer 216. Der Sprechbeginndetektor (SOD) 213 ist mit einem Ausgang des Dezimierers 212 verbunden. Der Dezimierer 212 verringert ferner die Sampling-Frequenz der Audiodaten und stellt diese Audiodaten von niedrigerer Qualität dem History Buffer 216 und dem SOD 213 bereit. In einer Ausführungsform ist der History Buffer 216 ein Ringpuffer, der einen Teil der Audiodaten, einschließlich einer festen Anzahl der zuletzt empfangenen Datensamples der Audiodaten, speichert. Jedes Audiodatensample, das am Eingang des History Buffer 216 empfangen wird, wird an eine aktuelle Stelle im Buffer 216 geschrieben, woraufhin die aktuelle Stelle auf die nächste Stelle in der Reihenfolge im Buffer 216 inkrementiert wird. Wenn die letzte Stelle in der Reihenfolge (die z. B. mit dem Ende des Buffers 216 korrespondiert) erreicht wird, wird in der Reihenfolge im Buffer 216 wieder von vorn begonnen, dabei werden die ältesten Datensamples, die zuvor im Buffer gespeichert worden sind, überschrieben. Der History Buffer 216 speichert die Audiodaten aus dem Ausgang des Dezimierers 212 mit der verringerten Sampling-Frequenz; mithin verbraucht der History Buffer 216 weniger Speicher als bei einer nicht verringerten Sampling-Frequenz.
-
Während der History Buffer 216 Samples der Version der Audiodaten von niedriger Qualität bei der niedrigeren Sampling-Frequenz aufnimmt, analysiert der SOD 213 gleichzeitig auch die Audiodaten von niedriger Qualität, um eventuelle in den Audiodaten erfasste Sprechbeginnereignisse zu detektieren. Die Audiodaten mit der verringerten Sampling-Frequenz sind ausreichend dafür, um ein Sprechbeginnereignis (oder ein anderes Schallbeginnereignis) zu detektieren, während die Schaltungsanordnung des SOD 213 mit einer niedrigeren Frequenz getaktet werden kann, sodass der SOD mithin weniger Strom verbraucht und weniger komplex ausfällt.
-
Dem Sprechbeginndetektor 213 (oder einem Schallbeginndetektor von einem anderen Typ) und dem History Buffer 216 wird Strom in einem ersten Stromversorgungsbereich 210 zugeführt, während der WUPD-Schaltungsanordnung Strom in einem zweiten Stromversorgungsbereich 240, der durch Isolationszellen 241-243 vom ersten Stromversorgungsbereich 210 isoliert ist, zugeführt wird. Der SOD-Stromversorgungsbereich 210 wird über einen längeren Zeitraum, in dem der SOD 213 und der History Buffer 216 kontinuierlich arbeiten können, ständig mit Strom versorgt, sodass das Gerät in dieser Zeit Sprechbeginnereignisse, die ausgelöst werden, wenn ein Benutzer die Aktivierungsphrase sagt, detektieren kann.
-
Sobald der SOD 213 ein Sprechbeginnereignis detektiert hat, setzt er ein SOD-Flag 214 auf wahr. Eine Energieverwaltungseinheit 215 empfängt das SOD-Flag 214 und reagiert, indem sie den WUPD-Stromversorgungsbereich 240 zum Aktivieren der WUPD-Schaltungsanordnung aus einem Zustand mit einem geringen Stromverbrauch (z. B. einem Schlafzustand) in einen Zustand mit einem höheren Stromverbrauch freischaltet. Die WUPD-Verarbeitungseinheit 248 führt unter Nutzung eines ersten Teils der Audiodatensamples, die vom PDM-Frontend 211 über die Pipeline mit hoher Latenz (durch den History Buffer 216) empfangen worden sind, und eines zweiten Teils der Audiodatensamples, die vom PDM-Frontend 211 über die Pipeline mit niedriger Latenz empfangen worden sind, eine Aktivierungsphrasendetektion durch.
-
Der Synchronisationsschaltkreis 217 reagiert auf das Sprechbeginnereignis, indem er den Fluss der aus den zwei Pipelines ausgegebenen Daten mit der WUPD-Verarbeitungseinheit 248 synchronisiert, damit verhindert wird, dass die Verarbeitungseinheit 248 redundante Audiodatensamples empfängt oder nicht alle verfügbaren Audiodatensamples für einen zusammenhängenden Zeitraum, in dem die WUPD durchgeführt wird, empfängt. Insbesondere synchronisiert der Synchronisationsschaltkreis 217 die Ausgabe der Audiodaten aus den zwei Pipelines durch Aufnehmen eines Speicherorts in den History Buffer 216, der mit der Zeit eines anfänglichen Datensamples des an die Verarbeitungseinheit übertragenen zweiten Teils der Audiodaten korrespondiert.
-
Wenn ein Sprechbeginnereignis detektiert wird, ruft die WUPD-Verarbeitungseinheit 248 Audiodaten aus dem History Buffer 216 ab. Einige dieser Daten repräsentieren möglicherweise eine Geräuschlosigkeit oder relative Geräuscharmheit, die vor einem Sprechbeginn aufgenommen wird, wodurch die Aktivierungsphrase einfacher detektiert werden kann. In einer Ausführungsform ist die aufgenommene Geräuschlosigkeit keine absolute Geräuschlosigkeit, sondern sie umfasst Umgebungsgeräusche, die zur Geräuschstatistikschätzung und zur Phrasenabschneidungsvermeidung genutzt werden können. Die WUPD-Verarbeitungseinheit 248 ruft diesen ersten Teil der Audiodaten über einen dedizierten Satz von Registern 245 ab. Die Samples des ersten Teils der Audiodaten werden mithin asynchron über einen Registerzugriff an die Verarbeitungseinheit 248 übertragen. Aus den Registern 245 werden die Samples des ersten Teils der Audiodaten über den Bus 247 an die Verarbeitungseinheit 248 übertragen. In einer Ausführungsform handelt es sich beim Bus 247 um einen Advanced High-Performance Bus (AHB).
-
Die Pipeline mit niedriger Latenz und für hohe Qualität stellt der Verarbeitungseinheit 248 einen Audiodatensample-Strom aus dem PDM-Frontend 211 über eine DMA-Schnittstelle (DMA = Direct Memory Access, direkter Speicherzugriff) 244 bereit. In einer Ausführungsform repräsentieren die über die Pipeline mit niedriger Latenz übertragenen Audiodatensamples einen zweiten Teil der Audiodaten, der den ersten Teil wenig oder gar nicht überlappt. Mit anderen Worten, der erste Teil und der zweite Teil umfassen Samples, die in unterschiedlichen Zeitabschnitten erfasst worden sind. Die Datenübertragung über die Pipeline mit niedriger Latenz vom PDM-Frontend 211 an die Verarbeitungseinheit 248 erfolgt mit einer niedrigeren Latenz als die Datenübertragung über die Pipeline mit hoher Latenz, da bei der Datenübertragung über die Pipeline mit niedriger Latenz keine Verzögerungen aufgrund des History Buffers 216 auftreten. Darüber hinaus haben die über die Pipeline mit niedriger Latenz übertragenen Audiodaten eine höhere Qualität (d. h. eine höhere Sampling-Frequenz) als die über die Pipeline mit hoher Latenz übertragenen Audiodaten, die eine niedrigere Qualität haben. Die Audiodaten von höherer Qualität werden für den WUPD-Prozess sowie anschließend für die gewöhnliche Sprachbefehl- und Spracherkennung durch die Spracherkennungsengine genutzt. In einer alternativen Ausführungsform nimmt der History Buffer 216 nicht die Audiodaten von niedriger Qualität, sondern die Audiodaten von hoher Qualität auf. In einer solchen Ausführungsform empfängt der History Buffer 216 die Audiodaten von hoher Qualität nicht vom Dezimierer 212, sondern vom PDM-Frontend 211.
-
3 veranschaulicht einen Ansatz zum Synchronisieren der Audiodaten im über die Pipeline mit niedriger Latenz bereitgestellten DMA-Datenstrom mit den aus dem History Buffer 216 bereitgestellten Audiodaten gemäß einer Ausführungsform. In 3 werden die Audiodatensamples durch die einstelligen Zahlen im DMA-Datenstrom 301 und im History Buffer 216 angezeigt, wobei niedrigere Zahlen frühere Samples anzeigen.
-
Sobald die Verarbeitungseinheit 248 eingeschaltet worden ist, beginnt die Verarbeitungseinheit 248 mit dem Lesen der zuletzt erfassten Audiosamples aus dem DMA-Datenstrom 301, die über die Pipeline mit niedriger Latenz an die Verarbeitungseinheit 248 übertragen werden. Zu diesem Zeitpunkt nimmt der Synchronisationsschaltkreis 217 einen Speicherort 303 in den History Buffer 216 auf, der mit der Sampling-Zeit, zu der das anfängliche Datensample (d. h. das Sample ,8') im DMA-Datenstrom 301 erfasst worden ist, korrespondiert. Wie in 3 veranschaulicht, speichert der aufgenommene Speicherort 303 ein korrespondierendes Datensample ,8', das zur selben Zeit wie das anfängliche Datensample ,8' im DMA-Datenstrom 301 erfasst worden ist.
-
In einer Ausführungsform wird der aufgenommene Speicherort basierend auf der Sampling-Zeit des anfänglichen Samples im DMA-Datenstrom 301 oder dem Anfang des DMA-Datenstroms 301 bestimmt; allerdings muss sich am aufgenommenen Speicherort nicht unbedingt ein Sample befinden, das genau zur selben Zeit wie das anfängliche Sample im DMA-Datenstrom erfasst worden ist. Die Sampling-Zeit des anfänglichen Samples im DMA-Datenstrom 301 und die Sampling-Zeit des Samples am aufgenommenen Speicherort im Buffer 216 können um einen begrenzten Zeitabschnitt oder eine begrenzte Anzahl von Samples voneinander abweichen. In einer Ausführungsform ist es bei dem WUPD-Prozess zulässig, dass zwischen dem Sample im Buffer 216 und dem Sample im Datenstrom 301 ein Abstand ist oder die Samples überlappen. Darüber hinaus muss die Sampling-Dauer für das Sample ,8' aus dem Datenstrom 301 nicht gleich der Sampling-Dauer für das mit ihm korrespondierende Sample ,8' im Buffer 216 sein, da die Sampling-Frequenz der Audiodaten im DMA-Datenstrom 301 höher als die Sampling-Frequenz der im History Buffer 216 gespeicherten Audiodaten ist.
-
Nach einer Aktivierung ruft die Verarbeitungseinheit 248 Samples des ersten Teils der Audiodaten aus dem History Buffer 216 ab, indem sie die Samples von aufeinanderfolgenden Speicherorten im Buffer 216 über Register 245 ausliest. Die Verarbeitungseinheit 248 liest die Speicherorte in der Richtung 304 aus, angefangen beim ältesten Sample im Buffer 216 am Speicherort 302 (d. h. beim Sample ,0'). Wenn sie das Ende des Buffers 216 (d. h. das Sample ,5') erreicht hat, wird die Auslesung am anderen Ende des Buffers (d. h. beim Sample 6') fortgesetzt, solange bis der Speicherort 303, der durch den Synchronisationsschaltkreis 217 aufgenommen worden ist, erreicht wird.
-
In einer Ausführungsform wird die Auslesung des ersten Teils der Audiodaten aus dem History Buffer 216 schneller als in Echtzeit asynchron durchgeführt, sodass die Auslesung des Buffers 216 an diejenige des DMA-Datenstroms 301 heranreicht. In einer Ausführungsform werden die Audiodaten aus dem DMA-Datenstrom 301 durch die Verarbeitungseinheit 248 gepuffert, während die Samples im History Buffer 216 ausgelesen werden. Nach dem Erreichen des aufgenommenen Speicherorts 303 ruft die Verarbeitungseinheit 248 das anfängliche Datensample (d. h. das Sample ,8') des zweiten Teils der Audiodaten ab und beginnt mit seiner Verarbeitung. Der kontinuierliche Strom aus Audiodaten von niedriger Latenz und hoher Qualität aus dem DMA-Datenstrom 301 wird daraufhin zum Durchführen der WUPD sowie für anschließende Sprachbefehl-, Spracherkennungs- und andere Tonaufnahme- und -verarbeitungstasks genutzt.
-
Die Verarbeitungseinheit 248 startet die Spracherkennungsengine als Reaktion auf die Erkennung der Aktivierungsphrase (oder eines anderen Schallmusters) basierend auf dem ersten und dem zweiten Teil der Audiodaten. Komponenten des Computersystems 100 wie die Verarbeitungseinheit 104 und der Speicher 105, die zum Implementieren der Spracherkennungsengine genutzt werden, werden aus einem Zustand mit einem geringen Stromverbrauch (z. B. einem Schlafzustand) in einen Zustand mit einem höheren Stromverbrauch (z. B. einen Arbeitszustand) umgestellt. Nach einer Einschaltung hierdurch erkennt die Spracherkennungsengine Sprachbefehle und/oder andere gesprochene Sprache unter Nutzung des kontinuierlichen Stroms aus Audiodaten aus dem DMA-Datenstrom 301.
-
4 ist ein Ablaufschema, das eine Ausführungsform eines WUPD-Prozesses veranschaulicht. Die Vorgänge beim WUPD-Prozess 400 werden durch Komponenten im Computersystem 100 wie die SOD- und WUPD-Schaltungselemente im Phrasendetektionsschaltkreis 110 durchgeführt.
-
Am Block 401 erzeugt das PDM-Frontend 211 aus einem Wandlersignal, etwa von einem Wandler im Mikrofon 111, einen PDM-Bitstrom. Der PDM-Schaltkreis 221 im PDM-Frontend 211 erzeugt den PDM-Bitstrom und stellt den PDM-Bitstrom dem Dezimierer 222 bereit. Am Block 403 dezimiert der Dezimierer 222 den PDM-Bitstrom, um ein Audiodatensignal mit einer im Vergleich zur anfänglichen Sampling-Frequenz am Mikrofon 111 verringerten Sampling-Frequenz zu erzeugen. Diese Audiodaten repräsentieren die Audiodaten von hoher Qualität (d. h. mit einer höheren Sampling-Frequenz), die über die Pipeline mit niedriger Latenz übertragen und zum Durchführen einer WUPD und einer gewöhnlichen Spracherkennung genutzt werden.
-
An den Blöcken 405 werden die Audiodaten über die Pipeline mit hoher Latenz übertragen. Die Blöcke 405 umfassen den Block 407 und den Block 409. Am Block 407 werden die Audiodaten von hoher Qualität an einem zweiten Dezimierer 212 empfangen, der die Sampling-Frequenz der Audiodaten von hoher Qualität zum Erzeugen der Audiodaten von niedriger Qualität (d. h. mit einer niedrigeren Sampling-Frequenz) an seinem Ausgang verringert. Am Block 409 wird ein Teil der Audiodaten mit der niedrigeren Sampling-Frequenz im History Buffer 216 gespeichert. Im History Buffer 216 wird eine feste Anzahl der letzten Datensamples mit der niedrigeren Sampling-Frequenz gespeichert.
-
Die Audiodaten von niedriger Qualität werden vom Dezimierer 212 zudem dem SOD 213 bereitgestellt. Der SOD 213 verarbeitet die Audiodaten von niedriger Qualität, um zu bestimmen, ob in den Audiodaten ein Sprechbeginnereignis (z. B. der Anfang einer gesprochenen Aktivierungsphrase nach einer geräuschlosen Zeit) erfasst worden ist. In alternativen Ausführungsformen prüft der SOD 213 nicht auf einen Beginn von gesprochener Sprache, sondern auf einen Beginn sonstiger Geräusche (z. B. von Tönen, Pfeifgeräuschen oder Alarmzeichen). Wenn der SOD 213 am Block 413 kein Sprechbeginnereignis detektiert, wird beim Prozess 400 zum Block 401 zurückgekehrt. Beim Prozess 400 werden mithin die Blöcke 401-413 wiederholt, es werden also die Audiodaten von hoher Qualität und die Audiodaten von niedriger Qualität erzeugt, der History Buffer 216 wird mit den letzten Audiodatensamples aktualisiert, und es wird so lange auf einen Sprechbeginn geprüft, bis ein Sprechbeginn detektiert wird.
-
Wenn der SOD 213 am Block 413 ein Sprechbeginnereignis detektiert, setzt der SOD das SOD-Flag 214 auf wahr, wodurch der Energieverwaltungseinheit 215 angezeigt wird, dass das Sprechbeginnereignis eingetreten ist. Am Block 415 schaltet die Energieverwaltungseinheit 215 den WUPD-Stromversorgungsbereich 240 frei, der der WUPD-Schaltungsanordnung Strom zuführt. In einer Ausführungsform wird die WUPD-Schaltungsanordnung dadurch aus einem Zustand mit einem geringen Stromverbrauch (z. B. einem Schlafzustand) in einen Zustand mit einem höheren Stromverbrauch (z. B. einen Arbeitszustand) umgestellt.
-
Sobald die WUPD-Verarbeitungseinheit 248 aktiv ist und mit dem Empfangen des zweiten Teils der Audiodaten über den DMA-Datenstrom beginnt, nimmt der Synchronisationsschaltkreis 217 am Block 417 einen Speicherort in den History Buffer 216 auf, der mit der Zeit eines anfänglichen Datensamples des DMA-Datenstroms korrespondiert. Am Block 419 liest die Verarbeitungseinheit 248 den ersten Teil der Audiodaten aus dem History Buffer 216 aus. Der History Buffer 216 stellt die angeforderten Samples der Verarbeitungseinheit 248 asynchron bereit. Wenn der durch den Synchronisationsschaltkreis 217 aufgenommene Speicherort im History Buffer 216 am Block 421 nicht erreicht worden ist, wird beim Prozess 400 zum Block 419 zurückgekehrt. Beim Prozess 400 werden mithin die Blöcke 419 und 421 wiederholt, um die Audiodaten aus dem History Buffer 216 auszulesen, solange bis der aufgenommene Speicherort erreicht wird.
-
Wenn der aufgenommene Speicherort im History Buffer 216 am Block 421 erreicht wird, sind folglich alle Datensamples im History Buffer 216 für die Zeit vor dem Anfang des DMA-Datenstroms ausgelesen worden. Der Prozess 400 wird am Block 423 fortgesetzt, indem die Verarbeitungseinheit 248 nach dem Auslesen von Audiodaten aus dem History Buffer 216 (d. h. über die Pipeline mit hoher Latenz) als Nächstes Daten aus dem DMA-Datenstrom (d. h. über die Pipeline mit niedriger Latenz) ausliest. Durch die Abläufe gemäß den Blöcken 417-423 wird die Übertragung des ersten Teils von Audiodaten über die Pipeline mit hoher Latenz mit der Übertragung des zweiten Teils über die Pipeline mit niedriger Latenz synchronisiert, sodass eventuelle Abstände oder Überlappungen in der Sampling-Zeit zwischen den zwei Teilen minimiert werden. Die Latenz der durch die Verarbeitungseinheit 248 verarbeiteten Samples nimmt im Lauf der Zeit ab, da die gepufferten Audiodaten schneller verarbeitet werden, als neue Audiosamples erzeugt werden.
-
Sobald der erste und der zweite Teil der Audiodaten empfangen worden sind (wie gemäß den Blöcken 419-423 vorgesehen), führt die WUPD-Verarbeitungseinheit 248 an den empfangenen Audiodaten einen Aktivierungsphrasenerkennungsprozess durch, um zu bestimmen, ob in die Audiodaten ein die Aktivierungsphrase sagender Benutzer aufgenommen worden ist. Wenn die Aktivierungsphrase am Block 425 nicht in den Audiodaten detektiert wird, kehrt die WUPD-Schaltungsanordnung in den Schlafzustand mit einem geringen Stromverbrauch zurück, wie gemäß dem Block 427 vorgesehen, und beim Prozess 400 wird zum Block 401 zurückgekehrt. Beim Prozess 400 werden mithin die Blöcke 401-427 wiederholt, es werden also Audiodaten über die Pipeline mit hoher Latenz und die Pipeline mit niedriger Latenz übertragen, die WUPD-Schaltungsanordnung wird jedes Mal, wenn ein Sprechbeginnereignis detektiert wird, eingeschaltet, und es wird bestimmt, ob die Aktivierungsphrase aufgenommen worden ist. Die Blöcke 401-427 werden so oft durchlaufen, bis am Block 425 die Aktivierungsphrase detektiert wird.
-
Wenn am Block 425 die Aktivierungsphrase in den Audiodaten detektiert wird, wird der Prozess 400 am Block 429 fortgesetzt. Am Block 429 schaltet die Verarbeitungseinheit 248 die Spracherkennungsengine frei. In einer Ausführungsform schaltet die Verarbeitungseinheit 248 einen weiteren Stromversorgungsbereich frei, der Komponenten im Computersystem 100 wie der Verarbeitungseinheit 104, dem Speicher 105 etc. Strom zuführt, die aus einem Zustand mit einem geringen Stromverbrauch (z. B. einem Schlafzustand) in einen Zustand mit einem höheren Stromverbrauch (z. B. einen Arbeitszustand) umgestellt werden. Die Spracherkennungsengine, die dadurch implementiert wird, dass die Verarbeitungseinheit 104 Anweisungen 106 ausführt, identifiziert vom Benutzer gesagte Sprachbefehle oder vom Benutzer verwendete natürliche Sprache, indem sie Audiodaten verarbeitet, die über die Pipeline für hohe Qualität und mit niedriger Latenz übertragen und über den DMA-Datenstrom, der sich nach dem WUPD-Ende fortsetzt, empfangen werden.
-
Das Computergerät 100 verwendet mithin die Pipeline mit hoher Latenz und für niedrige Audioqualität, um eine SOD (oder NTLA) durchzuführen, und die Pipeline mit niedriger Latenz und für hohe Audioqualität, um eine WUPD-Verarbeitung und anschließende Spracherkennungstasks durchzuführen. In der Zeit, in der auf ein Sprechbeginnereignis gewartet wird, wird Strom gespart, da die SOD mit Audiodaten von niedrigerer Qualität arbeitet, wodurch die SOD-Schaltungsanordnung bei einer niedrigeren Taktfrequenz arbeiten kann. Die WUPD und die anschließenden Spracherkennungstasks werden unter Nutzung der Pipeline für hohe Qualität und mit niedriger Latenz durchgeführt, wodurch sich die Erkennungsgenauigkeit und die Empfindlichkeit, mit der auf Benutzerbefehle reagiert wird, verbessern.
-
In einer Ausführungsform kann der oben veranschaulichte Doppelpipeline-Ansatz, bei dem ein Prozess zur Detektion von Ereignissen mit einem geringen Stromverbrauch als Reaktion auf ein detektiertes Ereignis erfolgt, indem ein Prozess zur Erkennung von Mustern eines höheren Stromverbrauchs freigeschaltet wird, statt bei einer Sprachdetektion auch bei anderen Anwendungen genutzt werden. Für solche Anwendungen kann die Detektion von Ereignissen bei einer Zufuhr von wenig Strom auch basierend auf Wandler- oder Sensordaten von niedrigerer Qualität durchgeführt werden, während hingegen die Erkennung von Mustern bei einer Zufuhr von mehr Strom unter Nutzung von Daten von höherer Qualität (z. B. mit einer höheren Sampling-Frequenz und/oder Auflösung) durchgeführt wird. Zum Beispiel kann ein Bewegungsbeginndetektor eine Bewegung nach einer Zeit mit wenig oder ohne eine Bewegung unter Nutzung eines Videodatenstroms von niedriger Qualität detektieren und dann auf die detektierte Bewegung reagieren, indem er einen Prozess zur Erkennung von Mustern eines höheren Stromverbrauchs (z. B. zu einer Gesichtserkennung), bei dem ein Videodatenstrom von höherer Qualität genutzt wird, freischaltet. Basierend auf dem Ergebnis der Mustererkennung, etwa einer Audio- oder Videoaufnahme, einer Aufnahme von Standbildern oder dem Senden einer Benachrichtigung, können noch weitere Aktionen durchgeführt werden. In alternativen Ausführungsformen wird der Prozess zur Erkennung von Mustern eines höheren Stromverbrauchs durch einen Beginnereignisdetektor als Reaktion darauf freigeschaltet, dass Ereignisse wie Änderungen in der Temperatur, im Umgebungslicht, in den Umgebungsbedingungen oder sonstigen Bedingungen oder Ereignissen, die durch Sensoren registriert werden können, detektiert werden.
-
In den obigen Ausführungsformen können verschiedene Abwandlungen vorgenommen werden; zum Beispiel kann für Signale, für die laut ihrer Beschreibung mit einer hohen Spannung der Zustand wahr herbeigeführt wird, stattdessen auch mit einer geringen Spannung der Zustand wahr herbeigeführt werden, oder die genannten Komponenten können durch andere Komponenten mit ähnlicher Funktion ersetzt werden. Wie hierin beschrieben, können leitfähige Elektroden, die „elektrisch verbunden“ oder „elektrisch gekoppelt“ sind, so gekoppelt sein, dass zwischen den leitfähigen Elektroden eine Leiterbahn mit einem relativ geringen Widerstand ist. Größen, Abmessungen oder sonstige Werte, die als „im Wesentlichen“ gleich beschrieben werden, können nominell gleich, müssen aber nicht genau gleich sein (Abweichungen können aufgrund von Fertigungstoleranzen, Umweltbedingungen, Quantisierungs- oder Rundungsfehlern und/oder sonstigen Faktoren auftreten) oder können derart nah beieinander liegen, dass dies ausreichend für das Erzielen eines angestrebten Effekts oder Nutzens ist.
-
Die hierin beschriebenen Ausführungsformen umfassen verschiedene Vorgänge. Diese Vorgänge können durch Hardwarekomponenten, Software, Firmware oder eine Kombination davon durchgeführt werden. Der Begriff „gekoppelt“, wie hierin genutzt, kann die Bedeutung durch eine oder mehrere Zwischenkomponenten direkt oder indirekt gekoppelt haben. Alle hierin beschriebenen Signale, die über verschiedene Busse bereitgestellt werden, können mit anderen Signalen einem Zeitmultiplexverfahren unterzogen und über einen oder mehrere gewöhnliche Busse bereitgestellt werden. Darüber hinaus sind die Verbindungsleitungen zwischen Schaltungskomponenten oder -blöcken möglicherweise als Busse oder Einzelsignalleitungen gezeigt. Alternativ kann es sich bei jedem der Busse um eine oder mehrere Einzelsignalleitungen handeln, und es kann sich bei jeder der Einzelsignalleitungen alternativ um Busse handeln.
-
Manche Ausführungsformen sind als ein Computerprogrammprodukt implementierbar, das Anweisungen, die in einem computerlesbaren Medium gespeichert sind, umfassen kann. Diese Anweisungen können dazu genutzt werden, um einen Mehrzweck- oder Spezialprozessor zum Durchführen der beschriebenen Vorgänge zu programmieren. Ein computerlesbares Medium umfasst einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer von einer Maschine (z. B. einem Computer) lesbaren Form (z. B. Software oder eine Verarbeitungsanwendung). Das computerlesbare Speichermedium umfasst möglicherweise Folgendes, ohne jedoch darauf begrenzt zu sein: ein Magnetspeichermedium (z. B. eine Diskette); ein optisches Speichermedium (z. B. eine CD-ROM); ein magnetooptisches Speichermedium; einen Festwertspeicher (ROM); einen Arbeitsspeicher (RAM); einen lösch- und programmierbaren Speicher (z. B. ein EPROM oder ein EEPROM); einen Flash-Speicher; oder ein Medium von einem anderen Typ, das zum Speichern elektronischer Anweisungen geeignet ist.
-
Einige Ausführungsformen können darüber hinaus in verteilten Rechenumgebungen, in denen das computerlesbare Medium in mehr als nur einem Computersystem gespeichert ist und/oder durch mehr als nur ein Computersystem ausgeführt wird, praktisch umgesetzt werden. Darüber hinaus können die zwischen Computersystemen transferierten Informationen mithilfe von Pull oder Push über das Übertragungsmedium, das die Computersysteme verbindet, übertragen werden.
-
Die Vorgänge des Verfahrens (der Verfahren) hierin sind zwar in einer bestimmten Reihenfolge gezeigt und beschrieben, jedoch kann die Reihenfolge der Vorgänge jedes Verfahrens so verändert werden, dass manche Vorgänge möglicherweise in umgekehrter Reihenfolge durchgeführt werden oder manche Vorgänge mindestens zum Teil gleichzeitig mit anderen Vorgängen durchgeführt werden. In einer weiteren Ausführungsform können Anweisungen oder Teilvorgänge einzelner Vorgänge mit Unterbrechungen und/oder abwechselnd erfolgen.
-
In der obigen Beschreibung ist der beanspruchte Gegenstand mit Bezug auf spezielle Ausführungsbeispiele beschrieben worden. Selbstverständlich können aber verschiedene Abwandlungen und Änderungen an ihnen vorgenommen werden, ohne dass dabei vom umfassenden Schutzbereich der Erfindung, wie in den beigefügten Ansprüchen dargelegt, abgewichen wird. Die Beschreibung und die Zeichnungen sind daher als beispielhaft und nicht als einschränkend anzusehen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- US 16/000102 [0001]
- US 62/641753 [0001]