-
HINTERGRUND
-
Spracherkennungssysteme oder automatische Spracherkenner haben zunehmend an Bedeutung gewonnen, da immer mehr computerbasierte Vorrichtungen Spracherkennung verwenden, um Befehle von einem Benutzer zu empfangen, um eine Aktion durchzuführen, sowie Sprache in Text für Diktieranwendungen zu konvertieren oder sogar Gespräche mit einem Benutzer zu führen, bei denen Informationen in eine oder beide Richtungen ausgetauscht werden. Derartige Systeme können sprecherunabhängig sein, wie beispielsweise Heim- oder Smartphone-Spracherkennungssysteme, bei denen das System Wörter unabhängig vom Sprecher erkennt, oder sprecherabhängig sein, bei denen das System durch Wiederholung von Wörtern durch den Benutzer trainiert wird. Einige Systeme können auch so konfiguriert sein, dass sie einen festen Satz von Einzelwortbefehlen oder Ausdrücken verstehen, wie beispielsweise zum Bedienen eines Mobiltelefons, das die Begriffe „Anrufen“ oder „Antworten“ versteht. Systeme auf Smartphones, intelligenten Lautsprechern, Tablets und anderen Vorrichtungen können ein umfangreiches Vokabular aufweisen, wie beispielsweise für einen virtuellen Assistenten, der sprachaktivierte Suchmaschinen bereitstellt und andere audioaktivierte Aufgaben durchführt.
-
Folglich ist eine automatische Spracherkennung (ASR, Automatic Speech Recognition) für Wearables, Smartphones und andere kleine Vorrichtungen wünschenswert. Viele dieser kleinen Vorrichtungen mit ASR-Systemen weisen einen begrenzten Speicher, eine begrenzte Rechenkapazität und eine begrenzte Batteriekapazität auf. Die Merkmalsextraktion an akustischen Frontends kann große Rechenlasten und einen daraus resultierenden Stromverbrauch aufweisen, was hauptsächlich auf herkömmliche, generische digitale Signalprozessoren (DSPs) zurückzuführen ist, die eine schnelle Fourier-Transformation (FFT, Fast Fourier Transform) und andere DSP-Aufgaben zur Merkmalsextraktion durchführen. Die Merkmalsextraktion wird für immer aktive ASR-Systeme noch wichtiger, bei denen die Merkmalsextraktion, Sprachaktivierung (VA, Voice Activation) und einfache Schlüsselworterkennung (KWD, Keyword Detection) ständig durchgeführt werden, bevor andere nachfolgende komplizierte ASR-Backend-Aufgaben ausgeführt werden, und daher die Merkmalsextraktion, VA und KWD viel häufiger als diese komplizierten ASR-Backend-Aufgaben durchgeführt werden, wodurch der Energieverbrauch direkter beeinflusst wird. Dies kann eine signifikante Menge an Batteriestrom verbrauchen und die Verarbeitungszeit, die für andere ASR-Aufgaben oder andere Nicht-ASR-Aufgaben auf kleinen Vorrichtungen verwendet werden könnte, in unerwünschter Weise dominieren.
-
Figurenliste
-
Das hierin beschriebene Material ist in den beigefügten Figuren beispielhaft und nicht einschränkend veranschaulicht. Aus Gründen der Einfachheit und Klarheit der Darstellung sind die in den Figuren veranschaulichten Elemente nicht notwendigerweise maßstabsgetreu gezeichnet. Beispielsweise können die Abmessungen von einigen Elementen in Bezug auf andere Elemente der Klarheit halber übertrieben sein. Wenn es angemessen erscheint, wurden Bezugszeichen in den Figuren ferner wiederholt, um entsprechende oder analoge Elemente anzuzeigen. Für die Figuren gilt:
- 1 ist eine schematische Darstellung, die ein automatisches Spracherkennungssystem zeigt;
- 2 ist eine schematische Darstellung eines herkömmlichen automatischen Spracherkennungssystems mit einer Frequenzdomänen-Merkmalsextraktion an einem akustischen Frontend des Systems;
- 3 ist ein Flussdiagramm eines automatischen Spracherkennungsprozesses mit Zeitdomänen-Merkmalsextraktion gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 4 ist eine schematische Darstellung eines automatischen Spracherkennungssystems mit einem Zeitdomänen-Merkmalsextraktions-Frontend gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 5 ist eine schematische Darstellung eines automatischen Spracherkennungssystems mit einem Zeitdomänen-Merkmalsextraktions-Frontend gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 6A-6B sind detaillierte Flussdiagramme eines Verfahrens zur Zeitdomänen-Merkmalsextraktion gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 7 ist eine schematische Darstellung eines beispielhaften Delta-Modulator-ADC gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 7A ist eine schematische Darstellung einer beispielhaften Steuerlogik für den Delta-Modulator aus 7 oder 8 und gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 8 ist eine schematische Darstellung eines beispielhaften digitalen Delta-Modulators gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 9 ist ein automatisches Spracherkennungssystem mit einem Zeitdomänen-Merkmalsextraktions-Frontend gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 10 ist eine schematische Darstellung, die Impulsmuster zeigt, die mit Zeitabtast-Spannungspegelleitungen ausgerichtet sind, um die Operation eines Delta-Modulators gemäß wenigstens einer der hierin beschriebenen Implementierungen zu erläutern;
- 11 ist eine schematische Darstellung eines beispielhaften ereignisgesteuerten Mel-Frequenz-Filters mit endlicher Impulsantwort (FIR, Finite Impulse Response) gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 12 ist eine schematische Darstellung eines beispielhaften Verzögerungselements, das am FIR-Filter aus 11 verwendet wird, gemäß wenigstens einer der hierin beschriebenen Implementierungen;
- 13A-13C sind Spektrogramme, die eine herkömmliche Frequenzdomänen-Merkmalsextraktion mit Zeitdomänen-Mel-Frequenz-Merkmalsextraktion mit einer Energieoperation und mit einer Größensumme der FIR-Filterausgabe vergleichen, gemäß dem Parseval-Theorem und gemäß wenigstens einer Implementierung hierin.
- 14 ist eine schematische Darstellung eines anderen beispielhaften FIR-Filtersystems mit gemeinsam genutzten verzögerten Abgriffen, gemeinsam genutzten Koeffizienten und/oder einer zeitlich gemultiplexten Arithmetik-Logik-Einheit (ALU, Arithmetic Logic Unit) gemäß wenigstens einer der Implementierungen hierin;
- 15 ist ein Graph, der ein Histogramm von Gleitkommakoeffizienten und der Zählung jedes verwendeten Koeffizienten zeigt, gemäß wenigstens einer der Implementierungen hierin;
- 16A-16J sind jeweils ein Graph von Ergebnissen eines unterschiedlichen Filters mit jeweils einer unterschiedlichen Anzahl von Koeffizienten und Vergleich von idealen Mel-Frequenz-Filtern und Übertragungsfunktionen mit Koeffizienten, die gemeinsam genutzt und nicht gemeinsam genutzt werden, zwei unterschiedlichen Präzisionsgrößen und entweder Gleitkomma- oder Festkommapräzision;
- 17 ist ein Graph, der die Anzahl von Berechnungen pro Mel-Frequenz-Filter für Frequenzdomänen- und Zeitdomänen-Mel-beabstandete Filter gemäß wenigstens einer der Implementierungen hierin zeigt;
- 18 ist eine veranschaulichende Darstellung eines beispielhaften Systems;
- 19 ist eine veranschaulichende Darstellung eines anderen beispielhaften Systems; und
- 20 veranschaulicht eine andere beispielhafte Vorrichtung, wobei alles gemäß wenigstens einigen Implementierungen der vorliegenden Offenbarung angeordnet ist.
-
DETAILLIERTE BESCHREIBUNG
-
Eine oder mehrere Implementierungen werden nun unter Bezugnahme auf die beigefügten Figuren beschrieben. Obgleich spezielle Konfigurationen und Anordnungen erörtert werden, versteht es sich, dass dies nur zu Veranschaulichungszwecken durchgeführt wird. Fachleute auf dem Gebiet werden erkennen, dass andere Konfigurationen und Anordnungen eingesetzt werden können, ohne vom Wesen und Schutzbereich der Beschreibung abzuweichen. Für Fachleute auf dem betreffenden Gebiet wird ersichtlich sein, dass die hierin beschriebenen Techniken und/oder Anordnungen auch in einer Vielzahl anderer Systeme und Anwendungen als den hierin beschriebenen eingesetzt werden können.
-
Obgleich die folgende Beschreibung verschiedene Implementierungen darlegt, die sich in Architekturen wie beispielsweise System-on-a-Chip(SoC)-Architekturen manifestieren können, sind die Implementierungen der hierin beschriebenen Techniken und/oder Anordnungen nicht auf bestimmte Architekturen und/oder Rechensysteme beschränkt und können von einer beliebigen Architektur und/oder einem beliebigen Rechensystem für ähnliche Zwecke implementiert werden, es sei denn, eine spezielle Architektur wird hierin erwähnt. Zum Beispiel können verschiedene Architekturen, die beispielsweise mehrere Chips und/oder Packages mit integrierten Schaltungen (IC, Integrated Circuits) und/oder verschiedene Rechenvorrichtungen und/oder Vorrichtungen für Verbraucherelektronik (CE, Consumer Electronic), wie beispielsweise Laptop- oder Desktop-Computer, mobile Vorrichtungen, wie beispielsweise Smartphones oder Wearables, wie beispielsweise eine intelligente Uhr, eine intelligente Brille oder ein Fitnessband, Videospieltafeln oder -konsolen, Fernseh-Set-Top-Boxen, dedizierte intelligente Lautsprecher für den privaten oder gewerblichen Bereich, Vorrichtungen für das Internet der Dinge (IoT, Internet of Things), On-Board-Fahrzeugsysteme, Diktiergeräte, physikalische oder Computerzugangssicherheitssysteme, Umgebungssteuersysteme für Gebäude und so weiter, verwenden, die hierin beschriebenen Techniken und/oder Anordnungen implementieren. Obgleich die nachfolgende Beschreibung zahlreiche spezielle Details darlegen kann, wie beispielsweise Logikimplementierungen, Typen und Wechselbeziehungen von Systemkomponenten, Auswahlmöglichkeiten für Logikpartitionierung/-integration und so weiter, kann der beanspruchte Gegenstand ferner auch ohne solche speziellen Details umgesetzt werden. In anderen Fällen kann es sein, dass einige Materialien, wie beispielsweise Steuerstrukturen und vollständige Softwarebefehlssequenzen, nicht im Detail gezeigt werden, um das hierin offenbarte Material nicht zu verschleiern. Das hierin offenbarte Material kann in Hardware, Firmware, Software oder einer beliebigen Kombination davon implementiert werden.
-
Ein maschinenlesbares Medium kann auch ein beliebiges Medium und/oder einen beliebigen Mechanismus zum Speichern oder Senden von Informationen in einer Form einschließen, die durch eine Maschine (beispielsweise eine Rechenvorrichtung) lesbar ist. Beispielsweise kann ein maschinenlesbares Medium einen Nur-Lese-Speicher (ROM, Read-Only Memory); Direktzugriffsspeicher (RAM, Random Access Memory); Magnetplattenspeicherungsmedien; optische Speicherungsmedien; Flash-Speichervorrichtungen; elektrische, optische, akustische oder andere Formen von sich ausbreitenden Signalen (z. B. Trägerwellen, Infrarotsignale, digitale Signale und so weiter) und andere aufweisen. In einer anderen Form kann ein nichtflüchtiger Gegenstand, wie beispielsweise ein nichtflüchtiges computerlesbares Medium, mit jedem der oben erwähnten Beispiele oder anderen Beispielen verwendet werden, außer dass er an sich kein flüchtiges Signal aufweist. Dies beinhaltet diejenigen Elemente außer einem Signal an sich, die Daten vorübergehend in einer „flüchtigen“ Art und Weise halten können, wie beispielsweise RAM und so weiter.
-
Bezugnahmen in der Beschreibung auf „eine einzige Implementierung“, „eine Implementierung“, „eine beispielhafte Implementierung“ und so weiter zeigen an, dass die beschriebene Implementierung ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft einschließen kann, jedoch braucht nicht jede Implementierung notwendigerweise das bestimmte Merkmal, die bestimmte Struktur oder die bestimmte Eigenschaft einzuschließen. Darüber hinaus beziehen sich derartige Ausdrücke nicht notwendigerweise auf die gleiche Implementierung. Ferner wird, wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft in Verbindung mit einer Implementierung beschrieben wird, vorausgeschickt, dass es innerhalb der Kenntnisse von Fachleuten auf dem Gebiet liegt, ein derartiges Merkmal, eine derartige Struktur oder eine derartige Eigenschaft in Verbindung mit anderen Implementierungen zu bewirken, ob diese nun ausdrücklich beschrieben sind oder nicht.
-
Systeme, Gegenstände und Verfahren zur Zeitdomänen-Merkmalsextraktion für die automatische Spracherkennung.
-
Unter Bezugnahme auf 1 zeichnet eine sprachaktivierte Mensch-Maschine-Schnittstelle (HMI, Human Machine Interface) Audio mit einem Mikrofon auf, verarbeitet die akustischen Daten mit einer Sprachverarbeitungsvorrichtung und gibt dann Sprache oder visuelle Informationen an den Benutzer oder eine andere Anwendung aus, um abhängig von den Audioinformationen eine weitere Aktion durchzuführen. Ein System für die automatische Spracherkennung (ASR, Automatic Speech Recognition) oder HMI 10 kann mit den hierin beschriebenen Implementierungen verwendet werden und kann eine Audioerfassungs- oder - empfangsvorrichtung 14 aufweisen, wie beispielsweise ein analoges oder digitales Mikrofon, um Schallwellen von einem Benutzer 12 zu empfangen und die Wellen in ein elektrisches akustisches Rohsignal zu konvertieren, das in einem Speicher aufgezeichnet werden kann. Das System 10 kann optional einen Analog/Digital(A/D)-Wandler 16 aufweisen, der Teil eines digitalen Mikrofons sein könnte, aber ansonsten von einem akustischen Frontend 18 getrennt ist, um der akustischen Frontend-Einheit 18 ein digitales akustisches Signal bereitzustellen. Wie nachstehend erläutert, kann das akustische Frontend 18 stattdessen ein analoges Eingangssprachsignal empfangen, und die ADC-Aufgaben können in einigen der unten beschriebenen Implementierungen von der akustischen Frontend-Einheit 18 selbst durchgeführt werden.
-
Die akustische Frontend-Einheit 18, die hierin auch als Merkmalsextraktionseinheit bezeichnet wird, kann eine Merkmalsextraktion durchführen, um akustische Merkmale oder Merkmalsvektoren in Form von Mel-Frequenz-Spektralkoeffizienten (MFSC, Mel-Frequency Spectral Coefficients) oder Mel-Frequenz-Cepstrum-Koeffizienten (MFCC, Mel-Frequency Cepstrum Coefficients) bereitzustellen. In der herkömmlichen Form werden Fensterung und schnelle Fourier-Transformation (FFT, Fast Fourier Transform) verwendet, um die Koeffizienten zu bilden, und für die ASR-Analyse kann die Frontend-Einheit 18 das akustische Signal auch in überlappende Frames mit 25 ms langen Frames und 10-ms-Frame-Steides gemäß einem Beispiel teilen. Im Gegensatz dazu reduzieren oder eliminieren die hierin beschriebenen vorliegenden Verfahren diese Techniken und teilen das akustische Signal in nicht-überlappende Frames mit 25 ms langen Frames und 25-ms-Frame-Strides gemäß einem Beispiel auf. Weitere Details werden nachstehend bereitgestellt.
-
Das ASR-System 10 kann auch ein Backend 21 mit einer akustischen Scoring-Einheit 20 aufweisen, die die Merkmalskoeffizienten verwendet, um einen Wahrscheinlichkeits-Score für die im Eingangssignal identifizierten kontextabhängigen Phoneme zu bestimmen. Einige akustische Scoring-Einheiten erwarten Mel-Frequenz-Cepstrum-Koeffizienten, Mel-Frequenz-Spektralkoeffizienten oder beides. Die akustischen Scoring-Einheiten können neuronale Netze oder andere Techniken verwenden, um die akustischen Scores bereitzustellen.
-
Eine Einheit für einen gewichteten endlichen Transduktor (WFST, Weighted Finite State Transducer) oder ein Decoder 22 verwendet die akustischen Scores, um eine oder mehrere Äußerungshypothesen zu identifizieren und ihre Scores zu berechnen. Der WFST-Decoder 22 kann ein neuronales Netz von Bögen und Zuständen verwenden, die auch als WFSTs bezeichnet werden. Das neuronale WFST-Netz oder andere Netze können auf Hidden-Markov-Modellen (HMMs), dynamischer Zeitverzerrung und vielen anderen Netztechniken oder -strukturen basieren. Der WFST-Decoder 22 verwendet bekannte spezielle Regeln, Konstruktion, Betrieb und Eigenschaften für die Single-Best- oder n-Best-Sprachdecodierung, und die Details von diesen, die hier nicht relevant sind, werden nicht weiter erläutert, um eine klare Beschreibung der Anordnung der hierin beschriebenen neuen Merkmale bereitzustellen.
-
Die Decodierungsergebnisse werden einer Sprachinterpreter- und Ausführungseinheit (oder Interpretations-Engine) 24 zur Verfügung gestellt, um die Benutzerabsicht zu bestimmen. Diese Absichtsbestimmung oder Klassifizierung gesprochener Äußerungen kann auf Entscheidungsbäumen, Formfüllungsalgorithmen oder statistischer Klassifizierung basieren (z. B. unter Verwendung von Support Vector Machines (SVMs) oder tiefen neuronalen Netzen (DNN, Deep Neural Networks)).
-
Sobald die Benutzerabsicht für eine Äußerung bestimmt ist, kann die Interpretations-Engine 24 auch eine Antwort ausgeben oder eine Aktion initiieren. Die Reaktion oder Antwort kann in Audioform über eine Lautsprecherkomponente 26 oder in visueller Form als Text auf einer Anzeigekomponente 28, wie beispielsweise Internet-Suchergebnisse, sein. Andernfalls kann eine Aktion initiiert werden, um eine andere Endvorrichtung 30 (unabhängig davon, ob sie als Teil oder innerhalb derselben Vorrichtung wie das Spracherkennungssystem 10 betrachtet wird oder nicht) zu steuern. Beispielsweise kann ein Benutzer „zu Hause anrufen“ sagen, um einen Telefonanruf auf einer Telefonvorrichtung zu aktivieren, der Benutzer kann ein Fahrzeug starten, indem er Wörter in einen Fahrzeug-Fob spricht, oder ein Sprachmodus auf einem Smartphone kann bestimmte Aufgaben auf dem Smartphone durchführen. Die Endvorrichtung 30 kann einfach Software anstelle einer physikalischen Vorrichtung oder einer physikalischen Hardware oder einer Kombination davon sein und ist nicht speziell auf einen Typ von Vorrichtung oder Operation davon beschränkt, mit Ausnahme der Fähigkeit, einen Befehl oder eine Anforderung zu verstehen, die sich aus einer Spracherkennungsbestimmung ergeben, und eine Aktion angesichts dieses Befehls oder dieser Anforderung durchzuführen oder zu initiieren.
-
Unter Bezugnahme auf 2 kann ein herkömmliches System oder eine herkömmliche Pipeline für die automatische Spracherkennung (ASR, Automatic Speech Recognition) eine herkömmliche akustische Frontend-Einheit (oder Merkmalsextraktionseinheit) 200 aufweisen. Die Merkmalsextraktionseinheit 200 kann ein digitales Signal empfangen, das beispielsweise von einem ADC 216 von einem analogen Signal konvertiert wurde, und dann stellt die Merkmalsextraktionseinheit 200 schließlich akustische Merkmalskoeffizienten an eine akustische Scoring-Einheit bereit. Gemäß einem Beispiel stellt die Merkmalsextraktionseinheit 200 die Koeffizienten in Form von Mel-Frequenz-Spektralkoeffizienten (MFSC, Mel-Frequency Spectral Coefficients) oder Mel-Frequenz-Cepstrum-Koeffizienten (MFCC, Mel-Frequency Cepstral Coefficients) bereit.
-
Sobald ein digitales Sprachsignal empfangen wird, nimmt eine Frame-Abtasteinheit 201 Abtastungen des Eingangssprachsignals mit einer bestimmten Frequenz zum Bilden von Frames und in überlappenden Zeitintervallen vor. Dann verfeinert eine Fensterungseinheit 202 das Eingangssprachsignal in jedem Frame, um mit einer schnellen Fourier-Transformation (FFT, Fast Fourier Transform) kompatibel zu sein, die von einer FFT-Einheit 204 durchgeführt wird, um das Signal in die Frequenzdomäne zu konvertieren. Typischerweise müssen diese Frames überlappt werden, da die FFT-Operationen das Signal an den Kanten oder der Grenze (Anfang und Ende) jedes Frames unterdrücken. Insbesondere nehmen die FFT-Operationen an, dass das eingehende Signal periodisch ist, und unterdrücken daher das Signal, wenn es sich von einer Mitte des Frames weg erstreckt, so dass ein einzelner Peak in der Mitte des Frames gebildet wird, und dies ist für die Analyse jedes Frames oder Fensters erwünscht. Typischerweise ist eine verwendete Unterdrückungstechnik ein Hamming-Fenster, das bestimmte Frequenzkurvenformungskonstanten anwendet. Die unterdrückten Daten, die in der Nähe des Anfangs und des Endes eines Frames immer noch unerwünschterweise ungleich Null sind, werden als Datenspektralleck bezeichnet. Die Timing-Intervalle der Frames oder Fenster sind so festgelegt, dass sie sich überlappen, um den Verlust aufgrund der Fensterung zu kompensieren, so dass eine Grenzregion eines Frames nahe der Mitte eines anderen Frames angeordnet ist, wodurch die FFT-Einheit die Frequenzen des unterdrückten Teils jedes Fensters und des Signals genauer bestimmen kann.
-
Die FFT-Einheit 204 stellt dann ein FFT-Frequenz-Spektrum (Frequenzwerte) des Eingangssignals an eine Mel-beabstandete Filtereinheit (oder Mel-Skala-Filterungseinheit) 206 bereit, die die Mel-Frequenz-Filterung der Frequenzwerte in der Frequenzdomäne durchführt. Die Mel-Frequenz-Filterung soll die Filterung des menschlichen Ohrs reflektieren, und die Mel-Frequenz-Filter sind in der Frequenzdomäne ungleichmäßig beabstandet, mit mehr Filtern in einem Niederfrequenzbereich und weniger Filtern in einem Hochfrequenzbereich. Eine Formel zur Konvertierung der Frequenzdomäne in eine Mel-Skala-Frequenzdomäne ist mel(f) = 1125 x ln (1 + f/700), wobei mel(f) = Mel-Skala-Frequenz und f = Frequenz. Mel-beabstandete Filter sind dreieckige Filter, die in der Mel-Frequenz-Domäne gleich beabstandet sind, und die Anzahl der Mel-Filter bestimmt eine Dimension vom MFSC und MFCC. Die Energie jedes Filters wird dann durch Summieren der Quadrate von anfänglichen Filterausgabeabtastungen in einem Frame bei jedem Mel-Filter berechnet.
-
Jeder Mel-Filter stellt dann die Energiewerte als Ausgabe von der Mel-Skala-Filterungseinheit 206 bereit und an eine Log(*)-Einheit 208 bereitgestellt, um die MFSCs zu generieren. Die MFSCs können auch einer Einheit für die diskrete Cosinustransformation (DCT) 210 bereitgestellt werden, um die MFSCs in MFCCs zu transformieren. Die DCT-Einheit 210 konvertiert MFSCs in eine Summe von Cosinusfunktionen, die mit verschiedenen Frequenzen oszillieren, wodurch eine Transformation der MFSCs von einer Frequenzdomäne in eine zeitähnliche Domäne (Quefrenzdomäne) durchgeführt wird, was zu komprimierten Werten führt, die die MFSCs als MFCCs repräsentieren, die effizient für das akustische Scoring verwendet werden können. Die MFCCs, die MFSCs oder beide werden dann einer ASR-Backend-Einheit oder genauer gesagt einer akustischen Scoring-Einheit bereitgestellt, um Scores für die nachfolgenden Sprachmodelle bereitzustellen.
-
Ein Nachteil der Verwendung der FFT-basierten Merkmalsextraktion ist die große Rechenlast, die erforderlich ist, um in der Frequenzdomäne zu arbeiten. Die FFT-Operation beinhaltet Speichertransaktionen zum Laden der Audiodaten in einen und Fetchen der Daten aus einem Speicherpuffer zum Durchführen der Fensterung zum Verfeinern des Signals jedes Frames, Durchführen der FFT-Konvertierung in die Frequenzdomäne für jeden Frame und Durchführen der Mel-Skala-Frequenzfilterung für jeden Mel-Filter in der Frequenzdomäne und für jeden Frame. Die FFT-Operationen selbst beinhalten mehrere Multiplikationsakkumulations(MAC, Multiply-Accumulate)-Operationen, die durchgeführt werden, um komplexe Zahlenberechnungen, Log-Operationen und andere Schritte auszuführen, die Multiplikation einschließen (siehe beispielsweise nachstehende Tabelle 1, die mit den Ergebnissen des hierin offenbarten Verfahrens erörtert wird).
-
Ein anderer Nachteil des FFT-Merkmalsextraktionssystems ist das Ergebnis der Fensterung selbst. Die überlappenden Fenster und damit der durch die Fensterung bedingte Bedarf an mehr Frames führen zu einer signifikanten Rechenlast sowie zu einem höheren Stromverbrauch, um eine Merkmalsextraktion und eine Backend-ASR durchzuführen. Beispielsweise verwendet ein bekanntes System 25 ms lange Frames mit einer überlappenden Region von 15 ms zwischen zwei benachbarten Frames, so dass 31 Frames für ein 325-ms-Kontextfenster für eine Keyword-Spotting-Aufgabe erforderlich sind, anstatt nur etwa 13 Frames, falls die Frames ohne Überlappung gebildet werden könnten. Siehe Shah, M. et al., „A fixed-point neural network for keyword detection on resource constrained hardware", IEEE Workshop on Signal Processing Systems (SiPS), S. 1-6, (2015).
-
Da diese FFT-bezogenen Operationen für alle Frames in einer Sequenz von Audio-Frames durchgeführt werden, werden auch Frames mit nicht erkennbaren Signalen oder Nicht-Sprachsignalen verarbeitet. Daher sind alternative Techniken, die wenigstens die FFT-Operationen vermeiden können, um die Anzahl von Berechnungen zu reduzieren, die zur Merkmalsextraktion durchgeführt werden, erwünscht, um die Menge an Berechnungen zu reduzieren und somit den Stromverbrauch zu reduzieren, insbesondere für kleine nicht angeschlossene Vorrichtungen, die mit begrenzter Batterie betrieben werden.
-
Die Verwendung der FFT-Technik erfordert auch eine relativ große Speicherkapazität mit einem Eingangspuffer zum Halten aller gefensterten Signaldaten, einem FFT-Koeffizientenpuffer zur Verwendung für die Transformation und einem FFT-Puffer zum Halten von Zwischenwerten, die für die Mel-Frequenz-Filterung bereitgestellt werden (siehe nachstehende Tabelle 2 mit der Analyse der Ergebnisse des hierin offenbarten Verfahrens). Hier ist neben der Anzahl der erforderlichen Speichertransaktionen, die zur Rechenlast wie oben erwähnt beitragen, die übermäßig große erforderliche Speicherkapazität selbst das Problem.
-
Die Rechenlast und der große Speicher, die zur Unterstützung der FFT-Merkmalsextraktion benötigt werden, führen zu einer FFT-Merkmalsextraktionstechnik, die nicht skalierbar ist (oder genauer gesagt ineffizient skaliert), wenn jeder bereitgestellte Mel-Frequenz-Filter hinzugefügt wird. Dies ist darauf zurückzuführen, dass im Vergleich zu Mel-Frequenz-Filterungsoperationen relativ höhere Berechnungskosten von FFT-Operationen erforderlich sind. Wenn daher für einfache Aufgaben eine kleinere Anzahl von Mel-Filtern verwendet wird, dominiert die FFT-Berechnung die Gesamtberechnungskosten der Merkmalsextraktion. Dieser Nachteil, der hierin durch die vorliegende Zeitdomänen-Merkmalsextraktion reduziert wird, wird auch mit dem Graphen 1700 (17) unten erläutert.
-
Somit weisen herkömmliche Ansätze für die Berechnung von MFCCs und MFSCs hinsichtlich der Skalierbarkeit und des Stromverbrauchs Nachteile auf, hauptsächlich aufgrund von FFT-Operationen, die mit der Komplexität der Spracherkennungsaufgabe nicht skalierbar sind und in Bezug auf Berechnungskosten teuer sind. Für einfache Aufgaben, wie beispielsweise die Detektion von Sprachaktivität und das Keyword-Spotting, werden MFCC- und MFSC-Operationen aufgrund der großen Anzahl erforderlicher FFT-Operationen in Bezug auf den Stromverbrauch des Systems signifikant.
-
Ein Versuch, die oben erwähnten Probleme zu lösen, bestand darin, ein analoges System anstelle eines digitalen Systems zu verwenden. In einem derartigen System wurde ein Analogdomänen-Merkmalsextrahierer mit Analogdomänen-Verstärkern und -Filtern als alternativer Ansatz zum Berechnen von akustischen Merkmalen vorgeschlagen, wobei FFT-Operationen eliminiert wurden. Solche analogen Schaltungskonfigurationen stellen jedoch Designherausforderungen dar, da analoge Schaltungen gegenüber Prozessschwankungen der CMOS-Technologie, Spannungsschwankungen und Temperaturschwankungen anfälliger sind. Es ist auch bekannt, dass digitale Schaltungen viel einfacher von einem CMOS-Technologieprozess in einen anderen CMOS-Technologieprozess portiert werden können. Siehe Badami, K. et al., „Context-Aware Hierarchical Information-Sensing in α 6µW 90nm CMOS Voice Activity Detector", IEEE International Solid State Circuits Conf. (ISSCC) Dig. Tech. Papers, S. 430-431 (2015).
-
Ein anderer Versuch, die oben erwähnten Probleme zu lösen, eliminiert die Verwendung der FFT durch Verwenden eines zeitkontinuierlichen Delta-Modulators, um eine ADC durchzuführen und Token bereitzustellen, die anzeigen, wenn die Spannung des Eingangssignals höher als ein Hochspannungsgrenzsignal oder niedriger als ein Niederspannungsgrenzsignal geworden ist, wodurch angezeigt wird, dass sich das Eingangssignal um ein einzelnes niedrigstwertiges Bit (LSB, Least Significant Bit) geändert hat. Die Token stellen auch ein Bit bereit, um anzuzeigen, in welche Richtung sich das Eingangssignal geändert hat (nach oben oder unten). Dies wird als „Level-Crossing-Sampling“ oder „Zeitcodemodulation“ bezeichnet. Dies wird in kontinuierlicher Zeit statt in diskreter Zeit durchgeführt, um das Quantisierungsrauschen am Ende des Prozesses zu entfernen (während der Analog-DigitalWandlung (ADC, Analog to Digital Conversion)). Siehe Schell, B. et al., „A Continuous-Time ADC/DSP/DAC System With No Clock and With Activity-Dependent Power Dissipation", IEEE J. Solid-State Circuits, Vol. 43, Nr. 11, S. 2472-2481 (2008).
-
Die Schwierigkeit beim Schell-Ansatz besteht darin, dass die Verwendung von nur einem einzelnen Spannungsbereich mit einer hohen und einer niedrigen Spannungsgrenze bei der Delta-Modulation, um zu bestimmen, ob das Eingangssignal ein einzelnes LSB geändert hat, zu viele Aktivitäten zur Folge hat. Dies ist unzureichend, da ein Eingangssprachsignal, das mehrere LSBs während eines einzelnen Abtastzeitintervalls (repräsentiert durch ein einzelnes Token) geändert hat, nicht effizient verarbeitet werden kann. In Schell kann dies nur über mehrere Token durchgeführt werden, wobei die LSB-Ebene mit jeder Abtastung um eins geändert wird, wenn ein großer kontinuierlicher Anstieg oder Abfall des Eingangssprachsignals auftritt. Beispielsweise angenommen, dass ein schneller Anstieg des Eingangssignals von fünf Spannungs-LSBs in weniger als 10 ms (einem einzelnen Abtastzeitintervall) auftritt und das Signal dann flacher wird. In Schell wird jede Abtastung lediglich einen Anstieg von einem LSB im Signal anzeigen, so dass fünf Token (oder Zeitintervalle) benötigt werden, um den Anstieg von insgesamt fünf LSB im Signal anzuzeigen. In Schell erfordert jedes Token Delta-Modulationsindikatoren und FIR-Filterung sowie die Mel-Frequenz-Filterung und so weiter, um die MFSC- und/oder MFCC-Koeffizienten bereitzustellen, wodurch die Gesamtrechenlast unnötig und signifikant erhöht wird, um diesen Anstieg von fünf LSBs im Signal bereitzustellen. Die Anzeige mehrerer Pegel während einer einzelnen Ausgabe in Schell ist keine Option, da dies eine zeitdiskrete (DT, Discrete Time) Operation erfordern würde, die einen Takt verwendet, um das Testen mehrerer Pegel zu synchronisieren. Das Ergebnis ist ein einstufiges System, das unnötigerweise eine immer noch zu große Rechenlast generiert, wodurch immer noch zu viel Prozessorzeit und Batteriestrom einer Rechenvorrichtung verbraucht werden.
-
Ein anderer Versuch, die Effizienz der Merkmalsextraktion ohne FFT zu erhöhen, verwendet 1-d-Faltungs-FIR-Filter und Max-Pooling, um die Merkmalsextraktion durchzuführen. Siehe Y. Hoshen, et al., „Speech Acoustic Modeling From Raw Multichannel Waveforms" in IEEE ICASSP, S. 4624-4628 (2015). Ein derartiges System hat jedoch immer noch Schwierigkeiten mit der Genauigkeit.
-
Um die oben erwähnten Probleme zu lösen, schlägt das vorliegende Verfahren eine Zeitdomänen-Filterung und Energieberechnung von akustischen Merkmalen in der digitalen Zeitdomäne ohne FFT-Operationen vor, um Frequenzdomänen-Signalwerte für die Mel-Frequenz-Filterung bereitzustellen. Dies ermöglicht eine akustische Merkmalsextraktion bei signifikant reduzierten Rechenkosten sowie eine reduzierte Speicheranforderung als Teil einer End-to-End-Spracherkennungs-Pipeline. Das vorliegende Verfahren (als T-MFSC-Verfahren bezeichnet) ermöglicht es, einfache bis hochentwickelte Spracherkennungsaufgaben ohne die großen Rechenlasten der FFT-Technik durchzuführen.
-
Außerdem weisen die vorliegenden ereignisgesteuerten T-MFSC-Verfahren Merkmalsextraktionseinheiten (FEUs, Feature Extraction Units) auf, die eine mehrstufige Delta-Modulation in diskreter Zeit (DT, Discrete Time) im Gegensatz zu früheren Arbeiten mit einstufiger Delta-Modulation in kontinuierlicher Zeit (CT, Continuous Time) durchführen können, wie in Schell, B., et al. oben erwähnt. Die mehrstufige Eigenschaft der zeitdiskreten Delta-Modulation ermöglicht den Betrieb mit der Nyquist-Abtastrate, jedoch ohne Verwendung einer Überabtastfrequenz und ohne komplexe CT-Schaltungen. Gleichzeitig verwendet die Merkmalsextraktion ereignisgesteuerte FIR-Filter, wodurch bestimmte Berechnungen nur dann durchgeführt werden, wenn ein Ereignis auftritt. Somit verwendet das vorliegende Verfahren zeitdiskrete (DT, Discrete Time) Operationen, die asynchrone Schaltungen von Schell vermeiden, wodurch Herausforderungen und Einschränkungen bei der Konfiguration von CT-Schaltungen eliminiert oder reduziert werden. Wie auch erwähnt, stellt die DT-Operation hier besser sicher, dass die FIR-Filter unabhängig von der Größe einer Eingangsänderung nicht übermäßig ausgelöst werden.
-
Somit kann das vorliegende Verfahren zunächst und gemäß einer Form FFT-Operationen eliminieren, die Signalfrequenzen zur Mel-Frequenz-Filterung bereitstellen, indem „Ereignisse“ direkt aus eingehenden Sprachdaten extrahiert und direkt in ereignisgesteuerten FIR-Filtern verarbeitet werden. Dies reduziert die Rechenlast signifikant, da FFT-Operationen eliminiert werden, wodurch die FFT-Operationen, einschließlich der FFT-Multiplikationsoperationen, eliminiert werden, und nicht jeder Frame (oder jedes Zeitintervall) wird FFT-verarbeitet, um Daten für die Filterung bereitzustellen, nur diejenigen Zeitintervalle mit Ereignissen werden in Berechnungen am FIR-Filter verwendet, um zu Filterausgaben beizutragen.
-
Zweitens reduziert die mehrstufige Delta-Modulation ferner die Anzahl von Zeitintervallen (oder Abtastungen) mit Ereignissen und wiederum die Anzahl von Abtastungen, die eine Mel-Frequenz-Filterung und Merkmalsextraktionskoeffizienten erfordern. Dies ist eine sehr große Reduzierung der Anzahl von Abtastungen, die im Gegensatz zum Schell-System verarbeitet werden müssen.
-
Drittens kann das vorliegende Verfahren durch eine andere Form die Multiplikationsoperation der FIR-Filter durch binäre Verschiebung und Additionen ersetzen. Daher kann das vorliegende T-MFSC-Verfahren die Berechnungskosten während der Filterung um 80 % reduzieren (wenn beispielsweise die Anzahl der Mel-Frequenz-Filter 40 ist, kann die Ereignisrate auf etwa 0,4 fallen).
-
Viertens und in noch einer weiteren Form kann das vorliegende T-MFSC-Verfahren die Fensterung und die Überlappung benachbarter Frames eliminieren. Für den aktuellen Prozess analysiert das System ein kontinuierliches Signal während der Delta-Modulation und wird beispielsweise erst nach einer Akkumulatoroperation in Frames geteilt. Wenn somit ein Frame endet, beginnt der nächste Frame, eine redundante Verarbeitung von überlappenden Regionen zu vermeiden. Beispielsweise kann das vorliegende T-MFSC-Verfahren lediglich die ursprünglichen 13 (325/25) Frames für das 325-ms-Kontextfenster für die gleiche Aufgabe unter Verwendung von 31 Frames verarbeiten, wie oben im herkömmlichen FT-Prozess erwähnt. Die geringere Anzahl von Frames, die von T-MFSC verarbeitet werden müssen (in diesem Beispiel etwa 60 % der herkömmlichen MFSC-Technik), führt zu einer starken Reduzierung der erzeugten Sprachmerkmale, wodurch die gesamte Berechnungsenergie (oder Rechenlast) nicht nur im Frontend der Sprach-Pipeline, sondern auch in der Backend-Sprachverarbeitungseinheit (z. B. neuronales Netz vom akustischen Scoring, Sprachmodellierung und so weiter) reduziert wird.
-
Um die Delta-Modulation und FIR-Filterung in der Zeitdomäne zu ermöglichen, während Koeffizienten (wie beispielsweise MFSCs und/oder MFCCs) an das ASR-Backend bereitgestellt werden, die sich auf die Frequenzdomäne beziehen, wie dies erforderlich sein kann, kann ein Akkumulator verwendet werden, der eine Energieoperation gemäß dem Parseval-Theorem durchführt, um Zwischenkoeffizientenwerte bereitzustellen, die in einer Form vorliegen, die in MFSCs konvertiert werden soll. Das Parseval-Theorem wird nachstehend erläutert. Es empfängt und akkumuliert die FIR-Filterausgabe und ermöglicht die Verwendung der Delta-Modulation und der FIR-Filterung in der Zeitdomäne, während Koeffizienten bereitgestellt werden, die sich auf die Frequenzdomäne beziehen, wie vom ASR-Backend benötigt wwerden kann. Insbesondere ist nach dem Parseval-Theorem die Summe der quadrierten Abtastungen in der Zeitdomäne gleich der Summe der quadrierten Abtastungen in der Frequenzdomäne, da Energie zwischen der Zeitdomäne und der Frequenzdomäne erhalten bleibt und Energie als Summe von quadrierten Abtastungen in einer Sequenz erhalten wird.
-
In noch einer anderen Option, die hauptsächlich den Parseval-Akkumulator nutzt, kann eine Baseline-T-MFSC-Implementierung verwendet werden, die die akustischen Signaleingaben an einen herkömmlichen FIR-Filter bereitstellt, der nicht ereignisgesteuert ist, und ohne die Delta-Modulation, welche die Eingabe an den Filter bereitstellt. In noch einer anderen Form kann die einstufige Delta-Modulation (oder Delta-Modulation mit begrenztem Spannungsbereich) von Schell mit dem hierin beschriebenen ereignisgesteuerten Filter (oder wie in Schell) durchgeführt werden, wodurch dann die Filterausgabe an den Parseval-Akkumulator bereitgestellt wird. Der Vorteil des Baseline-T-MFSC besteht darin, dass herkömmliche FIR-Filter in einer 1d-Faltung ausgeführt werden können, die vom akustischen ASR-Scoring eines neuronalen Netzes verwendet werden kann, so dass ein derartiges System keinen generischen DSP für seine Berechnungen benötigt, im Gegensatz zur FFT-basierten Merkmalsextraktion. Ein derartiges System verbessert auch die Genauigkeit der ASR-Ergebnisse im Vergleich zu herkömmlichen Id-Faltungssystemen, die oben erwähnt wurden. Weitere Details werden nachstehend bereitgestellt.
-
Durch noch eine andere Option kann das vorliegende Verfahren die hohen Qualitätsanforderungen der früheren Merkmalsextraktionssysteme durch Modifizieren der Anwendung des Parseval-Theorems etwas lockern. Insbesondere ist die Reduzierung der Qualität während der ASR-Merkmalsextraktion jetzt akzeptabel aufgrund von jetzt typischerweise robustem und genauem akustischen Scoring, Sprachmodellierung und Sprachinterpretation, die anschließend im Backend der ASR-Pipeline erfolgt und Abfälle in der Qualität während der ASR-Merkmalsextraktion kompensieren kann. Dies ermöglicht die Verwendung von Techniken, die die Rechenlast der Merkmalsextraktion signifikant reduzieren. Beispielsweise basiert das vorliegende Verfahren wenigstens teilweise auf dem Parseval-Theorem, indem die FIR-Filterausgaben akkumuliert werden, ohne die höhere Rechenlast der exakten Parseval-Gleichung (die Quadrate sind weggelassen) strikt zu verwenden, wie nachstehend erläutert.
-
Bei dieser Konfiguration reduziert das vorliegende T-MFSC-Verfahren die Speicheranforderung im Vergleich zur herkömmlichen FFT-Merkmalsextraktion um etwa mehr als 85 %, wodurch die Stromanforderungen sowie die Speicherbereichsanforderungen proportional reduziert werden.
-
Das vorliegende Verfahren und System kann andere Vorteile bieten, wie an anderer Stelle hierin erwähnt.
-
Unter Bezugnahme auf 3 ist ein beispielhafter Prozess 300 für ein computerimplementiertes Verfahren zur Zeitdomänen-Merkmalsextraktion für die automatische Spracherkennung bereitgestellt. In der veranschaulichten Implementierung kann der Prozess 300 eine oder mehrere Operationen, Funktionen oder Aktionen beinhalten, wie sie durch eine oder mehrere Operationen 302 bis 314 veranschaulicht sind, die geradzahlig nummeriert sind. Als nicht einschränkendes Beispiel kann der Prozess 300 hierin unter Bezugnahme auf beispielhafte automatische Spracherkennungsvorrichtungen oder -komponenten beschrieben werden, die hierin anhand von einer beliebigen von 1, 4-5, 7-9, 11-12, 14 und 18-20 und wo relevant beschrieben sind.
-
Der Prozess 300 kann „Empfangen eines Eingangssprachsignals“ 302 einschließen. Mit anderen Worten beinhaltet diese Operation das Empfangen eines Eingangssprachsignals von einem oder mehreren Mikrofonen, bei denen es sich um ein eigenständiges Mikrofon oder um ein Mikrofon handeln kann, das Teil vieler verschiedener Mehrzweckvorrichtungen, wie beispielsweise eines Smartphones, ist. Das Eingangssprachsignal kann zur Merkmalsextraktion ausreichend vorverarbeitet worden sein.
-
Der Prozess 300 kann auch „Durchführen einer Delta-Modulation“ 304 einschließen. Dies kann „Vergleichen eines repräsentativen Werts einer Abtastung des Eingangssprachsignals mit oberen und unteren Schwellenwerten mehrerer Schwellenwertpegel“ 306 einschließen. Insbesondere wird das Eingangssprachsignal mit dem Schwellenwertpegel in der zeitdiskreten (DT, Discrete Time) Domäne verglichen. Somit wird eine Abtastung des Signals einmal für jeden Schwellenwertpegel, der zum Vergleich des Signals, oder genauer eines repräsentativen Werts, mit Schwellenwertpegeln analysiert wird, geteilt. Die Vergleiche der gleichen Abtastung mit mehreren Schwellenwertpegeln können während der ansteigenden Flanke eines Taktimpulses auftreten (oder es könnte angegeben werden, dass die Vergleiche parallel stattfinden oder synchronisiert sind) und gemäß einer Form auf eine Abtastrate von 16 kHz festgelegt werden. Derartige synchrone Vergleiche mit mehreren Schwellenwertpegeln vermeiden andere Schwierigkeiten, die durch Weglassen des Takts auftreten, wie beispielsweise komplexe CT-Schaltungen.
-
Gemäß einer Form arbeitet diese Delta-Modulationsoperation auch mit einem kontinuierlichen Signal, das noch nicht geteilt und als separate Frames gespeichert ist. Das Abtasten des Signals kann in Intervallen von 10 ms erfolgen, dies sind jedoch noch keine festgelegten Frames, da für einzelne Zeitintervalle keine Akkumulation von Signalwerten summiert und gespeichert wird. Die Frames werden erst nach den Akkumulatoroperationen nach der Mel-Frequenz-Filterung definiert und gespeichert, wie nachstehend erläutert. Dies eliminiert auch die Fensterung der herkömmlichen FFT-Merkmalsextraktion.
-
Wie nachstehend detailliert erläutert, verwendet die Delta-Modulation auch eine Anzahl von Schwellenwertpegeln, die ausgewählt sind, um den erwarteten Gesamtbereich oder einen Teil des Gesamtbereichs der menschlichen Sprachfrequenzen abzudecken, und gemäß einer Form wird jeder Pegel durch Schwellenwerte definiert, die ein Faktor der niedrigstwertigen Bitspannung VLSB sind, wenn die Vergleiche mit Pegelschwellenwerten analog sind, oder eine digitale Impulscodemodulations(PCM, Pulse Code Modulation)-Coderepräsentation der niedrigstwertigen Bitspannung, wenn die Vergleiche digital durchgeführt werden. Dies beinhaltet das Vergleichen des Eingangssprachsignals mit Schwellenwerten mehrerer Pegel, einschließlich wenigstens zweier, die beide obere und untere Schwellenwerte aufweisen. Gemäß anderen Formen kann eine ausreichende Anzahl von Pegeln vorhanden sein, die nicht benachbarte Pegel sind, die jeweils ihre eigenen oberen und unteren Schwellenwerte aufweisen und die nicht von wenigstens einem der anderen Pegel gemeinsam genutzt werden (oder mit anderen Worten wenigstens drei aufeinanderfolgende Pegel, die alle obere und untere Schwellenwerte aufweisen). Gemäß noch einer anderen Form kann es viel mehr Pegel geben. Gemäß einer Form werden die analogen Schwellenwertwerte als 2k x VLSB für k Pegel (oder in der Digitaldomäne nur 2k digitale Schwellenwertwerte) und sowohl für positive als auch negative Bereiche der Pegel festgelegt. Die Details werden nachstehend erläutert.
-
Gemäß einem Ansatz wird das Eingangssprachsignal nicht direkt mit den Pegelschwellenwertwerten verglichen. Stattdessen wird eine Differenz des Eingangssprachsignals von einem Akkumulationswert (acc oder acc[n], wobei n eine Zeit oder Abtastung ist) gebildet, und acc ist eine akkumulierte Summe von Abtastparametertermen mit einem Abtastparameterterm für jede Abtastung des bisher analysierten Signals. Der Abtastparameterterm wird gebildet, indem einer oder mehrere der durch die Delta-Modulation generierten Indikatoren faktorisiert werden. Beispielsweise faktorisieren jeder oder einzelne Abtastparameterterme einen Gültigheitsindikator, der anzeigt, wenn eine Änderung oder ein Ereignis entlang des Eingangssprachsignals aufgetreten ist. Eine derartige Änderung bezieht sich auf eine Änderung in wenigstens einem Schwellenwertpegel unter den mehreren Pegeln des Delta-Modulators. Der Abtastparameterterm faktorisiert auch einen Richtungsindikator (auch als UP/DN-Indikator bezeichnet), der anzeigt, ob der Signalwert (Spannungs- oder Digitalcodewert) im Vergleich zu einer vorherigen Abtastung (oder einem repräsentativen Wert) gestiegen oder gesunken ist,und einen Verschiebungsindikator, der die Größe der Änderung repräsentiert und die Anzahl von Pegeln anzeigt, die sich im Eingangssprachsignal von einer Abtastung zur nächsten Abtastung geändert haben. Dies kann mehrere Pegel einschließen. Für jeden Schwellenwertpegel, der analysiert wird, wird sowohl eine positive als auch eine negative Differenz zwischen dem Eingangssprachsignal und den Akkumulationswerten bestimmt, um den gesamten positiven und negativen Bereich von potenziellen Frequenzen eines Signals zu repräsentieren. Der acc im analogen System wird durch einen Digital-Analog-Wandler (DAC, Digital-to-Analog Converter) geleitet, wodurch ein dac(t)-Analogwert gebildet wird, um eine Differenz vom Eingangssprachsignal x(t) zu bilden, so dass die Differenz zwischen dem Eingangssprachsignal und dem Akkumulationswert (x(t) - dac(t) und dac(t) - x(t), allgemein als der repräsentative Wert bezeichnet) mit den Schwellenwerten (oder Referenzspannungen) in analoger Form verglichen wird. Das Ergebnis der Vergleiche für das analoge Eingangssignal wirkt auch als Analog-Digital-Wandler (ADC, Analog-to-Digital Converter), indem ein Binärwert bereitgestellt wird, der anzeigt, ob der Schwellenwert oder der repräsentative Wert größer war, wie nachstehend erläutert. Der acc wird direkt zur Differenzbildung im digitalen Delta-Modulator verwendet, um die Differenzen (oder repräsentativen Werte) mit den Schwellenwerten zu vergleichen.
-
Der Prozess 300 kann „Bereitstellen wenigstens eines Gültigkeitsindikators und eines Verschiebungsindikators als Ausgabe der Delta-Modulation“ 308 einschließen. Zu diesem Zweck kann der Prozess 300 auch „wobei der Gültigkeitsindikator eine Änderung wenigstens eines Schwellenwertpegels entlang des Eingangssprachsignals von einem vorherigen repräsentativen Wert zur nächsten Abtastung anzeigt“ 310 einschließen. Dies bezieht sich auf das Bestimmen der Änderung zwischen aufeinanderfolgenden Abtastungen des Eingangssprachsignals und kann durch die Steuerlogik des Delta-Modulators durchgeführt werden. Dies kann das Generieren eines Gültigkeitsindikators einer 1, wenn eine Änderung auftritt, und einer 0, wenn keine Änderung auftritt, beinhalten.
-
Der Prozess 300 kann auch „wobei der Verschiebungsindikator ein einzelner Wert ist, der den Gesamtbetrag der Änderung der Schwellenwertpegel anzeigt, einschließlich einer Änderung mehrerer Pegel, die mit dem Gültigkeitsindikator assoziiert sind, und vom vorherigen repräsentativen Wert zur nächsten Abtastung“ 312 einschließen. Hier bezieht sich ein einzelner Wert auf einen einzelnen Begriff oder ein einzelnes Wort und nicht notwendigerweise auf eine einzelne Ziffer. Dies steht im Gegensatz zum Schell-System, das nur eine Änderung in einem LSB zwischen benachbarten Abtastungen anzeigen kann. Eine beispielhafte Gleichung zum Berechnen des Verschiebungsindikators (oder Verschiebungswerts oder Verschiebungsindikatorwerts) wird nachstehend als Gleichung (4) bereitgestellt. Gemäß einer Form beinhaltet das Berechnen des Verschiebungsindikatorwerts das Teilen der Differenz (oder des repräsentativen Werts) durch VLSB.
-
Der Prozess 300 kann auch „Verwenden der Gültigkeits- und Verschiebungsindikatoren zum Bilden von auf die Mel-Frequenz bezogenen Koeffizienten, die zum Erkennen von Sprache im Eingangssprachsignal verwendet werden sollen“ 314 einschließen. Dies bezieht sich auf den Empfang der Indikatoren zur Verwendung in ereignisgesteuerten Mel-Frequenz-Filtern mit endlicher Impulsantwort (FIR, Finite Impulse Response). Insbesondere wird eine Anzahl von Mel-Frequenz-FIR-Filtern verwendet, wobei jeder Filter eine Dreiecksfunktion aufweist, die einen bestimmten Bereich von Mel-Skala-Frequenzen abdeckt und sich vom Frequenzbereich der anderen Mel-Frequenz-FIR-Filter unterscheidet, obwohl sich die Bereiche überlappen können. Eine typische Technik ist, 40 Mel-Frequenz-FIR-Filter zu verwenden, gemäß einem anderen Beispiel werden nur 13 Mel-Frequenz-Filter verwendet, aber es gibt viele andere Beispiele. Jeder Mel-Frequenz-FIR-Filter kann ein Array von Verzweigungen (oder Abgriffen) aufweisen, wobei jede Verzweigung einen anderen Mel-Frequenz-Koeffizienten anwendet. Die Indikatoren breiten sich von Verzweigung zu Verzweigung aus, und der Gültigkeitsindikator steuert, welche Verzweigungen einen modifizierten Mel-Frequenz-Koeffizientenwert zu den Addierern der Filter beitragen. Insbesondere weist jede Verzweigung eines Mel-Frequenz-Filters eine Logik zum Gewichten eines anderen Mel-Frequenz-Koeffizienten auf, der dann mit allen anderen gewichteten Koeffizienten summiert wird, um einen FIR-Ausgabezwischenwert für diesen Filter und über eine Anzahl von Abtastungen (bis zur Anzahl von Abgriffen oder Verzweigungen) zu bilden. Die einzelnen Verzweigungen können den Richtungsindikator (UP/DN-Indikator) verwenden, um zu bestimmen, ob ein positiver oder negativer Mel-Frequenz-Koeffizient angewendet werden soll, und dann wird der Verschiebungsindikator verwendet, um den Mel-Frequenz-Koeffizienten binär-links zu verschieben, um ein größeres Gewicht mit einem größeren Verschiebungsindikator zu haben, um einen proportional höheren Signalwert auf dieser Abtastung des Eingangssprachsignals anzuzeigen. Wenn der Gültigkeitsindikator an einer Verzweigung anzeigt, dass eine Änderung des Signalwerts bei dieser Abtastung aufgetreten ist, wird der modifizierte oder gewichtete Mel-Frequenz-Koeffizient zur Summierung mit den anderen gewichteten Mel-Frequenz-Koeffizienten von den anderen Verzweigungen desselben Mel-Frequenz-Filters bereitgestellt. Andernfalls wird für die Summierungsoperation Null weitergegeben, wenn keine Änderung durch den Gültigkeitsindikator angezeigt wird, wodurch effektiv ein ereignisgesteuerter FIR-Filter gebildet wird, da nur diejenigen Abtastungen mit einem Ereignis zur Ausgabe des Filters beitragen. Diese Logik verwendet auch die Linksverschiebung, um eine Multiplikation zu vermeiden, um die FIR-Ausgabezwischensummen zu bestimmen.
-
Die Summen der modifizierten Mel-Frequenz-Koeffizienten werden von jedem Mel-Frequenz-FIR-Filter bereitgestellt. Die Summen werden für jeden FIR-Filter und für eine bestimmte Anzahl von Abtastungen oder für ein bestimmtes Intervall separat akkumuliert, um einen Frame zu bilden, der durch die Akkumulation repräsentiert wird. Ein 10-ms-Frame kann bei 16 kHz gebildet werden, der als ein Beispiel 160 Abtastungen pro Frame aufweist. Die Basis für die Verwendung der Akkumulation zur Repräsentation eines Frames ist das Parseval-Theorem, wie oben erläutert. Wie auch oben erwähnt, obgleich die Verwendung des Parseval-Theorems die mehrstufige Delta-Modulation und ereignisgesteuerte FIR-Filterung in der Zeitdomäne ermöglicht, versteht es sich, dass andere Konfigurationen mit der Parseval-basierten Akkumulation verwendet werden können, wie beispielsweise ein Baseline-Ansatz, bei dem Eingangssignale nicht-ereignisgesteuerten Mel-Frequenz-FIR-Filtern bereitgestellt werden, oder ein noch anderer Ansatz, bei dem eine einstufige Delta-Modulation und ein ereignisgesteuerter FIR-Filter mit dem Parseval-Akkumulator verwendet werden kann. Als noch eine andere Option kann, um die Rechenlast und damit den Stromverbrauch der Rechenvorrichtung zu reduzieren, die Akkumulation ohne Quadrierung verwendet werden und wird als ausreichend befunden, da die Backend-ASR-Prozesse Ungenauigkeiten während der Merkmalsextraktion hier kompensieren können. Der Logarithmus der Akkumulation generiert einen Mel-Frequenz-Spektralkoeffizienten (MFSC, Mel-Frequency Spectrum Coefficient). Wenn gewünscht, kann eine diskrete Cosinustransformation (DCT) auf den MFSC angewendet werden, um einen Mel-Frequenz-Cepstrum-Koeffizienten (MFCC, Mel-Frequency Cepstrum Coefficient) zu generieren.
-
Danach werden die MFSCs oder MFCCs an eine akustische Scoring-Einheit an einem ASR-Backend bereitgestellt, um akustische Scores zu bilden, die an einen Decoder (oder WFST) bereitgestellt werden, der hypothetische Äußerungen an ein Sprachmodell bereitstellt, um eine endgültige Worterkennung auszugeben, auf die reagiert werden kann, egal ob die erkannten Wörter hörbar ausgesendet werden, die erkannten Wörter angezeigt werden oder eine andere automatische Aktion durchgeführt wird, abhängig davon, welche Wörter erkannt wurden, wie oben beschrieben.
-
Unter Bezugnahme auf 4, um detaillierter zu sein, kann eine beispielhafte T-MFSC-Merkmalsextraktionseinheit 400 eine End-to-End-Spracherkennungs-Pipeline aufweisen. Dies kann einen mehrstufigen Delta-Modulations-ADC 402 einschließen, der das Eingangssprachsignal x(t) empfängt, das ein kontinuierliches analoges Signal ist. Das Signal kann mit 16 kHz abgetastet werden. Der Delta-Modulator kann die Vergleiche mit mehreren Schwellenwertpegeln durchführen, wie hierin erörtert, um einen Richtungsindikator (UP/DN-Indikator), Gültigkeitsindikator und Verschiebungsindikator zu generieren und diese Indikatoren an eine Mel-Frequenz-FIR-Filtereinheit 404 bereitzustellen, die mehrere ereignisgesteuerte FIR-Filter 406 von 1 bis F Filter aufweist, wobei jeder Filter für einen anderen Bereich von Mel-Skala-Frequenzen bereitgestellt wird, wie nachstehend beschrieben. Gemäß einer beispielhaften Form steuert die Merkmalsextraktionseinheit die Operationen unter Verwendung eines Takts und gemäß einem Beispiel mit 16 kHz.
-
Die FIR-Filtereinheit 404 weist FIR-Filter mit jeweils einem Array von Verzweigungen (oder Abgriffen) mit einem Mel-Frequenz-Koeffizienten für jede Verzweigung auf, wie oben beschrieben, und wobei der UP/DN-Indikator, der Gültigkeitsindikator und der Verschiebungsindikator von Verzweigung zu Verzweigung ausgebreitet werden, um den Mel-Frequenz-Koeffizienten auf der Verzweigung zu modifizieren (oder zu verschieben oder zu gewichten). Der modifizierte Koeffizient (oder Null, wenn keine Änderung vorliegt) mit anderen modifizierten Koeffizienten oder Nullen von anderen Abtastungen, die innerhalb der Verzweigungen auf demselben Mel-Frequenz-Filter analysiert werden, werden zur Summierung weitergeleitet. Diese Summen von jedem oder einzelnen FIR-Filtern werden dann an einen Akkumulator 410 bereitgestellt.
-
Der Akkumulator 410 verwendet eine Energieoperation für jeden Filter basierend auf dem Parseval-Theorem, um die Energie der Filterausgaben in einer Zeitdomäne ohne Verwendung von FFT zu erhalten. Gemäß einer Form beinhaltet das Theorem das Berechnen der Energie von Filterausgaben durch Akkumulieren eines Quadrats von Filterausgaben (Σ|x[i]|2), und dies wird für jeden Filter durchgeführt. Gemäß anderen Optionen wird die Akkumulation stattdessen mittels der direkten Werte Σ|x[i]| ohne Quadrierung durchgeführt, um Multiplikationsoperationen zu vermeiden. Dies hat sich zum Zwecke der Merkmalsextraktion als ausreichend genau erwiesen. Die Akkumulation wird für jeden FIR-Filter separat durchgeführt und addiert FIR-Filterausgaben für eine bestimmte Anzahl von Summen und wiederum eine bestimmte Anzahl von Abtastungen, basierend auf einem Takt (beispielsweise 16 kHz) und der Länge eines Frames, wie beispielsweise 10 oder 25 ms. Gemäß einer Form kann ein 10-ms-Frame durch die Akkumulation von FIR-Filterausgaben von 160 Abtastungen gebildet werden. Die Akkumulationen oder Frames können dann an eine Log-Einheit 412 bereitgestellt werden, um MFSCs zu generieren, und dann optional auf die DCT angewendet werden, um MFCCs zu bilden, von denen jede oder beide an ein ASR-Backend zur weiteren ASR-Verarbeitung bereitgestellt werden können, und wie nachstehend erwähnt und beschrieben.
-
Unter Bezugnahme auf 5 ist eine beispielhafte T-MFSC-Merkmalsextraktionseinheit 500 der Merkmalsextraktionseinheit 400 ähnlich, mit der Ausnahme, dass hier das analoge Eingangssprachsignal x(t) zuerst an einen ADC 501 bereitgestellt wird, der das Eingangssprachsignal in ein digitales Signal (oder Daten) d[n] konvertiert. Das digitale Signal d[n] wird dann an einen mehrstufigen digitalen Delta-Modulator 502 bereitgestellt. Der digitale Delta-Modulator 502 weist digitale Schwellenwert- oder Codepegel zum Vergleichen mit digitalen repräsentativen Werten (der Differenz zwischen dem digitalen Wert d[n] des Eingangssignals und dem Akkumulationswert acc[n], wie hierin beschrieben) auf. Der Rest der Merkmalsextraktionseinheit 500 weist ähnliche oder die gleichen Komponenten wie die Merkmalsextraktionseinheit 400 auf.
-
Unter Bezugnahme auf 9 ist eine beispielhafte Baseline-T-MFSC-Merkmalsextraktionseinheit 900 eine andere Option, verwendet jedoch nicht die mehrstufige Delta-Modulation. Stattdessen kann ein analoges akustisches Signal von einem ADC 901 bereitgestellt werden, egal ob ein Teil eines digitalen Mikrofons, ein Teil der Merkmalsextraktionseinheit 901 oder getrennt von beiden, und um ein digitales Signal d[n] an einen oder mehrere nicht-ereignisgesteuerte FIR-Mel-Frequenz-Filter 906 einer Mel-Frequenz-FIR-Filtereinheit 904 bereitzustellen. Die FIR-Filtereinheit 904 kann bekannte einfache FIR-Strukturen betreiben, die ein digitales Signal verwenden und Abtastungen des Signals in einer zeitdiskreten Weise verwenden. In diesem Fall wird der Parseval-Akkumulator 910, ähnlich wie diejenigen für die Merkmalsextraktionseinheiten 400 und 500, weiterhin zum Akkumulieren von Zeitdomänen-Koeffizientensummen verwendet, die von Filtern ausgegeben werden. Der Akkumulator 910 kann dann diese Ausgaben in Frames von frequenzdomänenbezogenen Zwischenkoeffizientenwerten konvertieren, die von einer Log-Einheit 912 verwendet werden können, um MFSCs zu bilden, wie hierin beschrieben. Der Vorteil der Baseline-T-MFSC-Merkmalsextraktionseinheit 900 ist, dass sie einen oder mehrere neuronale Netzbeschleuniger (-prozessoren) zur Berechnung wiederverwenden kann, wodurch die Die-Fläche für integrierte Schaltungen (IC, Integrated Circuit) und Herstellungskosten im Vergleich zu einem generischen DSP für die MFSC-Verarbeitung eingespart werden, was zu einer Reduzierung des Energie- und Stromverbrauchs führen könnte. Insbesondere könnten Festfunktionsprozessoren für eine FFTbasierte MFSC-Operation oder die beschriebene Baseline-T-MFSC-Merkmalsextraktionseinheit 900 verwendet werden. Jede Art von Festfunktionsprozessoren erfordert jedoch zusätzliche Herstellungskosten im Vergleich zu generischen DSPs für die MFSC-Berechnung, so dass herkömmlicherweise ein generischer DSP für die MFSC-Merkmalsextraktion verwendet wird. Der generische DSP ist jedoch auch für viele allgemeine Digitalsignalverarbeitungsaufgaben konfiguriert, was zu einem höheren Stromverbrauch zum Verarbeiten einer Aufgabe im Vergleich zu einem Festfunktionsprozessor führt. In ähnlicher Weise kann, um Kosten zu vermeiden, die für das Design des Baseline-T-MFSC-Festfunktionsprozessors aufgewendet würden, der Baseline-T-MFSC stattdessen durch neuronale Netzprozessoren ausgeführt werden (anstatt durch einen generischen DSP, der auch allgemeine DSP-Aufgaben durchführt). Der Baseline-T-MFSC ist äquivalent zu einer 1-d-Faltungsoperation in neuronalen Netzprozessoren, und neuronale Netzprozessoren sind energieeffizienter, da sie nur für begrenzte Operationen von neuronalen Netzen konfiguriert sind. Daher kann das Ausführen des Baseline-T-MFSC zur Merkmalsextraktion in einem neuronalen Netzbeschleuniger die Die-Fläche für integrierte Schaltungen (IC, Integrated Circuit) und den Herstellungsaufwand und/oder Herstellungskosten einsparen, die andernfalls von einem generischen DSP für die MFSC-Verarbeitung benötigt würden, wodurch der Energie- und Stromverbrauch reduziert werden.
-
Gemäß noch einer anderen Option könnte eine einstufige Delta-Modulation, die als T-MFSC-Baseline-Merkmalsextraktion mit CT-ADC bezeichnet wird, durchgeführt werden, die einer ereignisgesteuerten Mel-Frequenz-Filtereinheit Änderungs- und UP/DN-Indikatoren bereitstellt, aber dies stellt auch Filterausgaben an einen Parseval-Akkumulator bereit. Es wurden viele Variationen in Betracht gezogen.
-
Unter Bezugnahme auf 6A-6B wird nun ein beispielhafter computerimplementierter Prozess 600 zur Merkmalsextraktion für die automatische Spracherkennung bereitgestellt. In der veranschaulichten Implementierung kann der Prozess 600 eine oder mehrere Operationen, Funktionen oder Aktionen beinhalten, wie sie durch eine oder mehrere Operationen 602 bis 644 veranschaulicht sind, die geradzahlig nummeriert sind. Als nicht einschränkendes Beispiel kann der Prozess 600 hierin unter Bezugnahme auf beispielhafte Spracherkennungsvorrichtungen oder -komponenten beschrieben werden, die hierin anhand von einer beliebigen von 1, 4-5, 7-9, 11-12, 14 und 18-20 und wo relevant beschrieben sind.
-
Der Prozess 600 kann „Empfangen eines Eingangssprachsignals“ 602 einschließen, und an diesem Punkt beinhaltet dies das Empfangen eines analogen Eingangssprachsignals, wie oben beschrieben, und das durch einen separaten ADC (oder ADC an einem digitalen Mikrofon) in ein digitales Signal konvertiert werden kann oder durch die Delta-Modulationseinheit selbst konvertiert werden kann, wie nachstehend erläutert. Außerdem kann diese Operation das Empfangen eines kontinuierlichen Signals einschließen, das noch nicht in Frames geteilt ist, aber in Intervallen abgetastet wird, um eine diskrete Zeitdomäne zu bilden, und indem gemäß einem Beispiel ein Takt mit einer Abtastrate von 16 kHz verwendet wird.
-
Der Prozess 600 kann dann „Vorverarbeiten eines Eingangssprachsignals“ 604 einschließen, und ob als Teil der Merkmalsextraktionseinheit oder als separate Vorverarbeitungseinheit vorgeschaltet von der Merkmalsextraktionseinheit in einer ASR-Pipeline betrachtet, kann die Vorverarbeitung eine beliebige Operation umfassen, die das Signal in eine für die Merkmalsextraktion ausreichende Form bringt. Die Vorverarbeitung kann Rauschunterdrückung, Preemphasis-Filterung zum Abflachen des Signals, Sprachaktivierungsdetektion (VAD, Voice Activation Detection) zum Identifizieren der Endpunkte von Äußerungen sowie lineare Vorhersage, Additive wie Energiemaßnahmen und andere Verarbeitungsoperationen, wie beispielsweise Gewichtsfunktionen, Merkmalsvektorstapelung, Transformationen, Dimensionsreduzierung und Normalisierung, einschließen. Die Vorverarbeitung kann vor oder nach dem ADC oder beiden erfolgen, wenn ein separater ADC bereitgestellt wird. Einige dieser Operationen könnten auch an anderen Stellen entlang der ASR-Pipeline durchgeführt werden.
-
Der Prozess 600 kann optional „Durchführen von ADC“ 606 einschließen. Bei dieser Option wird ADC von einer separaten ADC-Einheit (einschließlich einer ADC-Einheit an einem digitalen Mikrofon), wie beispielsweise dem ADC 501 (5), durchgeführt, um analoge Signalwerte der Abtastungen in digitale Binärcodes oder -werte oder genauer PCM-Codes zu konvertieren. Wenn ADC verwendet wird, wird dann das digitale Signal in Form von PCM-Codes an eine mehrstufige digitale Delta-Modulationseinheit bereitgestellt. Andernfalls wird die separate ADC weggelassen, und eine mehrstufige Delta-Modulations-ADC-Einheit führt die ADC selbst durch.
-
Unter Bezugnahme auf 7 kann der Prozess 600 „Durchführen von Delta-Modulation“ 608 einschließen. Diese Operation kann durch digitale oder nicht-digitale Delta-Modulatoren durchgeführt werden. Eine beispielhafte mehrstufige Delta-Modulations-ADC-Einheit 700, ähnlich der Delta-Modulationseinheit 402 (4), empfängt das Eingangssprachsignal in analoger Form und führt die ADC selbst durch, indem digitale Indikatoren bereitgestellt werden, die die Änderungen und Größen der Spannungen im Eingangssprachsignal repräsentieren. Mit anderen Worten konvertiert der Delta-Modulator (Modulationseinheit) das analoge Signal in einen ereignisgesteuerten Code für eine ereignisgesteuerte FIR-Filtereinheit.
-
Im Einzelnen weist die mehrstufige Delta-Modulations-ADC-Einheit 700 einen Takt 702 auf, der das Timing der Operationen wenigstens an der Delta-Modulationseinheit 700 steuert, aber könnte der Takttreiber für andere Komponenten der Merkmalsextraktionseinheit sein, von der die Delta-Modulationseinheit 700 ein Teil ist, wie beispielsweise bei der Merkmalsextraktionseinheit 400. Die Delta-Modulations-ADC-Einheit 700 kann auch einen Satz von Spannungskomparatoren 704 mit Komparatoren 704a bis 704-k-ter, eine Steuerlogik 706, einen Akkumulator 708 zum Akkumulieren von Parametertermen, einen Digital-Analog-Wandler (DAC, Digital-to-Analog Converter) 710 und Addierer 712 und 714 aufweisen.
-
Während des Betriebs empfängt die Delta-Modulationseinheit 700 Abtastungen x(t) eines kontinuierlichen analogen Eingangssprachsignals, und der Prozess 600 schließt „Bestimmen der positiven und negativen Differenzen zwischen einem repräsentativen Wert des Eingangssprachsignals und einer Akkumulation von Abtastparametertermen“ 610 ein. Insbesondere wird das analoge akustische Eingangssignal einmal geteilt, und bei einer der Teilungen wird das Vorzeichen geändert, um sowohl einen positiven als auch einen negativen Wert bereitzustellen. Es werden dann Differenzen der Abtastungen an den Addierern 712 und 714 und von einem analogen Akkumulationswert gebildet (dac(t), der von einem digitalen Akkumulationswert acc[n] von Parametertermen mit einem Parameterterm pro Abtastung konvertiert ist). Somit führt der Addierer 714 (x(t) + -dac(t)) durch, während der Addierer 712 (dac(t) + -x(t)) durchführt, um sowohl positive als auch negative Differenzen bereitzustellen, und die Differenzen werden jeweils als repräsentativer Wert des Eingangssprachsignals für die Vergleiche betrachtet und repräsentieren ungefähr die Änderung des Eingangssignals von Abtastung zu Abtastung.
-
Der von der Akkumulatoreinheit
708 berechnete Akkumulationswert acc[n] faktorisiert einen Gültigkeitsindikator, einen Richtungsindikator und einen Verschiebungsindikator, wobei der Akkumulationswert acc[n] gebildet wird durch:
wonei Valid, UP/DN und Shift Indikatoren sind, die von der Steuerlogik
706 der Delta-Modulationseinheit
700 generiert werden. Valid ist ein Indikator, der anzeigt, wenn eine Änderung des Signalwerts (Spannung oder digitaler Codewert) des Eingangssprachsignals von einer Abtastung zu einer nächsten Abtastung (oder aktuellen Abtastung n) aufgetreten ist und die wenigstens einen Schwellenwertpegel (oder einen Referenzspannungspegel oder hier eine V
LSB) geändert hat. UP/DN ist ein Richtungsindikator, der anzeigt, ob der Signalwert von einer vorherigen Abtastung (oder einem vorherigen repräsentativen Wert) zu einer nächsten Abtastung des Eingangssprachsignals angestiegen oder gefallen ist. Shift ist ein Verschiebungsindikator, der die Größe der Änderung anzeigt, die mit dem Gültigkeitsindikator assoziiert ist, und ist eine Zählung der Anzahl von Schwellenwertpegeln, die das Eingangssprachsignal von der vorherigen Abtastung (oder dem vorherigen repräsentativen Wert) zur nachfolgenden nächsten Abtastung geändert hat. N ist die Anzahl der Abtastungen
0 bis n - 1 des bisher analysierten Signals. Andere Details zum Berechnen der Indikatoren werden nachstehend mit der Erörterung der Ausgabe der Steuerlogik
706 bereitgestellt.
-
Um auf die Vorbereitung der Vergleiche zurückzukommen, wird, sobald die positiven und negativen repräsentativen Werte der Abtastung des Eingangssprachsignals festgelegt sind, jeder repräsentative Wert erneut geteilt, jedoch nun einmal für jeden von den Komparatoren 704 getesteten Schwellenwert geteilt. Für jede dieser Teilungen wird das Eingangssprachsignal von einem der Komparatoren 704a bis 704-k-ter mit einem Schwellenwert verglichen. Hierin bezieht sich der Begriff „Schwellenwertpegel“ auf einen Bereich von Werten mit einem oberen Schwellenwert und einem unteren Schwellenwert, wobei die Schwellenwerte Spannungspegel, wenn ein analoges Eingangssignal empfangen wird, und Codepegel, wenn ein digitales Eingangssignal empfangen wird, sein können. Die Werte der Teile oder Abtastungen des akustischen Eingangssignals, die verwendet werden, um einen repräsentativen Wert im Vergleich zu den Schwellenwertpegeln zu bilden, können als Signalwerte aufweisend bezeichnet werden, egal ob tatsächlich ein analoger Spannungspegel (oder -wert) oder ein digitaler Codewert.
-
Für die entsprechenden Vergleiche kann der Prozess 600 „Erhalten von Schwellenwerten für mehrere Schwellenwertpegel“ 612 einschließen. Die Schwellenwerte für den Modulator 700 sind hier jeweils eine Referenzspannung, die ein Faktor der niedrigstwertigen Bitspannung VLSB ist, die wie üblich basierend auf der Auflösung des ADC und des Endwertbereichs der Spannungen (oder des Codes) für das Signal (oder anderen bekannten Verfahren) festgelegt werden kann. Somit ist der Bereich der Schwellenwerte gemäß einem Beispiel (1 × VLSB) bis (2k-ter-1 × VLSB), und dieser Bereich wird zweimal bereitgestellt: ein Bereich für den positiven repräsentativen Wert des Eingangssprachsignals und ein anderer Bereich für den negativen repräsentativen Wert des Eingangssprachsignals. Die Schwellenwerte können auf diese binär gewichtete Weise festgelegt werden, um die Anzahl der verwendeten Schwellenwertpegel und damit die Anzahl der verarbeiteten Ereignisse im Vergleich zur CT-Nicht-Takt-Schell-Merkmalsextraktion und zur FFT-Frequenzdomänen-Merkmalsextraktion zu verringern. Gemäß einer Form werden die Schwellenwerte relativ zu einer Referenzspannung Vref festgelegt, die der Nullpunkt zwischen den beiden Bereichen ist (oder von einem Bereich von -2k-ter-1 × VLSB bis +2k-ter-1 × VLSB). Die Vref kann von Abtastung zu Abtastung variieren, abhängig von den hierin beschriebenen Indikatoren (siehe Gleichung (2) unten), und die erste Vref wird auf Null festgelegt. Da die Schwellenwerte relativ zu Vref festgelegt werden, können die Werte der Schwellenwerte auch von Abtastung zu Abtastung variieren.
-
Der Prozess 600 kann „separates Vergleichen der Eingangssprachsignaldifferenzen mit den Schwellenwerten der mehreren Schwellenwertpegel“ 614 einschließen. Dies beinhaltet das Vergleichen des repräsentativen Werts (der Differenz) mit jedem der festgelegten Schwellenwerte. Dies kann in synchronisierter Weise gemäß dem Takt durchgeführt werden, so dass Vergleiche der gleichen Eingangssprachsignalabtastung zum gleichen Zeitpunkt entlang der Taktimpulse oder am gleichen Punkt auf dem gleichen Impuls stattfinden. Dies kann als paralleles oder synchronisiertes Durchführen der Vergleiche bezeichnet werden. Wie erwähnt, kann der Takt auch auf 16 kHz festgelegt werden, um das synchronisierte Vergleichs-Timing zu steuern, jedoch auf ein Maximum, das bei oder unter der Nyquist-Abtasttheoremrate liegt, oder mit anderen Worten das Doppelte der höchsten analogen Frequenzkomponente, wodurch eine Überabtastung vermieden wird. Gemäß einer Form werden die Abtastung und wiederum die Vergleiche in Intervallen von 10 ms durchgeführt.
-
Unter Bezugnahme auf 7A kann der Prozess 600 dann „Generieren von Gültigkeitsindikator, Verschiebungsindikator und Richtungsindikator“ 616 einschließen, und gemäß einer beispielhaften Form durch die beispielhafte Steuerlogik 706 generiert. Die Steuerlogik 706 kann die Vergleichsergebnisse 720 empfangen, einschließlich einer aktuellen Vergleichsabtastung 722 und einer letzten Vergleichsabtastung 724. Jede Vergleichsabtastung kann einen Vektor oder ein Wort von 1en und 0en mit einer Ziffer von jedem Komparator aufweisen, wobei eine 1 anzeigt, dass der repräsentative Wert höher als der Schwellenwert ist, und eine 0 anzeigt, dass der repräsentative Wert niedriger als der Schwellenwert ist (oder umgekehrt), wodurch eine Verschiebung und Änderung der Pegel von Abtastung zu Abtastung sichtbar wird. Beispielsweise können eine vorherige Abtastung die Ergebnisse 00010 und eine nächste Abtastung die Ergebnisse 01000 aufweisen, die die Verschiebung von zwei Pegeln entlang des Eingangssignals nach unten zeigen. Die Vergleiche benachbarter Abtastungen können an eine Differenzeinheit 726 bereitgestellt werden, die eine Zählung bereitstellt, die die Differenz zwischen den zwei aufeinanderfolgenden Abtastungen anzeigt, und die dann an eine Gültigkeitseinheit 728, eine Verschiebungseinheit 730 und eine Richtungseinheit 732 bereitgestellt wird, die jeweils ihren entsprechenden Indikator bestimmen.
-
Gemäß einer Form bestimmt die Gültigkeitseinheit
728 den Gültigkeitsindikator als eine Zählung der Verschiebung der Ziffern in den Vergleichsergebnissen. Gemäß einer anderen Form wird der Gültigkeitsindikator relativ zur oben beschriebenen Referenzspannung V
ref berechnet. Gemäß einer Form variiert die Referenzspannung von Abtastung zu Abtastung (wie in
10 gezeigt), wodurch die Werte der Schwellenwerte variiert werden, und wird berechnet als:
und wobei V
ref bei Null startet (V
ref[0] = 0), wie oben erwähnt, und wobei V
LSB konstant bleibt. Ein Indikator valid[n] wird danach wie folgt berechnet:
-
In Bezug auf den Verschiebungsindikator berechnet die Steuerlogik
706 den Verschiebungsindikator und gemäß einem Beispiel wie folgt:
wodurch eine Approximation statt ein exakter Wert des Verschiebungsindikators bestimmt wird, da auf eine nächstgelegene niedrigere Ganzzahl gerundet wird. Wenn das Eingangssprachsignal abnimmt, reduziert sich die Verschiebung proportional (beispielsweise von +2 auf +1). Somit zeigt der Verschiebungswert gemäß einer Form den Schwellenwertpegel der aktuellen Signalabtastung relativ zu einem Null-Schwellenwertpegel von +1 bis -1 V
LSB an.
-
Die Richtungseinheit
732 legt den Richtungsindikator (oder UP/DN-Indikator) wie folgt fest:
so dass UP/DN +1 ist, wenn das Eingangssprachsignal von Abtastung zu Abtastung ansteigt, und - 1 ist, wenn das Eingangssprachsignal von Abtastung zu Abtastung abfällt. Die Steuerlogik
706 stellt dann die drei Indikatoren bereit, die durch den Takt
702 gesteuert werden, und stellt die Indikatoren an eine Mel-Frequenz-Filtereinheit mit endlicher Impulsantwort (FIR, Finite Impulse Response) bereit.
-
Unter Bezugnahme auf 10 wird ein Schwellenwertpegel- und Impulsmusterdiagramm 1000 bereitgestellt, um die Indikatoren zu demonstrieren. Ein 16-kHz-Impulsmuster 1002 weist eine Impulsflanke auf, die mit einer Abtastschwellenwert- (oder Spannungs- oder Code-) Pegelleitung ausgerichtet ist, die zu den Zeitpunkten t = Ts bis 4Ts abgetastet werden. Die resultierenden Gültigkeits-, Verschiebungs- und UP/DN-Indikatoren werden auch für jede Pegelleitung gezeigt, wobei jede Leitung Ts bis 4Ts die Vref[n] zeigt, die durch Gleichung (2) für jede Abtastspannungspegelleitung berechnet wird und die Schwellenwerte +/- 2k x VLSB relativ zur Vref[n] für jede Abtastspannungspegelleitung festgelegt werden. Ein kontinuierliches Eingangssprachsignal x(t) ist auch gezeigt und wird mit einem resultierenden Spannungs- (oder digitalen) Wert abgetastet, der angezeigt wird, wo das Eingangssprachsignal x(t) die Abtastspannungspegelleitungen kreuzt. Der Graph wird vereinfacht, indem x(t) das Eingangssprachsignal zum Vergleich mit den Schwellenwerten repräsentiert, es versteht sich jedoch, dass die Leitung x(t) tatsächlich die Leitung der Differenzen oder repräsentativen Werte gemäß Gleichung (1) und der obigen Beschreibung der Delta-Modulationseinheit 700 ist, so dass die x(t)-Signalleitung tatsächlich (x(t) - dac(t)) oder (x(t) - acc[n]) als den repräsentativen Wert auf den Abtastspannungsleitungen Ts bis 4Ts repräsentiert und der mit den Schwellenwerten verglichen wird. Diagonale Hash-Markierungen zeigen, in welchen Pegel das Eingangssprachsignal (oder der repräsentative Wert) für jede der Abtastungen Ts bis 4Ts fällt.
-
Beispielsweise testet die obige Gleichung (2), ob der repräsentative Wert größer als -1 VLSB bis 1 VLSB von der Vref ist. Der Graph 1000 zeigt bei t = Ts, dass der repräsentative Wert x(t) - Vref größer als 1 VLSB ist, so dass unter der Annahme, dass x(t) bei t = 0 zwischen 1 und 2 VLSB lag, nun ein Ereignis oder eine Änderung bei t = Ts auftritt, so dass der Gültigkeitsindikator 1 ist und x(t) nun größer als 2 x VLSB und kleiner als 4 × VLSB ist, so dass Gleichung (3) darin resultiert, dass die Verschiebung auch als 1 berechnet wird. Die Verschiebung kann auch durch Zählen der Pegel vom anfänglichen unteren oder Peak-Pegel bestimmt werden. Ebenso für Abtastung 2Ts, wo eine Änderung angezeigt wird und die Verschiebung als +2 berechnet ist.
-
Wie erwähnt, kann die Position von Vref[n] bei jeder Abtastung [n]Ts gemäß Gleichung (2) variieren. Somit ist für die Abtastung 3Ts immer noch eine Änderung vorhanden, aber die Verschiebung hat sich nicht verändert, da der x(t)-repräsentative Wert innerhalb der gleichen Anzahl von Pegeln relativ zu Vref[3] bleibt. Bei der Abtastung 4Ts tritt keine Änderung oder kein Ereignis auf, da x(t) - dac(t) kleiner als 1 VLSB ist.
-
Der Prozess 600 kann „Wiederholen der Delta-Modulation, solange ein Eingangssprachsignal empfangen wird“ 618 einschließen. Dies kann einschließen, dass der Prozess 600 „Akkumulieren von Abtastparametertermen“ 620 einschließt, wobei die Gültigkeits-, Verschiebungs- und Richtungsindikatoren an die Akkumulatoreinheit 708 bereitgestellt werden, um den Akkumulationswert acc[n] zu faktorisieren und die Akkumulation acc[n] vom repräsentativen Wert des Eingangssprachsignals zum Vergleich der Differenz der nächsten Abtastung mit Schwellenwerten zu subtrahieren, wie bereits oben beschrieben. Dies kann auch dazu führen, dass der Prozess 600 „Durchführen von DAC“ 622 einschließt, um den dac(t) durch Konvertieren von acc[n] zu bilden, um von den Eingangssprachsignalabtastungen x(t) für den nächsten Vergleich zu subtrahieren und hinzu zu addieren, wenn der Delta-Modulator auch als ADC fungiert und die Vergleiche auch in der Analogdomäne durchgeführt werden, wie oben auch beschrieben. Der Prozess kehrt dann zur Operation 610 zurück, um die nächste Eingangssprachsignalabtastung vorzubereiten, um die Vergleiche durchzuführen.
-
Unter Bezugnahme auf 8 kann eine alternative mehrstufige digitale Delta-Modulationseinheit 800 bereitgestellt werden, so dass der Prozess 600 die Operation „Durchführen von ADC“ 608 einschließt, so dass die Delta-Modulationseinheit ein digitales Signal in Form von Eingangs-PCM-Codes (d[n]) empfängt, die von einem herkömmlichen oder einem anderen ADC beispielsweise in einem digitalen Mikrofon generiert werden, und die DAC-Operation 622 wird weggelassen, so dass Akkumulationen acc[n] direkt zum digitalen Signal d[n] addiert oder von diesem subtrahiert werden, um Differenzen oder repräsentative Werte zum Vergleich mit Schwellenwerten zu bilden. Außerdem weist die digitale Delta-Modulationseinheit 800 Digitalcodekomparatoren anstelle der analogen Komparatoren 704 der Delta-Modulationseinheit 700 auf, um die Vergleiche in der digitalen Domäne durchzuführen. Somit sind die digitalen (oder Code-) Schwellenwerte einfach THMIN bis THMIN × 2k-ter-1 sowohl für den positiven als auch den negativen Vergleich, wobei THMIN der minimale Schwellenwertpegel im digitalen Code ist, der VLSB aus 7 entspricht, und die Schwellenwerte als Eingaben „A“ für den Komparator gezeigt sind und der repräsentative Wert des Eingangssprachsignals die Eingabe „B“ für den Komparator ist und jeder Komparator eine 0 bereitstellt, wenn B ≥ A ist, und andernfalls eine 1 (obwohl auch andere Konfigurationen verwendet werden könnten). Ansonsten ist der Betrieb und die Struktur der mehrstufigen digitalen Delta-Modulationseinheit 800 ähnlich wie der Betrieb und die Struktur der Delta-Modulationseinheit 700, so dass diejenigen Komponenten mit gleichen Bezugszeichen nicht erneut beschrieben werden müssen. Das Ergebnis ist das gleiche, wobei der Mel-Frequenz-FIR-Filtereinheit Richtungs- (UP/DN-), Verschiebungs- und Gültigkeitsindikatoren bereitgestellt werden.
-
Unter Bezugnahme auf 11 kann der Prozess 600 „Durchführen von Mel-Frequenz-FIR-Filterung“ 624 einschließen. Somit kann eine ereignisgesteuerte Mel-Frequenz-FIR-Filtereinheit 1100 entweder von der Delta-Modulations-ADC-Einheit 700 oder der digitalen Delta-Modulationseinheit 800 für die T-MFSC-Pipeline oder Merkmalsextraktionseinheit 400 oder 500 verwendet werden. Die FIR-Filtereinheit 1100 zeigt die Logik und den Fluss für einen Filter 1101 von mehreren Filtern, die von der Filtereinheit 1100 verwaltet werden. Gemäß einer Form kann es bis zu insgesamt F Mel-Frequenz-Filter geben, wobei ein einzelner Filter f = 1 bis F sein kann. Gemäß einem Beispiel ist F = 40 Mel-Frequenz-Filter, es kann sich jedoch auch um eine andere Anzahl von Filtern handeln, wie beispielsweise 10, 13 oder 25. Jeder Filter stellt Koeffizienten einer Mel-Skala-Dreiecksfunktion mit einem anderen Frequenzbereich der Mel-Skala bereit, der sich mit dem Frequenzbereich anderer Filter überlappt (aber nicht der gleiche ist).
-
Jeder Filter 1101 weist eine Anzahl von Mel-Frequenz-Koeffizienten hm von m = 0 bis Mtap - 1 für insgesamt M Abgriffe (oder Verzweigungen) auf, und der Filter 1101 stellt einen Abgriff und wiederum eine Verzweigung der Schaltung (oder Logik) für jeden Koeffizienten hm (sowohl in positiver als auch negativer Form) bereit, um den Mel-Frequenz-Koeffizienten unter Verwendung der Indikatoren zu modifizieren oder zu gewichten. Jeder Filter 1101 kann auch die gleiche Anzahl von Abgriffen und wiederum die gleiche Anzahl M von Koeffizienten hm aufweisen. Für dieses Beispiel weist jeder Filter 1101 einen Satz der Verzweigungen 1160-0 bis 1160-M auf. Die Filterlogik weist auch Verzögerungselemente 1102-m (einschließlich 1102-0 bis 1102-M-1) auf, die den Fluss von Indikatoren von Verzweigung zu Verzweigung basierend auf einem Ereignis (oder einer Änderung) steuern. Diese Verzögerungselemente können als Verzögerungsabgriffe bezeichnet werden. Die Details der Filterlogik sind wie folgt.
-
Unter Bezugnahme auf 12 empfängt jeder Filter 1101 die drei Indikatoren Gültigkeit, UP/DN und Verschiebung von der Delta-Modulationseinheit 700 oder 800 und bei 16 kHz, wie von einem digitalen Signalprozessor (DSP) verwaltet. Der Prozess 600 schließt dann „Ausbreiten von Verschiebungs-, Gültigkeits- und Richtungsindikatoren durch FIR-Filterverzweigungen“ 626 ein. Hier schließt diese Operation die Verwendung eines beispielhaften Verzögerungselements 1200 ein, das mit einem der Verzögerungselemente 1102-m identisch oder diesem ähnlich sein kann.
-
Obgleich ein erster Abgriff oder eine erste Verzweigung 1102-0 ohne ein Verzögerungsgatter betrieben werden kann, um einen ersten Mel-Frequenz-Koeffizienten h0 zu modifizieren oder zu gewichten, werden die Indikatoren danach durch eine Sequenz von Verzögerungselementen zu den anderen Verzweigungen ausgebreitet, um ihre Mel-Frequenz-Koeffizienten zu gewichten, und die gewichteten Mel-Frequenz-Koeffizienten jeder Verzweigung mit einem gewichteten Mel-Frequenz-Koeffizienten werden dann nach jeder Ausbreitung von Indikatoren summiert. Bevor erläutert wird, wie Mel-Frequenz-Koeffizienten in jeder Verzweigung gewichtet und summiert werden, wird das Verzögerungselement erläutert, das die Ausbreitung steuert. Insbesondere empfängt ein Verzögerungselement 1200 valid[m]-, shift[m]- und UP/DN[m]-Indikatoren, die sich an einer bestimmten Verzweigung des FIR-Filters befinden und zur Ausbreitung zu einer Verzweigung m + 1 des FIR-Filters, der einen Koeffizienten hm+1 anwendet, und die von der Delta-Modulationseinheit oder von einer vorhergehenden Verzweigung empfangen werden. Die Verzögerungselemente weisen jeweils einen CLK 1202 auf, der von einem digitalen Signalprozessor sein kann (aber von einer anderen Logik bereitgestellt werden könnte) und hier für dieses Beispiel auf 16 kHz festgelegt ist. Das Taktsignal wird an ein DFF 1206, um einen shift[m+1]-Indikatorwert bereitzustellen, ein DFF 1208, um einen valid[m+1]-Indikator bereitzustellen, und ein DFF 1210, um einen UP/DN[m+1]-Indikatorwert bereitzustellen, bereitgestellt, wobei alle drei beim Empfangen des Taktsignals an das nächste Verzögerungselement bereitgestellt werden, so dass eine Ausbreitung mit jeder am FIR-Filter empfangenen Abtastung und mit dem Takt synchronisiert auftritt.
-
Erneut zurückkehrend zum Mel-Frequenz-FIR-Filter 1100 (11), um die Logik an jedem der Verzweigungen 1160-0 bis 1160-M zu erläutern, kann der Prozess 600 „Anwenden von Mel-Frequenz-Koeffizienten an jedem Mel-Frequenz-Filter mit einem Koeffizienten an jeder Verzweigung in einem Filter“ 628 einschließen, und für jeden Mel-Frequenz-(FIR-)Filter durchgeführt. An der ersten Verzweigung 1160-0 und an den anderen Verzweigungen 1160-1 bis 1160-M, die nach jedem Verzögerungselement angeordnet sind, ist eine Logik bereitgestellt, um den Mel-Frequenz-Koeffizienten hm zu gewichten oder eine Null bereitzustellen, wenn keine Änderung vorhanden ist. Zuerst wird für die erste Verzweigung 1160-0 der UP/DN[m]-Indikator an einen Multiplexer (MUX) 1116 bereitgestellt, um als Steuerung zum Auswählen einer positiven oder negativen Version des Mel-Frequenz-Koeffizienten hm zu wirken. Die Mel-Frequenz-Koeffizienten hm werden gemäß bekannten Verfahren berechnet. Beispielsweise wurden Mel-Frequenz-Cepstrum-Koeffizienten (MFCC, Mel-Frequency Cepstrum Coefficients) und Mel-Frequenz-Spektralkoeffizienten (MFSC, Mel-Frequency Spectrum Coefficients) als akustische Merkmale für Eingaben zur Spracherkennung in einer Reihe verschiedener Techniken verwendet. Siehe jeweils Davis, S. B., et al., „Comparison of Parametric Representations for Monosyllabic Word Recognition in Continuously Spoken Sentences", IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. ASSP-28, Nr. 4, S. 357-365 (1980), und He, Q., et al., „An Adaptive Multi-Band System for Low Power Voice Command Recognition", Interspeech, S. 1888-1892 (2016); He, Q., „An Architecture for Low-Power Voice-Command Recognition Systems", Dissertation (2016); Price, M., et al., „A 6mW, 5000-Word Real-Time Speech Recognizer Using WFST Models", IEEE J. Solid-State Circuits, Vol. 50, Nr. 1, S. 102-112 (2015); Price, M., et al., „A Scalable Speech Recognizer with Deep-Neural-Network Acoustic Models and Voice-Activated Power Gating", IEEE International Solid State Circuits Conf. (ISSCC) Dig. Tech. Papers, S. 244-245 (2017); und Amodei, D., et al., „Deep Speech 2 : End-to-End Speech Recognition in English and Mandarin", Proceedings of Machine Learning Research, S. 173-182 (2016).
-
Der shift[m]-Indikatorwert wird an eine Linksverschiebungseinheit 1126 bereitgestellt, die den Binärwert des Mel-Frequenz-Koeffizienten hm um die Anzahl von Stellen nach links verschiebt, die der Wert der Verschiebung ist, um die Mel-Frequenz umso mehr zu gewichten, je größer der Verschiebungswert und je höher des Eingangssprachsignals ist. Dadurch entfällt die Notwendigkeit, eine Multiplikation für die Gewichtung durchzuführen. Falls der Verschiebungsindikator beispielsweise 2 ist, wird der Binärwert des Mel-Frequenz-Koeffizienten um zwei nach links verschoben, wodurch der Mel-Frequenz-Koeffizient effektiv mit 2s oder hier 22 multipliziert wird. Der Gültigkeitsindikator steuert einen Multiplexer 1136, der entweder den gewichteten oder modifizierten (oder verschobenen) Mel-Frequenz-Koeffizienten weiterleitet, wenn der Gültigkeitsindikator anzeigt, dass eine Änderung vorliegt (wenn der Gültigkeitsindikator beispielsweise 1 ist), oder eine 0 weiterleitet, wenn der Gültigkeitsindikator 0 ist. Der Prozess 600 kann diese Operation mit „Bereitstellen eines verschobenen Koeffizienten“ 630 einschließen. Diese logische Struktur einer Verzweigung ist für jede der anderen Verzweigungen im Filter gleich oder ähnlich. Andere Verzweigungsstrukturen werden in Betracht gezogen, wie beispielsweise, dass der Gültigkeitsindikator steuert, ob der Koeffizient überhaupt verschoben wird, wodurch weitere Rechenlast eingespart wird.
-
Der Prozess 600 kann dann „Summieren von verschobenen Koeffizienten mehrerer Verzweigungen eines Filters“ 632 einschließen. Hier weist eine FIR-Summeneinheit 1146 einen oder mehrere Addierer 1148 auf, die alle verschobenen Mel-Frequenz-Koeffizienten und Nullen zusammen für alle Verzweigungen summieren, und wenn die Indikatoren jeder akustischen Signalabtastung zum FIR-Filter addiert werden. In diesem Beispiel wird die Summierung gemäß dem Takt durchgeführt, so dass modifizierte Koeffizienten, die von den Verzweigungen gleichzeitig ausgegeben werden, zusammen addiert werden, um eine einzelne Summe zu bilden, die eine Anzahl von Eingangssprachsignalabtastungen repräsentiert, die gleich der Anzahl von Verzweigungen oder Koeffizienten m ist. Zu Beginn eines Eingangssprachsignals stellen die Verzweigungen ohne Daten möglicherweise keine Summe bereit oder stellen eine Null für die Summierung bereit.
-
Danach können die Summen in Register 1150 gelegt werden, um gesammelt zu werden und als Filterausgaben an die Akkumulationseinheit, wie beispielsweise den Akkumulator 410 oder 510 der Merkmalsextraktionseinheiten 400 bzw. 500, bereitgestellt zu werden.
-
Als Nächstes kann der Prozess 600 „Durchführen einer Energieoperation von FIR-Filterausgaben“ 634 einschließen, und gemäß einer Option kann der Prozess 600 „Akkumulieren von quadrierten Ausgaben für einzelne Filter und über eine bestimmte Anzahl von Abtastungen oder Zeitintervallen“ 636 einschließen. Gemäß anderen Optionen kann diese Operation „Akkumulieren der Größe der Filterausgaben ohne Quadrieren der Filterausgabe“ 638 einschließen. Wie oben erwähnt, ist somit die Grundlage für die Verwendung der Akkumulation zur Repräsentation eines Frames das Parseval-Theorem, bei dem die quadrierte Summe der Zeitdomänen-Energie (Σ|x[i]|2) gleich der quadrierten Summe der Frequenzdomänen-Energie ist. Die Akkumulation selbst summiert die Filterausgaben für eine bestimmte Anzahl von Abtastungen oder ein bestimmtes Gesamtzeitintervall, um eine Gesamtenergie oder einen Zwischenkoeffizienten für jeden Mel-Frequenz-Filter zu bestimmen und dadurch einen Frame von Daten zu bilden. Wie oben erwähnt, akkumuliert ein Beispiel 160 Abtastungen pro Frame bei 16 kHz. Das Ergebnis ist ein Vektor von Zwischen-Mel-Frequenz-Koeffizienten entsprechend einem Element für jeden Filter, und wobei ein Vektor für jeden Frame bereitgestellt wird.
-
Wie oben auch mit Bezug auf 9 erwähnt, kann der Parseval-Akkumulator mit anderen Optionen verwendet werden und ist nicht notwendigerweise auf die Verwendung mit der mehrstufigen Delta-Modulation und einem ereignisgesteuerten Filter beschränkt. Somit kann die Baseline-T-MFSC-Merkmalsextraktion digitale Eingangssignalabtastungen empfangen, die einer nicht-ereignisgesteuerten FIR bereitgestellt werden, und die Filterausgaben (oder Filterausgabeenergien oder -energiewerte) werden an einen Parseval-Theorem-Akkumulator, wie beispielsweise den Akkumulator 910, bereitgestellt, um frequenzdomänenbezogene Zwischenkoeffizienten bereitzustellen, um die MFSCs und/oder MFCCs zu bilden, wie oben beschrieben. Wie auch bereits erwähnt, ist eine weitere Option, eine Baseline-T-MFSC-CT-ADC-Merkmalsextraktion bereitzustellen, die eine Delta-Modulation aufweist, und optional in kontinuierlicher Zeit ohne Verwendung diskreter Abtastungen, die nur einen einzelnen Schwellenwertpegel definiert und eine Änderung und einen UP/DN-Indikator an einen ereignisgesteuerten FIR-Filter bereitstellt. Die Filterausgaben werden dann an den Parseval-Theorem-Akkumulator bereitgestellt, wie oben beschrieben.
-
Für noch eine andere Option in Bezug auf den Parseval-Akkumulator kann diese Operation auch „Akkumulieren der Größe der Filterausgaben ohne Quadrieren der Filterausgaben“ 639 einschließen, um die Multiplikation zur Berechnung des „Quadrats“ im Parseval-Theorem-Akkumulator (Σ|x[i]|2) zu eliminieren. Somit wird diese Operation gemäß einer anderen Form durchgeführt, ohne eine Multiplikation durchzuführen. Es wurde festgestellt, dass der Unterschied für die Zwecke der Merkmalsextraktion für ASR nicht signifikant ist. Somit kann das vorliegende Verfahren optional die direkte Summe Σ|x[i]| oder die Summierung der Größe der Filterausgaben verwenden, wenn der Parseval-Akkumulator verwendet wird.
-
Unter Bezugnahme auf 13A-13C zeigen die Spektrogramme 1300, 1302 und 1304 die Ergebnisse einiger der hierin beschriebenen unterschiedlichen Merkmalsextraktionstechniken. Die Spracheingabe, die zu den Spektrogrammen führt, ist das Wort „Ja“, das in einer Länge von 1 Sekunde (beispielsweise aus dem Sprachbefehlsdatensatz von Google) aufgezeichnet wird, und 40 Mel-Frequenz-Filter mit einer FIR-Filterordnung (Ntap) von 100 und einem FIR-Filtergewicht von 8b. 25 ms lange Frames und 15-ms-Frame-Strides wurden verwendet. Das Spektrogramm 1300 zeigt die Ergebnisse für die herkömmliche MFSC-Merkmalsextraktion unter Verwendung von FFT und Frequenzdomänen-Mel-Frequenz-Filterung bereits. Das Spektrogramm 1302 zeigt die Ergebnisse der Baseline-T-MFSC-Baseline-Merkmalsextraktion (9), die eine nicht-ereignisgesteuerte FIR-Filterung (unter Verwendung einer Multiplikation) und den Parseval-Akkumulator, der die quadratischen Energiewerte Σ|x[i]|2 der Filterausgabeenergie berechnet, verwendet. Das Spektrogramm 1304 zeigt die vorliegende ereignisgesteuerte T-MFSC-Merkmalsextraktion mit mehrstufigem Delta-Modulations-ADC, ereignisgesteuerter Mel-Frequenz-FIR-Filterung und auch unter Verwendung des Parseval-Theorem-Akkumulators, der die quadratischen Energiewerte berechnet. Die Delta-Modulation verwendete hier ein LSB von 24 und Schwellenwerte +/- (1, 21, 22,... 211). Eine Sichtprüfung der Spektrogramme zeigt, dass drei Merkmale in allen drei Spektrogrammen korreliert sind: Energieintensität, Filterindex und Frame-Index, wodurch gezeigt wird, dass der Parseval-Akkumulator relativ zu den FFT-Techniken ausreichend genau ist. Auch einfache vollständig verbundene neuronale Netze, die mit T-MFSC mit Σ|x[i]|2 und Σ|x[i]| trainiert wurden, zeigten eine vergleichbare Genauigkeit wie ein mit MFSC trainiertes neuronales Netz für Keyword-Spotting mit einem „Ressourcenmanagement“-Datensatz. Dies zeigt, dass die Verwendung von Σ|x[i]| anstelle von Σ|x[i]|2 eine vergleichbare Genauigkeit bei geringeren Energiekosten bietet.
-
Der Prozess
600 kann dann „Durchführen von Log-Operation zum Generieren von MFSCs“
640 einschließen, wodurch die Zwischenkoeffizienten vom Parseval-Akkumulator mittels bekannter Verfahren in MFSCs konvertiert werden, und wie folgt verallgemeinert:
wobei A jeder Akkumulations- oder Zwischen-Mel-Frequenz-Koeffizient in einem Vektor der Koeffizienten für jeden Frame ist. Das Ergebnis nach dem Anwenden der Log-Operation auf die Akkumulationen aller Filter ist ein Satz oder Vektor von Merkmalen oder MFSCs, die die Mel-Skala repräsentieren und für jeden Frame bereitgestellt werden.
-
Der Prozess 600 kann optional auch „Bereitstellen von Mel-Frequenz-Cepstrum-Koeffizienten (MFCCs)“ 642 einschließen, und dies kann das Durchführen einer diskreten Cosinustransformation (DCT) an den MFSCs zum Generieren der MFCCs einschließen.
-
Der Prozess 600 kann dann „Durchführen von Frontend-ASR zum Erkennen von Sprache“ 644 einschließen. Dies kann das Bereitstellen der Koeffizienten an eine akustische Scoring-Einheit einschließen, wobei die MFCCs oder MFSCs oder beide an eine akustische Scoring-Einheit eines ASR-Systems weitergeleitet oder ihr auf andere Weise zugänglich gemacht werden. Danach kann ein Decoder die akustischen Scores empfangen, um Phrasen- oder Worthypothesen zu bilden, die dann vom Decoder und an einen Sprachinterpreter bereitgestellt werden, um eine endgültige Worterkennung bereitzustellen, wie dies beispielsweise für das obige System 10 erläutert wurde.
-
Unter Bezugnahme auf 14 als eine andere Option können eine weitere Stromreduzierung und reduzierte Speicheranforderungen erreicht werden, indem gemeinsame genutzte Verzögerungsabgriffe, eine zeitlich gemultiplexte ALU und/oder gemeinsam genutzte Koeffizienten mit indexbasiertem Zugriff verwendet werden. Alle drei dieser Merkmale sind am Merkmalsextraktions-Mel-Frequenz-FIR-Filter 1400 gezeigt. Die Filtereinheit 1400 kann gemeinsam genutzte Verzögerungsabgriffe 1402 mit Verzögerungselementen 1402a bis 1402m aufweisen. Die Verzögerungselemente sind die gleichen wie die oben mit der Filtereinheit 1100 (11) beschriebenen und müssen hier nicht erneut beschrieben werden. In diesem Fall können die Verzögerungsabgriffe jedoch mit allen Mel-Frequenz-Filtern geteilt werden, da die vorliegende T-MFSC-Technik viele FIR-Filter parallel verwenden kann, wobei die gleichen ereignisgesteuerten Delta-Modulationsindikatoren an die Verzögerungsabgriffe mit der gleichen Struktur bereitgestellt werden, ob in Software oder Hardware oder in einer Kombination dieser Art wie die DFFs, die oben mit den Verzögerungselementen 1200 (12) bereits beschrieben wurden. Somit werden durch die gemeinsame Nutzung der Verzögerungselemente über alle oder einzelne FIR-Filter redundante Verzögerungsabgriffe eliminiert, wodurch die Rechenlast, die Speicheranforderungen und die Prozessorfläche reduziert werden.
-
Gemäß einer anderen Option kann die ALU für die Verschiebung von Koeffizienten und Akkumulation zeitlich gemultiplext werden, um von allen oder einzelnen Filtern und allen oder einzelnen Verzweigungen (Abgriffen) der Filter gemeinsam genutzt zu werden, um den Leckstrom und die physikalische ALU-Fläche zu reduzieren. Die Filtereinheit 1400 weist eine Arithmetik-Logik-Einheit (ALU, Arithmetic Logic Unit) 1408 auf, die hier die FIR-Filterverzweigungen 1404 betreibt,einschließlich eines Multiplexers 1420, der die Mel-Frequenz-Koeffizienten hm bereitstellt, einer Vorzeichenänderungseinheit 1422, um negative Koeffizienten bereitzustellen, eines Multiplexers 1424, der durch den UP/DN[m]-Indikator gesteuert wird, einer Linksverschiebungseinheit 1426, um den Koeffizienten abhängig vom shift[m]-Indikator zu verschieben, eines valid[m]-Multiplexers 1428, um den gewichteten Koeffizienten weiterzuleiten, wenn ein Ereignis auftritt, oder andernfalls Null, die alle wie mit den ähnlichen Komponenten der Filtereinheit 1100 erläutert sind. Die ALU 1408 kann auch einen Addierer 1430 und einen Multiplexer 1432 aufweisen, um Summen der Verzweigungen und verschiedener Filter bereitzustellen. Eine Bank von Multiplexern 1434 mit Multiplexern 1434a bis 1434c wird bereitgestellt, um die Anzeigeeingaben von den Verzögerungselementen zur ALU 1408 zu steuern. Ein Controller 1412 steuert die Multiplexer, um die korrekten Indikatorwerte von der korrekten Filterauswahl (i = 1 bis F) und der korrekten Verzweigung (0 bis Mtap-1) des Filters für jeden Indikator (Gültigkeit, Verschiebung und UP/DN) weiterzuleiten.
-
Die zeitlich gemultiplexte ALU kann den Leckstromverbrauch und die Fläche von ALUs um die aktuelle
reduzieren, wobei M
tap,i = Anzahl von Verzögerungsabgriffen im i-ten FIR-Filter und F
filter gleich der Anzahl von Gesamt-FIR-Filtern ist, auf Kosten des einfachen digitalen Controllers
1412, der mit einer schnelleren Frequenz als
läuft, wobei F
s = ADC-Abtastfrequenz oder 1/(Einheitsverzögerung). Beispielsweise kann die zeitlich gemultiplexte ALU für 40 Mel-Frequenz-FIR-Filter mit
100 Verzögerungsabgriffen für jeden Filter den Leckstrom und die Fläche von ALUs um die aktuelle Fläche x (1/4000) reduzieren, und ein digitaler Controller kann mit einer Frequenz von Fs x 4000 laufen.
-
Die Merkmalsextraktions-FIR-Filtereinheit 1400 kann auch erlauben, Mel-Frequenz-Koeffizienten unter FIR-Filtern gemeinsam zu nutzen, was auch die Speicheranforderung reduziert, wodurch der Leckstrom weiter reduziert wird. Für dieses Merkmal stellt eine gemeinsam genutzte Koeffizienteneinheit 1416 die Mel-Frequenz-Koeffizienten an die ALU 1408 bereit, und ein Index- (IDX-) Speicher 1414 zeigt an, welche Koeffizienten zu den Verzweigungen zu laden sind, und kann auch vom Controller 1412 gesteuert werden. Die Koeffizienteneinheit kann mit CLK(FCLK ≥ Mtap × Fs) arbeiten, und die Indexpräzision kann mit (Idx0 - IdxMtap-1) = log2Msc bereitgestellt werden. Die ALU gibt die Filterausgaben an Akkumulatoren 1406 aus, die Register 1418 aufweisen, um die Ausgaben zu halten, und dies kann für jeden Filter mit jeweiligen separaten Filterausgaben 1410a bis 1410c, die hier als Beispiele gezeigt sind, wiederholt werden, aber es können viel mehr Filter bereitgestellt werden. Der Controller 1412 kann mit jedem Filter wie gezeigt kommunizieren, um zu steuern, welcher Filter analysiert wird und welche Koeffizienten der ALU zur Verarbeitung der Filterverzweigungen bereitzustellen sind.
-
Unter Bezugnahme auf 15 zeigt ein Graph 1500 ein Histogramm von 4000 Gleitkommapräzisionskoeffizienten von 40 Mel-Frequenz-FIR-Filtern mit 100 Verzögerungsabgriffen für jeden Filter. Die horizontale Achse zeigt die Werte der Koeffizienten, und die vertikale Achse zeigt die Anzahl, wie oft ein bestimmter Koeffizientenwert verwendet wurde. Wie oben erläutert, können viele der Koeffizienten von verschiedenen Filtern gleich sein, weil die Mel-Skala-Dreiecksfunktionen jedes Mel-Frequenz-FIR-Filters überlappende Mel-Skala-Bereiche definieren. Die Gleitkommakoeffizienten sind um Null herum und nahe beieinander konzentriert, so dass es möglich ist, sie mit jeweils Psc-Bit-Festkommapräzision auf nur Msc gemeinsam genutzte Koeffizienten zu komprimieren, ohne die Filterleistung signifikant zu verschlechtern (sc bezieht sich auf gemeinsam genutzte Koeffizienten).
-
Im Gegensatz zu Nicht-sc-FIR-Filtern mit einer Koeffizientenspeicheranforderung von
(P = Präzision von Nicht-sc-Koeffizienten) verwenden FIR-Filter mit gemeinsam genutzten Koeffizienten lediglich einen Koeffizientenspeicher der Größe
wodurch der Speicherverbrauch um ungefähr log
2M
sc/P reduziert wird. Beispielsweise beträgt für P = 8 Bit, P
sc = 8 Bit und M
sc = 16 die Speicherreduzierung ungefähr 50 %.
-
Unter Bezugnahme auf 16A-16J zeigen die geradzahlig nummerierten Graphen 1600 bis 1618 Übertragungsfunktionen in der Frequenzdomäne von Filtern mit einer Anzahl verschiedener Parameter. Zuerst werden die Ergebnisse von idealen Mel-Frequenz-Filtern gezeigt (der höchste Peak und dann flach außerhalb des Peaks 1620 in jedem Graphen). Dies wird mit Folgendem verglichen: (1) FIR-Filtern mit nicht gemeinsam genutzter Gleitkommapräzision (ursprünglich blau und im Schlüssel als „Gleitkomma“ bezeichnet), (2) FIR-Filtern mit nicht gemeinsam genutzter 4b-Festkommapräzision (ursprünglich schwarz und im Schlüssel als „Festkomma 4b“ bezeichnet) und (3) FIR-Filtern mit 16 gemeinsam genutzten Mel-Frequenz-Koeffizienten mit 8b-Festkommapräzision (ursprünglich rot und im Schlüssel als „gemeinsam genutzt“ bezeichnet). Die Frequenzdomänengraphen zeigen die Frequenz entlang der horizontalen Achse und die Amplitude entlang der vertikalen Achse. Die Graphen sind auch für verschiedene Filter, die mit 31 bis 40 von insgesamt 40 Filtern nummeriert sind, wobei jeder Filter eine unterschiedliche Anzahl von Mel-Frequenz-Koeffizienten im Bereich von 30 Koeffizienten (in den Graphen als Mtaps bezeichnet) für Filter 21 und bis zu 21 Koeffizienten für Filter 40 aufweist. FIR-Filter mit gemeinsam genutzten Koeffizienten hatten Msc = 16 gemeinsam genutzte Koeffizienten der insgesamt 21 bis 30 Koeffizienten, die wie erwähnt bei jedem Filter verwendet wurden, und eine Präzision bei Psc = 8b. Obwohl es auf den Graphen schwierig zu erkennen ist, übertrifft die gemeinsam genutzte Technik die entsprechenden FIR-Filter mit nicht gemeinsam genutzten 4b-Festkommapräzisionskoeffizienten und zeigt ähnliche Leistungen wie FIR-Filter mit nicht gemeinsam genutzten Gleitkommapräzisionskoeffizienten. Je niedriger die Frequenzen im Graphen und außerhalb des Peaks sind, desto besser ist die Leistung. Dies ist am einfachsten in Graph 1618 zu sehen.
-
Obgleich einige Merkmale allein die oben beschriebene Merkmalsextraktion verbessern können, ermöglicht das Kombinieren vieler der obigen Merkmale eine T-MFSC-Merkmalsextraktion, um eine signifikantere Reduzierung der Berechnungskosten und der Speicheranforderungen zu erzielen, und kann auch zu einer Reduzierung der Berechnungskosten der Backend-Verarbeitung führen, da die geringere Anzahl von Ereignissen zu einer geringeren Anzahl von Frames (oder einer geringeren Anzahl von Nicht-Null-Frames) und daher zu einer geringeren Berechnung führt.
-
Die folgenden Tabellen fassen die Unterschiede in den Anforderungen an die Rechenlast und den Speicher zwischen der herkömmlichen MFSC-Technik und den hierin offenbarten vorliegenden T-MFSC-Techniken zusammen. Tabelle 1 fasst die Anzahl von Operationen zusammen, die von MFSC und T-MFSC für eine Abtastfrequenz von 16 kHz und einen 25 ms langen Frame benötigt werden. Man beachte für die Tabellen 1 und 2 unten, dass NF = F (Anzahl der Filter, auf die oben Bezug genommen wurde).
-
Tabelle 1. Anzahl der arithmetischen Operationen, die von MFSC und T-MFSC benötigt werden.
BERECHNUNGSZÄHLUNG | |
MFSC (Nsample = 400 für 25 ms langen Frame bei Fs = 16 kHz) |
Audio laden | Anfänglich alle 10 ms 560 B in den Puffer laden, 160 B in den Puffer laden |
Fensterung (y = x * hamm) | Nsample (MACs) |
512 Punkte (pt) FFT | 512 x log2(512) x 4 (MACs) |
Mel-Skala-Frequenzfilter (NF) | 256 × NF (MACs) |
Baseline-T-MFSC |
Mel-Skala-Frequenzfilter (NF) | |
Akkumulator (Parseval-Theorem) | Nsampie x NF (MACs) für Energie oder Nsampie x NF (Additionen) für Größensumme |
Ereignisgest. T-MFSC |
Mel-Skala-Frequenzfilter (NF) | |
Akkumulator (Parseval-Theorem) | EventRate x Nsampie x NF (MACs) für Energie oder EventRate x Nsampie x NF (Additionen) für Größensumme |
-
Tabelle 2 fasst die Speicheranforderungen für 40 Mel-Frequenz-Filter, 8b Festkommapräzisionsdaten (P = 8b, Psc = 8b), Msc = 16 und MFRAME,OV = 31 und MFRAME,NON-OV = 13 zusammen, wobei ov für Überlappung steht. Für den speziellen Fall hier reduziert T-MFSC die Speicheranforderungen um 87 % (mit nicht gemeinsam genutzten FIR-Filterkoeffizienten) und 92 % (mit gemeinsam genutzten Koeffizienten) für die Anzahl von Verzögerungsabgriffen (Mtap) in jedem FIR-Filter = 50. Für die Tabellen 1 und 2 wurde ein 325-ms-Fenster für Kontext und 8-Bit-Präzision angenommen. Die Einheiten sind in Byte gezeigt.
-
Tabelle 2. Speicheranforderungen von beispielhaften Fällen von MFSC und T-MFSC für Anzahl der Filter (N
F) = 40, Anzahl der Abgriffe (M
tap) = 50, Abtastfrequenz = 16 kHz und 25 ms langen Frame.
SPEICHERNUTZUNG (Einheit = Byte) |
| MFSC | T-MFSC | T-MFSC (unter Verwendung von gemeinsam genutzten Koeffizienten) |
Eingangspuffer | 560 (35 ms x 16 kHz x 8b) | X | X |
FFT - Koeffizienten | 512 (256 x 2) | X | X |
FFT-Puffer für Zwischenwert | 1556 (512 x 3) | X | X |
Mel- Frequenz- Filter | 10240 (256 x NF) | - | - |
FIR- Filterkoeffizienten | - | 2000 | 1000 |
| | (Mtap x NF x P/8b) | (Mtap x NF x log2NSC/8b für Nsc = 16) |
Merkmalsausgangspuffer | 40 (NF) | 40 (NF) für NF = 40 | 40 (NF) für NF = 40 |
Kontextpuffer | 1240 | 520 | 520 |
| (NF × Nframe, OV) | (NF x Nframe,nonOV) | (NF × Nframe, non-OV) |
Insgesamt | 20520 | 2560 | 1560 |
-
Unter Bezugnahme auf 17 vergleicht ein Graph 1700 die Anzahl von Operationen, die vom herkömmlichen MFSC, dem gegenwärtigen Baseline-T-MFSC und dem gegenwärtigen T-MFSC mit mehrstufiger Delta-Modulation erforderlich sind, über verschiedene Anzahlen von Mel-Frequenz-Filtern und verschiedene Ereignisraten. Die Ereignisrate ist definiert als ob sich Daten in zwei benachbarten Abtastungen ändern und als [Ereignisse]/[Anzahl von Gesamtabtastungen]. Es zeigt sich, dass T-MFSC eine effiziente Skalierung aufweist, da die Anzahl von Operationen im T-MFSC mit zunehmender Ereignisrate sowie mit der Anzahl von Filtern größer wird, während die Anzahl von Operationen im herkömmlichem MFSC unabhängig von der Ereignisrate ist, und eine moderate bis niedrige Effizienz mit Skalierung aufweist, wenn die Anzahl von Filtern erhöht wird, hauptsächlich aufgrund der Rechenlast von FFT-Operationen. Beispielsweise erfordert T-MFSC für 40 Filter und Ereignisrate = 0,4 ein Fünftel der Berechnungen im Vergleich zum herkömmlichen MFSC. Der Baseline-MFSC zeigt eine höhere Rechenlast als Mel-Frequenz-Filter. Wie oben erwähnt, ist der Vorteil des Baseline-MFSC die Reduzierung des Stroms, wenn ein oder mehrere neuronale Netzprozessoren verwendet werden, im Vergleich zum Stromverbrauch eines generischen DSP, der einen herkömmlichen MFSC ausführt.
-
Es versteht sich, dass die Prozesse 300 und/oder 600 von beispielhaften ASR-Systemen 10, 400, 500, 700, 800, 900, 1100, 1200, 1400, 1800, 1900 und/oder 2000 bereitgestellt werden können, um wenigstens einige Implementierungen der vorliegenden Offenbarung zu betreiben. Zusätzlich können eine oder mehrere der Operationen aus 3 und 6A-6B in Reaktion auf Befehle durchgeführt werden, die von einem oder mehreren Computerprogrammprodukten bereitgestellt werden. Derartige Programmprodukte können signaltragende Medien aufweisen, die Befehle bereitstellen, die, wenn sie beispielsweise von einem Prozessor ausgeführt werden, die hierin beschriebene Funktionalität bereitstellen können. Die Computerprogrammprodukte können in einer beliebigen Form eines oder mehrerer maschinenlesbarer Medien bereitgestellt werden. Somit kann beispielsweise ein Prozessor, der einen oder mehrere Prozessorkerne aufweist, eine oder mehrere der Operationen der hierin beschriebenen beispielhaften Prozesse in Reaktion auf den Programmcode und/oder die Befehle oder Befehlssätze durchführen, die dem Prozessor von einem oder mehr computer- oder maschinenlesbaren Medien übermittelt werden. Im Allgemeinen kann ein maschinenlesbares Medium Software in Form von Programmcode und/oder Befehlen oder Befehlssätzen übermitteln, die veranlassen können, dass eine(s) der Vorrichtungen und/oder Systeme wie hierin beschrieben arbeitet. Das maschinen- oder computerlesbare Medium kann ein nichtflüchtiger Gegenstand oder ein nichtflüchtiges Medium sein, wie beispielsweise ein nichtflüchtiges computerlesbares Medium, und kann mit jedem der oben genannten Beispiele oder anderen Beispielen verwendet werden, außer dass es an sich kein flüchtiges Signal aufweist. Dies beinhaltet diejenigen Elemente außer einem Signal an sich, die Daten vorübergehend in einer „flüchtigen“ Art und Weise halten können, wie beispielsweise RAM und so weiter.
-
Wie in einer beliebigen hierin beschriebenen Implementierung verwendet, bezieht sich der Begriff „Modul“ auf eine beliebige Kombination von Softwarelogik, Firmwarelogik und/oder Hardwarelogik, die konfiguriert sind, um die hierin beschriebene Funktionalität bereitzustellen. Die Software kann als Softwarepaket, Code und/oder Befehlssatz oder Befehle ausgeführt sein, und „Hardware“, wie sie in einer beliebigen hierin beschriebenen Implementierung verwendet wird, kann beispielsweise einzeln oder in einer beliebigen Kombination festverdrahtete Schaltungen, programmierbare Schaltungen, Zustandsmaschinenschaltungen und/oder Firmware einschließen, die Befehle speichert, die von programmierbaren Schaltungen ausgeführt werden. Die Module können gemeinsam oder einzeln als Schaltungen ausgeführt sein, die Teil eines größeren Systems ausbilden, beispielsweise eine integrierte Schaltung (IC, Integrated Circuit), System-on-Chip (SoC) und so weiter. Beispielsweise kann ein Modul in Logikschaltungen zur Implementierung mittels Software, Firmware oder Hardware der hierin erörterten Codierungssysteme ausgeführt sein.
-
Wie in einer beliebigen hierin beschriebenen Implementierung verwendet, bezieht sich der Begriff „Logikeinheit“ auf eine beliebige Kombination von Firmwarelogik und/oder Hardwarelogik, die konfiguriert sind, um die hierin beschriebene Funktionalität bereitzustellen. Die Logikeinheiten können gemeinsam oder einzeln als Schaltungen ausgeführt sein, die Teil eines größeren Systems ausbilden, beispielsweise eine integrierte Schaltung (IC, Integrated Circuit), System-on-Chip (SoC) und so weiter. Beispielsweise kann eine Logikeinheit in Logikschaltungen zur Implementierung mittels Firmware oder Hardware der hierin erörterten Codierungssysteme ausgeführt sein. Durchschnittsfachleute auf dem Gebiet werden erkennen, dass Operationen, die von Hardware und/oder Firmware durchgeführt werden, alternativ mittels Software implementiert werden können, die als Softwarepaket, Code und/oder Befehlssatz oder Befehle ausgeführt sein kann, und werden auch erkennen, dass die Logikeinheit auch einen Teil der Software nutzen kann, um ihre Funktionalität zu implementieren.
-
Wie in jeder hierin beschriebenen Implementierung verwendet, kann sich der Begriff „Komponente“ auf ein Modul oder eine Logikeinheit beziehen, wie diese Begriffe oben beschrieben wurden. Dementsprechend kann sich der Begriff „Komponente“ auf eine beliebige Kombination von Softwarelogik, Firmwarelogik und/oder Hardwarelogik beziehen, die konfiguriert ist, um die hierin beschriebene Funktionalität bereitzustellen. Beispielsweise werden Durchschnittsfachleute auf dem Gebiet erkennen, dass Operationen, die von Hardware und/oder Firmware durchgeführt werden, alternativ mittels eines Softwaremoduls implementiert werden können, das als Softwarepaket, Code und/oder Befehlssatz ausgeführt sein kann, und auch erkennen, dass eine Logikeinheit auch einen Teil der Software nutzen kann, um ihre Funktionalität zu implementieren.
-
Unter Bezugnahme auf 18 ist ein beispielhaftes Spracherkennungsverarbeitungssystem 1800 gemäß wenigstens einigen Implementierungen der vorliegenden Offenbarung angeordnet. In verschiedenen Implementierungen kann das beispielhafte Spracherkennungsverarbeitungssystem 1800 eine oder mehrere Audioerfassungsvorrichtungen 1802 aufweisen, um akustische Signaldaten zu bilden oder zu empfangen. Dies kann auf verschiedene Weisen implementiert werden. Somit kann das Spracherkennungsverarbeitungssystem 1800 in einer Form eine Audioerfassungsvorrichtung sein, wie beispielsweise ein Mikrofon, und die Audioerfassungsvorrichtung 1802 kann in diesem Fall die Mikrofonhardware und die Sensorsoftware, das Sensormodul oder die Sensorkomponente sein. In anderen Beispielen kann das Spracherkennungsverarbeitungssystem 1800 eine Audioerfassungsvorrichtung 1802 aufweisen, die ein Mikrofon aufweist oder sein kann, und die Logikmodule 1804 können mit der Audioerfassungsvorrichtung 1802 zur weiteren Verarbeitung der akustischen Daten entfernt kommunizieren oder anderweitig mit ihr kommunikativ gekoppelt sein.
-
In jedem Fall kann eine derartige Technologie ein Telefon, ein Smartphone, ein Diktiergerät, ein anderes Tonaufzeichnungsgerät, eine mobile Vorrichtung oder eine On-Board-Vorrichtung, Wearables, wie beispielsweise eine intelligente Uhr, eine intelligente Brille oder ein Fitnessband, oder eine beliebige Kombination davon einschließen. Somit kann die Audioerfassungsvorrichtung 1802 in einer Form Audioerfassungshardware mit einem oder mehreren Sensoren sowie Aktuatorsteuerungen einschließen. Diese Steuerungen können Teil eines Sensormoduls oder einer Sensorkomponente zum Betreiben des Sensors sein. Die Sensorkomponente kann Teil der Audioerfassungsvorrichtung 1802 oder Teil der logischen Module 1804 oder beider sein. Eine derartige Sensorkomponente kann verwendet werden, um Schallwellen in ein elektrisches akustisches Signal zu konvertieren. Die Audioerfassungsvorrichtung 1802 kann auch einen AID-Wandler, andere Filter und so weiter aufweisen, um ein digitales Signal für die Spracherkennungsverarbeitung bereitzustellen.
-
Im veranschaulichten Beispiel können die Logikmodule 1804 eine Spracherkennungseinheit 1806 aufweisen, die eine Einheit zur A/D-Wandlung (ADC, A/D Conversion) 1808 aufweisen kann, oder die ADC-Einheit kann stattdessen Teil der Audioerfassungsvorrichtung 1802 sein. Gemäß einer anderen Option wird die ADC nicht bereitgestellt, und eine akustische Frontend-Einheit 1810 führt stattdessen die ADC durch, und die akustische Frontend-Einheit 1810 kann auch andere Vorverarbeitungsaudioaufgaben durchführen. Die akustische Frontend-Merkmalsextraktionseinheit 1810 kann eine Delta-Modulatoreinheit 1814, eine FIR-Filtereinheit 1816, eine Akkumulatoreinheit 1818 zum Durchführen der auf dem Parseval-Theorem basierenden Energieoperation und eine Mel-Frequenz-Spektralkoeffizienten-Generierungseinheit 1840 zum Bereitstellen der Merkmalsextraktion in Form der Koeffizienten aufweisen, wie oben beschrieben.
-
Eine akustische Backend-Einheit 1812 kann auch eine akustische Score-Einheit 1844 zum Bereitstellen von akustischen Scores für die akustischen Merkmale, einen WFST-Decoder 1846 zum Bereitstellen von hypothetischen Wortsequenzen und eine Sprachinterpreter-Ausführungseinheit 1848 zum Bestimmen der Benutzerabsicht basierend auf der Ausgabe des WFST-Decoders aufweisen. Die Logikmodule können kommunikativ mit den Komponenten der Audioerfassungsvorrichtung 1802 gekoppelt sein, um akustische Rohdaten zu empfangen. Die Logikmodule 1804 können als Teil der Audioerfassungsvorrichtung betrachtet werden oder nicht.
-
Diese Einheiten, die die Logikeinheiten 1804 bilden, können die oben beschriebenen Operationen durchführen, die für den Titel der Einheiten hier relevant sind, und können alternativ gemäß den oben bereitgestellten Optionen bereitgestellt werden. Es können auch andere Einheiten bereitgestellt sein, wie beispielsweise eine DCT-Einheit, um die hierin beschriebene Merkmalsextraktion durchzuführen.
-
Das Spracherkennungsverarbeitungssystem 1800 kann einen oder mehrere Prozessoren 1820, die einen dedizierten Beschleuniger 1822, wie beispielsweise den Intel Atom, aufweisen können, und Speicher 1824, die verschiedene Versionen des Spracheingangssignals halten können oder nicht, aufweisen, wie hierin beschrieben. Der Beschleuniger könnte aus einem oder mehreren Festfunktionsprozessoren, generischen DSPs oder einem oder mehreren neuronalen Netzprozessoren gebildet sein, wie oben erwähnt. Das System kann auch wenigstens eine Lautsprechereinheit 1828 zum Bereitstellen von auditorischen Antworten, eine oder mehrere Anzeigen 1830 zum Bereitstellen von Bildern 1834 von Text als visuelle Antwort auf die akustischen Signale, eine oder mehrere andere Endvorrichtungen 1832 zum Durchführen von Aktionen in Reaktion auf das akustische Signal und eine Antenne 1836 aufweisen. In einer beispielhaften Implementierung kann das Sprachverarbeitungssystem 1800 die Anzeige 1830, wenigstens einen Prozessor 1820, der kommunikativ mit der Anzeige gekoppelt ist, und wenigsten einen Speicher 1824, der kommunikativ mit dem Prozessor gekoppelt ist, aufweisen. Die Antenne 1836 kann zur Übertragung der besten übereinstimmenden Wortsequenz oder des akustischen Eingangssignals oder anderer relevanter Befehle an andere Vorrichtungen bereitgestellt werden, die auf eine derartige Bestimmung reagieren können. Andernfalls können die Ergebnisse des Spracherkennungsprozesses im Speicher 1824 gespeichert werden. Wie veranschaulicht, kann jede dieser Komponenten in der Lage sein, miteinander und/oder mit Teilen der Logikmodule 1804 und/oder der Audioerfassungsvorrichtung 1802 zu kommunizieren. Somit können die Prozessoren 1820 kommunikativ sowohl mit der Audioerfassungsvorrichtung 1802 als auch mit den Logikmodulen 1804 zum Betreiben dieser Komponenten gekoppelt sein. Gemäß einem Ansatz, obwohl das Sprachverarbeitungssystem 1800, wie in 18 gezeigt, einen bestimmten Satz von Blöcken oder Aktionen aufweisen kann, die mit bestimmten Komponenten oder Modulen assoziiert sind, können diese Blöcke oder Aktionen mit anderen Komponenten oder Modulen als die bestimmte Komponente oder das bestimmte Modul, die hier veranschaulicht sind, assoziiert sein.
-
Unter Bezugnahme auf 19 betreibt ein beispielhaftes System 1900 gemäß der vorliegenden Offenbarung einen oder mehrere Aspekte des hierin beschriebenen Sprachverarbeitungssystems. Aus der Art der nachstehend beschriebenen Systemkomponenten ergibt sich, dass derartige Komponenten mit einem bestimmten Teil oder bestimmten Teilen des vorstehend beschriebenen Sprachverarbeitungssystems assoziiert sein können oder zum Betreiben derselben verwendet werden können. In verschiedenen Implementierungen kann das System 1900 ein Mediensystem sein, obwohl das System 1900 nicht auf diesen Kontext beschränkt ist. Beispielsweise kann das System 1900 in ein Mikrofon, einen Personal Computer (PC), einem Laptop-Computer, einen Ultra-Laptop-Computer, ein Tablet, ein Touchpad, einen tragbaren Computer, einen Handheld-Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Mobiltelefon/PDA-Kombination, einen Fernseher, eine Smart-Vorrichtung (z. B. Smartphone, Smart-Tablet oder Smart-TV), eine tragbare Vorrichtung (intelligente Uhr, intelligente Brille oder Fitnessband), eine mobile Internetvorrichtung (MID, Mobile Internet Device), eine Nachrichtenübermittlungsvorrichtung, eine Datenkommunikationsvorrichtung und so weiter integriert werden.
-
In verschiedenen Implementierungen weist das System 1900 eine Plattform 1902 auf, die mit einer Anzeige 1920 gekoppelt ist. Die Plattform 1902 kann Inhalt von einer Inhaltsvorrichtung empfangen, wie beispielsweise Inhaltsdienstvorrichtung(en) 1930 oder Inhaltszustellungsvorrichtung(en) 1940 oder anderen ähnlichen Inhaltsquellen. Ein Navigationscontroller 1950, der ein oder mehrere Navigationsmerkmale aufweist, kann beispielsweise zum Zusammenwirken mit der Plattform 1902, dem Lautsprecher 1960, dem Mikrofon 1970 und/oder Anzeige 1920 verwendet werden. Jede dieser Komponenten wird detaillierter unten beschrieben.
-
In verschiedenen Implementierungen kann die Plattform 1902 eine beliebige Kombination von einem Chipsatz 1905, Prozessor 1910, Speicher 1912, Speicherungseinrichtung 1914, Audiosubsystem 1904, Grafiksubsystem 1915, Anwendungen 1916 und/oder Funkvorrichtung 1918 bereitstellen. Der Chipsatz 1905 kann die Kommunikation zwischen Prozessor 1910, Speicher 1912, Speicherungseinrichtung 1914, Audiosubsystem 1904, Grafiksubsystem 1915, Anwendungen 1916 und/oder Funkvorrichtung 1918 bereitstellen. Beispielsweise kann der Chipsatz 1905 einen Speicheradapter (nicht dargestellt) aufweisen, der die Kommunikation mit der Speicherungseinrichtung 1914 bereitstellen kann.
-
Der Prozessor 1910 kann als Complex-Instruction-Set-Computer(CISC)- oder Reduced-Instruction-Set-Computer(RISC)-Prozessoren, x86-Befehlssatz-kompatible Prozessoren, Mehrkern- oder beliebiger anderer Mikroprozessor oder zentrale Verarbeitungseinheit (CPU, Central Processing Unit) implementiert sein. In verschiedenen Implementierungen kann der Prozessor 1910 Doppelkernprozessor(en), mobile Doppelkernprozessor(en) und so weiter sein.
-
Der Speicher 1912 kann als eine flüchtige Speichervorrichtung implementiert werden, wie beispielsweise, ohne darauf beschränkt zu sein, ein Direktzugriffsspeicher (RAM, Random Access Memory), dynamischer Direktzugriffsspeicher (DRAM, Dynamic Random Access Memory) oder statisches RAM (SRAM).
-
Die Speicherungseinrichtung 1914 kann als eine nichtflüchtige Speicherungsvorrichtung implementiert werden, wie beispielsweise, ohne darauf beschränkt zu sein, ein Magnetplattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk, eine interne Speicherungsvorrichtung, eine angeschlossene Speicherungsvorrichtung, ein Flash-Speicher, ein batteriegestütztes SDRAM (synchrones DRAM) und/oder eine netzzugängliche Speicherungsvorrichtung. In verschiedenen Implementierungen kann die Speicherungseinrichtung 1914 Technologie zum Erhöhen der Speicherleistung oder erhöhten Schutz für wertvolle digitale Medien einschließen, wenn beispielsweise mehrere Festplattenlaufwerke eingeschlossen sind.
-
Das Audiosubsystem 1904 kann eine Verarbeitung von Audio wie beispielsweise akustischen Signalen zur Spracherkennung, wie hierin beschrieben, und/oder Stimmerkennung durchführen. Das Audiosubsystem 1904 kann eine oder mehrere Verarbeitungseinheiten und einen oder mehrere Beschleuniger umfassen. Ein derartiges Audiosubsystem kann in den Prozessor 1910 oder den Chipsatz 1905 integriert sein. In einigen Implementierungen kann das Audiosubsystem 1904 eine eigenständige Karte sein, die kommunikativ mit dem Chipsatz 1905 gekoppelt ist. Eine Schnittstelle kann verwendet werden, um das Audiosubsystem 1904 kommunikativ mit einem Lautsprecher 1960, einem Mikrofon 1970 und/oder einer Anzeige 1920 zu koppeln.
-
Das Grafiksubsystem 1915 kann das Verarbeiten von Bildern durchführen, wie beispielsweise Standbild oder Video zur Anzeige. Das Grafiksubsystem 1915 kann beispielsweise eine Grafikverarbeitungseinheit (GPU, Graphics Processing Unit) oder eine visuelle Verarbeitungseinheit (VPU, Visual Processing Unit) sein. Eine analoge oder digitale Schnittstelle kann zum kommunikativen Koppeln des Grafiksubsystems 1915 und der Anzeige 1920 verwendet werden. Beispielsweise kann die Schnittstelle ein beliebiges von einem High-Definition Multimedia Interface (HDMI), Anzeige-Port, drahtlosen HDMI und/oder drahtlose HD-kompatible Techniken sein. Das Grafiksubsystem 1915 kann in den Prozessor 1910 oder den Chipsatz 1905 integriert sein. In einigen Implementierungen kann das Grafiksubsystem 1915 eine eigenständige Karte sein, die kommunikativ mit dem Chipsatz 1905 gekoppelt ist.
-
Die hierin beschriebenen Audioverarbeitungstechniken können in verschiedenen Hardwarearchitekturen implementiert sein. Beispielsweise kann die Audiofunktionalität innerhalb eines Chipsatzes integriert sein. Alternativ kann ein diskreter Audioprozessor verwendet werden. Als noch eine andere Implementierung können die Audiofunktionen von einem Allzweckprozessor bereitgestellt werden, einschließlich eines Mehrkernprozessors. In weiteren Implementierungen können die Funktionen in einer Unterhaltungselektronikvorrichtung implementiert sein.
-
Die Funkvorrichtung 1918 kann eine oder mehrere Funkvorrichtungen einschließen, die Signale unter Verwendung verschiedener geeigneter drahtloser Kommunikationstechniken senden und empfangen können. Derartige Techniken können Kommunikation über ein oder mehrere drahtlose Netze beinhalten. Beispielhafte drahtlose Netze schließen (ohne darauf beschränkt zu sein) drahtlose lokale Netze (WLANs, Wireless Local Area Networks), drahtlose persönliche Netze (WPANs, Wireless Personal Area Networks), drahtlose regionale Netze (WMANs, Wireless Metropolitan Area Networks), mobile Netze und Satellitennetze ein. Bei der Kommunikation über derartige Netze kann die Funkvorrichtung 1918 gemäß einem oder mehreren anwendbaren Standards in einer beliebigen Version arbeiten.
-
In verschiedenen Implementierungen kann die Anzeige 1920 einen beliebigen fernseherartigen Monitor oder eine beliebige fernseherartige Anzeige oder eine beliebige Smartphone-artige Anzeige einschließen. Die Anzeige 1920 kann beispielsweise einen Computeranzeigebildschirm, eine Berührungsbildschirmanzeige, einen Videomonitor, eine fernsehähnliche Vorrichtung und/oder einen Fernseher einschließen. Die Anzeige 1920 kann digital und/oder analog sein. In verschiedenen Implementierungen kann die Anzeige 1920 eine holographische Anzeige sein. Die Anzeige 1920 kann auch eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Derartige Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten übermitteln. Beispielsweise können derartige Projektionen ein visuelles Overlay für eine Anwendung für mobile erweiterte Realität (MAR, Mobile Augmented Reality) sein. Unter der Steuerung von einer oder mehreren Softwareanwendungen 1916 kann die Plattform 1902 die Benutzerschnittstelle 1922 auf der Anzeige 1920 anzeigen.
-
In verschiedenen Implementierungen kann/können die Inhaltsdienstvorrichtung(en) 1930 von einem beliebigen nationalen, internationalen und/oder unabhängigen Service gehostet werden und folglich für die Plattform 1902 beispielsweise über das Internet zugänglich sein. Die Inhaltsdienstvorrichtung(en) 1930 kann/können mit der Plattform 1902 und/oder der Anzeige 1920, dem Lautsprecher 1960 und dem Mikrofon 1970 gekoppelt sein. Die Plattform 1902 und/oder die Inhaltsdienstvorrichtung(en) 1930 können mit einem Netz 1965 gekoppelt sein, um Medieninformationen zum oder vom Netz 1965 zu kommunizieren (z. B. senden und/oder empfangen). Die Inhaltszustellungsvorrichtung(en) 1940 kann/können auch mit der Plattform 1902, dem Lautsprecher 1960, dem Mikrofon 1970 und/oder der Anzeige 1920 gekoppelt sein.
-
In verschiedenen Implementierungen kann/können die Inhaltsdienstvorrichtung(en) 1930 ein Mikrofon, eine Kabelfernsehbox, einen Personal Computer, ein Netz, ein Telefon, internetfähige Vorrichtungen oder Geräte einschließen, die digitale Informationen und/oder Inhalte liefern können, und andere ähnliche Vorrichtungen, die Inhalte unidirektional oder bidirektional zwischen Inhaltsanbietern und Plattform 1902 und Lautsprechersubsystem 1960, Mikrofon 1970 und/oder Anzeige 1920 über das Netz 1965 oder direkt kommunizieren können. Es versteht sich, dass der Inhalt unidirektional und/oder bidirektional zu oder von einer beliebigen der Komponenten im System 1900 und einem Inhaltsanbieter über das Netz 1965 kommuniziert werden kann. Beispiele für Inhalte können beliebige Medieninformationen einschließen, einschließlich beispielsweise Video, Musik, medizinischer und Spielinformationen und so weiter.
-
Die Inhaltsdienstvorrichtung(en) 1930 kann/können Inhalte empfangen, wie beispielsweise Kabelfernsehprogrammierung, einschließlich Medieninformationen, digitalen Informationen und/oder anderen Inhalten. Beispiele für Inhaltsanbieter können beliebige Kabel- oder Satellitenfernsehen- oder Funkvorrichtungs- oder Internet-Inhaltsanbieter einschließen. Die bereitgestellten Beispiele sollen Implementierungen gemäß der vorliegenden Offenbarung in keiner Weise einschränken.
-
In verschiedenen Implementierungen kann die Plattform 1902 Steuersignale vom Navigationscontroller 1950 empfangen, der ein oder mehrere Navigationsmerkmale aufweist. Die Navigationsmerkmale von Controller 1950 können beispielsweise zum Zusammenwirken mit der Benutzerschnittstelle 1922 verwendet werden. In Implementierungen kann der Navigationscontroller 1950 eine Zeigevorrichtung sein, die eine Computerhardwarekomponente (speziell Human Interface Device) sein kann, die es einem Benutzer ermöglicht, räumliche (z. B. kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie beispielsweise grafische Benutzerschnittstellen (GUIs, Graphical User Interfaces) und Fernsehgeräte und Monitore, ermöglichen dem Benutzer das Steuern und Bereitstellen von Daten für den Computer oder das Fernsehgerät unter Verwendung körperlicher Gesten. Das Audiosubsystem 1904 kann auch verwendet werden, um die Bewegung von Gegenständen oder die Auswahl von Befehlen auf der Schnittstelle 1922 zu steuern.
-
Bewegungen der Navigationsmerkmale des Controllers 1950 können auf einer Anzeige (z. B. Anzeige 1920) durch Bewegungen eines Zeigers, Cursors, Fokusrings oder andere visuelle Indikatoren repliziert werden, die auf der Anzeige angezeigt werden. Beispielsweise können die Navigationsmerkmale, die sich auf dem Navigationscontroller 1950 befinden, unter der Steuerung von Softwareanwendungen 1916 in virtuelle Navigationsmerkmale abgebildet werden, die beispielsweise auf der Benutzerschnittstelle 1922 angezeigt werden. In Implementierungen ist der Controller 1950 möglicherweise keine separate Komponente, sondern kann in die Plattform 1902, das Lautsprechersubsystem 1960, das Mikrofon 1970 und/oder die Anzeige 1920 integriert sein. Die vorliegende Offenbarung ist jedoch nicht auf die Elemente oder den hierin gezeigten oder beschriebenen Kontext beschränkt.
-
In verschiedenen Implementierungen können Treiber (nicht gezeigt) beispielsweise Technologie einschließen, die es Benutzern ermöglicht, die Plattform 1902 wie ein Fernsehgerät sofort mit dem Druck auf eine Taste nach dem anfänglichen Hochfahren ein- und auszuschalten, beispielsweise wenn aktiviert, oder durch einen auditorischen Befehl. Die Programmlogik kann es der Plattform 1902 ermöglichen, Inhalte an Medienadapter oder andere Inhaltsdienstvorrichtung(en) 1930 oder Inhaltszustellungsvorrichtung(en) 1940 zu streamen, selbst wenn die Plattform „ausgeschaltet“ ist. Zusätzlich kann der Chipsatz 1905 Hardware- und/oder Softwareunterstützung beispielsweise für 8.1-Surround-Sound-Audio und/oder High-Definition-7.1-Surround-Sound-Audio einschließen. Treiber können einen auditorischen oder Grafiktreiber für integrierte auditorische oder Grafikplattformen einschließen. In Implementierungen kann der auditorische oder Grafiktreiber eine Peripheral-Component-Interconnect(PCI)-Express-Grafikkarte umfassen.
-
In verschiedenen Implementierungen kann eine beliebige der einen oder mehreren Komponenten, die im System 1900 gezeigt werden, integriert sein. Beispielsweise können die Plattform 1902 und die Inhaltsdienstvorrichtung(en) 1930 integriert sein, oder die Plattform 1902 und die Inhaltszustellungsvorrichtung(en) 1940 können integriert sein, oder die Plattform 1902, die Inhaltsdienstvorrichtung(en) 1930 und die Inhaltszustellungsvorrichtung(en) 1940 können beispielsweise integriert sein. In verschiedenen Implementierungen können die Plattform 1902, der Lautsprecher 1960, das Mikrofon 1970 und/oder die Anzeige 1920 eine integrierte Einheit sein. Beispielsweise können die Anzeige 1920, der Lautsprecher 1960 und/oder das Mikrofon 1970 und die Inhaltsdienstvorrichtung(en) 1930 integriert sein, oder die Anzeige 1920, der Lautsprecher 1960 und/oder das Mikrofon 1970 und die Inhaltszustellungsvorrichtung(en) 1940 können integriert sein. Diese Beispiele sollen die vorliegende Offenbarung nicht einschränken.
-
In verschiedenen Implementierungen kann das System 1900 als drahtloses System, als verdrahtetes System oder als Kombination von beiden implementiert sein. Bei der Implementierung als drahtloses System kann das System 1200 Komponenten und Schnittstellen einschließen, die zur Kommunikation über ein drahtloses gemeinsam genutztes Medium geeignet sind, wie beispielsweise eine(n) oder mehrere Antennen, Sender, Empfänger, Transceiver, Verstärker, Filter, Steuerlogik und so weiter. Ein Beispiel für drahtlose, gemeinsam genutzte Medien kann Teile eines drahtlosen Spektrums einschließen, wie beispielsweise das HF-Spektrum und so weiter. Bei der Implementierung als verdrahtetes System kann das System 1200 Komponenten und Schnittstellen einschließen, die zur Kommunikation über verdrahtete Kommunikationsmedien geeignet sind, wie beispielsweise Eingabe/Ausgabe(E/A)-Adapter, physikalische Steckverbinder zum Verbinden des E/A-Adapters mit einem entsprechenden verdrahteten Kommunikationsmedium, einer Netzschnittstellenkarte (NIC, Network Interface Card), einem Festplattencontroller, Videocontroller, Audiocontroller und dergleichen. Beispiele für verdrahtete Kommunikationsmedien können einen Draht, ein Kabel, Metallleiter, eine gedruckte Leiterplatte (PCB, Printed Circuit Board), eine Rückwandplatine, ein Koppelnetz, ein Halbleitermaterial, einen verdrillten Draht, ein Koaxialkabel, Glasfaser und so weiter einschließen.
-
Die Plattform 1902 kann einen oder mehrere logische oder physikalische Kanäle zum Kommunizieren von Informationen aufbauen. Die Informationen können Medieninformationen und Steuerinformationen einschließen. Medieninformationen können sich auf beliebige Daten beziehen, die Inhalte repräsentieren, die für einen Benutzer bestimmt sind. Beispiele für Inhalte können beispielsweise Daten aus einem Gespräch, einer Videokonferenz, einem Streaming von Video und Audio, einer Nachricht einer elektronischen Mail („E-Mail“), einer Voicemail-Nachricht, alphanumerischen Symbolen, Grafiken, Bildern, Video, Audio, Text und so weiter einschließen. Daten aus einem Gespräch können beispielsweise Sprachinformationen, Schweigeperioden, Hintergrundrauschen, Komfortrauschen, Töne und so weiter sein. Steuerinformationen können sich auf beliebige Daten beziehen, die Befehle, Anweisungen oder Steuerwörter repräsentieren, die für ein automatisiertes System bestimmt sind. Beispielsweise können Steuerinformationen verwendet werden, um Medieninformationen durch ein System zu leiten oder einen Knoten anzuweisen, die Medieninformationen auf eine vorbestimmte Weise zu verarbeiten. Die Implementierungen sind jedoch nicht auf die Elemente oder in dem Kontext beschränkt, die in 19 gezeigt oder beschrieben sind.
-
Unter Bezugnahme auf 20 ist eine Vorrichtung 2000 mit kleinem Formfaktor ein Beispiel für die unterschiedlichen physikalischen Stile oder Formfaktoren, in denen das System 1800 oder 1900 ausgeführt sein kann. Gemäß diesem Ansatz kann die Vorrichtung 2000 als eine mobile Rechenvorrichtung mit drahtlosen Fähigkeiten implementiert werden. Eine mobile Rechenvorrichtung kann sich auf eine beliebige Vorrichtung mit einem Verarbeitungssystem und einer mobilen Stromquelle oder -versorgung, wie beispielsweise einer oder mehreren Batterien, beziehen.
-
Wie oben beschrieben, können Beispiele einer mobilen Rechenvorrichtung eine beliebige Vorrichtung mit einem Audiosubsystem einschließen, wie beispielsweise einen Personal Computer (PC), einen Laptop-Computer, einen Ultra-Laptop-Computer, ein Tablet, ein Touchpad, einen tragbaren Computer, einen Handheld-Computer, einen Palmtop-Computer, einen persönlichen digitalen Assistenten (PDA), ein Mobiltelefon, eine Mobiltelefon/PDA-Kombination, einen Fernseher, eine Smart-Vorrichtung (z. B. Smartphone, Smart-Tablet oder Smart-TV), eine mobile Internetvorrichtung (MID, Mobile Internet Device), eine Nachrichtenübermittlungsvorrichtung, eine Datenkommunikationsvorrichtung, einen beliebigen anderen On-Board-Computer (z. B. in einem Fahrzeug), Internet der Dinge (IoT, Internet of Things), ein Audiobefehlssystem für bestimmte Zwecke und so weiter, die möglicherweise Audiobefehle akzeptieren können.
-
Beispiele einer mobilen Rechenvorrichtung können außerdem Computer einschließen, die so ausgelegt sind, dass sie von einer Person getragen werden, wie beispielsweise einen Kopfhörer, ein Stirnband, ein Hörgerät, einen Handgelenk-Computer, einen Finger-Computer, einen Ring-Computer, einen Brillen-Computer, einen Gürtelclip-Computer, einen Armband-Computer, Schuh-Computer, Kleidungs-Computer und andere tragbare Computer. In verschiedenen Implementierungen kann eine mobile Rechenvorrichtung beispielsweise als ein Smartphone implementiert sein, das zum Ausführen von Computeranwendungen sowie Sprachkommunikation und/oder Datenkommunikation imstande ist. Es versteht sich, dass, obwohl einige Implementierungen als ein Beispiel mit einer mobilen Rechenvorrichtung beschrieben werden können, die als ein Smartphone implementiert ist, andere Implementierungen auch unter Verwendung von anderen drahtlosen mobilen Rechenvorrichtungen implementiert sein können. Die Implementierungen sind in diesem Kontext nicht beschränkt.
-
Wie in 20 gezeigt, kann die Vorrichtung 2000 ein Gehäuse mit einer Vorderseite 2001 und einer Rückseite 2002, eine Anzeige 2004 mit einem Bildschirm 2010, eine Eingabe/Ausgabe(E/A)-Vorrichtung 2006 und eine Antenne 2008 aufweisen. Die Vorrichtung 2000 kann auch Navigationsmerkmale 2012 einschließen. Die Anzeige 2004 kann eine beliebige geeignete Anzeigeeinheit zum Anzeigen von entsprechenden Informationen für eine mobile Rechenvorrichtung einschließen. Die E/A-Vorrichtung 2006 kann eine beliebige geeignete E/A-Vorrichtung zum Eingeben von Informationen in eine mobile Rechenvorrichtung einschließen. Beispiele für die E/A-Vorrichtung 2006 können eine alphanumerische Tastatur, einen Nummernblock, ein Touchpad, Eingabetasten, Schaltflächen, Schalter, Wippschalter, Software und so weiter einschließen. Informationen können ebenfalls durch das Mikrofon 2014 in die Vorrichtung 2000 eingegeben werden. Derartige Informationen können durch eine Spracherkennungsvorrichtung wie hierin beschrieben sowie eine Stimmerkennungsvorrichtung und als Teil der Vorrichtung 2000 digitalisiert werden und können Audioantworten über einen Lautsprecher 2016 oder visuelle Antworten über den Bildschirm 2004 bereitstellen. Die Implementierungen sind in diesem Kontext nicht beschränkt. Das Gehäuse kann auch eine Kamera 2005 und ein Beleuchtungsgerät 2010 aufweisen.
-
Verschiedene Formen der hierin beschriebenen Vorrichtungen und Prozesse können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beiden implementiert werden. Beispiele für Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC, Application Specific Integrated Circuit), programmierbare logische Vorrichtungen (PLD, Programmable Logic Device), digitale Signalprozessoren (DSP, Digital Signal Processor), feldprogrammierbare Gate-Arrays (FPGA), Logikgatter, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze und so weiter einschließen. Beispiele für Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Verfahren, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API, Application Program Interface), Befehlssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon einschließen. Die Bestimmung, ob eine Implementierung unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert wird, kann entsprechend einer beliebigen Anzahl von Faktoren variieren, wie beispielsweise gewünschte Rechengeschwindigkeit, Leistungspegel, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingangsdatenraten, Ausgangsdatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Design- und Leistungsbeschränkungen.
-
Ein oder mehrere Aspekte wenigstens einer Implementierung können durch repräsentative Befehle implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors repräsentiert, die, wenn sie durch eine Maschine gelesen werden, die Maschine veranlassen, Logik zum Durchführen der hierin beschriebenen Techniken zu erzeugen. Derartige Repräsentationen, bekannt als „IP-Kerne“, können auf einem konkreten, maschinenlesbaren Medium gespeichert sein und an verschiedene Kunden oder Herstellungseinrichtungen geliefert werden, um sie in die Fertigungsmaschinen zu laden, die letztendlich die Logik oder den Prozessor erzeugen.
-
Während bestimmte hierin dargelegte Merkmale unter Bezugnahme auf verschiedene Implementierungen beschrieben wurden, soll diese Beschreibung nicht in einem einschränkenden Sinne ausgelegt werden. Daher werden verschiedene Modifikationen der hierin beschriebenen Implementierungen sowie andere Implementierungen, die für Fachleute auf dem Gebiet, auf das sich die vorliegende Offenbarung bezieht, offensichtlich sind, als im Wesen und Schutzbereich der vorliegenden Offenbarung liegend angesehen.
-
Die folgenden Beispiele betreffen weitere Implementierungen.
-
Gemäß einem Beispiel umfasst ein computerimplementiertes Verfahren zur Merkmalsextraktion für die automatische Spracherkennung das Empfangen eines Eingangssprachsignals; Durchführen einer Delta-Modulation, umfassend: Vergleichen eines repräsentativen Werts einer Abtastung des Eingangssprachsignals mit oberen und unteren Schwellenwerten mehrerer Schwellenwertpegel; Bereitstellen wenigstens eines Gültigkeitsindikators und eines Verschiebungsindikators als Ausgabe der Delta-Modulation, wobei der Gültigkeitsindikator eine Änderung wenigstens eines Schwellenwertpegels entlang des Eingangssprachsignals von einem vorherigen repräsentativen Wert zur nächsten Abtastung anzeigt, und wobei der Verschiebungsindikator ein einzelner Wert ist, der den Gesamtbetrag der Änderung der Schwellenwertpegel anzeigt, einschließlich einer Änderung mehrerer Pegel, die mit dem Gültigkeitsindikator assoziiert sind, und vom vorherigen repräsentativen Wert zur nächsten Abtastung; und Verwenden der Gültigkeits- und Verschiebungsindikatoren zum Bilden von auf die Mel-Frequenz bezogenen Koeffizienten, die zum Erkennen von Sprache im Eingangssprachsignal verwendet werden sollen.
-
Gemäß einer anderen Implementierung kann das Verfahren auch das Bestimmen der Merkmalsextraktion ohne Verwendung einer Fourier-Transformation umfassen, um Frequenzdomänen-Signaldaten bereitzustellen, um eine Mel-Skala-Filterung durchzuführen; Konvertieren eines analogen Eingangssprachsignals in ein digitales Signal mittels Durchführen der Delta-Modulation; wobei das Vergleichen das Durchführen der Vergleiche in einer zeitdiskreten Domäne umfasst, umfassend synchrone mehrere Vergleiche des repräsentativen Werts des Eingangssprachsignals mit Schwellenwerten mehrerer Pegel während der gleichen Abtastung und unter Verwendung eines Takts,wobei die Abtastrate und die Vergleichsrate wenigstens teilweise auf dem Nyquist-Abtasttheorem basieren, wobei das Durchführen der Delta-Modulation das Durchführen der Delta-Modulation an einem kontinuierlichen Stream des Eingangssprachsignals umfasst, ohne das Eingangssprachsignal vor oder während der Delta-Modulation in Frames aufzuteilen und zu speichern, wobei die Gesamtzahl von mehreren Pegeln eine Anzahl von Schwellenwertpegeln ist, von denen erwartet wird, dass sie einen Bereich von menschlichen Sprachfrequenzen abdecken, und wobei die Gesamtzahl von mehreren Pegeln wenigstens zwei Pegel mit sowohl oberen als auch unteren Schwellenwerten ist.
-
Das Verfahren kann auch das Berechnen des repräsentativen Werts als eine Differenz zwischen einem Signalwert einer Abtastung und einer Akkumulation von Abtastparametertermen, die einzeln mit einer anderen Abtastung assoziiert sind, wobei die einzelnen Abtastparameterterme den Verschiebungsindikator der mit dem Abtastparameterterm assoziierten Abtastung faktorisieren, wobei die einzelnen Abtastparameterterme den Gültigheitsindikator faktorisieren, wobei die einzelnen Abtastparameterterme einen Richtungsindikator faktorisieren, der anzeigt, ob das Eingangssprachsignal von Abtastung zu Abtastung abfällt oder ansteigt; das Durchführen einer Filterung mit endlicher Impulsantwort (FIR, Finite Impulse Response), umfassend das Modifizieren von Mel-Frequenz-Koeffizienten, wobei der Betrag der Modifikation vom Verschiebungsindikator abhängt; und das Durchführen einer auf das Parseval-Theorem bezogenen Energieoperation, umfassend das Verwenden von FIR-Filterausgaben, die unter Verwendung der Verschiebungs- und Gültigkeitsindikatoren generiert werden, und zum Bilden von Zwischenkoeffizienten, die zum Bilden von Mel-Frequenz-Spektralkoeffizienten (MFSCs, Mel-Frequency Spectrum Coefficients) oder Mel-Frequenz-Cepstrum-Koeffizienten (MFCCs, Mel-Frequency Cepstrum Coefficients) verwendet werden sollen, die zum Erkennen von Wörtern in der Sprache verwendet werden sollen, umfassen.
-
Gemäß noch einer anderen Implementierung umfasst ein computerimplementiertes System zur Merkmalsextraktion für die automatische Spracherkennung wenigstens einen Prozessor; Speicher, der kommunikativ mit dem wenigstens einen Prozessor gekoppelt ist; wenigstens einen Mel-Frequenz-Filter mit endlicher Impulsantwort (FIR, Finite Impulse Response), der von dem wenigstens einen Prozessor betrieben wird und angeordnet ist, um Audiodaten eines akustischen Eingangssignals zu erhalten, wobei die Audiodaten menschliche Sprache beinhalten und der Mel-Frequenz-FIR-Filter Summen von modifizierten Mel-Frequenz-Koeffizienten ausgibt; und eine Akkumulatoreinheit zum Durchführen einer auf das Parseval-Theorem bezogenen Energieoperation, umfassend das Verwenden der Filterausgaben zum Bilden von Zwischenkoeffizienten, die zum Bilden von Mel-Frequenz-Spektralkoeffizienten (MFSCs, Mel-Frequency Spectrum Coefficients) oder Mel-Frequenz-Cepstrum-Koeffizienten (MFCCs, Mel-Frequency Cepstrum Coefficients) verwendet werden sollen, die zum Erkennen von Wörtern in der Sprache verwendet werden sollen.
-
Gemäß einem anderen Beispiel stellt das System bereit, dass die Energieoperation Größensummen der Filterausgaben generiert, ohne ein Quadrat der Filterausgaben durchzuführen; und das System weist eine Merkmalsextraktionseinheit auf, die den wenigstens einen FIR-Filter und die Akkumulatoreinheit umfasst, wobei die Merkmalsextraktionseinheit angeordnet ist zum Arbeiten durch: Durchführen einer Delta-Modulation, umfassend: Vergleichen eines repräsentativen Werts einer Abtastung des Eingangssprachsignals mit oberen und unteren Schwellenwerten mehrerer Schwellenwertpegel; und Bereitstellen wenigstens eines Gültigkeitsindikators und eines Verschiebungsindikators als Ausgabe der Delta-Modulation, wobei der Gültigkeitsindikator eine Änderung wenigstens eines Schwellenwertpegels entlang des Eingangssprachsignals von einem vorherigen repräsentativen Wert zur nächsten Abtastung anzeigt, und wobei der Verschiebungsindikator ein einzelner Wert ist, der den Gesamtbetrag der Änderung der Schwellenwertpegel anzeigt, einschließlich einer Änderung mehrerer Pegel, die mit dem Gültigkeitsindikator assoziiert sind, und vom vorherigen repräsentativen Wert zur nächsten Abtastung;und Verwenden der Änderungs- und Verschiebungsindikatoren zum Bilden von auf die Mel-Frequenz bezogenen Koeffizienten, die zum Erkennen der Sprache im Eingangssprachsignal verwendet werden sollen, wobei der wenigstens eine Mel-Frequenz-Filter mit endlicher Impulsantwort (FIR, Finite Impulse Response) ein Array von Verzweigungen mit einzelnen Verzweigungen aufweist, die angeordnet sind, um einen anderen Mel-Frequenz-Abgriff anzuwenden, der mit einem Mel-Frequenz-Koeffizienten assoziiert ist, wobei die einzelnen Verzweigungen zulassen, dass ein modifizierter Mel-Frequenz-Koeffizient in einer Summe von modifizierten Mel-Frequenz-Abgriffen von mehreren Verzweigungen verwendet wird und dass die Summe eine Ausgabe des FIR-Filters ist, wobei der modifizierte Frequenzkoeffizient einer einzelnen Verzweigung in der Summe verwendet wird, wenn der Gültigkeitsindikator der einzelnen Verzweigung anzeigt, dass eine Änderung des Eingangssprachsignals aufgetreten ist. wobei die einzelnen Verzweigungen den Verschiebungsindikator empfangen, um einen Mel-Frequenz-Abgriff ohne Verwendung von Multiplikation zu modifizieren.
-
Gemäß einem Ansatz umfasst wenigstens ein computerlesbares Medium eine Vielzahl von Befehlen, die in Reaktion auf ihre Ausführung auf einer Rechenvorrichtung veranlassen, dass die Rechenvorrichtung arbeitet durch: Erhalten eines Gültigkeitsindikators, der eine Änderung wenigstens eines Schwellenwertpegels entlang eines Eingangssprachsignals und von einem vorherigen repräsentativen Wert der Eingangssprache zu einer nächsten Abtastung des Eingangssprachsignals anzeigt, und Erhalten eines Verschiebungsindikators, der ein einzelner Wert ist, der den Gesamtbetrag der Änderung der Schwellenwertpegel anzeigt, einschließlich einer Änderung mehrerer Pegel, die mit dem Gültigkeitsindikator assoziiert sind, und vom vorherigen repräsentativen Wert zur nächsten Abtastung; und abhängig von einem Wert des Gültigkeitsindikators Verwenden von wenigstens einem modifizierten Mel-Frequenz-Koeffizienten eines FIR-Filters, um Filterausgaben zu bilden, die zum Erkennen von Sprache im Eingangssprachsignal verwendet werden sollen, wobei der FIR-Filter angeordnet ist, um den/die Mel-Frequenz-Koeffizienten unter Verwendung des Verschiebungsindikators zu modifizieren.
-
Gemäß einem anderen Ansatz veranlassen die Befehle die Rechenvorrichtung, mittels Durchführen einer Delta-Modulation zu arbeiten, umfassend: Vergleichen eines repräsentativen Werts einer Abtastung des Eingangssprachsignals mit oberen und unteren Schwellenwerten mehrerer Schwellenwertpegel, um die Gültigkeits- und Verschiebungsindikatoren zu bilden, wobei die Befehle die Rechenvorrichtung veranlassen, durch Bestimmen einer binären Verschiebung eines Mel-Frequenz-Abgriffs während der Mel-Frequenz-Filterung zu arbeiten, umfassend das Bestimmen des Betrags der binären Verschiebung abhängig vom Verschiebungsindikator, wobei die Befehle die Rechenvorrichtung veranlassen, durch gemeinsames Nutzen von Verzögerungsabgriffen an Verzögerungselementen einer Vielzahl der Mel-Frequenz-Filter zu arbeiten, wobei die Verzögerungselemente die Ausbreitung von Indikatoren von Verzweigung zu Verzweigung des Mel-Frequenz-Filters steuern, wobei einzelne Verzweigungen einen unterschiedlichen Mel-Frequenz-Koeffizienten des Mel-Frequenz-Filters aufweisen und die Verzögerungsabgriffe Indikatorwerte sind, die an den Verzögerungselementen verwendet werden, wobei die Befehle die Rechenvorrichtung veranlassen, durch gemeinsames Nutzen von Mel-Frequenz-Koeffizienten unter mehreren Mel-Frequenz-Filtern zu arbeiten, wobei die Befehle die Rechenvorrichtung veranlassen, durch Zeitmultiplexen einer Arithmetik-Logik-Einheit (ALU, Arithmetic Logic Unit) zu arbeiten, um wenigstens eine binäre Verschiebung von Mel-Frequenz-Koeffizienten oder Summierung von verschobenen Mel-Frequenz-Koeffizienten oder beides über mehrere Mel-Frequenz-Filter durchzuführen, wobei das Zeitmultiplexen das Betreiben der ALU mit einer ALU-Frequenz umfasst, die schneller als und relativ zu einer Eingangssprachsignalabtastfrequenz ist, wobei die ALU-Frequenz durch Faktorisierung einer Anzahl von Mel-Frequenz-Filtern und einer Anzahl von Abgriffen in den Mel-Frequenz-Filtern festgelegt wird.
-
In einem weiteren Beispiel kann wenigstens ein maschinenlesbares Medium eine Vielzahl von Befehlen aufweisen, die in Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung veranlassen, das Verfahren nach einem der obigen Beispiele durchzuführen.
-
In einem noch weiteren Beispiel kann eine Vorrichtung Mittel zum Durchführen der Verfahren nach einem der obigen Beispiele aufweisen.
-
Die obigen Beispiele können spezielle Merkmalskombinationen aufweisen. Die obigen Beispiele sind jedoch in dieser Hinsicht nicht beschränkt, und in verschiedenen Implementierungen können die obigen Beispiele das Vornehmen nur einer Teilmenge derartiger Merkmale, das Vornehmen einer anderen Reihenfolge derartiger Merkmale, das Vornehmen einer anderen Kombination derartiger Merkmale und/oder das Vornehmen zusätzlicher Merkmale als die explizit aufgeführten Merkmale beinhalten. Beispielsweise können alle Merkmale, die in Bezug auf beliebige beispielhafte Verfahren hierin beschrieben werden, in Bezug auf eine beliebige beispielhafte Vorrichtung, beispielhafte Systeme und/oder beispielhafte Gegenstände implementiert werden, und umgekehrt.
-
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 Nicht-Patentliteratur
-
- Shah, M. et al., „A fixed-point neural network for keyword detection on resource constrained hardware“, IEEE Workshop on Signal Processing Systems (SiPS), S. 1-6, (2015) [0020]
- Badami, K. et al., „Context-Aware Hierarchical Information-Sensing in α 6µW 90nm CMOS Voice Activity Detector“, IEEE International Solid State Circuits Conf. (ISSCC) Dig. Tech. Papers, S. 430-431 (2015) [0025]
- Schell, B. et al., „A Continuous-Time ADC/DSP/DAC System With No Clock and With Activity-Dependent Power Dissipation“, IEEE J. Solid-State Circuits, Vol. 43, Nr. 11, S. 2472-2481 (2008) [0026]
- Y. Hoshen, et al., „Speech Acoustic Modeling From Raw Multichannel Waveforms“ in IEEE ICASSP, S. 4624-4628 (2015) [0028]
- Davis, S. B., et al., „Comparison of Parametric Representations for Monosyllabic Word Recognition in Continuously Spoken Sentences“, IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. ASSP-28, Nr. 4, S. 357-365 (1980) [0081]
- He, Q., et al., „An Adaptive Multi-Band System for Low Power Voice Command Recognition“, Interspeech, S. 1888-1892 (2016) [0081]
- He, Q., „An Architecture for Low-Power Voice-Command Recognition Systems“, Dissertation (2016) [0081]
- Price, M., et al., „A 6mW, 5000-Word Real-Time Speech Recognizer Using WFST Models“, IEEE J. Solid-State Circuits, Vol. 50, Nr. 1, S. 102-112 (2015) [0081]
- Price, M., et al., „A Scalable Speech Recognizer with Deep-Neural-Network Acoustic Models and Voice-Activated Power Gating“, IEEE International Solid State Circuits Conf. (ISSCC) Dig. Tech. Papers, S. 244-245 (2017) [0081]
- Amodei, D., et al., „Deep Speech 2 : End-to-End Speech Recognition in English and Mandarin“, Proceedings of Machine Learning Research, S. 173-182 (2016) [0081]