-
GEBIET DER OFFENBARUNG
-
Dieser Offenbarung betrifft im Allgemeinen eine automatische Spracherkennung und insbesondere Verfahren und Geräte für eine energieeffiziente und leistungsarme verteilte automatische Spracherkennung auf tragbaren Vorrichtungen.
-
HINTERGRUND
-
Spracherkennung erfordert einen komplizierten, prozessor- und leistungsintensiven Satz von Operationen. Da eine automatisierte Spracherkennung eine rechen- und speicherintensive Arbeitslast generiert, ist eine Eingliederung einer Spracherkennung in Produkte mit beschränkten Ressourcen nicht durchführbar.
-
Die
US 8 990 076 B1 betrifft eine automatisierte Spracherkennung (ASR), bei welcher mehrere Geräte verwendet werden können, um die ASR in einer verteilten Umgebung durchzuführen. Um die Bandbreitennutzung bei der Übertragung zwischen Geräten zu reduzieren, werden ASR-Informationen vor der Übertragung komprimiert. Um einem Verlust der Wiedergabetreue entgegenzuwirken, der mit einer solchen Komprimierung einhergehen kann, werden zwei Versionen eines Audiosignals von einem akustischen Frontend (AFE) verarbeitet, wobei eine Version unverändert ist und die andere Version vor der AFE-Verarbeitung komprimiert und dekomprimiert wird. Die beiden Versionen werden verglichen, und die Vergleichsdaten werden zur weiteren ASR-Verarbeitung an einen Empfänger gesendet. Der Empfänger verwendet die Vergleichsdaten und die empfangene Version des komprimierten Audiosignals, um die Nach-AFE-Verarbeitungsergebnisse aus dem empfangenen Audiosignal neu zu erstellen.
-
Die Norm ETSI
ES 201 108 V 1.1.3 (2003-09), „Speech Processing, Transmission and Quality Aspects (STQ); Distributed speech recognition; Front-end feature extraction algorithm; Compression algorithms“, beschreibt einen Standard zur Datenübertragung bei verteilten Spracherkennungssystemen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die Erfindung betrifft eine tragbare Vorrichtung gemäß Patentanspruch 1, ein computerlesbares Speicherungsmedium bzw. computerlesbare Speicherungsmedien gemäß Patentanspruch 7, ein Verfahren gemäß Patentanspruch 12 und eine Einrichtung gemäß Patentanspruch 15.
-
Figurenliste
-
- 1 ist ein Diagramm hoher Stufe eines verteilten automatisierten Spracherkennungssystems in einem Kontext einer tragbaren Vorrichtung.
- 2-3 zeigen beispielhafte Quantifizierungsstrategien.
- 4 zeigt eine beispielhafte Sprachwellenform, die Sprach-, Schlüsselphrasen- und/oder Befehlsidentifizierung zeigt.
- 5 zeigt ein beispielhaftes Zustandsdiagramm, das Zustände einer Schlüsselphrasen- und Befehlsdetektion zeigt.
- 6-7 zeigen beispielhafte Paketierungstechniken.
- 8 zeigt eine beispielhafte Implementierung der tragbaren Vorrichtung von 1 als ein tragbares System-on-Chip.
- 9-12 zeigen Flussdiagramme, die für beispielhafte maschinenlesbare Anweisungen repräsentativ sind, die zum Implementieren der beispielhaften Systeme von 1-8 ausgeführt werden können.
- 13-14 sind schematische Darstellungen beispielhafter Prozessorplattformen, die die Anweisungen von 9-12 zum Implementieren der beispielhaften Systeme von 1-8 ausführen können.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In der folgenden ausführlichen Beschreibung wird auf die beiliegenden Zeichnungen Bezug genommen, die einen Teil derselben bilden, und in welchen zur Veranschaulichung spezielle Beispiele dargestellt sind, die in die Praxis umgesetzt werden können. Diese Beispiele sind in ausreichender Einzelheit beschrieben, um einem Fachmann auf dem Gebiet eine Umsetzung des Gegenstands in die Praxis zu ermöglichen, und es ist klar, dass andere Beispiele verwendet werden können und dass logische, mechanische, elektrische und/oder andere Änderungen vorgenommen werden können, ohne vom Umfang des Gegenstands dieser Offenbarung abzuweichen. Die folgende ausführliche Beschreibung ist daher zur Beschreibung beispielhafter Implementierungen vorgesehen und ist nicht als Einschränkung des Umfangs des in dieser Offenbarung beschriebenen Gegenstands zu verstehen. Gewisse Merkmale von verschiedenen Aspekten der folgenden Beschreibung können kombiniert werden, um noch neue Aspekte des Gegenstands zu bilden, der in der Folge besprochen ist.
-
Bei der Vorstellung von Elementen verschiedener Ausführungsformen der vorliegenden Offenbarung sollen die Artikel „einer“, „eine“, „eines“, „der“, „die“, „das“ und „dieser“, „diese“, „dieses“ bedeuten, dass ein oder mehrere der Elemente vorhanden sind. Die Begriffe „umfassend“, „enthaltend“ und „aufweisend“ sollen einschließlich sein und bedeuten, dass zusätzliche Elemente außer den aufgezählten Elementen vorhanden sein können.
-
Spracherkennungstechnologien können in einer Reihe elektronischer Vorrichtungen, wie Hörgeräten, Mikrophonen und/oder anderen tragbaren und/oder hörbaren Produkten nützlich sein. Über eine exakte, energieeffiziente automatische Spracherkennungs-(ASR) Maschine zu verfügen, ist eine wichtige Komponente in der Gestaltung sprachunterstützter tragbarer oder hörbarer Produkte. Solche tragbaren/hörbaren elektronischen Geräte können dadurch beschränkt sein, dass sie keine Anzeige aufweisen und/oder die Möglichkeit einer Interaktion mit der Vorrichtung fehlt. Die ASR-Maschine kann jedoch ein rechen- und speicherintensiver Prozessor sein, wodurch es schwer wird, diesen lokal (z.B. lokale ASR) auf einem ressourcenbeschränkten (z.B. kleine Batterie, formfaktorbegrenztem Speicher und Speicher mit beschränkter Verarbeitungsleistung) tragbaren oder hörbaren Produkt zu integrieren. Daher sehen gewisse Beispiele eine verteilte ASR-Lösung vor, in dem eine Audioaufnahme auf der tragbaren Vorrichtung erfolgt und rohes/komprimiertes Audio zu einer Begleitvorrichtung oder Cloud über eine drahtlose oder zellulare Verbindung kurzer Reichweite zur Weiterverarbeitung gesendet wird.
-
Die Übertragung von rohem Audio über eine drahtlose Verbindung kurzer Reichweite kann jedoch sowohl im Sinne eines Leistungsverbrauchs wie auch einer Bandbreitennutzung teuer sein. Audio kann komprimiert werden, aber auf Kosten der ASR-Detektionsgenauigkeit.
-
In gewissen hier beschriebenen Beispielen kann eine verteilte ASR mit begrenzter Bandbreite über einen Verbindungskanal verteilt werden, während weiterhin eine ASR-Detektionsgenauigkeit beibehalten wird. Gewisse Beispiele verringern den Leistungsverbrauch der Vorrichtung in einer „immer eingeschalteten“ verteilten ASR-Lösung auf einer tragbaren Vorrichtung, um die Batterielebensdauer der tragbaren Vorrichtung zu verlängern. Die Verwendung eines effizienteren Audio-Frontend und einer Sprachauslösung zur Steuerung eines Konnektivitätmanagements in Verbindung mit verringerten Bandbreitenanforderungen zum Übertragen von Audiomerkmalen über den Verbindungskanal mit effizienten Quantifizierungsmechanismen ermöglicht eine effiziente Übertragung von Audiomerkmalen zu einer Begleitvorrichtung über den effizienten Kommunikationskanal. Eine ASR-Maschine, die auf einer Begleitvorrichtung läuft, kann die Audiomerkmale als Eingang an der Begleitvorrichtung über den Kommunikationskanal empfangen.
-
Anstatt rohe Audioabtastungen (höhere Bandbreite) oder komprimiertes Audio über eine Bluetooth-Verbindung (geringere Bandbreite, verringerte ASR Detektionsgenauigkeit) oder Sprach-/Audiomerkmale (geringere Bandbreite) zur Begleitvorrichtung zu senden, sehen gewisse Beispiele ein leistungseffizientes Verfahren zum Senden von Audio-/Sprachmerkmalen über Bluetooth Low Energy (BLE) Kanäle oder eine andere energieärmere Konnektivitätslösung zu einer Begleitvorrichtung mit verringerter Bandbreite unter Verwendung einer Quantifizierungstechnik vor, um eine ASR-Detektionsgenauigkeit aufrechtzuerhalten. Durch effektive Steuerung von Verbindungskanälen auf der Basis einer Eingabe von einem Voice Activity Detection (VAD) und Schlüsselphrasendetektor (KPD), unter Wiederverwendung oder Beibehaltung derselben Bausteine und unter Verwendung effizienter BLE-Kanäle kann eine bessere Energieeffizient im Vergleich zu früheren Lösungen erzielt werden.
-
1 zeigt eine Beschreibung auf hoher Stufe eines verteilten ASR-Systems 100 in einem Kontext einer tragbaren Vorrichtung. Das beispielhafte System 100 enthält eine tragbare Vorrichtung 110 und eine Begleitvorrichtung 120. Die beispielhafte tragbare Vorrichtung 110 enthält ein Mikrophon 111, einen Schlüsselphrasendetektor 112, einen Merkmalextraktor 113, einen Quantifizierer 114, einen Kompressor 115 und einen Sender 116. Die beispielhafte Begleitvorrichtung 120 enthält einen Empfänger 122, eine Entquantifizierungs- und Dekompressionsmaschine124 und eine ASR-Maschine 126.
-
In Betrieb sammelt die tragbare Vorrichtung 110 eine Audioabtastung vom Mikrophon (MIC) 111. Der Schlüsselphrasendetektor 112 löst eine Aktivierung der tragbaren Vorrichtung 110 aus, um die gesammelte Audioabtastung zu verarbeiten, wenn gewisse Schlüsselphrasen, die mit dem Betrieb der tragbaren Vorrichtung verknüpft sind, identifiziert werden. Zum Beispiel können gewisse Wörter, Phrasen und/oder Töne mit einer Steuerung/einem Betrieb der tragbaren Vorrichtung verknüpft sein und der Schlüsselphrasendetektor 112 überwacht die gesammelte Audioabtastung, um solche Wörter, Phrasen und/oder Töne zu identifizieren. Bei Detektion kann der Schlüsselphrasendetektor 112 die tragbare Vorrichtung 110 aktivieren, um die empfangene Audioabtastung zu verarbeiten. Der Schlüsselphrasendetektor 112 erlaubt der tragbaren Vorrichtung 110, „immer eingeschaltet" zu sein, während Leistung konserviert wird, bis eine relevante Audioabtastung detektiert wird. In anderen Beispielen verarbeitet die tragbare Vorrichtung 110 die empfangene Audioabtastung ohne Berücksichtigung einer Identifizierung von Schlüsselphrasen usw. durch den Detektor 112.
-
Die tragbare Vorrichtung 110 kann dann, optional, Audiomerkmale aus der Audioabtastung unter Verwendung des Merkmalextraktors 113 extrahieren. Die extrahierten Merkmale und/oder rohen Audioabtastungen können durch den Quantifizierer 114 (auch als die Quantifizierungsmaschine 114 bezeichnet) quantifiziert und/oder durch den Kompressor 115 (auch als die Kompressionsmaschine 115 bezeichnet) zur Übertragung durch den Sender 116 zur Begleitvorrichtung 120 über einen drahtlosen Kommunikationskanal 130 kurzer Reichweite (z.B. Wi-Fi, BLE, Bluetooth usw.) komprimiert werden. Die Begleitvorrichtung 120 (z.B. Mobiltelefon, Gateway-Vorrichtung und/oder andere Hardware-Verarbeitungsvorrichtung) empfängt die Audioinformationen (z.B. Merkmale und/oder rohen Audioabtastungen) beim Empfänger 122 und die Entquantifizierungs- und Dekompressionsmaschine124 dekomprimiert und entquantifiziert (hebt z.B. die Zuordnung auf) die empfangenen Audioinformationen zur Verarbeitung durch die ASR-Maschine 126.
-
Wie in dem Beispiel von 1 dargestellt, werden die Merkmalextraktion und Quantifizierung (z.B. Abbildung, Rundung und/oder Beschneidung von Audioabtastungswerten) in Kombination mit Bluetooth Low Energy (BLE) und/oder einer anderen energiearmen Kommunikationstechnologie im persönlichen Netzwerk durchgeführt. Traditionellerweise müssen Lösungen unter Verwendung von Bluetooth und extrahierten Merkmalen einen Kompromiss zwischen Bit-Rate und Genauigkeit finden. Gewisse Beispiele beruhen jedoch nicht auf einer Voice Activity Detection (VAD) und dem Schlüsselphrasendetektor 112, um den Leistungsverbrauch zu verringern. Vielmehr wird in gewissen Beispielen BLE und/oder eine andere energiearme Kommunikation im persönlichen Netzwerk mit Kompression über rohen Audioabtastungen verwendet. Ein Vorteil einer Verwendung von Kompression und Dekompression ist, dass die Kompression/Dekompression ermöglicht, dass die tragbare Vorrichtung und ihre Audiodatenübertragung mit jeder ASR-Maschine verwendet werden kann. Solche Lösungen können jedoch den Leistungsverbrauch für die Kompression auf der tragbaren Vorrichtung 110 erhöhen (z.B. um einige Dutzende Megahertz (MHz) usw.).
-
Wie in dem beispielhaften System 100 von 1 dargestellt, sind der Schlüsselphrasendetektor 112 und Merkmalextraktor 113 konfiguriert, Rechen-, Speicher- und Bandbreitenressourcen zu verringern, um den gesamten Systemleistungsverbrauch zu verringern. Zum Beispiel können Sprach- und/oder andere Audiomerkmalen unter Verwendung von Mel-Frequenz-Cepstralkoeffizienten (MFCCs) dargestellt werden. MFCCs können extrahierte Audiomerkmale für eine fokussierte Übertragung und Verarbeitung darstellen, um eine automatisierte Spracherkennung aus den Audioabtastungen durch die ASR-Maschine 126 zu erleichtern.
-
Bei der Tonverarbeitung ist ein Mel-Frequenz-Cepstrum (MFC) eine Darstellung eines kurzfristigen Leistungsspektrums eines Tons auf der Basis einer linearen Kosinustransformation eines log-Leistungsspektrums einer nicht linearen Mel-Frequenzskala. MFCCs sind Koeffizienten, die gemeinsam ein MFC bilden. MFCCs können von einer Art von Cepstral-Darstellung einer Audioabtastung abgebildet werden. Ein Cepstrum (in Umkehr der ersten vier Buchstaben von Spektrum) ist ein Ergebnis einer inversen Fourier Transformation (IFT) eines Logarithmus eines geschätzten Spektrums eines Signals. Ein Mel-Frequenz-Cepstrum (MFC) ist ein Cepstrum, in dem die Frequenzbänder gleichmäßig auf der Mel-Skala beabstandet sind, das sich der Reaktion des menschlichen Hörsystems enger nähert als die linear beabstandeten Frequenzbänder, die im normalen Cepstrum verwendet werden. Der eingestellte Abstand oder die Verzerrung von Frequenzbändern können zum Beispiel eine bessere Darstellung von Ton in der Audiokompression ermöglichen.
-
MFCCs können anhand der Fourier-Transformation einer Audioabtastung oder eines Signals ermittelt werden. Ein resultierendes Spektrum hat zugehörige Leistungen, die dann auf die Mel-Skala unter Verwendung dreieckiger überlappender Fenster abgebildet werden können. Dann kann der Log Wert der Leistung bei jeder Mel-Frequenz ermittelt werden und es kann eine diskrete Kosinustransformation für jede Mel-Log-Leistung durchgeführt werden, als wäre der Satz von Mel-Log-Leistungen ein Signal. MFCCs können aus den Amplituden des resultierenden Frequenzspektrums extrahiert werden.
-
Unter Verwendung von MFCCs kann der Betrieb des Schlüsselphrasendetektors 112 gestrafft werden und leicht verarbeitbare Datenpakete für die ASR-Maschine 126 bereitstellen. Die durch den Schlüsselphrasendetektor 112 und/oder den Merkmalextraktor 113 generierten MFCCs können durch die ASR-Maschine 126 verwendet werden, um zum Beispiel die Audioabtastung(en) zur Verarbeitung durch die ASR-Maschine 126 wiederherzustellen. Zum Beispiel kann die ASR-Maschine 126 in zwei Betriebsarten arbeiten - einem Verarbeitungsmodus niedrigerer Dimension (z.B. 13 MFCCs usw.) und einem Verarbeitungsmodus höherer Dimension (z.B. 23 MFCCs usw.). Der Kompressor 115 und die Entquantifizierungs- und Dekompressionsmaschine124 handhaben eine Kompression/Dekompression, sodass die ASR-Maschine 126 Audiodaten ohne den Mehraufwand einer Kompression/Dekompression verarbeiten kann. Die ASR-Maschine 126 kann für eine MFCC-Verarbeitung (z.B. durch Hardware-Beschleunigung und/oder Anweisungserweiterung usw.) konfiguriert, verbessert, optimiert usw. sein, um zum Beispiel eine verbesserte Geschwindigkeit und Genauigkeit und einen verringerten Leistungsverbrauch zu nutzen. In gewissen Beispielen können der Kompressor 115 und die Dekompressionsmaschine 124 optional abhängig von der Audioabtastungsgröße und den Betriebsbedingungen usw. aktiviert/deaktiviert werden. In anderen Beispielen können der Kompressor 115 und die Dekompression nicht enthalten sein. Stattdessen kann in einigen Beispielen eine Quantifizierung der Audioabtastungsdaten durch den Quantifizierer 114 für eine BLE-Übertragung über den Kommunikationskanal 130 für die Dequantifizierung durch die Maschine 124 und Verarbeitung durch die ASR-Maschine 126 ausreichend sein. Gewisse Beispiele stellen Quantifizierungstechniken bereit, die übertragene MFCC-Werte reduzieren können, was zu einer geringen Bandbreitennutzung über BLE führt, ohne die ASR-Detektionsgenauigkeit zu beeinträchtigen. Die Verringerung der Bandbreitennutzung über BLE kann den Leistungsverbrauch der tragbaren Vorrichtung 110 und/oder auch der Begleitvorrichtung 120 signifikant verringern.
-
Gewisse Beispiele stellen eine verbesserte Quantifizierungstechnik für eine Audiodatenübertragung bereit. Die beispielhafte Quantifizierungstechnik kann unter Verwendung eines folgenden Beispiels erklärt werden. Die Verwendung von 23 MFCCs in der ASR-Maschine 126 beinhaltet eine Bandbreite von ungefähr 4,6 Kilobytes pro Sekunde (KBPS) unter der Annahme von 2 Bytes für jeden MFCC und einer Berechnung der MFCCs alle 10 Millisekunden (ms) der Audio-Frames. Bei Verwendung zum Beispiel einer Vektorquantifizierung kann die involvierte Bandbreite auf die Hälfte oder weniger der 4,6 KBPS verringert werden (z.B. ungefähr 2,3 KBPS). Eine Vektor- und/oder andere ähnliche Quantifizierung führt eine gewisse Rechenkomplexität wie auch eine Verschlechterung in der ASR-Detektionsgenauigkeit ein, spart aber zum Beispiel Bandbreite und Leistungsverbrauch.
-
Die Vektorquantifizierung (auch als Blockquantifizierung oder Musterabstimmungsquantifizierung bezeichnet) stellt Wahrscheinlichkeitsdichtefunktionen auf der Basis einer Verteilung von Prototypvektoren bereit. Die Vektorquantifizierung kann für eine Datenkompression verwendet werden und arbeitet durch Teilen eines Satzes von Punkten (Vektoren) in Gruppen mit ungefähr derselben Anzahl von Punkten in ihrer unmittelbaren Nähe. Jede Gruppe ist durch ihren zentralen oder Schwerpunkt dargestellt. Die Vektorquantifizierung kann zum Identifizieren einer Dichte von Daten verwendet werden, die in der Datenkompression, Korrektur verlustbehafteter Daten, Dichteschätzung usw. verwendet werden kann.
-
Wie in der Tabelle von 2 dargestellt, sind in gewissen Beispielen die MFCCs von 23 auf 13 Koeffizienten verringert. In anderen Beispielen, wie in der Tabelle von 3 dargestellt, ist eine Bit-Breite des MFCC von 16 Bits auf 8 Bits verringert.
-
Das Beispiel von 2 zeigt eine Satzfehlerrate (SER) 210, wenn 23 MFCCs 220 verwendet werden und wenn 13 MFCCs 230 verwendet werden, für verschiedene Signal/Rausch-Verhältnisse (SNRs) 240. Wie in der Tabelle von 2 dargestellt, kann eine Verringerung der MFCC-Dimension von 23 220 auf 13 230 Koeffizienten zu einer 5-10% Verschlechterung im SER führen, abhängig von der Vokabelgröße.
-
Das Beispiel von 3 zeigt eine SER 310 für jede von mehreren MFCC-Quantifizierungen 320 für jeden von mehreren Testsätzen 330 mit einem bestimmten SNR 340. Wie in dem Beispiel von 3 dargestellt, enthält die MFCC-Quantifizierung 320 keine Quantifizierung (z.B. 16-Bit MFCC) 322, eine 8-Bit MFCC-Quantifizierung gemäß einem ersten Verfahren 324 und eine 8-Bit Quantifizierung gemäß einem zweiten Verfahren 326.
-
Das erste Verfahren 324 wird als A-Gesetz-Technik oder Algorithmus bezeichnet. Das A-Gesetz-Verfahren 324 ist eine kompandierender Algorithmus, der eine Kompression und Dekompression (oder Kompression und Expansion, daher kompandierend oder Kompansion) über einen Kanal mit begrenztem dynamischen Bereich ermöglicht. Bei Verwendung des A-Gesetz-Verfahrens 324, kann ein analoges Signal, wie die Audioabtastung und/oder Merkmale, die aus der Audioabtastung extrahiert werden, für ein Digitalisieren und eine Kommunikation über BLE auf dem Kommunikationskanal 130 modifiziert werden. Im A-Gesetz-Verfahren 324 wird ein Kompressionsparameter, A (z.B. A=87.6, A=255 usw.) zum Codieren des Eingangssignals gemäß:
verwendet, wobei sgn(x) das Vorzeichen der reellen Zahl x extrahiert. Eine Expansion nach dem A-Gesetz-Verfahren 324 ist durch eine Inverse der Funktion vorgesehen:
-
Bei Verwendung eines Kompressionsverhältnisses von 2, kann der MFCC aus 16-Bit ganzzahligen Merkmalen auf 8-Bit Merkmalwerte ohne nennenswerten Verlust an Genauigkeit bei sehr geringem Rechenaufwand mit dem A-Gesetz-Verfahren 324 abgebildet werden.
-
Das zweite Verfahren 326 ist eine Beschneidung oder ein Verwerfen von Bits aus den MFCC-Werten. Zum Beispiel kann das zweite Verfahren 326 ein Verwerfen der niedrigstwertigen 7 Bits und des höchstwertigen Bits der MFCCs beinhalten, um die MFCCs von16-Bitwerten auf 8-Bitwerte zu verringern. Das zweite Verfahren 326 verwendet eine extrem geringe Rechenleistung für einen nur minimalen Verlust an Genauigkeit.
-
Wie in der beispielhaften Tabelle von 3 dargestellt, erzeugt sowohl Verfahren 1 324 wie auch Verfahren 2 326 bei Verwendung von 8-Bit MFCCs, SERs 310 gleich den oder innerhalb einer annehmbaren Toleranz der 16-Bits Nicht-Quantifizierungswerte 322 für mehrere Testsätze 330 und SNRs 340.
-
Wie in den Beispielen von 2-3 dargestellt, kann somit die Anzahl von MFCCs verringert werden (2) und/oder die Anzahl von Bits pro MFCC kann verringert werden (3), um die Rechenzeit, den Leistungsverbrauch und die Bandbreite für eine Datenübertragung zwischen der tragbaren Vorrichtung 110 und der Begleitvorrichtung 120 über den Kommunikationskanal 130 zu verringern. Zum Beispiel kann die Leistung um ungefähr die Hälfte verringert werden, da die Verringerung in Anzahl und/oder Größe der MFCCs eine Datenmenge verringert, die zu übertragen ist. Daher kann der Sender 116 ausgeschaltet werden, wenn er nicht in Verwendung ist, wie ebenso der Schlüsselphrasendetektor 112 und/oder andere System- 100 Komponenten, die nicht in Verwendung sind, wenn kein Audio detektiert und/oder verarbeitet wird. Daher können eine oder beide der tragbaren Vorrichtung 110 und der Begleitvorrichtung 120 gemäß einer oder mehreren Betriebsarten arbeiten, enthaltend einen Sprachaktivitätsdetektionsmodus, einen aktiven Modus, einen Schlafmodus usw.
-
In gewissen Beispielen kann das System 100 (und/oder die tragbare Vorrichtung 110) in einem leistungsarmen Modus gegenüber einem leistungsstarken Modus arbeiten. Im leistungsstarken Modus (z.B. starke Batterie usw.) kann die tragbare Vorrichtung 110 23 MFCCs übertragen. Wenn die tragbare Vorrichtung 110 jedoch in den leistungsarmen Modus (z.B. schwache Batterie usw.) übergeht, werden nur 13 MFCCs durch die tragbare Vorrichtung 110 zur Begleitvorrichtung 120 übertragen.
-
Gewisse Beispiele verringern oder minimieren die Rechenlast auf der tragbaren Vorrichtung 110 wie auch die Dauer, für die der Kommunikationskanal 130 aktiv ist, um den Leistungsverbrauch zu verringern. Solche Beispiele beinhalten ein sorgfältiges Management von Rechen- und Konnektivitätsressourcen auf der tragbaren Vorrichtung 110. Voice Activity Detection (VAD) und Schlüsselphrasendetektion (KPD) können in Verbindung mit einer MFCC-Berechnung verwendet werden, um zum Beispiel eine Ressourcennutzung auf der tragbaren Vorrichtung 110 zu managen.
-
Mehrere Ereignisse können während eines Schlüsselphrasen-initiiertem Befehls-/Steuerszenarium eintreten. Der Schlüsselphrasendetektor 112 kann die tragbare Vorrichtung 110 freigeben, aktiv zu sein, wenn eine Sprachaktivität detektiert wird und wenn der Anwender eine Schlüsselphrase ausspricht. Eine selektive oder ausgelöste Freigabe der Vorrichtung 110 erlaubt der Vorrichtung 110, als eine immer leistungsarme, immer horchende Lösung zu arbeiten. In gewissen Beispielen folgt auf die Schlüsselphrase eine Befehlsphrase (und/oder andere zu detektierende Phrase), die nach einer Aktivierung der tragbaren Vorrichtung 110 basierend auf der Schlüsselphrase detektiert und interpretiert werden soll.
-
Wie in der beispielhaften Wellenform 400 von 4 dargestellt, können Abschnitte einer Sprache zum Beispiel einen Sprachenbeginn 402, detektierte Sprache 404, Schlüsselphrasendetektion 406, detektierte Schlüsselphrase 408, Sprachenende 410 und beendete Sprache 412 enthalten. Der Sprachenbeginn 402 ist ein tatsächlicher Beginn einer Sprache. Detektierte Sprache 404 ist ein Zeitstempel, wann eine Sprache durch die tragbare Vorrichtung 110 aufgrund einer Verarbeitungsverzögerung oder Latenz zum Beispiel durch das Mikrophon 111 und/oder den Schlüsselphrasendetektor 112d detektiert wurde. Die Schlüsselphrasendetektion 406 erfolgt, wenn zum Beispiel eine Punktwertübereinstimmung, Korrelation oder andere Zuordnung der gesammelten Audioabtastung mit/zu einer bekannten/aufgezeichneten Audiosignatur oder Abtastung den Schwellenwert überschritten hat (was z.B. anzeigt, dass die gesammelte Audioabtastung eine Schlüsselphrase usw. enthält oder auf andere dieser entspricht). Die detektierte Schlüsselphrase 408 ist zum Beispiel ein Zeitpunkt, zu dem eine Detektion einer Schlüsselphrase 414 in der Audioabtastung nach Verarbeitungsverzögerung durch die Schlüsselphrasendetektor 112 berichtet wird. Sprachenende 410 ist ein tatsächliches Ende einer gesammelten Sprache und beendete Sprache 412 ist ein Zeitstempel, zu dem das Sprachenende detektiert wurde.
-
Wie in dem Beispiel von 4 dargestellt, kann die Sprache 400 einen Befehl 416 wie auch die Schlüsselphrase 414 enthalten. Die Schlüsselphrase 414 kann den Schlüsselphrasendetektor 112 und/oder Merkmalextraktor 113 auslösen, um Audio nach der Schlüsselphrase 414 zu verarbeiten, um den Befehl 416 zu identifizieren. Der identifizierte Befehl 146 kann zur Ausführung verarbeitet werden, zum Beispiel nachdem die Audiomerkmale (z.B. MFCCs usw.) generiert, übertragen und verarbeitet wurden.
-
Die Verwendung der Schlüsselphrasendetektion zum Auslösen einer Aktivierung des Rests der tragbaren Vorrichtung 110 kann zum Beispiel Leistung bei der tragbaren Vorrichtung 110 konservieren, Berechnungen durch Komponenten der tragbaren Vorrichtung 110 verringern und die Dauer verkürzen, in der der Kommunikationskanal 130 aktiv ist, um MFCCs zur Begleitvorrichtung 120 zu senden. Da der MFCC der allgemeine Baustein für ein KPD und MFCC Streaming ist, bietet eine Verringerung in der Berechnung und/oder Größe jedes MFCC (z.B. durch MFCC Größenverringerung, Anweisungserweiterung auf einem rekonfigurierbaren Prozessor usw.) Vorteile zum Beispiel bezüglich Effizienz, Zeitgenauigkeit und Leistungsverbrauch für die tragbare Vorrichtung 110.
-
5 zeigt ein beispielhaftes Diagramm von Zuständen und Zustandsübergängen 500 für die tragbare Vorrichtung 110. Wie in dem Beispiel von 5 dargestellt, arbeitet der Schlüsselphrasendetektor 112 der tragbaren Vorrichtung 110 in mindestens fünf Zuständen während der Schlüsselphrasendetektions- und Befehlsphrasendetektionsstufen für ein Rechen- und Konnektivitätsmanagement. Die Zustände enthalten zum Beispiel Leerlauf 502, Sprache 504, Detektion506, Befehl Sprache 508, und Befehl Keine Sprache 510.
-
Wenn zum Beispiel die tragbare Vorrichtung 110 eingeschaltet wird, arbeitet die Vorrichtung 110 in einem „Dauerhorch“- Modus im „LEERLAUF“-Zustand 502 und horcht auf Sprache. Wenn Sprache detektiert wird (z.B. über das Mikrophon 111 und den Schlüsselphrasendetektor 112) ändert sich der Zustand von „LEERLAUF“ 502 zu „SPRACHE“ 504. Im „SPRACHE“-Zustand 504 analysiert die tragbare Vorrichtung 110 die Audiodatenpakete und prüft unter Verwendung des Schlüsselphrasendetektors 112, ob das Schlüsselwort gesprochen wird. Wenn das Schlüsselwort detektiert wird, wird der Zustand zu „DETEKTION“ 506 geändert. Auf das Schlüsselwort kann eine Befehlsphrase folgen, wie „Wann ist mein nächstes Treffen“. Falls eine Befehlsphrase innerhalb einer gewissen Zeitperiode detektiert wird (z.B. in Millisekunden, wie vom Anwender konfiguriert), wird der Zustand dann zu „BEFEHL SPRACHE“ 508 geändert. Falls eine längere Periode Stille herrscht, wird der Zustand zu „BEFEHL KEINE SPRACHE“ 510 und schließlich wieder in den LEERLAUF-Zustand 502 geändert. Wenn die tragbare Vorrichtung 110 im LEERLAUF-Zustand 502 ist, wird eine BLE-Verbindung mit der Begleitvorrichtung 120 über den Kommunikationskanal 130 ohne Streaming von Daten errichtet. Ein Streaming von MFCC-Koeffizienten wird gestartet, wenn sich der Zustand der tragbaren Vorrichtung 110 zu „DETEKTION“ 506 ändert und fortfährt, bis der Zustand „BEFEHL NO SPRACHE“ 510 wird.
-
In gewissen Beispielen ist die BLE-Verbindung des Kommunikationskanals 130 mit der Begleitvorrichtung 120 vor einem DETEKTION-Zustand 506 (und bereit für ein Streaming) zu errichten, da ein Errichten einer Verbindung länger braucht und die Verbindung über den Kanal 130 Pakete verlieren könnte, falls der Verbindungskanal 130 erst errichtet wird, nachdem der DETEKTION-Zustand 506 detektiert wurde. Ein Streaming von MFCCs und/oder anderen Audiomerkmalen wird jedoch zum Beispiel nach dem DETEKTION-Zustand 506 gestartet und wird gestoppt, wenn der Zustand „BEFEHL NO SPRACHE“ 510 wird. Somit kann der Leistungsverbrauch aus dem BLE-Streaming verringert oder minimiert werden.
-
Nachdem die Schlüsselphrase durch den Schlüsselphrasendetektor 112 identifiziert wurde, verarbeitet der Merkmalextraktor 113 Audio-Frames von Sprache und/oder anderem Ton (z.B. einschließlich und/oder nach der identifizierten Schlüsselphrase oder eines Teils bzw. einem Teil davon), um Merkmale für eine Paketierung und Übertragung über den BLE-Kommunikationskanal 130 zu extrahieren. In gewissen Beispielen stimmt eine Anzahl von Bytes in einem Merkmal-Deskriptorpaket (z.B. 23 MFCCs usw.) nicht mit einer BLE-Paketgröße (z.B. 20 Bytes usw.) überein, die MFCC-Daten werden paketiert und für eine BLE-Übertragung über den Kommunikationskanal 130 segmentiert.
-
Zum Beispiel soll der MFCC-Satz (z.B. 23 Bytes usw.) über den BLE-Kommunikationskanal 130 zur Begleitvorrichtung 120 zur Verarbeitung durch die ASR-Maschine 226 mit verringerter oder minimaler Latenz und verringertem oder minimalen Verlust und/oder verringerter oder minimaler Korruption gestreamt werden. Zum Beispiel werden MFCCs, die einen Befehl und/oder eine Schlüsselphrase usw. darstellen, generiert und zur Begleitvorrichtung 120 zur Weiterverarbeitung übertragen. Eine Paketierung durch den Quantifizierer 114 und/oder den Kompressor 115 wird zum Abstimmen der BLE-Begrenzung von 20 Bytes für die Nutzlast für die Verbindungsereignisse verwendet. Es können eine oder mehrere Paketierungstechnologien verwendet werden. Beispielhafte Paketierungstechniken beinhalten ein Hinzufügen eines Leitvermerks zu gewissen MFCC-Sätzen.
-
Zum Beispiel kann ein Leitvermerk von 8 Bytes jeweils 4 MFCC-Sätzen hinzugefügt werden. Der 8-Byte Leitvermerk enthält einen Frame-Start (SOF), eine laufende Zahl und Füll-Bytes. Unter Verwendung einer solchen Paketierung, wird ein 100-Byte-Staz gleichmäßig über den Kommunikationskanal 130 mittels BLE als 5 Pakete übertragen. Die Verwendung dieses Paketierungsschemas verringert oder minimiert eine Berechnung von Paketverlust/Korruption/Wiederherstellung auf jeden vierten MFCC-Satz. Eine Korruption kann jedoch alle 4 MFCC-Sätze ungültig setzen.
-
In einem anderen Beispiel wird ein Leitvermerk von 2 Bytes jedem MFCC-Satz hinzugefügt. Der 2-Byte Leitvermerk enthält einen SOF und eine laufende Zahl. Die Verwendung dieses Schemas verringert oder minimiert die Latenz, wenn BLE-Pakete gesendet werden, während MFCC-Pakete eintreffen. Diese Paketierungsschemata verbessern eine Verlustwiederherstellung (z.B. einen Leitvermerk aus jedem Paket) sind aber rechenintensives und leistungsintensiver.
-
6-7 zeigen beispielhafte Paketierungsdetails für die oben beschriebenen 8- und 2-Byte Leitvermerktechnologien. Wie in dem Beispiel von 6 dargestellt, können Pakete 610 (z.B. Interprozesskommunikation (IPC) und/oder andere Datenpakete usw.) in Bündeln von 23 Pakete alle 10 ms für insgesamt 92 Bytes alle 40 ms übertragen werden. Unter Verwendung der 8-Byte Leitvermerk Ausrichtungstechnik 620 jedoch können 20 BLE Datenpakete alle 8 ms übertragen werden. Die Pakete werden zum Beispiel in einen 8-Byte Leitvermerk aufgebrochen, gefolgt von 4 Sätzen MFCC-Pakete für insgesamt 8 Leitvermerkpaket-Bytes und 92 MFCC-Paket-Bytes, die von der tragbaren Vorrichtung 110 zur Begleitvorrichtung 120 über den Kommunikationskanal 130 alle 40 ms übertragen werden. Der beispielhafte 8-Byte Leitvermerk kann zum Beispiel einen Frame-Start, eine laufende Zahl, eine Prüfsumme und eventuell eine Auffüllung usw. zur Synchronisation und Fehlerkorrektur enthalten.
-
Wie in dem Beispiel von 7 dargestellt, können IPC-Pakete 710 in Gruppen von 23 Bytes alle 10 ms für insgesamt 92 Bytes alle 40 ms übertragen werden. Bei Verwendung der 2-Byte Leitvermerk Ausrichtungstechnik 720 können 20 BLE Datenpakete alle 8 ms übertragen werden. Die Pakete werden zum Beispiel in einen 2-Byte Leitvermerk, gefolgt von 23 Bytes BLE MFCC-Pakete für insgesamt 8 Leitvermerkpaket-Bytes und 92 MFCC-Paket-Bytes aufgebrochen, die von der tragbaren Vorrichtung 110 zur Begleitvorrichtung 120 über den Kommunikationskanal 130 alle 40 ms übertragen werden. Der beispielhafte 2-Byte Leitvermerk kann zum Beispiel einen Frame-Start, eine laufende Zahl, Prüfsumme und eventuell Auffüllung usw. zur Synchronisation und Fehlerkorrektur enthalten.
-
Abhängig von Umweltbedingungen, Szenarien usw., kann eine dieser Methoden angewendet werden. Zusätzlich kann die BLE-Konfiguration so geändert werden, dass ein Zwischenspeichern der MFCC-Pakete gesteuert werden kann. In einigen Konfigurationen können ein oder mehrere Pakete in einem Verbindungsintervall gesendet werden, um die Bandbreite und den Leistungsverbrauch zu optimieren und/oder auf andere Weise zu verbessern. Somit kann eine bessere Energieeffizienz im Verglich zu bestehenden Lösungen erreicht werden, um verteilte ASR-Lösungen für tragbare Vorrichtungen durch effektive Steuerung der Verbindungskanäle auf der Basis eines Eingangs von einer Sprachaktivität zu implementieren.
-
So können zum Beispiel MFCCs mit VAD zum Auslösen einer Schlüsselphrasendetektion und Verpackung/Paketierung zur Übertragung von der tragbaren Vorrichtung 110 zur Begleitvorrichtung 120 über den BLE-Kommunikationskanal 130 verwendet werden. In gewissen Beispielen kann die tragbare Vorrichtung 110 von 1 als ein tragbares System-on-Chip (SoC) 110 implementiert sein, wie in 8 dargestellt. In dem Beispiel von 8 wird (werden) ein Audioeingang (Audioeingänge) von dem digitalen Mikrophon (DMIC) 111 einer Wake on Voice (WoV) Schaltung 802 bereitgestellt. Die WoV-Schaltung 802 enthält einen Sprachaktivitätsdetektor (VAD) 804. Der VAD 804 aktiviert die WoV-Schaltung 802 auf der Basis des empfangenen Audioeingangs von der DMIC 111. Der VAD 804 löst ein Generieren von MFCCs durch einen MFCC-Generator 806 vom Audioeingang (den Audioeingängen) aus. Die MFCCs werden dem Schlüsselphrasendetektor (KPD) 112 bereitgestellt, der dem MFCC-Generator 806 eine Rückmeldung bereitstellt. Die MFCCs werden auch zur Skalierungs- und/oder Kompressionsmaschine 115 geleitet. Die Skalierungs- und/oder Kompressionsmaschine 115 verarbeitet die MFCCs, um sie zur Übertragung vorzubereiten (z.B. unter Verwendung eines Ausrichtungsschemas wie eines 8-Byte Leitvermerks für alle vier 23-Byte MFCC-Koeffizientensätze, eines 2-Byte Leitvermerks für alle MFCC-Koeffizientensätze usw.). Der Sender-BLE-Treiber 116 überträgt den Strom von Datenpaketen über den BLE-Kommunikationskanal 130 zur Begleitvorrichtung 120. Es kann zum Beispiel das A-Gesetz und/oder eine Beschneidung von Bits verwendet werden, um die MFCCs auf 8-Bitwerte zur Bündelung mit 8- und/oder 2-Byte Leitvermerken verwendet werden.
-
Somit sehen gewisse Beispiele eine verbesserte Audioabtastungsanalyse und Kommunikation durch Ausladen einer Spracherkennungs- und/oder zusätzlichen Audiomerkmalsverarbeitung von der tragbaren Vorrichtung 110 zur Begleitvorrichtung 120 vor, während gleichzeitig Leistung an der tragbaren Vorrichtung 110 konserviert und die Verwendung des Kommunikationskanals 130 durch technisch verbesserte BLE, Quantifizierung und Kompressionsstrategien verringert wird. Gewisse Beispiele erleichtern eine verbesserte Datenlieferung und Spracherkennungsreaktion durch intelligente Übertragung und Verarbeitung von Sprachenmerkmalsdaten. Gewisse Beispiele erleichtern ein Bereitstellen einer besseren Nutzungserfahrung für Anwender der beispielhaften Plattform 100.
-
Während beispielhafte Implementierungen des Systems 100, der tragbaren Vorrichtung 110, des Mikrophons 111, des Schlüsselphrasendetektors 112, des Merkmalextraktors 113, des Quantifizierers 114, des Kompressors 115, des Senders 116, der Begleitvorrichtung 120, des Empfängers 122, der Entquantifizierungs- und Dekompressionsmaschine124, der ASR-Maschine 126, des Kommunikationskanals 130, des WoV 802, des VAD 804, MFCC-Generators 806 usw., in 1-8 dargestellt sind, können ein oder mehrere der Elemente, Prozesse und/oder Vorrichtungen, die in 1-8 dargestellt sind, kombiniert, geteilt, anders angeordnet, unterlassen, eliminiert und/oder in einer anderen Art implementiert sein. Ferner können die beispielhafte tragbare Vorrichtung 110, das Mikrophon 111, der Schlüsselphrasendetektor 112, der Merkmalextraktor 113, der Quantifizierer 114, der Kompressor 115, der Sender 116, die Begleitvorrichtung 120, der Empfänger 122, die Entquantifizierungs- und Dekompressionsmaschine124, die ASR-Maschine 126, der Kommunikationskanal 130, der WoV 802, der VAD 804, der MFCC-Generator 806 und/oder allgemeiner das beispielhafte System 100 von 1-8 durch Hardware, Software, Firmware und/oder jede Kombination aus Hardware, Software und/oder Firmware implementiert werden. So kann zum Beispiel jedes von der beispielhafte tragbaren Vorrichtung 110, dem Mikrophon 111, dem Schlüsselphrasendetektor 112, dem Merkmalextraktor 113, dem Quantifizierer 114, dem Kompressor 115, dem Sender 116, der Begleitvorrichtung 120, dem Empfänger 122, der Entquantifizierungs- und Dekompressionsmaschine124, der ASR-Maschine 126, dem Kommunikationskanal 130, dem WoV 802, dem VAD 804, dem MFCC-Generator 806 und/oder allgemeiner dem beispielhaften System 100 von 1-8 durch eine(n) oder mehrere analoge oder digitale Schaltung(en), Logikschaltungen, programmierbare(n) Prozessor(en), anwendungsspezifische integrierte Schaltung(en) (ASIC(s)), programmierbare Logikvorrichtung(en) (PLD(s)) und/oder feldprogrammierbare Logikvorrichtung(en) (FPLD(s)) implementiert werden. Beim Lesen eines der Vorrichtungs- oder Systemansprüche dieses Patents, die eine reine Software- und/oder Firmware-Implementierung abdecken, ist zumindest eines von der beispielhaften tragbaren Vorrichtung 110, dem Mikrophon 111, dem Schlüsselphrasendetektor 112, dem Merkmalextraktor 113, dem Quantifizierer 114, dem Kompressor 115, dem Sender 116, der Begleitvorrichtung 120, dem Empfänger 122, der Entquantifizierungs- und Dekompressionsmaschine124, der ASR-Maschine 126, dem Kommunikationskanal 130, dem WoV 802, dem VAD 804, dem MFCC-Generator 806 und/oder allgemeiner dem beispielhaften System 100 von 1-8 hiermit ausdrücklich definiert, eine greifbare computerlesbare Speichervorrichtung oder Speicherplatte wie einen Speicher (z.B. einen Nur-Lese-Speicher (ROM), ein Festplattenlaufwerk, einen anderen flüchtigen und/oder nicht flüchtigen Speicher usw.), eine Digital Versatile Disk (DVD), eine Compact Disk (CD), eine Blu-ray Disk usw. zu enthalten, die die Software und/oder Firmware speichert. Ferner noch können die beispielhaften Systeme von 1-8 ein oder mehrere Elemente, Prozesse und/oder Vorrichtungen zusätzlich zu oder anstelle von jenen enthalten, die in 1-8 dargestellt sind, und/oder können mehr als eines von sämtlichen der dargestellten Elemente, Prozesse und Vorrichtungen enthalten.
-
Flussdiagramme, die für beispielhafte maschinenlesbare Anweisungen zur Implementierung des Systems 100 von 1-8 repräsentativ sind, sind in 9-12 dargestellt. In diesen Beispielen umfassen die maschinenlesbaren Anweisungen ein Programm zur Ausführung durch einen Prozessor wie den Prozessor 1312, 1412, der in der beispielhaften, Prozessorplattform 1300, 1400 dargestellt ist, die in der Folge in Verbindung mit 13, 14 besprochen ist. Das Programm kann in Software verkörpert sein, die auf einem greifbaren computerlesbaren Speichermedium, wie einer CD-ROM, einer Diskette, einem Festplattenlaufwerk, einer DVD, einer Blu-ray Disk oder einem Speicher, der mit dem Prozessor 1312, 1412 verknüpft ist, gespeichert ist, aber das gesamte Programm und/oder Teile davon können auch durch eine andere Vorrichtung als den Prozessor 1312, 1412 ausgeführt werden und/oder in Firmware oder zweckbestimmter Hardware verkörpert sein. Obwohl ferner die beispielhaften Programme unter Bezugnahme auf die Flussdiagramme beschrieben sind, die in 9-12 dargestellt sind, können alternative viele andere Verfahren zum Implementieren des beispielhaften Systems 100 verwendet werden. Zum Beispiel kann die Reihenfolge der Ausführung der Blöcke verändert werden und/oder einige der beschriebenen Blöcke können geändert, eliminiert oder kombiniert werden.
-
Wie oben erwähnt, können die beispielhaften Prozesse von 9-12 unter Verwendung codierter Anweisungen (z.B. computer- und/oder maschinenlesbare Anweisungen) implementiert sein, die auf einem greifbaren computerlesbaren Speichermedium wie einem Festplattenlaufwerk, einem Flash-Speicher, einer ROM, einer CD, einer DVD, einem Cache, einem Direktzugriffsspeicher (RAM) und/oder einer anderen Speichervorrichtung oder Speicherplatte gespeichert sind, in welcher Informationen für eine beliebige Dauer gespeichert sind (z.B. für längere Zeiträume, permanent, für kurze Momente, für eine vorübergehende Zwischenspeicherung und/oder für ein Caching der Informationen). Wie hier verwendet, ist der Begriff greifbares computerlesbares Speichermedium ausdrücklich definiert, jede Art von computerlesbarer Speichervorrichtung und/oder Speicherplatte zu enthalten, und schließt sich ausbreitende Signale aus und schließt Übertragungsmedien aus. Wie hier verwendet, werden „greifbares computerlesbares Speichermedium“ und „greifbares maschinenlesbares Speichermedium“ untereinander austauschbar verwendet. Zusätzlich oder alternativ können die beispielhaften Prozesse von 9-12 unter Verwendung codierter Anweisungen (z.B. computer- und/oder maschinenlesbare Anweisungen) implementiert werden, die auf einem nicht transitorischen computer- und/oder maschinenlesbaren Medium wie einem Festplattenlaufwerk, einem Flash-Speicher, einem Nur-Lese-Speicher, einer Compact Disk, einer Digital Versatile Disk, einem Cache, einem Direktzugriffsspeicher und/oder einer anderen Speichervorrichtung oder Speicherplatte gespeichert sind, in welcher Informationen für eine beliebige Dauer gespeichert sind (z.B. für längere Zeiträume, permanent, für kurze Momente, für eine vorübergehende Zwischenspeicherung und/oder für ein Caching der Informationen). Wie hier verwendet, ist der Begriff nicht transitorisches computerlesbares Medium ausdrücklich definiert, jede Art von computerlesbarer Speichervorrichtung und/oder Speicherplatte zu enthalten, und schließt sich ausbreitende Signale aus und schließt Übertragungsmedien aus. Wie hier verwendet, wenn die Phrase „mindestens“ als Übergangsbegriff in einem einleitenden Teil eines Anspruchs verwendet wird, so ist sie in derselben Weise offen, wie der Begriff „umfassend“ offen ist.
-
Das Programm 900 von 9 beginnt bei Block 902. Bei Block 902 wird Ton in der Reichweite der tragbaren Vorrichtung 110 detektiert. Zum Beispiel detektiert das Mikrophon 111 eine Sprache innerhalb einer Reichweite der tragbaren Vorrichtung 110. Unter Verwendung Sprachaktivitätsdetektion kann der Schlüsselphrasendetektors 112 und/oder der VAD 804 den Schaltkreis der tragbaren Vorrichtung 110 zur Sprachverarbeitung für die detektierte Audioabtastung aktivieren oder „aufwecken“.
-
Bei Block 904 werden Schlüsselphrasen identifiziert. Zum Beispiel sucht der Schlüsselphrasendetektor 112 nach dem Start der Sprache in der detektierten Audioabtastung und verarbeitet den Ton zur Identifizierung von Eigenschaften der Schallwelle, um das Vorhandensein einer Schlüsselphrase in dem Ton anzuzeigen (z.B. erkannte Töne, die Buchstaben, Wörter usw. angeben, die Phrasen bilden, gegenüber einem Hintergrundrauschen usw.). In einigen Beispielen detektiert der VAD 804 Sprachaktivität und der MFCC-Generator 806 generiert MFCCs aus der detektierten Audioabtastung und stellt die MFCCs dem Schlüsselphrasendetektor 112 bereit, um Schlüsselphrasen zu identifizieren. Die Schlüsselphrasen können zum Beispiel gesprochene Phrasen enthalten, die aufgezeichnet, transkribiert, gesendet usw. werden, und/oder Befehle, die ausgeführt werden. Zum Beispiel können Schlüsselphrasen Gruppen von Wörtern aus vier bis fünf Silben enthalten, wie „Hallo Computer“, „Hallo Vorrichtung“ usw. In gewissen Beispielen können Audio-/Aufweckereignisse Töne enthalten, um eine Warnung, einen Alarm und/oder eine andere Benachrichtigung bei der tragbaren Vorrichtung 110 und/oder Begleitvorrichtung 120 auszulösen, wie brechendes Glas, weinendes Baby, laufender Fernseher, laufendes Gerät usw.
-
Bei Block 906 werden die Sprachinformationen zur Übertragung verarbeitet. Zum Beispiel werden MFCCs und/oder (ein) andere(s) Audiomerkmal(e), das bzw. die mit (einem) Audio-Frame(s) verknüpft ist bzw. sind, der (die) mit einer identifizierte(n) Schlüsselphrase(n) verknüpft ist bzw. sind (z.B. identifiziert durch den Merkmalextraktor 113 aus einem Audio Frame(s) nach Schlüsselphrasenidentifizierung usw.) in Vorbereitung für die Übertragung verarbeitet (quantifiziert), wie durch Verringern einer Anzahl von MFCCs zur Sendung (z.B. von 23 auf 13 usw.), Durchführen einer A-Gesetzfunktion zur Verringerung einer Anzahl von Bits in jedem MFCC (z.B. zur Abbildung jedes MFCC von 16-Bits auf 8-Bits unter Verwendung von Gleichungen 1-2 usw.) und/oder Beschneiden jedes MFCC, um Bits zu verwerfen, um eine Anzahl von Bits in jedem MFCC zu verringern (z.B. Verwerfen der niedrigstwertigen 7 Bits und des höchstwertigen Bit in jedem MFCC usw.) usw. So kann ((können) zum Beispiel ein Audio-Merkmal(e) entsprechend einem Befehl in einem Audio-Frame(s) nach einer identifizierten Schlüsselphase verarbeitet und für die Übertragung verringert werden. Der resultierende MFCC und/oder andere AudioMerkmalinformationen für Audio-Frames können auch durch den Kompressor 115 komprimiert werden, wie unter Verwendung eine Vektorkompression, statistischen Kompression usw.
-
Zum Beispiel können, sobald die gesamte Schlüsselphrase oder ein Teil davon identifiziert ist, die Sprache und/oder anderes Audio nach der Schlüsselphrase Audio-Frames (z.B. Gruppen von 5ms, 10ms, 20ms usw.) segmentiert werden und Audiomerkmale (z.B. MFCCs usw.) für jeden Frame extrahiert werden. So können Audio-Frames zum Beispiel verarbeitet werden, um MFCCs zu identifizieren und zu extrahieren und die MFCCs für jedes Sprachsegment zu gruppieren und zu verarbeiten.
-
Bei Block 908 werden die Sprachinformationen von der tragbaren Vorrichtung 110 zur Begleitvorrichtung 120 über den Kommunikationskanal 130 übertragen. Zum Beispiel sendet der Sender 116 die Datenpakete über den BLE und/oder einen anderen energiearmen drahtlosen Kommunikationskanal 130 zur Begleitvorrichtung 120. Die Datenpakete können unter Verwendung periodischer Leitvermerks-Bytes (z.B. ein 8-Byte Leitvermerk für alle 4 MFCC-Sätzen, ein 2-Byte Leitvermerk für alle MFCC-Sätze usw.) ausgerichtet werden, um eine Latenz wie auch einen Verlust/eine Korruption gemäß der BLE-Einschränkung von 20 Bytes für die Nutzlast für Kommunikationsverbindungsereignisse zu verringern.
-
Bei Block 910 werden die empfangenen Pakete durch die Begleitvorrichtung verarbeitet, um Sprachinformationen zu extrahieren. Zum Beispiel kann ein empfangener MFCC und/oder andere Audio-Merkmaldatenpakete entquantifiziert, dekomprimiert und/oder auf andere Weise verarbeitet werden, um die MFCC-Informationen zu extrahieren. In gewissen Beispielen können verlorene Pakete auf der Basis umgebender Paketinformationen wiederhergestellt werden. Es wird zum Beispiel angenommen, dass Pakete 1, 2, 3, 4 und 5 von der tragbaren Randvorrichtung 110 zur Begleitvorrichtung 120 gesendet wurden. Die Pakete 2 und 4 gehen verloren oder sind korrupt. Der Paket-MFCC und/oder andere Audio-Merkmalwerte können aus benachbarten Paketwerten interpoliert werden, sodass zum Beispiel Paket 2 aus benachbarten Paketen 1 und 3 erstellt werden kann und Paket 4 aus benachbarten Paketen 3 und 5 erstellt werden kann. Somit können die Pakete unter Verwendung der laufenden Paketzahl wiederhergestellt werden, ohne nennenswerte Verschlechterung in der Qualität, falls benachbarte Paketinformationen verfügbar sind.
-
Bei Block 912 werden die extrahierten Sprachinformationen zur Spracherkennung verarbeitet, um ein zugehöriges Wort/eine zugehörige Phrase oder zugehörige Wörter/Phrasen zu ermitteln. Zum Beispiel werden die MFCCs und/oder andere Audiomerkmale durch die ASR-Maschine 126 verarbeitet, um das Wort/die Wörter und/oder die Phrase(n), die mit den MFCCs der Sprachinformationen verknüpft sind, zu identifizieren. In gewissen Beispielen entsprechen das Wort/die Wörter und/oder die Phrase(n) menschlicher Sprache. In anderen Beispielen entspricht (entsprechen) ein Audio-Ereignis(se), das (die) kein Wort (keine Wörter) und/oder Phrase(n) ist (sind), Tönen wie brechendem Glas, einem weinenden Baby, einem laufenden Fernseher, einem laufenden Gerät, einer läutenden Türglocke usw. In gewissen Beispielen kann durch Wiederverwendung von MFCCs von der tragbaren Vorrichtung 110 zur Begleitvorrichtung 120 eine Ressourcennutzung (z.B. Firmware-Speicher, Leistungsverbrauch, Verarbeitung usw.) verringert werden und die Spracherkennungsexaktheit kann verbessert werden.
-
Bei Block 914 kann eine Aktion, die mit Wort (Wörtern)/Phrase(n)/Ton (Tönen) verknüpft ist, ausgeführt werden. Falls zum Beispiel das (die) identifizierte(n) Wort (Wörter) und/oder die identifizierte(n) Phrase(n) einen Befehl enthalten, kann der Befehl durch die Begleitvorrichtung 120 und/oder die tragbare Vorrichtung 110 ausgeführt werden. Identifizierter Text kann auch zum Beispiel gespeichert und/oder in ein anderes Programm eingegeben werden. In gewissen Beispielen kann eine Rückmeldung von der Begleitvorrichtung 120 zur tragbaren Vorrichtung 110 auf Basis des identifizierten Wort-IPhraseninhalts bereitgestellt werden. Zum Beispiel kann die Begleitvorrichtung 120 eine Rückmeldung zur tragbaren Vorrichtung 110 auf Basis der Qualität von empfangenen Sprachinformationen bereitstellen, um eine Einstellung, ein Quantifizierungsverfahren, eine Kompressionstechnik usw. zu modifizieren. Zum Beispiel können die tragbare Vorrichtung 110 und/oder die Begleitvorrichtung 120 ein Modell enthalten (z.B. ein Maschinenlernmodell), das auf der Basis verarbeiteter Sprachinformationen aktualisiert wird, um Rauschen usw. zu ignorieren. Die Rückmeldung kann zum Beispiel als Audio-, Text- und/oder eine andere Datenrückmeldung bereitgestellt werden.
-
Somit stellen gewisse Beispiele ein SoC für tragbare und Internet-of-Things-Anwendungen bereit, die batteriebetriebene Vorrichtungen mit leistungsarmem Profil beinhalten. Gewisse Beispiele ermöglichen eine Aktivitätsverfolgung für Audio-Ereignisse, Sprachsteuerung, Fernsteuerung, Nothilfe usw. In gewissen Beispielen kann die Audioverarbeitung des Systems 100 mit einem Bewegungssensor kombiniert werden, um Ton mit Bewegung zu korrelieren, usw.
-
Ein zusätzliches Detail, das mit einer Identifizierung einer (von) Schlüsselphrase(n) (Block 904) verknüpft ist, ist in dem Beispiel von 10 dargestellt. Bei Block 1002 löst detektiertes Audio den Schlüsselphrasendetektor 112 aus, um eine eingehende Audioabtastung zu verarbeiten. Zum Beispiel kann der Schlüsselphrasendetektor 112 in einem abgeschalteten, leistungsarmen oder Schlafmodus usw. sein, bis das detektierte Audio den Detektor 112 und/oder eine andere WoV- 802 Komponente auslöst, um „aufzuwachen".
-
Bei Block 1004 wird eine Schlüsselphrase auf der Basis einer Signatur oder Eigenschaften der Tonwellenform detektiert. Falls zum Beispiel ein Frequenz- oder Dauerschwellenwert überschritten wird, identifiziert der Schlüsselphrasendetektor 112 den Ton als Schlüsselphrase.
-
Bei Block 1006 wird ein Endpunkt der Schlüsselphrase festgestellt. Falls zum Beispiel der Ton unter einen Schwellenwert schwächer wird und für einen Zeitraum kein Ton detektiert wird, bestimmt der Schlüsselphrasendetektor 112, dass die Phrase fertig ist, und beendet die mit der Schlüsselphrase verknüpfte Abtastung.
-
Bei Block 1008 wird eine Auszeit ausgewertet. Zum Beispiel enthält der Schlüsselphrasendetektor 112 eine gewisse Zeitperiode, in der auf ein Detektieren eines zusätzlichen Tons gewartet wird. Falls in der Zeitperiode ein weiterer Ton detektiert wird, kehrt die Steuerung zu Block 1004 zurück, um die nächste Schlüsselphrase zu detektieren. Falls kein weiterer Ton in der Zeitperiode detektiert wird (z.B. wird kein Ton über einem gewissen Rauschschwellenwert usw. detektiert), wird (werden) bei Block 1010 die Schlüsselphrase(n) dem Quantifizierer 114 und/oder Kompressor 115 (z.B. Block 906) bereitgestellt, um für eine Übertragung vorbereitet und paketiert zu werden.
-
Ein zusätzliches Detail, das mit einer Verarbeitung von Sprachinformationen zur Übertragung (Block 906) verknüpft ist, ist in dem Beispiel von 11 dargestellt. Bei Block 1102 werden Audio-Frames (z.B. Audio-Frames, die die Schlüsselphrase(n) usw. enthalten und/oder auf diese folgen) verarbeitet, um die Audiomerkmale (z.B. MFCCs usw.) in und/oder nach jeder Schlüsselphrase (z.B. die Schlüsselphrase, ein Befehl, der der Schlüsselphrase folgt, ein anderes Audio-Ereignis usw.) zu identifizieren. Zum Beispiel extrahiert der Merkmalextraktor 113 MFCC und/oder andere Audiomerkmalinformationen aus der (den) Schlüsselphrase(n). In gewissen Beispielen löst eine fragmentarische oder teilweise Schlüsselphrase die Verarbeitung von Sprachinformationen aus. In gewissen Beispielen wird eine gesamte Schlüsselphrase identifiziert, um die Verarbeitung von Sprachinformationen auszulösen.
-
Bei Block 1104 werden die Audiomerkmale (z.B. MFCCs usw.) für jede Schlüsselphrase gruppiert und in Vorbereitung einer Übertragung verarbeitet. Zum Beispiel kann eine Schlüsselphrase 23 MFCCs enthalten, die mit den Tönen der Schlüsselphrase und/oder Audio-Frames, die der Schlüsselphrase folgen (z.B. Befehl, Audioereignis usw.) verknüpft sind. Die 23 MFCCs können zum Beispiel zur Übertragung in Darstellung der Schlüsselphrase gruppiert werden.
-
Bei Block 1106 wird eine Quantifizierungstechnologie zur Anwendung bei dem Satz von Audiomerkmalen (z.B. MFCCs usw.) bestimmt. Zum Beispiel kann die tragbare Vorrichtung 110 eine vorkonfigurierte und/oder hartcodierte Quantifizierungstechnik zur Verarbeitung des Satzes von Audiomerkmalen (z.B. MFCCs usw.) zur Datenübertragung zur Begleitvorrichtung 120 haben. In anderen Beispielen kann der Quantifizierer 114 der tragbaren Vorrichtung 110 eine Quantifizierungsstrategie auf Basis einer Ressourcenverfügbarkeit und/oder anderen Betriebsbedingung (z.B. Bandbreite, Leistung, Datenmenge usw.) auswählen (z.B. dynamisch auswählen). Zum Beispiel kann der Quantifizierer 114 bestimmen, ob eine Verringerung in der Anzahl von Audiomerkmalen (z.B. MFCCs usw.) und/oder eine Verringerung in der Audiomerkmal-Bit-Größe bei dem Satz zu übertragender Audiomerkmale anwendbar ist.
-
Falls die Quantifizierung eine Verringerung in der Anzahl von Audiomerkmalen in dem zu übertragenden Satz ist, wird bei Block 1108 der Satz von Audiomerkmalen (z.B. MFCCs usw.) gemäß einem Parameter verringert, der mit der Größe des Audiomerkmalsatzes verknüpft ist. Zum Beispiel kann ein Satz von 23 MFCCs auf 13 MFCCs zur Übertragung zur Begleitvorrichtung 120 für eine Spracherkennung und Weiterverarbeitung verringert werden.
-
Falls die Quantifizierung eine Kombination von Bits in jedem Audiomerkmal ist, werden bei Block 1110 die Audiomerkmale (z.B. MFCCs usw.) in dem Satz von Audiomerkmalen verringert, wie unter Verwendung der A-Gesetzfunktion von Gleichungen 1-2, um die Anzahl von Bits in jedem Audiomerkmal von 16-Bits auf 8-Bits usw. zu verringern. Falls die Quantifizierung ein Beschneiden oder Verwerfen von Bits in jedem Audiomerkmal ist, werden bei Block 1112 die Audiomerkmale im Satz von Audiomerkmalen beschnitten, wie durch Verwerfen der 7 niedrigstwertigen Bits und des höchstwertigen Bit in jedem Audiomerkmal usw.
-
Bei Block 1114 wird der verringerte Satz von Audiomerkmalen (z.B. MFCCs usw.) zur Übertragung bereitgestellt. In gewissen Beispielen kann eine Kompression (z.B. Vektorkompression, statistische Kompression usw.) durch den Kompressor 115 angewendet werden, falls die Bandbreiten- und/oder Leistungseinschränkungen usw. ein Senden von weniger Informationen als rohen Audiomerkmal- (z.B. MFCC usw.) Datenpaketen diktieren. Bei Block 1114, falls noch zusätzliche Sätze von Audiomerkmalen verarbeitet werden müssen, kehrt die Steuerung zu Block 1106 zurück. Andernfalls kehrt die Steuerung zu Block 908 zurück.
-
Ein zusätzliches Detail, das mit einer Übertragung der Sprachinformationen von der tragbaren Vorrichtung 110 zur Begleitvorrichtung 120 (Block 908) verknüpft ist, ist in dem Beispiel von 12 dargestellt. Bei Block 1202 wird ein verarbeiteter Satz von Audiomerkmalen (z.B. MFCCs usw.) zur Paketierung vorbereitet. Zum Beispiel sind die MFCCs in einer Anzahl von Bytes zur Übertragung organisiert. Zum Beispiel sind MFCCs in Paketen organisiert, um der BLE-Grenze von 20 Paketen pro 20 ms für eine Übertragung über den leistungsarmen Kommunikationskanal 130 zu entsprechen.
-
Bei Block 1204 wird eine Paketierungstechnik bestimmt. Zum Beispiel kann eine Paketierungstechnik vorkonfiguriert und/oder in den Sender 116 hartcodiert sein. In anderen Beispielen kann eine Paketierungstechnik auf der Basis einer Ressourcenverfügbarkeit und/oder einer anderen Betriebsbedingung (z.B. Bandbreite, Leistung, Datenmenge usw.) dynamisch bestimmt werden. Zum Beispiel können MFCC Datenpakete unter Verwendung periodischer Leitvermerks-Bytes ausgerichtet werden (z.B. ein 8-Byte Leitvermerk für alle 4 MFCC-Sätze, ein 2-Byte Leitvermerk für alle MFCC-Sätze usw.), um Latenz wie auch Verlust/Korruption gemäß der BLE-Grenze von 20 Bytes für eine Nutzlast für Kommunikationsverbindungsereignisse zu verringern.
-
Falls ein einziger Leitvermerk mit einer Gruppe von Audiomerkmal- (z.B. MFCC usw.) Paketen übertragen werden soll, werden bei Block 1206 die Audiomerkmalpakete organisiert, sodass sie ein Leitvermerkpaket enthalten, auf das ein Satz von Audiomerkmalspaketen folgt. Zum Beispiel ist ein 8-Byte Leitvermerkpaket, auf das 4 MFCC-Pakete folgen, über den BLE-Kommunikationskanal 130 zu übertragen. Unter Verwendung dieses Schemas werden jeweils ein Leitvermerk von 8 Bytes und 4 MFCC-Pakete von 23 Bytes über den BLE-Kommunikationskanal 130 als 5 Datenpakete übertragen, die einen 100-Byte Satz bilden. Die Verwendung dieses Schemas verringert ein Berechnen eines Paketverlusts, einer Korruption und/oder Wiederherstellung auf jeden vierten MFCC-Satz, aber eine Korruption kann zum Beispiel alle vier MFCC-Sätzen ungültig setzen, die mit dem besonderen Leitvermerk verknüpft sind.
-
Falls ein Leitvermerk mit einem Leitvermerk für jedes Audiomerkmal- (z.B. MFCC usw.) Datenpaket übertragen werden soll, werden bei Block 1208 die Audiomerkmalpakete organisiert, sodass sie einen Leitvermerk enthalten, der vor jedem Audiomerkmalpaket übertragen wird. Zum Beispiel soll ein 2-Byte Leitvermerk, gefolgt von 23 Bytes MFCC-Paketen über den BLE-Kommunikationskanal 130 übertragen werden. Unter Verwendung dieses Schemas werden ein Leitvermerk von 2 Bytes und ein MFCC-Paket von 23 Bytes über den BLE-Kommunikationskanal 130 übertragen. Die Verwendung dieses Schemas verringert die Latenz, indem BLE-Pakete als MFCC-Pakete gesendet werden, die beim Sender 116 zur Übertragung eintreffen. Zusätzlich ist eine Berechnung eines Paketverlusts, einer Korruption und/oder Wiederherstellung zum Beispiel auf ein einziges MFCC-Paket begrenzt, aber die Verarbeitung ist rechen- und leistungsintensiver.
-
Bei Block 1210 werden der Leitvermerk und Audiomerkmal- (z.B. MFCC usw.) Datenpakete über den Kommunikationskanal 130 gemäß einer spezifizierten Anordnung zur Begleitvorrichtung übertragen. Falls noch zusätzliche Pakete übertragen werden müssen, kehrt die Steuerung zu Block 1202 zurück. Alternativ oder zusätzlich kehrt die Steuerung zu Block 910 zurück.
-
13 ist ein Blockdiagramm einer beispielhaften Prozessorplattform 1300, die imstande ist, die Anweisungen von 9-12 auszuführen, um die tragbare Vorrichtung 110 und ein zugehörige(s) System(e) von 1-8 zu implementieren. Die Prozessorplattform 1300 kann zum Beispiel ein Server, eine Personal Computer, eine mobile Vorrichtung (z.B. ein Mobiltelefon, ein Smartphone, eine Tablet wie ein iPad™), ein persönlicher digitaler Assistent (PDA), ein Internet-Gerät, ein DVD-Player, ein CD-Player, ein digitaler Videorecorder, ein Blu-ray-Player, eine Spielkonsole, ein persönlicher Videorecorder, eine Set Top Box oder eine andere Art von Rechenvorrichtung sein.
-
Die Prozessorplattform 1300 des anschaulichen Beispiels enthält einen Prozessor 1312. Der Prozessor 1312 des dargestellten Beispiels ist Hardware. Zum Beispiel kann der Prozessor 1312 durch eine oder mehrere von integrierten Schaltungen, Logikschaltungen, Mikroprozessoren oder Steuerungen aus einer gewünschten Familie oder einem gewünschten Hersteller implementiert sein. In dem dargestellten Beispiel ist der Prozessor 1312 strukturiert, die beispielhafte tragbare Vorrichtung 110 zu enthalten, die den beispielhaften Schlüsselphrasendetektor 112, Merkmalextraktor 113, Quantifizierer 114, Kompressor 115, Sender 116 usw. enthält.
-
Der Prozessor 1312 des dargestellten Beispiels enthält einen lokalen Speicher 1313 (z.B. einen Cache). Der Prozessor 1312 des dargestellten Beispiels ist mit einem Hauptspeicher, der einen flüchtigen Speicher 1314 und einen nicht flüchtigen Speicher 1316 enthält, über einen Bus 1318 in Kommunikation. Der flüchtige Speicher 1314 kann durch einen synchronen dynamischen Direktzugriffsspeicher (SDRAM), dynamischen Direktzugriffsspeicher (DRAM), RAMBUS dynamischen Direktzugriffsspeicher (RDRAM), 3D XPoint (wie Intel Optane™, Micron QuantX™ usw.) und/oder jede andere Art von Direktzugriffsspeichervorrichtung implementiert sein. Der nicht flüchtige Speicher 1316 kann durch einen Flash-Speicher und/oder jede andere gewünschte Art von Speichervorrichtung implementiert sein. Der Zugriff auf den Hauptspeicher 1314, 1316 wird durch eine Speichersteuerung gesteuert.
-
Die Prozessorplattform 1300 des dargestellten Beispiels enthält auch eine Schnittstellenschaltung 1320. Die Schnittstellenschaltung 1320 kann durch jede Art von Schnittstellenstandard, wie eine Ethernet-Schnittstelle, einen Universal Serial Bus (USB), und/oder eine periphere Komponentenverbindung (PCI) Expressschnittstelle implementiert sein.
-
In dem dargestellten Beispiel ist (sind) eine oder mehrere Eingangsvorrichtung(en) 1322 mit der Schnittstellenschaltung 1320 verbunden. Die Eingangsvorrichtung(en) 1322 erlaubt (erlauben) einem Anwender, Daten und Befehle in den Prozessor 1312 einzugeben. Die Eingangsvorrichtung(en) 1322 kann (können) zum Beispiel durch einen Audiosensor, ein Mikrophon, eine Tastatur, eine Taste, eine Maus, einen Berührungsbildschirm, ein Track-Pad, einen Trackball, einen Isopoint und/oder ein Spracherkennungssystem implementiert sein.
-
Eine oder mehrere Ausgangsvorrichtungen 1324 sind auch mit der Schnittstellenschaltung 1320 des dargestellten Beispiels verbunden. Die Ausgangsvorrichtungen 1324 können zum Beispiel durch Anzeigevorrichtungen implementiert sein (z.B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige, eine Kathodenstrahlröhrenanzeige (CRT), einen Berührungsbildschirm, eine taktile Ausgangsvorrichtung). Die Schnittstellenschaltung 1320 des dargestellten Beispiels enthält somit typischerweise eine Grafiktreiberkarte, einen Grafiktreiber-Chip oder einen Grafiktreiberprozessor.
-
Die Schnittstellenschaltung 1320 des dargestellten Beispiels enthält auch eine Kommunikationsvorrichtung wie einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem und/oder eine Netzwerkschnittstellenkarte, um einen Austausch von Daten mit externen Maschinen (z.B. Rechenvorrichtungen beliebiger Art) über ein Netzwerk 1326 (z.B. eine Ethernet Verbindung, eine digitale Teilnehmerleitung (DSL), eine Telefonleitung, ein Koaxialkabel, ein Mobiltelefonsystem usw.) zu erleichtern.
-
Die Prozessorplattform 1300 des dargestellten Beispiels enthält auch eine oder mehrere Massenspeichervorrichtung(en) 1328 zum Speichern von Software und/oder Daten. Beispiele für solche Massenspeichervorrichtungen 1328 enthalten Diskettenlaufwerke, Festplattenlaufwerke, Compact Disk-Laufwerke, Blu-ray Disk-Laufwerke, RAID-Systeme und Digital Versatile Disk (DVD) Laufwerke.
-
Die codierten Anweisungen 1332 von 9-12 können in der Massenspeichervorrichtung 1328, im flüchtigen Speicher 1314, im nicht flüchtigen Speicher 1316 und/oder auf einem entfernbaren, greifbaren, computerlesbaren Speichermedium wie einer CD oder DVD gespeichert werden.
-
14 ist ein Blockdiagramm einer beispielhaften Prozessorplattform 1400, die imstande ist, die Anweisungen von 9-12 auszuführen, um die Begleitvorrichtung 120 und ein zugehöriges System oder zugehörige Systeme von 1-8 zu implementieren. Die Prozessorplattform 1400 kann zum Beispiel ein Server, ein persönlicher Computer, eine mobile Vorrichtung (z.B. ein Mobiltelefon, ein Smartphone, ein Tablet wie an iPad™), ein persönlicher digitaler Assistent (PDA), ein Internet-Gerät, ein DVD-Player, ein CD-Player eine digitaler Videorecorder, ein Blu-ray Player, eine Spielkonsole, ein persönlicher Videorecorder, eine Set Top Box oder eine andere Art von Rechenvorrichtung sein.
-
Die Prozessorplattform 1400 des dargestellten Beispiels enthält einen Prozessor 1412. Der Prozessor 1412 des dargestellten Beispiels ist Hardware. Zum Beispiel kann der Prozessor 1412 durch eine oder mehrere von integrierten Schaltungen, Logikschaltungen, Mikroprozessoren oder Steuerungen aus einer gewünschten Familie oder einem gewünschten Hersteller implementiert sein. In dem dargestellten Beispiel ist der Prozessor 1412 strukturiert, die beispielhafte Begleitvorrichtung 120 zu enthalten, die den beispielhaften Empfänger 122, die Entquantifizierungs-/Dekompressionsmaschine 124, ASR-Maschine 126 usw. enthält.
-
Der Prozessor 1412 des dargestellten Beispiels enthält einen lokalen Speicher 1413 (z.B. einen Cache). Der Prozessor 1412 des dargestellten Beispiels ist mit einem Hauptspeicher, der einen flüchtigen Speicher 1414 und einen nicht flüchtigen Speicher 1416 enthält, über einen Bus 1418 in Kommunikation. Der flüchtigen Speicher 1414 kann durch einen synchronen dynamischen Direktzugriffsspeicher (SDRAM), dynamischen Direktzugriffsspeicher (DRAM), RAMBUS dynamischen Direktzugriffsspeicher (RDRAM), 3D XPoint (wie Intel Optane™, Micron QuantX™ usw.) und/oder jede andere Art von Direktzugriffsspeicher Vorrichtung implementiert sein. Der nicht flüchtige Speicher 1416 1316 kann durch einen Flash-Speicher und/oder jede andere gewünschte Art von Speichervorrichtung implementiert sein. Der Zugriff auf den Hauptspeicher 1414, 1416 wird durch eine Speichersteuerung gesteuert.
-
Die Prozessorplattform 1400 des dargestellten Beispiels enthält auch eine Schnittstellenschaltung 1420. Die Schnittstellenschaltung 1420 kann durch jede Art von Schnittstellenstandard, wie eine Ethernet-Schnittstelle, einen Universal Serial Bus (USB), und/oder eine periphere Komponentenverbindung (PCI) Expressschnittstelle implementiert sein.
-
In dem dargestellten Beispiel ist (sind) eine oder mehrere Eingangsvorrichtung(en) 1422 mit der Schnittstellenschaltung 1420 verbunden. Die Eingangsvorrichtung(en) 1422 erlaubt (erlauben) einem Anwender, Daten und Befehle in den Prozessor 1412 einzugeben. Die Eingangsvorrichtung(en) 1422 kann (können) zum Beispiel durch einen Audiosensor, ein Mikrophon, eine Tastatur, eine Taste, eine Maus, einen Berührungsbildschirm, ein Track-Pad, einen Trackball, einen Isopoint und/oder ein Spracherkennungssystem implementiert sein.
-
Eine oder mehrere Ausgangsvorrichtungen 1424 sind auch mit der Schnittstellenschaltung 1420 des dargestellten Beispiels verbunden. Die Ausgangsvorrichtungen 1424 können zum Beispiel durch Anzeigevorrichtungen implementiert sein (z.B. eine Leuchtdiode (LED), eine organische Leuchtdiode (OLED), eine Flüssigkristallanzeige, eine Kathodenstrahlröhrenanzeige (CRT), einen Berührungsbildschirm, eine taktile Ausgangsvorrichtung). Die Schnittstellenschaltung 1420 des dargestellten Beispiels enthält somit typischerweise eine Grafiktreiberkarte, einen Grafiktreiber-Chip oder einen Grafiktreiberprozessor.
-
Die Schnittstellenschaltung 1420 des dargestellten Beispiels enthält auch eine Kommunikationsvorrichtung wie einen Sender, einen Empfänger, einen Sendeempfänger, ein Modem und/oder eine Netzwerkschnittstellenkarte, um einen Austausch von Daten mit externen Maschinen (z.B. Rechenvorrichtungen beliebiger Art) über ein Netzwerk 1426 (z.B. eine Ethernet Verbindung, eine digitale Teilnehmerleitung (DSL), eine Telefonleitung, ein Koaxialkabel, ein Mobiltelefonsystem usw.) zu erleichtern.
-
Die Prozessorplattform 1400 des dargestellten Beispiels enthält auch eine oder mehrere Massenspeichervorrichtung(en) 1428 zum Speichern von Software und/oder Daten. Beispiele für solche Massenspeichervorrichtungen 1428 enthalten Diskettenlaufwerke, Festplattenlaufwerke, Compact Disk-Laufwerke, Blu-ray Disk-Laufwerke, RAID-Systeme und Digital Versatile Disk (DVD) Laufwerke.
-
Die codierten Anweisungen 1432 von 9-12 können in der Massenspeichervorrichtung 1428, im flüchtigen Speicher 1414, im nicht flüchtigen Speicher 1416 und/oder auf einem entfernbaren, greifbaren, computerlesbaren Speichermedium wie einer CD oder DVD gespeichert werden.
-
Aus dem Vorhergesagten geht hervor, dass die oben offenbarten Verfahren, Apparate und Herstellungsartikel eine Überwachung, Verarbeitung, Übertragung und Analyse von Ton durch ein System, das zwischen einer tragbaren Vorrichtung und einer Begleitvorrichtung verteilt ist, durch eine drahtlose Kommunikationsverbindung erleichtern. Gewisse Beispiele verringern die Leistung unter Verwendung von BLE und/oder einer energiearmen drahtlosen Kommunikation zwischen einer schlanken, leistungsarmen, tragbaren Vorrichtung und einer Begleitvorrichtung, die eine Verarbeitung für die tragbare Vorrichtung handhaben kann. Gewisse Beispiele verringern und verpacken Audiodaten entsprechend, um eine Übertragung über eine leistungsarme Verbindung zu ermöglichen, während eine Datenqualität aufrechterhalten bleibt, um eine exakte Spracherkennung und Verarbeitung zu ermöglichen.
-
Beispiel 1 ist ein Apparat, umfassend einen Detektor zum Verarbeiten eines Eingangs-Audiosignals und Identifizieren eines Teils des Eingangs-Audiosignals, das einen zu evaluierenden Ton enthält, wobei der zu evaluierende Ton in mehrere Audiomerkmale organisiert ist, die den Ton darstellen. Der Apparat von Beispiel 1 enthält auch einen Quantifizierer zum Verarbeiten der Audiomerkmale unter Verwendung eines Quantifizierungsprozesses zur Verringerung der Audiomerkmale, um einen verringerten Satz von Audiomerkmalen zur Übertragung zu generieren. Der Apparat von Beispiel 1 enthält einen Sender zum Übertragen des verringerten Satzes von Audiomerkmalen über einen energiearmen Kommunikationskanal zur Verarbeitung.
-
Beispiel 2 enthält den Gegenstand von Beispiel 1, wobei der energiearme Kommunikationskanal einen Bluetooth-Low-Energy-Kommunikationskanal enthält.
-
Beispiel 3 enthält den Gegenstand von Beispiel 1, wobei der zu evaluierende Ton Sprache enthält.
-
Beispiel 4 enthält den Gegenstand von Beispiel 1, wobei die Audiomerkmale Mel-Frequenz-Cepstralkoeffizienten (MFCCs) enthalten.
-
Beispiel 5 enthält den Gegenstand von Beispiel 1, wobei der Quantifizierungsprozess eine Verringerung in einer Anzahl von Audiomerkmalen enthält.
-
Beispiel 6 enthält den Gegenstand von Beispiel 5, wobei die Verringerung in der Anzahl von Audiomerkmalen eine Verringerung von 23 Audiomerkmalen auf 13 zu übertragende Audiomerkmale enthält.
-
Beispiel 7 enthält den Gegenstand von Beispiel 1, wobei der Quantifizierungsprozess eine Verringerung in der Bit-Größe für jedes der Audiomerkmale enthält.
-
Beispiel 8 enthält den Gegenstand von Beispiel 7, wobei die Verringerung in der Bit-Größe durch Anwenden eines A-Gesetz-Algorithmus erhalten wird, um Bits jedes Audiomerkmals gemäß einem Kompressionsparameter zu codieren.
-
Beispiel 9 enthält den Gegenstand von Beispiel 7, wobei die Verringerung in der Bit-Größe durch Verwerfen eines oder mehrerer Bits jedes Audiomerkmals erhalten wird.
-
Beispiel 10 enthält den Gegenstand von Beispiel 9, wobei ein Verwerfen eines oder mehrerer Bits jedes Audiomerkmals ein Verwerfen von 7 niedrigstwertigen Bits und eines höchstwertigen Bits jedes Audiomerkmals enthält.
-
Beispiel 11 enthält den Gegenstand von Beispiel 1, wobei der Apparat eine tragbare Vorrichtung enthält.
-
Beispiel 12 enthält den Gegenstand von Beispiel 1, ferner enthaltend einen Merkmalextraktor zum Extrahieren der Audiomerkmale aus dem Ton, der durch den Schlüsselphrasendetektor identifiziert ist.
-
Beispiel 13 enthält den Gegenstand von Beispiel 1, ferner enthaltend einen Kompressor zum Komprimieren des verringerten Satzes von Audiomerkmalen zur Übertragung durch den Sender.
-
Beispiel 14 enthält den Gegenstand von Beispiel 1, ferner enthaltend ein Mikrophon zum Detektieren des Eingangs-Audiosignals.
-
Beispiel 15 enthält den Gegenstand von Beispiel 1, ferner enthaltend einen sprachaktivierten Detektor zum Aktivieren des Schlüsselphrasendetektors, Quantifizierers und Senders, wenn das Eingangs-Audiosignal detektiert wird.
-
Beispiel 16 enthält den Gegenstand von Beispiel 1, ferner enthaltend eine Begleitvorrichtung zum Verarbeiten des verringerten Satzes von Audiomerkmalen, die vom Sender empfangen werden.
-
Beispiel 17 enthält den Gegenstand von Beispiel 16, wobei die Begleitvorrichtung eine Entquantifizierungsmaschine und eine automatisierte Spracherkennungsmaschine zum Verarbeiten des verringerten Satzes von Audiomerkmalen enthält, um den Ton zu extrahieren und zu evaluieren, der mit dem verringerten Satz von Audiomerkmalen verknüpft ist.
-
Beispiel 18 enthält den Gegenstand von Beispiel 16, wobei die Begleitvorrichtung mindestens eines von einem Mobiltelefon oder einer Gateway-Vorrichtung enthält.
-
Beispiel 19 ist ein Verfahren, umfassend ein Verarbeiten eines Eingangs-Audiosignals zum Identifizieren eines Teils des Eingangs-Audiosignals, das einen zu evaluierenden Ton enthält; Organisieren des zu evaluierenden Tons in mehrere Audiomerkmale, die den Ton darstellen; Verarbeiten der Audiomerkmale unter Verwendung eines Quantifizierungsprozesses zur Verringerung der Audiomerkmale, um einen verringerten Satz von Audiomerkmalen zur Übertragung zu generieren; und Übertragen des verringerten Satzes von Audiomerkmalen über einen energiearmen Kommunikationskanal zur Verarbeitung.
-
Beispiel 20 enthält den Gegenstand von Beispiel 19, wobei der energiearme Kommunikationskanal einen Bluetooth-Low-Energy-Kommunikationskanal enthält.
-
Beispiel 21 enthält den Gegenstand von Beispiel 19, wobei die Audiomerkmale Mel-Frequenz-Cepstralkoeffizienten (MFCCs) enthalten.
-
Beispiel 22 enthält den Gegenstand von Beispiel 19, wobei der zu evaluierende Ton Sprache enthält.
-
Beispiel 23 enthält den Gegenstand von Beispiel 19, wobei der Quantifizierungsprozess eine Verringerung in einer Anzahl von Audiomerkmalen enthält.
-
Beispiel 24 enthält den Gegenstand von Beispiel 23, wobei die Verringerung in der Anzahl von Audiomerkmalen eine Verringerung von 23 Audiomerkmalen auf 13 zu übertragende Audiomerkmale enthält.
-
Beispiel 25 enthält den Gegenstand von Beispiel 19, wobei der Quantifizierungsprozess eine Verringerung in der Bit-Größe für jedes der Audiomerkmale enthält.
-
Beispiel 26 enthält den Gegenstand von Beispiel 25, wobei die Verringerung in der Bit-Größe durch Anwenden eines A-Gesetz-Algorithmus erhalten wird, um Bits jedes Audiomerkmals gemäß einem Kompressionsparameter zu codieren.
-
Beispiel 27 enthält den Gegenstand von Beispiel 25, wobei die Verringerung in der Bit-Größe durch Verwerfen eines oder mehrerer Bits jedes Audiomerkmals erhalten wird.
-
Beispiel 28 enthält den Gegenstand von Beispiel 27, wobei ein Verwerfen eines oder mehrerer Bits jedes Audiomerkmals ein Verwerfen von 7 niedrigstwertigen Bits und eines höchstwertigen Bits jedes Audiomerkmals enthält.
-
Beispiel 29 enthält den Gegenstand von Beispiel 19, ferner enthaltend ein Extrahieren der Audiomerkmale aus dem zu evaluierenden Ton.
-
Beispiel 30 enthält den Gegenstand von Beispiel 19, ferner enthaltend ein Komprimieren des verringerten Satzes von Audiomerkmalen zur Übertragung.
-
Beispiel 31 enthält den Gegenstand von Beispiel 19, ferner enthaltend ein Aktivieren eines Prozessors zum Verarbeiten des Eingangs-Audiosignals, wenn das Eingangs-Audiosignal detektiert wird.
-
Beispiel 32 enthält den Gegenstand von Beispiel 19, ferner enthaltend ein Verarbeiten des verringerten Satzes von Audiomerkmalen unter Verwendung einer Begleitvorrichtung, um den Ton zu extrahieren und zu evaluieren, der mit dem verringerten Satz von Audiomerkmalen verknüpft ist.
-
Beispiel 33 ist eine greifbares computerlesbares Speichermedium, enthaltend computerlesbare Anweisungen, die bei Ausführung einen Prozessor veranlassen, mindestens ein Verfahren zu implementieren. Das beispielhafte Verfahren enthält ein Verarbeiten eines Eingangs-Audiosignals zum Identifizieren eines Teils des Eingangs-Audiosignals, das einen zu evaluierenden Ton enthält; Organisieren des zu evaluierenden Tons in mehrere Audiomerkmale, die den Ton darstellen; Verarbeiten der Audiomerkmale unter Verwendung eines Quantifizierungsprozesses zur Verringerung der Audiomerkmale, um einen verringerten Satz von Audiomerkmalen zur Übertragung zu generieren; und Übertragen des verringerten Satzes von Audiomerkmalen über einen energiearmen Kommunikationskanal zur Verarbeitung.
-
Beispiel 34 enthält den Gegenstand von Beispiel 33, wobei der energiearme Kommunikationskanal einen Bluetooth-Low-Energy-Kommunikationskanal enthält.
-
Beispiel 35 enthält den Gegenstand von Beispiel 33, wobei die Audiomerkmale Mel-Frequenz-Cepstralkoeffizienten (MFCCs) enthalten.
-
Beispiel 36 enthält den Gegenstand von Beispiel 33, wobei der zu evaluierende Ton Sprache enthält.
-
Beispiel 37 enthält den Gegenstand von Beispiel 33, wobei der Quantifizierungsprozess eine Verringerung in einer Anzahl von Audiomerkmalen enthält.
-
Beispiel 38 enthält den Gegenstand von Beispiel 37, wobei die Verringerung in der Anzahl von Audiomerkmalen eine Verringerung von 23 Audiomerkmalen auf 13 zu übertragende Audiomerkmale enthält.
-
Beispiel 39 enthält den Gegenstand von Beispiel 33, wobei der Quantifizierungsprozess eine Verringerung in der Bit-Größe für jedes der Audiomerkmale enthält.
-
Beispiel 40 enthält den Gegenstand von Beispiel 39, wobei die Verringerung in der Bit-Größe durch Anwenden eines A-Gesetz-Algorithmus erhalten wird, um Bits jedes Audiomerkmals gemäß einem Kompressionsparameter zu codieren.
-
Beispiel 41 enthält den Gegenstand von Beispiel 39, wobei die Verringerung in der Bit-Größe durch Verwerfen eines oder mehrerer Bits jedes Audiomerkmals erhalten wird.
-
Beispiel 42 enthält den Gegenstand von Beispiel 41, wobei ein Verwerfen eines oder mehrerer Bits jedes Audiomerkmals ein Verwerfen von 7 niedrigstwertigen Bits und eines höchstwertigen Bits jedes Audiomerkmals enthält.
-
Beispiel 43 enthält den Gegenstand von Beispiel 33, wobei das Verfahren ferner ein Extrahieren der Audiomerkmale aus dem zu evaluierenden Ton enthält.
-
Beispiel 44 enthält den Gegenstand von Beispiel 33, wobei das Verfahren ferner ein Komprimieren des verringerten Satzes von Audiomerkmalen zur Übertragung enthält.
-
Beispiel 45 enthält den Gegenstand von Beispiel 33, wobei das Verfahren ferner ein Aktivieren des Prozessors zum Verarbeiten des Eingangs-Audiosignals, wenn das Eingangs-Audiosignal detektiert wird, enthält.
-
Beispiel 46 enthält den Gegenstand von Beispiel 33, wobei das Verfahren ferner ein Verarbeiten des verringerten Satzes von Audiomerkmalen unter Verwendung einer Begleitvorrichtung enthält, um den Ton zu extrahieren und zu evaluieren, der mit dem verringerten Satz von Audiomerkmalen verknüpft ist.
-
Beispiel 47 ist ein Apparat, enthaltend einen Empfänger zum Empfangen von Datenpaketen von einer tragbaren Vorrichtung, die Informationen bezüglich eines verringerten Satzes von Audiomerkmalen enthalten, die einen Ton darstellen. Der beispielhafte Apparat enthält eine Entquantifizierungsmaschine zum Verarbeiten der Datenpakete, um den verringerten Satz von Audiomerkmalen zu gewinnen. Der beispielhafte Apparat enthält eine automatisierte Spracherkennungsmaschine zum Auswerten des verringerten Satzes von Audiomerkmalen, um den Ton zu identifizieren.
-
Beispiel 48 enthält den Gegenstand von Beispiel 47, wobei die Audiomerkmale Mel-Frequenz-Cepstralkoeffizienten (MFCCs) enthalten.
-
Beispiel 49 enthält den Gegenstand von Beispiel 47, wobei der Ton Sprache enthält.
-
Beispiel 50 enthält den Gegenstand von Beispiel 47, wobei die Entquantifizierungsmaschine einen Dekomprimierer zum Dekomprimieren der Datenpakete enthält, um den verringerten Satz von Audiomerkmalen zu gewinnen.
-
Beispiel 51 enthält den Gegenstand von Beispiel 47, wobei mindestens eine der Entquantifizierungsmaschine oder der automatisierten Spracherkennungsmaschine eine Rückmeldung zur tragbaren Vorrichtung bereitstellen soll.
-
Beispiel 52 enthält den Gegenstand von Beispiel 51, wobei die Rückmeldung mindestens eines von einer Textrückmeldung oder Audiorückmeldung enthält.
-
Beispiel 53 enthält den Gegenstand von Beispiel 51, wobei die Entquantifizierungsmaschine mindestens eines von einem korrupten Audiomerkmalpaket oder einem fehlenden Audiopaket unter Verwendung einer Interpolation von benachbarten empfangenen Paketinformationen wiederherstellen soll.
-
Obwohl gewisse beispielhafte Verfahren, Apparate und Herstellungsartikel hier offenbart wurden, ist der Abdeckungsumfang dieses Patents nicht darauf beschränkt. Im Gegenteil, dieses Patent deckt alle Verfahren, Apparate und Herstellungsartikel ab, die zurecht in den Umfang der Ansprüche dieses Patents fallen.