-
GEBIET
-
Die vorliegende Offenbarung betrifft allgemein das Gebiet der automatisierten Spracherkennung und insbesondere Systeme und Verfahren, die den Betrieb von Spracherkennungssystemen verbessern, die mehrere Spracherkennungs-Engines nutzen.
-
HINTERGRUND
-
Automatisierte Spracherkennung ist eine wichtige Technik zum Implementieren von Mensch-Maschine-Schnittstellen (HMIs: Human Machine Interfaces) in einem breiten Bereich von Anwendungen. Insbesondere ist Spracherkennung in Situationen nützlich, bei denen sich ein menschlicher Benutzer auf das Durchführen einer Aufgabe konzentrieren muss, bei der das Verwenden von traditionellen Eingabeeinrichtungen, wie etwa einer Maus und Tastatur, ungeeignet oder unpraktisch wäre. Fahrzeuginterne „Infotainment“-Systeme, Hausautomatisierungssysteme und viele Verwendungen von kleinen elektronischen mobilen Einrichtungen, wie etwa Smartphones, Tablets und tragbaren Computern, können zum Beispiel Spracherkennung einsetzen, um Sprachbefehle und eine andere Eingabe von einem Benutzer zu empfangen.
-
Die meisten Spracherkennungssysteme des Stands der Technik verwenden eine trainierte Spracherkennungs-Engine, um aufgezeichnete gesprochene Eingaben von einem Benutzer in digitale Daten umzuwandeln, die sich zur Verarbeitung in einem computergestützten System eignen. Verschiedene Sprach-Engines, die im Stand der Technik bekannt sind, führen Techniken zum Verstehen natürlicher Sprache durch, um die Wörter, die der Benutzer spricht, zu erkennen und eine semantische Bedeutung aus den Wörtern zu extrahieren, um den Betrieb eines computergestützten Systems zu steuern.
-
In manchen Situationen ist eine einzige Spracherkennungs-Engine zur Erkennung von Sprache von einem Benutzer, während der Benutzer verschiedene Aufgaben durchführt, nicht notwendigerweise optimal. Lösungen des Stands der Technik versuchen, mehrere Spracherkennungssysteme zu kombinieren, um die Genauigkeit der Spracherkennung zu verbessern, einschließlich des Auswählens von Ausgaben niedriger Ebene von den akustischen Modellen unterschiedlicher Spracherkennungsmodelle oder des Auswählens einer gesamten Menge von Ausgaben von unterschiedlichen Spracherkennungs-Engines basierend auf einem vorbestimmten Einstufungsprozess. Die Kombinationen niedriger Ebene von Ausgaben mehrerer Spracherkennungssysteme bewahren linguistische Informationen hoher Ebene jedoch nicht. Bei anderen Ausführungsformen erzeugen mehrere Spracherkennungs-Engines vollständige Spracherkennungsergebnisse, aber der Bestimmungsprozess, welches Spracherkennungsergebnis in den Ausgaben mehrerer Spracherkennungs-Engines auszuwählen ist, ist auch ein anspruchsvolles Problem. Dementsprechend würden Verbesserungen an Spracherkennungssystemen von Vorteil sein, die die Genauigkeit der Auswahl von Spracherkennungsergebnissen aus einer Menge von Kandidatenspracherkennungsergebnissen von mehreren Spracherkennungs-Engines verbessern.
-
KURZDARSTELLUNG
-
Bei einer Ausführungsform ist ein Verfahren zum Durchführen einer Spracherkennung in einem automatisierten System entwickelt worden. Das Verfahren beinhaltet Erzeugen, mit einer Steuerung, mehrerer Merkmalsvektoren, wobei jeder Merkmalsvektor einem Kandidatenspracherkennungsergebnis in mehreren Kandidatenspracherkennungsergebnissen entspricht. Das Erzeugen eines ersten Merkmalsvektors in den mehreren Merkmalsvektoren für ein erstes Kandidatenspracherkennungsergebnis in den mehreren Kandidatenspracherkennungsergebnissen beinhaltet ferner Identifizieren, mit der Steuerung, mindestens eines Auslösepaares, das zwei vorbestimmte Auslösewörter beinhaltet, im ersten Kandidatenspracherkennungsergebnis, bezüglich mehrerer vorbestimmter Auslösepaare, die in einem Speicher gespeichert sind, und Erzeugen, mit der Steuerung, des ersten Merkmalsvektors einschließlich eines Elements für mindestens ein Auslösepaar. Das Verfahren beinhaltet ferner Bereitstellen, mit der Steuerung, der mehreren Merkmalsvektoren als Eingaben in ein neuronales Netzwerk, Erzeugen, mit der Steuerung, mehrerer Einstufungsbewertungen, die den mehreren Merkmalsvektoren entsprechen, für die mehreren Kandidatenspracherkennungsergebnisse basierend auf einer Ausgabeschicht des neuronalen Netzwerks und Betreiben, mit der Steuerung, des automatisierten Systems unter Verwendung des Kandidatenspracherkennungsergebnisses in den mehreren Kandidatenspracherkennungsergebnissen, das einer höchsten Einstufungsbewertung in den mehreren Einstufungsbewertungen entspricht, als Eingabe.
-
Bei einer anderen Ausführungsform ist ein Verfahren zum Trainieren einer Neuronales-Netzwerk-Einstufungsvorrichtung entwickelt worden, die Einstufungsbewertungen für unterschiedliche Kandidatenspracherkennungsergebnisse in einem automatisierten Spracherkennungssystem erzeugt. Das Verfahren beinhaltet Erzeugen, mit einem Prozessor, mehrerer Merkmalsvektoren, wobei jeder Merkmalsvektor einem Trainingsspracherkennungsergebnis in mehreren Trainingsspracherkennungsergebnissen entspricht, die in einem Speicher gespeichert sind. Das Erzeugen eines ersten Merkmalsvektors in den mehreren Merkmalsvektoren für ein erstes Trainingsspracherkennungsergebnis in den mehreren Trainingsspracherkennungsergebnissen beinhaltet ferner Identifizieren, mit dem Prozessor, mindestens eines Auslösepaares, das zwei vorbestimmte Auslösewörter beinhaltet, im ersten Trainingsspracherkennungsergebnis, bezüglich mehrerer vorbestimmter Auslösepaare, die in einem Speicher gespeichert sind, und Erzeugen, mit dem Prozessor, des ersten Merkmalsvektors einschließlich eines Elements für das mindestens eine Auslösepaar. Das Verfahren beinhaltet ferner Durchführen, mit dem Prozessor, eines Trainingsprozesses für eine Neuronales-Netzwerk-Einstufungsvorrichtung unter Verwendung der mehreren Merkmalsvektoren, die den mehreren Trainingsspracherkennungsergebnissen entsprechen, als Eingaben in die Neuronales-Netzwerk-Einstufungsvorrichtung, mehrerer Ausgabebewertungen, die durch die Neuronales-Netzwerk-Einstufungsvorrichtung während des Trainingsprozesses erzeugt werden, und mehrerer Zielergebnisse basierend auf vorbestimmten Editierdistanzen zwischen den mehreren Trainingsspracherkennungsergebnissen und vorbestimmten korrekten Eingaben für jede Trainingsspracherkennung in den mehreren Spracherkennungsergebnissen, und Speichern, mit dem Prozessor, der Neuronales-Netzwerk-Einstufungsvorrichtung im Speicher nach Beendigung des Trainingsprozesses zur Verwendung bei der Erzeugung von Einstufungsbewertungen für zusätzliche Merkmalsvektoren, die Spracherkennungsergebnissen entsprechen, die nicht in den mehreren Trainingsspracherkennungsergebnissen vorhanden sind.
-
Bei einer anderen Ausführungsformen ist ein automatisiertes Spracherkennungssystem entwickelt worden. Das System beinhaltet einen Speicher und eine Steuerung, die funktionsfähig mit dem Speicher verbunden ist. Der Speicher ist dazu ausgelegt, mehrere vorbestimmte Auslösepaare zu speichern, wobei jedes Auslösepaar zwei Wörter beinhaltet; und ein neuronales Netzwerk ist dazu ausgelegt, Einstufungsbewertungen zu erzeugen, die mehreren Kandidatenspracherkennungsergebnissen entsprechen. Die Steuerung ist dazu ausgelegt, mehrere Merkmalsvektoren zu erzeugen, wobei jeder Merkmalsvektor einem Kandidatenspracherkennungsergebnis in mehreren Kandidatenspracherkennungsergebnissen entspricht, wobei die Erzeugung eines ersten Merkmalsvektors in den mehreren Merkmalsvektoren für ein erstes Kandidatenspracherkennungsergebnis in den mehreren Kandidatenspracherkennungsergebnissen ist. Die Steuerung ist ferner dazu ausgelegt, mindestens ein Auslösepaar, das zwei vorbestimmte Auslösewörter beinhaltet, im ersten Kandidatenspracherkennungsergebnis zu identifizieren, bezüglich mehrerer vorbestimmter Auslösepaare, die in einem Speicher gespeichert sind, und den ersten Merkmalsvektor einschließlich eines Elements für das mindestens eine Auslösepaar zu erzeugen. Die Steuerung ist ferner dazu ausgelegt, die mehrere Merkmalsvektoren als Eingaben in das neuronale Netzwerk bereitzustellen, mehrere Einstufungsbewertungen, die den mehreren Merkmalsvektoren entsprechen, für die mehreren Kandidatenspracherkennungsergebnisse basierend auf einer Ausgabeschicht des neuronalen Netzwerks zu erzeugen und das automatisierte System unter Verwendung des Kandidatenspracherkennungsergebnisses in den mehreren Kandidatenspracherkennungsergebnissen, das einer höchsten Einstufungsbewertung in den mehreren Einstufungsbewertungen entspricht, als Eingabe zu betreiben.
-
Figurenliste
-
- 1 ist eine schematische Ansicht von Komponenten eines automatisierten Systems, das Spracheingabebefehle von einem Benutzer empfängt, wie in einem fahrzeuginternen Informationssystem in einem Fahrgastraum eines Fahrzeugs umgesetzt.
- 2 ist ein Blockdiagramm eines Prozesses zur Verwendung einer Neuronales-Netzwerk-Einstufungsvorrichtung, um Einstufungsbewertungen für mehrere Kandidatenspracherkennungsergebnisse während eines Spracherkennungsprozesses zu erzeugen.
- 3 ist eine schematische Ansicht eines Rechensystems, das einen Trainingsprozess zum Erzeugen der trainierten Neuronales-Netzwerk-Einstufungsvorrichtung von 1 und 2 durchführt.
- 4 ist ein Blockdiagramm eines Prozesses zum Erzeugen einer trainierten Neuronales-Netzwerk-Einstufungsvorrichtung.
- 5 ist ein Diagramm, das die Struktur eines Merkmalsvektors, der aus einem Spracherkennungsergebnis erzeugt wird, und die Struktur einer Neuronales-Netzwerk-Einstufungsvorrichtung abbildet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Um ein Verständnis der Prinzipien der hier offenbarten Ausführungsformen zu fördern, wird nun auf die Zeichnungen und Beschreibungen in der folgenden schriftlichen Patentschrift Bezug genommen. Es ist keine Beschränkung des Schutzumfangs des Gegenstands durch die Bezugnahmen beabsichtigt. Die vorliegende Offenbarung beinhaltet auch Abwandlungen und Modifikationen an den veranschaulichten Ausführungsformen und beinhaltet ferner Anwendungen der Prinzipien der offenbarten Ausführungsformen, wie sie einem Fachmann auf dem Gebiet hinsichtlich dieser Offenbarung normalerweise ersichtlich sind.
-
Wie hierin verwendet, bezieht sich der Ausdruck „Spracherkennungs-Engine“ auf ein Datenmodell und einen ausführbaren Programmcode, das bzw. der einem computergestützten System ermöglicht, gesprochene Wörter von einem Betreiber basierend auf aufgezeichneten Audioeingabedaten der gesprochenen Wörter, die über ein Mikrofon oder eine andere Audioeingabeeinrichtung empfangen werden, zu identifizieren. Spracherkennungssysteme beinhalten häufig ein akustisches Modell niedrigerer Ebene, das die individuellen Töne einer menschlichen Sprache in einer Tonaufzeichnung erkennt, und Sprachmodelle höherer Ebene, die Wörter und Sätze basierend auf Sequenzen der Töne vom akustischen Modell für eine vorbestimmte Sprache erkennen. Spracherkennungs-Engines, die im Stand der Technik bekannt sind, implementieren typischerweise ein oder mehrere statistische Modelle, wie etwa zum Beispiel ein Hidden-Markov-Modell (HMM), eine Support Vector Machine (SVM Stützvektormaschine), ein trainiertes neuronales Netzwerk oder ein anderes statistisches Modell, das statistische Vorhersagen für aufgezeichnete menschliche Sprache unter Verwendung von mehreren trainierten Parametern erzeugt, die an einem Merkmalsvektor von Eingabedaten angewendet werden, die der menschlichen Sprache entsprechen. Die Spracherkennungs-Engine erzeugt den Merkmalsvektor unter Verwendung von zum Beispiel verschiedenen Signalverarbeitungstechniken, die im Stand der Technik bekannt sind und Eigenschaften („Merkmale“) des aufgezeichneten Sprachsignals extrahieren und die Merkmale in einen eindimensionalen oder mehrdimensionalen Vektor organisieren, der unter Verwendung des statistischen Modells verarbeitet werden kann, um verschiedene Teile der Sprache, einschließlich individueller Wörter und Sätze, zu identifizieren. Spracherkennungs-Engines können Ergebnisse für Spracheingaben erzeugen, die individuellen gesprochenen Phonemen und komplexeren Tonmustern, einschließlich gesprochenen Wörtern und Sätzen, die Sequenzen von zugehörigen Wörtern beinhalten, entsprechen.
-
Wie hierin verwendet, bezieht sich der Ausdruck „Spracherkennungsergebnis“ auf eine maschinenlesbare Ausgabe, die die Spracherkennungs-Engine für eine gegebene Eingabe erzeugt. Das Ergebnis kann zum Beispiel Text sein, der in einem maschinenlesbaren Format codiert ist, oder eine andere Menge von codierten Daten sein, die als Eingaben dienen, um den Betrieb eines automatisierten Systems zu steuern. Aufgrund der statistischen Art von Spracherkennungs-Engines erzeugt die Sprach-Engine bei manchen Konfigurationen mehrere potenzielle Spracherkennungsergebnisse für eine einzige Eingabe. Die Sprach-Engine erzeugt außerdem eine „Konfidenzbewertung“ für jedes Spracherkennungsergebnis, wobei die Konfidenzbewertung eine statistische Schätzung der Wahrscheinlichkeit ist, dass jedes Spracherkennungsergebnis genau ist, basierend auf dem trainierten statistischen Modell der Spracherkennungs-Engine. Wie unten ausführlicher beschrieben, verwendet ein hybrides Spracherkennungssystem Spracherkennungsergebnisse, die durch mehrere Spracherkennungs-Engines erzeugt werden, erzeugt zusätzliche hybride Spracherkennungsergebnisse und erzeugt schließlich mindestens ein Ausgabespracherkennungsergebnis basierend auf den mehreren zuvor erzeugten Spracherkennungsergebnissen. Wie hierin verwendet, bezieht sich der Ausdruck „Kandidatenspracherkennungsergebnis“ oder einfacher „Kandidatenergebnis“ auf ein Spracherkennungsergebnis, das ein Kandidat für das endgültige Spracherkennungsergebnis vom hybriden Spracherkennungssystem ist, das mehrere Kandidatenergebnisse erzeugt und nur eine Teilmenge (typischerweise eines) der Ergebnisse als das endgültige Spracherkennungsergebnis auswählt. Bei verschiedenen Ausführungsformen beinhalten Kandidatenspracherkennungsergebnisse sowohl die Spracherkennungsergebnisse von Allgemeinzweck- und domänenspezifischen Spracherkennungs-Engines als auch hybride Spracherkennungsergebnisse, die das System 100 unter Verwendung von Wörtern von mehreren Kandidatenspracherkennungsergebnissen erzeugt.
-
Wie hierin verwendet, bezieht sich der Ausdruck „Allgemeinzweck-Spracherkennungs-Engine“ auf eine Art von Spracherkennungs-Engine, die trainiert ist, einen breiten Bereich von Sprache aus einer natürlichen menschlichen Sprache, wie etwa Englisch oder Chinesisch, zu erkennen. Die Allgemeinzweck-Spracherkennungs-Engines erzeugen Spracherkennungsergebnisse basierend auf einem breiten Vokabular von Wörtern und einem Sprachmodell, das trainiert ist, linguistische Muster in einer natürlichen Sprache weitgehend abzudecken. Wie hierin verwendet, bezieht sich der Ausdruck „domänenspezifische Spracherkennungs-Engine“ auf eine Art von Spracherkennungs-Engine, die trainiert ist, Spracheingaben in einem speziellen Verwendungsbereich oder einer „Domäne“ zu erkennen, der bzw. die häufig ein Vokabular und grammatische Strukturen beinhaltet, das bzw. die sich von breiteren natürlichen Sprachen etwas unterscheidet bzw. potenziell anders erwartet werden. Das Vokabular für eine spezifische Domäne beinhaltet typischerweise manche Ausdrücke von einer breiteren natürlichen Sprache, kann aber ein begrenzteres Gesamtvokabular beinhalten, und beinhaltet in manchen Fällen spezialisierte Ausdrücke, die nicht offiziell als offizielle Wörter in einer natürlichen Sprache erkannt werden, aber für eine spezielle Domäne wohl bekannt sind. In einer Navigationsanwendung kann eine domänenspezifische Spracherkennung zum Beispiel Ausdrücke für Straßen, Städte oder andere geographische Bezeichnungen erkennen, die nicht typischerweise als Eigennamen in einer allgemeineren Sprache erkannt werden. Bei anderen Konfigurationen verwendet eine spezielle Domäne eine spezielle Menge an Jargon, der für eine spezielle Domäne nützlich ist, aber in einer breiteren Sprache möglicherweise nicht gut erkannt wird. Piloten verwenden zum Beispiel offiziell Englisch als eine Kommunikationssprache, setzen aber auch eine große Anzahl von domänenspezifischen Jargonwörtern und andere Abkürzungen ein, die nicht Teil des standardmäßigen Englisch sind.
-
Wie hierin verwendet, bezieht sich der Ausdruck „Auslösepaar“ auf zwei Wörter, die jeweils entweder ein Wort (z. B. „abspielen“) oder eine vorbestimmte Klasse (z. B. <Liedname>) sein können, die eine Wortsequenz (z. B. „Poker Face“) repräsentieren, die in die vorbestimmte Klasse, wie etwa den Eigennamen eines Liedes, einer Person, Ortsname usw., fällt. Wörter im Auslösepaar, die, wenn sie in einer spezifischen Reihenfolge in Wörtern im Satztextinhalt eines Spracherkennungsergebnisses auftreten, besitzen einen hohen Grad an Korrelation zwischen dem Auftreten eines späteren Wortes B in Situationen, in denen ein früheres Wort A in Audioeingabedaten für ein Auslösepaar von A →B beobachtet wird. Wie unten ausführlicher beschrieben, bildet, nach einer Identifikation einer Menge von Auslösepaaren über einen Trainingsprozess, das Auftreten von Auslösewortpaaren im Text von Kandidatenspracherkennungsergebnissen einen Teil eines Merkmalsvektors für jedes Kandidatenergebnis, den ein Einstufungsprozess verwendet, um unterschiedliche Kandidatenspracherkennungsergebnisse einzustufen.
-
Inferenzsystem und Einstufungsprozess unter Verwendung einer trainierten Neuronales-Netzwerk-Einstufungsvorrichtung
-
1 bildet ein fahrzeuginternes Informationssystem 100 ab, das ein Head-Up-Display (HUD) 120, ein oder mehrere Konsolen-LCD-Felder 124, ein oder mehrere Eingabemikrofone 128 und einen oder mehrere Ausgabelautsprecher 132 beinhaltet. Die LCD-Anzeige 124 und das HUD 120 erzeugen visuelle Ausgaberückmeldungen vom System 100 zumindest teilweise basierend auf Spracheingabebefehlen, die das System 100 von einem Betreiber oder einem anderen Insassen des Fahrzeugs empfängt. Eine Steuerung 148 ist funktionsfähig mit jeder der Komponenten im fahrzeuginternen Informationssystem 100 verbunden. Bei manchen Ausführungsformen ist die Steuerung 148 mit zusätzlichen Komponenten, wie etwa einem Empfänger 152 eines globalen Positionierungssystems (GPS) und einer drahtlosen Netzwerkeinrichtung 154, verbunden oder integriert diese, um Navigation und Kommunikation mit externen Datennetzwerken und Recheneinrichtungen bereitzustellen.
-
In manchen Betriebsmodi arbeitet das fahrzeuginterne Informationssystem 100 unabhängig, während das fahrzeuginterne Informationssystem 100 in anderen Betriebsmodi mit einer mobilen elektronischen Einrichtung, wie etwa einem Smartphone 170, einem Tablet, einem Notebook-Computer oder einer anderen elektronischen Einrichtung, interagiert. Das fahrzeuginterne Informationssystem kommuniziert mit dem Smartphone 170 unter Verwendung einer verdrahteten Schnittstelle, wie etwa USB, oder einer drahtlosen Schnittstelle, wie etwa Bluetooth. Das fahrzeuginterne Informationssystem 100 stellt eine Spracherkennungsbenutzerschnittstelle bereit, die dem Betreiber ermöglicht, das Smartphone 170 oder eine andere mobile elektronische Kommunikationseinrichtung unter Verwendung von gesprochenen Befehlen zu steuern, die eine Ablenkung während des Betreibens des Fahrzeugs reduzieren. Das fahrzeuginterne Informationssystem 100 stellt zum Beispiel eine Sprachschnittstelle bereit, um dem Fahrzeugbetreiber zu ermöglichen, mit dem Smartphone 170 Telefonanrufe zu tätigen oder Textnachrichten zu senden, ohne zu erfordern, dass der Betreiber das Smartphone 170 hält oder darauf schaut. Bei manchen Ausführungsformen beinhaltet das Smartphone 170 verschiedene Einrichtungen, wie etwa GPS- und drahtlose Vernetzungseinrichtungen, die die Funktionalität von Einrichtungen, die im Fahrzeug untergebracht sind, komplementieren oder ersetzen.
-
Das Mikrofon 128 erzeugt Audiodaten aus einer gesprochenen Eingabe, die vom Fahrzeugbetreiber oder einem anderen Fahrzeugmitfahrer empfangen wird. Die Steuerung 148 beinhaltet Hardware, wie etwa DSPs, die die Audiodaten verarbeiten, und Softwarekomponenten, um die Eingangssignale vom Mikrofon 128 in Audioeingabedaten umzuwandeln. Wie unten dargelegt, verwendet die Steuerung 148 mindestens eine Allgemeinzweck- und mindestens eine domänenspezifische Spracherkennungs-Engine, um Kandidatenspracherkennungsergebnisse basierend auf den Audioeingabedaten zu erzeugen, und die Steuerung 148 verwendet ferner eine Einstufungsvorrichtung, um die Genauigkeit der endgültigen Spracherkennungsergebnisausgabe zu verbessern. Zusätzlich dazu beinhaltet die Steuerung 148 Hardware- und Softwarekomponenten, die eine Erzeugung von synthetisierter Sprache oder einer anderen Audioausgabe durch die Lautsprecher 132 ermöglichen.
-
Das fahrzeuginterne Informationssystem 100 liefert eine visuelle Rückmeldung zum Fahrzeugbetreiber unter Verwendung des LCD-Feldes 124, des HUD 120, das auf die Windschutzscheibe 102 projiziert wird, und durch Messinstrumente, Indikatorlichter oder zusätzliche LCD-Felder, die sich im Armaturenbrett 108 befinden. Wenn sich das Fahrzeug in Bewegung befindet, deaktiviert die Steuerung 148 optional das LCD-Feld 124 oder zeigt nur eine vereinfachte Ausgabe über das LCD-Feld 124 an, um eine Ablenkung des Fahrzeugbetreibers zu reduzieren. Die Steuerung 148 zeigt eine visuelle Rückmeldung unter Verwendung des HUD 120 an, um dem Betreiber zu ermöglichen, die Umgebung um das Fahrzeug herum anzusehen, während er eine visuelle Rückmeldung empfängt. Die Steuerung 148 zeigt typischerweise vereinfachte Daten auf dem HUD 120 in einem Gebiet an, das dem peripheren Sichtfeld des Fahrzeugbetreibers entspricht, um zu gewährleisten, dass der Fahrzeugbetreiber eine uneingeschränkte Sicht auf die Straße und Umgebung um das Fahrzeug hat.
-
Wie oben beschrieben, zeigt das HUD 120 visuelle Informationen auf einem Teil der Windschutzscheibe 120 an. Wie hierin verwendet, bezieht sich der Ausdruck „HUD“ allgemein auf einen breiten Bereich von Head-Up-Display-Einrichtungen, einschließlich unter anderem kombinierter Head-Up-Displays (CHUDs), die ein separates Kombiniererelement beinhalten, und dergleichen. Bei manchen Ausführungsformen zeigt das HUD 120 monochromatischen Text und monochromatische Grafiken an, während andere HUD-Ausführungsformen mehrfarbige Anzeigen beinhalten. Obwohl das HUD 120 als auf der Windschutzscheibe 102 angezeigt abgebildet ist, ist eine Head-Up-Einheit bei alternativen Ausführungsformen mit einer Brille, einem Helmvisier oder einer Fadenkreuz-Einheit integriert, die bzw. das der Betreiber während des Betriebs trägt.
-
Die Steuerung 148 beinhaltet eine oder mehrere integrierte Schaltungen, die als eine/ein Zentralverarbeitungseinheit (CPU: Central Processing Unit), grafische Verarbeitungseinheit (GPU: Graphical Processing Unit), Mikrocontroller, feldprogrammierbares Gate-Array (FPGA: Field Programmable Gate Array), anwendungsspezifische integrierte Schaltung (ASIC: Application Specific Integrated Circuit), Digitalsignalprozessor (DSP) oder als eine Kombination davon oder als eine beliebige andere geeignete digitale Logikeinrichtung konfiguriert sind. Die Steuerung 148 beinhaltet außerdem einen Speicher, wie etwa eine Festkörper- oder magnetische Datenspeicherungseinrichtung, die programmierte Anweisungen für den Betrieb des fahrzeuginternen Informationssystems 100 speichert.
-
Während des Betriebs empfängt das fahrzeuginterne Informationssystem 100 Eingabeanforderungen von mehreren Eingabeeinrichtungen, einschließlich Spracheingabebefehlen, die über das Mikrofon 128 empfangen werden. Insbesondere empfängt die Steuerung 148 Audioeingabedaten, die Sprache von einem Benutzer entsprechen, über das Mikrofon 128.
-
Die Steuerung 148 beinhaltet eine oder mehrere integrierte Schaltungen, die als eine Zentralverarbeitungseinheit (CPU: Central Processing Unit), ein Mikrocontroller, ein feldprogrammierbares Gate-Array (FPGA: Field Programmable Gate Array), eine anwendungsspezifische integrierte Schaltung (ASIC: Application Specific Integrated Circuit), ein Digitalsignalprozessor (DSP) oder eine beliebige andere geeignete digitale Logikeinrichtung konfiguriert sind. Die Steuerung 148 ist außerdem funktionsfähig mit einem Speicher 160 verbunden, der eine nichtflüchtige Festkörper- oder magnetische Datenspeicherungseinrichtung und eine flüchtige Datenspeicherungseinrichtung, wie etwa einen Direktzugriffsspeicher (RAM Random Access Memory), beinhaltet, die programmierte Anweisungen für den Betrieb des fahrzeuginternen Informationssystems 100 speichert. Der Speicher 160 speichert Modelldaten und ausführbaren Programmanweisungscode und Daten zum Implementieren mehrerer Spracherkennungs-Engines 162, eines Merkmalsextraktors 164 und einer Tiefes-Neuronales-Netzwerk-Einstufungsvorrichtung 166. Die Spracherkennungs-Engines 162 werden unter Verwendung eines vorbestimmten Trainingsprozesses trainiert und die Spracherkennungs-Engines 162 sind anderweitig im Stand der Technik bekannt. Obwohl die Ausführungsform von 1 Elemente beinhaltet, die im Speicher 160 des Systems 100 in einem Kraftfahrzeug gespeichert sind, implementiert bei manchen Ausführungsformen eine externe Recheneinrichtung, wie etwa ein netzwerkverbundener Server, manche oder alle der Merkmale, die im System 100 abgebildet sind. Somit werden Fachleute erkennen, dass eine beliebige Referenz auf den Betrieb des Systems 100, das die Steuerung 148 und den Speicher 160 beinhaltet, bei alternativen Ausführungsformen des Systems 100 ferner den Betrieb der Serverrecheneinrichtungen und anderer verteilter Rechenkomponenten beinhalten sollte.
-
Bei der Ausführungsform von 1 ist der Merkmalsextraktor 164 dazu ausgelegt, einen Merkmalsvektor mit mehreren numerischen Elementen zu erzeugen, die den Inhalten jedes Kandidatenspracherkennungsergebnisses entsprechen, einschließlich der Spracherkennungsergebnisse, die durch eine der Spracherkennungs-Engines 162 erzeugt werden oder hybrider Spracherkennungsergebnisse, die Wörter von zwei oder mehr der Spracherkennungs-Engines 162 kombinieren. Der Merkmalsextraktor 164 erzeugt einen Merkmalsvektor einschließlich Elemente für ein beliebiges oder eine Kombination der folgenden Merkmale: (a) Auslösepaare, (b) Konfidenzbewertungen und (c) individuelle Wortebene-Merkmale einschließlich Bag-of-Words-mit-Abklingen-Merkmalen.
-
Im System 100 beinhalten die Auslösepaare, die im Merkmalsextraktor 164 gespeichert sind, jeweils eine vorbestimmte Menge von zwei Wörtern, die zuvor als eine starke Korrelation in Spracheingabesequenzen von einem Trainings-Korpus, der die Struktur von erwarteten Spracheingaben repräsentiert, aufweisend identifiziert worden sind. Ein erstes Auslösewort besitzt eine hohe statistische Wahrscheinlichkeit, dass ihm ein zweites Auslösewort im Auslösepaar in einer Spracheingabe folgt, obwohl die Wörter in unterschiedlichen Spracheingaben durch eine unbestimmte Anzahl von Zwischenwörtern getrennt sein können. Falls somit ein Spracherkennungsergebnis die Auslösewörter enthält, ist die Wahrscheinlichkeit, dass diese Auslösewörter im Spracherkennungsergebnis genau sind, aufgrund der statistischen Korrelation zwischen dem ersten und zweiten Auslösewort vergleichsweise hoch. Im System 100 werden die Auslösewörter basierend auf einer gegenseitigen Informationsbewertung unter Verwendung von statistischen Verfahren, die im Stand der Technik bekannt sind, erzeugt. Der Speicher 160 speichert eine vorbestimmte Menge von N Auslösepaarelementen im Merkmalsvektor, die Auslösepaaren mit hohen Korrelationsgraden zwischen dem ersten Wort und dem zweiten Wort basierend auf Mengen von Auslösewörtern mit hohen gegenseitigen Informationsbewertungen entsprechen. Wie unten beschrieben, liefern die Auslösewortpaare zusätzliche Merkmale von Spracherkennungsergebnissen zu der Neuronales-Netzwerk-Einstufungsvorrichtung 166, die der Neuronales-Netzwerk-Einstufungsvorrichtung 166 ermöglichen, die Spracherkennungsergebnisse unter Verwendung zusätzlicher Merkmale der Spracherkennungsergebnisse, die über die Wörter hinausgehen, die im Spracherkennungsergebnis vorhanden sind, einzustufen.
-
Die Konfidenzbewertungsmerkmale entsprechen numerischen Konfidenzbewertungswerten, die die Spracherkennungs-Engines 162 in Verbindung mit jedem Kandidatenspracherkennungsergebnis erzeugen. Bei einer Konfiguration gibt zum Beispiel ein numerischer Wert im Bereich von (0,0, 1,0) ein probalistisches Konfidenzniveau an, das eine Spracherkennungs-Engine auf die Genauigkeit eines speziellen Kandidatenspracherkennungsergebnisses legt, von der niedrigsten Konfidenz (0,0) zur höchsten Konfidenz (1,0). Jedem der hybriden Kandidatenspracherkennungsergebnisse, das Wörter von zwei oder mehr Spracherkennungs-Engines enthält, wird eine Konfidenzbewertung zugewiesen, die ein normierter Mittelwert der Konfidenzbewertungen der Kandidatenspracherkennungsergebnisse ist, die die Steuerung 148 zum Erzeugen des anvisierten hybriden Spracherkennungsergebnisses verwendet.
-
Im System 100 normiert die Steuerung 148 außerdem Konfidenzbewertungswerte für Spracherkennungsergebnisse, die durch unterschiedliche Spracherkennungs-Engines erzeugt werden, und führt Whitening an diesen durch, um die endgültigen Merkmalsvektorelemente einschließlich normierter Konfidenzbewertungen, an denen Whitening durchgeführt wurde, zu erzeugen, die zwischen den Ausgaben der mehreren Spracherkennungs-Engines 162 einheitlich sind. Die Steuerung 148 normiert die Konfidenzbewertungen unterschiedlicher Spracherkennungs-Engines unter Verwendung einer Normierungsprozedur und wendet dann ein Whitening an den normierten Konfidenzbewertungswerten gemäß dem Mittelwert und der Varianz, die an den Trainingsdaten unter Verwendung einer Whitening-Technik des Stands der Technik geschätzt werden, an. Bei einer Ausführungsform normiert die Steuerung 148 die Konfidenzbewertungen zwischen unterschiedlichen Spracherkennungs-Engines unter Verwendung eines linearen Regressionsprozesses. Die Steuerung 148 unterteilt zuerst die Konfidenzbewertungsbereiche in eine vorbestimmte Anzahl von Unterteilungen oder „Bins“, wie etwa zwanzig eindeutige Bins für die beiden Spracherkennungs-Engines A und B. Die Steuerung 148 identifiziert dann die tatsächlichen Genauigkeitsraten für verschiedene Spracherkennungsergebnisse, die jedem Bin von Bewertungen entsprechen, basierend auf den beobachteten Spracherkennungsergebnissen und den tatsächlichen zugrundeliegenden Eingaben, die während des Trainingsprozesses vor dem Prozess 200 verwendet wurden. Die Steuerung 148 führt eine Clustering-Operation der Konfidenzbewertungen innerhalb vorbestimmter numerischer Fenster um „Ränder“, die Bins für jede Menge von Ergebnissen von den unterschiedlichen Spracherkennungs-Engines trennen, und identifiziert eine durchschnittliche Genauigkeitsbewertung, die jedem Randkonfidenzbewertungswert entspricht. Die „Rand“-Konfidenzbewertungen werden entlang des Konfidenzbewertungsbereichs jeder Spracherkennungs-Engine gleichmäßig verteilt und stellen eine vorbestimmte Anzahl von Vergleichspunkten bereit, um eine lineare Regression durchzuführen, die die Konfidenzbewertungen einer ersten Spracherkennungs-Engine auf Konfidenzbewertungen einer anderen Spracherkennungs-Engine, die ähnliche Genauigkeitsraten aufweisen, abbildet.
-
Die Steuerung
148 verwendet die identifizierten Genauigkeitsdaten für jede Randbewertung, um eine lineare Regressionsabbildung durchzuführen, die der Steuerung
148 ermöglicht, eine Konfidenzbewertung von einer ersten Spracherkennungs-Engine zu einem anderen Konfidenzbewertungswert umzuwandeln, der einer äquivalenten Konfidenzbewertung von einer zweiten Spracherkennungs-Engine entspricht. Das Abbilden einer Konfidenzbewertung von einer ersten Spracherkennungs-Engine zu einer anderen Konfidenzbewertung von einer anderen Spracherkennung wird auch als ein Bewertungsabgleichprozess bezeichnet, und bei manchen Ausführungsformen bestimmt die Steuerung
148 eine Abgleichung einer Konfidenzbewertung von einer ersten Spracherkennungs-Engine mit einer zweiten Spracherkennungs-Engine unter Verwendung der folgenden Gleichung:
Wobei x die Bewertung von der ersten Spracherkennungs-Engine ist, x' der äquivalente Wert von x innerhalb des Konfidenzbewertungsbereichs der zweiten Spracherkennungs-Engine ist, die Werte e
i und e
i+1 den geschätzten Genauigkeitsbewertungen für unterschiedliche Randwerte entsprechen, die dem Wert x für die erste Spracherkennungs-Engine am nächsten liegen (z. B. den geschätzten Genauigkeitsbewertungen für Randwerte
20 und
25 um eine Konfidenzbewertung von 22 herum) und die Werte e
i' und e
i+1' den geschätzten Genauigkeitsbewertungen bei denselben relativen Randwerten für die zweite Spracherkennungs-Engine entsprechen.
-
Bei manchen Ausführungsformen speichert die Steuerung 148 die Ergebnisse der linearen Regression im Merkmalsextraktor 164 im Speicher 160 als eine Nachschlagetabelle oder eine andere geeignete Datenstruktur, um eine effiziente Normierung von Konfidenzbewertungen zwischen den unterschiedlichen Spracherkennungs-Engines 162 zu ermöglichen, ohne die lineare Regression für jeden Vergleich erneut erzeugen zu müssen.
-
Die Steuerung 148 verwendet auch den Merkmalsextraktor 164, um Wortebene-Merkmale in den Kandidatenspracherkennungsergebnissen zu identifizieren. Die Wortebene-Merkmale entsprechen Daten, die die Steuerung 148 in Elemente eines Merkmalsvektors platziert, die den Charakteristiken individueller Wörter in den Kandidatenspracherkennungsergebnissen entsprechen. Bei einer Ausführungsform identifiziert die Steuerung 148 lediglich das Vorhandensein oder Nichtvorhandensein mehrerer vorbestimmter vokabularinterner Wörter, die individuellen Elementen eines vorbestimmten Merkmalsvektors entsprechen, in jedem Kandidatenspracherkennungsergebnis. Falls das Wort „Straße“ mindestens einmal im Kandidatenspracherkennungsergebnis auftritt, dann setzt die Steuerung 148 zum Beispiel den Wert des entsprechenden Elements im Merkmalsvektor während des Merkmalsextraktionsprozesses auf 1. Bei einer anderen Ausführungsform identifiziert die Steuerung 148 die Häufigkeit jedes Wortes, wobei sich „Häufigkeit“, wie hierin verwendet, auf die Anzahl von Malen bezieht, die ein einzelnes Wort in einem Kandidatenspracherkennungsergebnis auftritt. Die Steuerung 148 platziert die Anzahl von Vorkommnissen des Wortes in das entsprechende Element des Merkmalsvektors.
-
Bei noch einer anderen Ausführungsform erzeugt der Merkmalsextraktor 164 ein „Bagof-Words-mit-Abklingen (Bag-of-Words with Decay)-Merkmal“ für das Element im Merkmalsvektor, das jedem Wort in einem vorbestimmten Vokabular entspricht. Der Ausdruck „Bag-of-Words-mit-Abklingen“-Merkmal, wie hierin verwendet, bezieht sich auf eine numerische Bewertung, die die Steuerung 148 jedem Wort in dem vorbestimmten Vokabular angesichts eines Kandidatenspracherkennungsergebnisses basierend auf den Malen des Auftretens und der Positionen des Wortes im Ergebnis zuweist. Die Steuerung 148 erzeugt die Bag-of-Words-mit-Abklingen-Bewertung für jedes Wort im Kandidatenspracherkennungsergebnis, das im vorbestimmten Vokabular liegt, und weist der Bag-of-Words-mit-Abklingen-Bewertung Null für jene vokabularinternen Wörter zu, die nicht im Kandidatenergebnis auftreten. Bei manchen Ausführungsformen beinhaltet das vorbestimmte Vokabular einen speziellen Eintrag, um jegliche vokabularexternen Wörter zu repräsentieren, und die Steuerung 148 erzeugt auch eine einzelne Bag-of-Words-mit-Abklingen-Bewertung für den speziellen Eintrag basierend auf allen vokabularexternen Wörter im Kandidatenergebnis. Für ein gegebenes Wort wi in einem vorbestimmten Wörterbuch ist die Bag-of-Words-mit-Abklingen-Bewertung: bowi = ∑p∈P'(wi)γp, wobei P'(wi) die Menge von Positionen im Kandidatenspracherkennungsergebnis ist, an denen das Wort wi auftritt, und der Ausdruck γ ein vorbestimmter numerischer Abklingfaktor in einem Bereich von (0, 1,0) ist, das heißt zum Beispiel im veranschaulichten Beispiel des Systems 100 auf 0,9 gesetzt ist.
-
5 bildet ein Beispiel für die Struktur eines Merkmalsvektors 500 ausführlicher ab. Der Merkmalsvektor 500 beinhaltet mehrere Elemente, die Auslösepaarmerkmalen 504 entsprechen, ein Konfidenzbewertungselement 508 und mehrere andere Elemente, die den Wortebene-Merkmalen 512 entsprechen, die in 5 als Bag-of-Words-mit-Abklingen-Merkmale abgebildet sind. Im Merkmalsvektor 500 beinhalten die Auslösewortpaarmerkmale 504 ein Element für jedes der vorbestimmten Auslösepaare, wobei ein Wert von „0“ angibt, dass das Auslösepaar nicht im Kandidatenspracherkennungsergebnis vorhanden ist, und ein Wert von „1“ angibt, dass das Auslösepaar im Kandidatenspracherkennungsergebnis vorhanden ist. Das Konfidenzbewertungselement 508 ist ein einzelnes Element, das den numerischen Konfidenzbewertungswert beinhaltet, der durch die entsprechende Spracherkennungs-Engine 162 oder eine Kombination von Spracherkennungs-Engines für hybride Spracherkennungsergebnisse erzeugt wird. Die Wortebene-Merkmalselemente 512 beinhalten ein Array von Elementen, die jeweils einem speziellen Wort in einem vorbestimmten Vokabular entsprechen. Bei einer Ausführungsform beinhaltet zum Beispiel ein vorbestimmtes Wörterbuch für eine Sprache (z. B. Englisch oder Chinesisch) Wörter, die jeweils auf eines der Wortebene-Elemente 512 abgebildet sind. Bei einer Ausführungsform, die unten ausführlicher beschrieben ist, erzeugt ein Trainingsprozess ein Vokabular von Wörtern basierend auf der Häufigkeit des Auftretens der Wörter in einer großen Menge von Trainingsdaten, wobei die Wörter, die mit der höchsten Häufigkeit (z. B. die 90 % von Wörtern mit der höchsten Häufigkeit) im Trainingsdatensatz auftreten, auf die Wortebene-Elemente 512 in der Struktur des Merkmalsvektors 500 abgebildet werden.
-
Die präzise Reihenfolge von Merkmalsvektorelementen, die im Merkmalsvektor 500 abgebildet ist, ist keine Anforderung zum Repräsentieren des Auslösepaares, der Konfidenzbewertung und der Wortebene-Merkmale. Stattdessen ist eine beliebige Ordnung der Elemente im Merkmalsvektor 500 zulässig, solange die Merkmalsvektoren für alle Kandidatenspracherkennungsergebnisse unter Verwendung einer konsistenten Struktur erzeugt werden, bei der jedes Element dasselbe Auslösepaar, dieselbe Konfidenzbewertung oder dasselbe Wortebene-Merkmal unter allen Kandidatenspracherkennungsergebnissen repräsentiert.
-
Wiederum unter Bezugnahme auf 1 ist die Neuronales-Netzwerk-Einstufungsvorrichtung 166 bei der Ausführungsform von 1 ein trainiertes neuronales Netzwerk einschließlich einer Eingabeschicht von Neuronen, die mehrere Merkmalsvektoren empfängt, die einer vorbestimmten Anzahl von Kandidatenspracherkennungsergebnissen entsprechen, und einer Ausgabeschicht von Neuronen, die Einstufungsbewertungen erzeugt, die jedem der Eingabemerkmalsvektoren entsprechen. Im Allgemeinen beinhalten neuronale Netzwerke mehrere Knoten, die als „Neuronen“ bezeichnet werden. Jedes Neuron empfängt mindestens einen Eingabewert, wendet einen vorbestimmten Gewichtungsfaktor an dem Eingabewert an, wobei unterschiedliche Eingabewerte häufig unterschiedliche Gewichtungsfaktoren erhalten, und erzeugt eine Ausgabe als eine Summe der gewichteten Eingabe mit einem optionalen Bias-Faktor, der bei manchen Ausführungsformen zu der Summe addiert wird. Die präzisen Gewichtungsfaktoren für jede Eingabe und der optionale Bias-Wert in jedem Neuron werden während eines Trainingsprozesses erzeugt, der unten ausführlicher beschrieben ist. Eine Ausgabeschicht des neuronalen Netzwerks beinhaltet eine andere Menge von Neuronen, die während eines Trainingsprozesses spezifisch mit einer „Aktivierungsfunktion“ konfiguriert sind. Die Aktivierungsfunktion ist zum Beispiel eine Sigmoidfunktion oder eine andere Schwellenfunktion, die einen Ausgabewert basierend auf den Eingaben von einer finalen verdeckten Schicht von Neuronen im neuronalen Netzwerk erzeugt, wobei die präzisen Parameter der Sigmoidfunktion oder die Schwellenwerte während eines Trainingsprozesses des neuronalen Netzwerks erzeugt werden.
-
Bei der spezifischen Konfiguration von 1 ist die Neuronales-Netzwerk-Einstufungsvorrichtung 166 ein vorwärtsgekoppeltes tiefes neuronales Netzwerk, und 5 beinhaltet eine veranschaulichende Abbildung eines vorwärtsgekoppelten tiefen neuronalen Netzwerks 550. Wie im Stand der Technik bekannt ist, beinhaltet ein vorwärtsgekoppeltes neuronales Netzwerk Schichten von Neuronen, die in einer einzigen Richtung verbunden sind, angefangen von einer Eingabeschicht (Schicht554) zu einer Ausgabeschicht (Schicht 566) ohne jegliche Rekurrenz oder „Rückkopplungs“-Schleifen, die Neuronen in einer Schicht des neuronalen Netzwerks mit Neuronen in einer vorherigen Schicht des neuronalen Netzwerks verbinden. Ein tiefes neuronales Netzwerk beinhaltet mindestens eine „verdeckte Schicht“ (und typischerweise mehr als eine verdeckte Schicht) von Neuronen, die weder als die Eingabeschicht noch als die Ausgabeschicht aufgedeckt sind. In dem neuronalen Netzwerk 550 verbinden mehrere k verdeckte Schichten von Neuronen 562 die Eingabeschicht 554 mit der Ausgabeschicht 566.
-
Bei der Ausführungsform des neuronalen Netzwerks 550 beinhaltet die Eingabeschicht ferner eine Projektionsschicht 558, die vorbestimmte Matrixtransformationen an ausgewählten Mengen von Eingabemerkmalsvektorelementen anwendet, einschließlich zwei unterschiedlicher Projektionsmatrizen für die Auslösepaarelemente 504 bzw. die Wortebene-Merkmalselemente 512. Die Projektionsschicht 558 erzeugt eine vereinfachte Repräsentation der Ausgaben der Eingabeneuronen in der Eingabeschicht 554, da in den meisten praktischen Eingaben die Merkmalsvektorelemente für die Auslösepaare 504 und die Wortebene-Merkmale 512 „dünn besetzt“ sind, was bedeutet, dass jedes Kandidatenspracherkennungsergebnis nur eine kleine Anzahl (wenn überhaupt) der Auslösepaarausdrücke und eine kleine Anzahl von Wörtern in einer großen Gesamtmenge von Wörtern (z. B. 10.000 Wörter) beinhaltet, die in der Struktur des Merkmalsvektors 500 codiert sind. Die Transformationen in der Projektionsschicht 558 ermöglichen den verbleibenden Schichten des neuronalen Netzwerks 550, weniger Neuronen zu enthalten, während weiterhin nützliche Einstufungsbewertungen für die Merkmalsvektoreingaben der Kandidatenspracherkennungsergebnisse erzeugt werden. Bei einer veranschaulichenden Ausführungsform projizieren die beiden Projektionsmatrizen Pf für Auslösewortpaare und Pw für Wortebene-Merkmale jeweils die entsprechenden Eingabeneuronen in einen kleineren Vektorraum mit jeweils 200 Elementen, was eine projizierte Schicht von 401 Neuronen (wobei ein Neuron für das Konfidenzbewertungsmerkmal reserviert ist) für jeden der n Eingabemerkmalsvektoren in der Neuronales-Netzwerk-Einstufungsvorrichtung 166 erzeugt.
-
Obwohl 5 das neuronale Netzwerk 550 mit insgesamt n Eingabeslots für die Merkmalsvektoren abbildet, die n unterschiedlichen Kandidatenspracherkennungsergebnissen entsprechen, beinhaltet die Anzahl von Eingabeneuronen in die Eingabeschicht 554 ein Neuron für jedes Element im Merkmalsvektor für das Kandidatenspracherkennungsergebnis oder eine Gesamtanzahl von n(T + [0.9V] + 2) Neuronen, wobei T die Anzahl von vorbestimmten Auslösepaaren ist, die in den Kandidatenspracherkennungsergebnissen identifiziert werden, und V die Anzahl von Wörtern ist, die in dem Vokabular von erkannten Wörtern auftreten, wobei der Koeffizient von 0,9, der die Filterung des Trainingssatzes repräsentiert, nur die 90 % von Wörtern enthalten soll, die mit der höchsten Häufigkeit auftreten, wie oben beschrieben ist. Der feste Wert 2 repräsentiert ein Eingabeneuron für den Konfidenzbewertungswert und ein anderes Eingabeneuron, das als eine Auffangeingabe für beliebige Wortebene-Merkmale agiert, die nicht den vorbestimmten Wortebene-Elementen des Eingabemerkmalsvektors entsprechen, wie etwa beliebige Vokabular externe Wörter, die nicht ausdrücklich in der Neuronales-Netzwerk-Einstufungsvorrichtung 166 modelliert werden. Die Steuerung 148 erzeugt zum Beispiel den Merkmalsvektor unter Verwendung des Merkmalsextraktors 164, um eine Bag-of-Words-mit-Abklingen-Bewertung für beliebige Wörter in einem Kandidatenspracherkennungsergebnis zu erzeugen, die nicht mit einem Element in der vorbestimmten Struktur des Merkmalsvektors abgeglichen werden können. Das Element im Merkmalsvektor, das den vokabularexternen Wörtern entspricht, ermöglicht der Neuronales-Netzwerk-Einstufungsvorrichtung 166, das Vorhandensein beliebiger Wörter, die nicht in einem Standardvokabular enthalten sind, in die Erzeugung der Einstufungsbewertung für beliebige Kandidatenspracherkennungsergebnisse einzuschließen, die die vokabularexternen Wörter beinhalten.
-
Die Ausgabeschicht 566 beinhaltet weniger Ausgabeneuronen als die Eingabeschicht 554. Insbesondere beinhaltet die Ausgabeschicht 566 n Ausgabeneuronen, wobei jedes Ausgabeneuron eine numerische Einstufungsbewertung für einen entsprechenden der n Eingabemerkmalsvektoren während eines Inferenzprozesses erzeugt, der in der spezifischen Konfiguration des Systems 100 ein Einstufungsprozess zum Erzeugen von Einstufungsbewertungen für die Merkmalsvektoren ist, die den mehreren Kandidatenspracherkennungsergebnissen entsprechen. Manche Hardwareausführungsformen der Steuerung 148 beinhalten eine oder mehrere Recheneinheiten in einer GPU oder anderen spezifischen Hardwarebeschleunigerkomponenten zum Durchführen des Inferenzprozesses auf eine zeit- und leistungseffiziente Art und Weise. Bei anderen Ausführungsformen beinhaltet das System 100 ferner zusätzliche digitale Logikverarbeitungshardware, die in einem Fernserver integriert ist, auf den die Steuerung 148 unter Verwendung der drahtlosen Netzwerkeinrichtung 154 und eines Datennetzwerks zugreift. Bei manchen Ausführungsformen implementiert die Hardware im Fernserver auch einen Teil der Funktionalität für die mehreren Spracherkennungs-Engines 162. Der Server beinhaltet zusätzliche Verarbeitungshardware zum Durchführen der gesamten oder eines Teils der Merkmalsextraktions- und Neuronales-Netzwerk-Inferenzverarbeitung, um die Merkmalsvektoren und die Einstufungsbewertungen der mehreren Kandidatenspracherkennungsergebnisse zu erzeugen.
-
Während des Betriebs empfängt das System 100 Audioeingabedaten unter Verwendung des Mikrofons 128 und verwendet die mehreren Sprach-Engines 162, um mehrere Kandidatenspracherkennungsergebnisse zu erzeugen, einschließlich hybrider Spracherkennungsergebnisse, die Wörter beinhalten, die bei manchen Ausführungsformen aus zwei oder mehr der Kandidatenspracherkennungsergebnisse ausgewählt werden. Die Steuerung 148 extrahiert Merkmale aus den Kandidatenspracherkennungsergebnissen unter Verwendung des Merkmalsextraktors 164, um die Merkmalsvektoren aus den Kandidatenspracherkennungsergebnissen zu erzeugen, und stellt die Merkmalsvektoren der Neuronales-Netzwerk-Einstufungsvorrichtung 166 bereit, um Ausgabebewertungen für jeden Merkmalsvektor zu erzeugen. Die Steuerung 148 identifiziert dann den Merkmalsvektor und das Kandidatenspracherkennungsergebnis, das der höchsten Einstufungsbewertung entspricht, und die Steuerung 148 betreibt das automatisierte System unter Verwendung des Kandidatenspracherkennungsergebnisses in den mehreren Kandidatenspracherkennungsergebnissen, das einer höchsten Einstufungsbewertung in den mehreren Einstufungsbewertungen entspricht, als Eingabe.
-
2 bildet einen Prozess 200 zum Durchführen einer Spracherkennung unter Verwendung mehrerer Spracherkennungs-Engines und einer Neuronales-Netzwerk-Einstufungsvorrichtung zum Auswählen eines Kandidatenspracherkennungsergebnisses ab. In der untenstehenden Beschreibung bezieht sich eine Referenz auf den Prozess 200, der eine Funktion oder Handlung durchführt, auf den Betrieb einer Steuerung zum Ausführen von gespeicherten Programmanweisungen, um die Funktion oder Handlung in Assoziation mit anderen Komponenten im automatisierten System durchzuführen. Der Prozess 200 ist für veranschaulichende Zwecke in Verbindung mit dem System 100 von 1 beschrieben.
-
Der Prozess 200 beginnt, wenn das System 100 mehrere Kandidatenspracherkennungsergebnisse unter Verwendung der mehreren Spracherkennungs-Engines 162 erzeugt (Block 204). Im System 100 stellt ein Benutzer eine gesprochene Audioeingabe an eine Audioeingabeeinrichtung, wie etwa das Mikrofon 128, bereit. Die Steuerung 148 verwendet die mehreren Spracherkennungs-Engines 162, um mehrere Kandidatenspracherkennungsergebnisse zu erzeugen. Wie oben beschrieben, erzeugt die Steuerung 148 bei manchen Ausführungsformen hybride Kandidatenspracherkennungsergebnisse unter Verwendung von ausgewählten Wörtern vom Kandidatenspracherkennungsergebnis einer domänenspezifischen Spracherkennungs-Engine, um ausgewählte Wörter im Kandidatenspracherkennungsergebnis einer Allgemeinzweck-Spracherkennungs-Engine zu ersetzen. Die Spracherkennungs-Engines 162 erzeugen auch Konfidenzbewertungsdaten, die das System 100 während der Merkmalsvektorerzeugung im Prozess 200 verwendet.
-
Der Prozess 200 fährt fort, wenn das System 100 eine Merkmalsextraktion durchführt, um mehrere Merkmalsvektoren zu erzeugen, die jeweils einem der Kandidatenspracherkennungsergebnisse entsprechen (Block 208). Im System 100 verwendet die Steuerung 148 den Merkmalsextraktor 164, um Merkmalsvektoren zu erzeugen, die das Auslösepaar und/oder die Konfidenzbewertung und/oder Wortebene-Merkmale, die oben beschrieben sind, beinhalten, um einen Merkmalsvektor mit der Struktur des Merkmalsvektors 500 in 5 oder einer anderen ähnlichen Struktur für das Auslösepaar und/oder die Konfidenzbewertung und/oder Wortebene-Merkmale zu erzeugen. Bei der Ausführungsform von 2 erzeugt die Steuerung 148 die Wortebene-Merkmale unter Verwendung der Bag-of-Words-mit-Abklingen-Matrix für die Wortebene-Merkmalselemente des Merkmalsvektors.
-
Der Prozess 200 fährt fort, wenn die Steuerung 148 die Merkmalsvektoren für die mehreren Kandidatenspracherkennungsergebnisse der Neuronales-Netzwerk-Einstufungsvorrichtung 166 als Eingaben in einen Inferenzprozess bereitstellt, um mehrere Einstufungsbewertungen zu erzeugen, die den mehreren Kandidatenspracherkennungsergebnissen entsprechen (Block 212). Bei einer Ausführungsform verwendet die Steuerung 148 die trainierte vorwärtsgekoppelte Tiefes-Neuronales-Netzwerk-Einstufungsvorrichtung 166 zum Erzeugen der mehreren Einstufungsbewertungen an den Ausgabeschichtneuronen des neuronalen Netzwerks unter Verwendung eines Inferenzprozesses. Wie oben beschrieben, überträgt die Steuerung 148 bei einer anderen Ausführungsform die Merkmalsvektordaten, Kandidatenspracherkennungsergebnisse oder eine codierte Version der aufgezeichneten Audiospracherkennungsdaten unter Verwendung der drahtlosen Netzwerkeinrichtung 154 zu einem externen Server, wobei ein Prozessor im Server einen Teil des Prozesses 200 durchführt, um die Einstufungsbewertungen der Kandidatenspracherkennungsergebnisse zu erzeugen.
-
In den meisten Fällen erzeugt die Steuerung 148 eine Anzahl von Kandidatenspracherkennungsergebnissen und entsprechende Merkmalsvektoren n, die mit der vorbestimmten Anzahl von n Merkmalsvektoreingaben übereinstimmen, die die Neuronales-Netzwerk-Einstufungsvorrichtung 166 konfiguriert ist, während eines Trainingsprozesses zu empfangen. In manchen Fällen, falls die Anzahl von Merkmalsvektoren für die Kandidatenspracherkennungsergebnisse geringer als die maximale Anzahl n ist, dann erzeugt die Steuerung 148 jedoch „leere“ Merkmalsvektoreingaben mit nur Nullwerten, um zu gewährleisten, dass alle der Neuronen in der Eingabeschicht der Neuronales-Netzwerk-Einstufungsvorrichtung 166 eine Eingabe empfangen. Die Steuerung 148 ignoriert die Bewertungen für die entsprechenden Ausgabeschichtneuronen für jede der leeren Eingaben, während das neuronale Netzwerk in der Einstufungsvorrichtung 166 Bewertungen für die nicht leeren Merkmalsvektoren der Kandidatensucherkennungsergebnisse erzeugt.
-
Der Prozess 200 fährt fort, wenn die Steuerung 148 das Kandidatenspracherkennungsergebnis, das der höchsten Einstufungsbewertung entspricht, in der Ausgabeschicht der Neuronales-Netzwerk-Einstufungsvorrichtung 166 identifiziert (Block 216). Wie oben in 5 beschrieben, erzeugt jedes Ausgabeneuron in der Ausgabeschicht 566 des neuronalen Netzwerks 550 einen Ausgabewert, der der Einstufungsbewertung von einem der Eingabemerkmalsvektoren entspricht, die das System 100 den vorbestimmten Mengen von Eingabeneuronen in der Eingabeschicht 554 bereitstellt. Die Steuerung 148 identifiziert das Kandidatenspracherkennungsergebnis mit der höchsten Einstufungsbewertung basierend auf dem Index des Ausgabeneurons, das die höchste Einstufungsbewertung im neuronalen Netzwerk 550 erzeugt.
-
Wiederum unter Bezugnahme auf 2 fährt der Prozess 200 fort, wenn die Steuerung 148 das ausgewählte, am höchsten eingestufte Spracherkennungsergebnis als Eingabe vom Benutzer verwendet, um das automatisierte System zu betreiben (Block 220). In dem fahrzeuginternen Informationssystem 100 von 1 betreibt die Steuerung 148 verschiedene Systeme, einschließlich zum Beispiel eines Fahrzeugnavigationssystems, das das GPS 152 verwendet, der drahtlosen Netzwerkeinrichtung 154 und der LCD-Anzeige 124 oder des HUD 120, um Fahrzeugnavigationsoperationen als Reaktion auf die Spracheingabe vom Benutzer durchzuführen. Bei einer anderen Konfiguration spielt die Steuerung 148 Musik durch die Audioausgabeeinrichtung 132 als Reaktion auf den Sprachbefehl ab. Bei noch einer anderen Konfiguration verwendet das System 100 das Smartphone 170 oder eine andere netzverbundene Einrichtung, um basierend auf der Spracheingabe vom Benutzer einen Freisprechanruf zu tätigen oder eine Textnachricht zu übertragen. Obwohl 1 eine Ausführungsform eines fahrzeuginternen Informationssystems abbildet, setzen andere Ausführungsformen automatisierte Systeme ein, die die Audioeingabedaten verwenden, um den Betrieb verschiedener Hardwarekomponenten und Softwareanwendungen zu steuern.
-
Obwohl 1 das fahrzeuginterne Informationssystem 100 als ein veranschaulichendes Beispiel eines automatisierten Systems abbildet, das eine Spracherkennung durchführt, um Befehle von einem Benutzer zu empfangen und durchzuführen, kann ein ähnlicher Spracherkennungsprozess in anderen Zusammenhängen implementiert werden. Eine mobile elektronische Einrichtung, wie etwa das Smartphone 170 oder eine andere geeignete Einrichtung, beinhaltet zum Beispiel typischerweise ein oder mehrere Mikrofone und einen Prozessor, der die Spracherkennungs-Engines implementieren kann, eine Einstufungsvorrichtung, gespeicherte Auslösepaare und andere Komponenten, die ein Spracherkennungs- und Steuersystem implementieren. Bei einer anderen Ausführungsform steuert ein Hausautomatisierungssystem die HLK und Haushaltsgeräte in einem Haus unter Verwendung von mindestens einer Recheneinrichtung, die die Spracheingabe vom Benutzer empfängt und eine Spracherkennung unter Verwendung der mehreren Spracherkennungs-Engines durchführt, um den Betrieb verschiedener automatisierter Systeme im Haus zu steuern. Bei jeder Ausführungsform ist das System optional dazu ausgelegt, unterschiedliche Mengen von domänenspezifischen Spracherkennungs-Engines zu verwenden, die auf die spezifischen Anwendungen und Arbeitsvorgängen unterschiedlicher automatisierte Systeme zugeschnitten sind.
-
Trainingssystem und Prozess zum Trainieren einer Neuronales-Netzwerk-Einstufungsvorrichtung
-
Im System 100 von 1 und im Spracherkennungsprozess von 2 ist die Neuronales-Netzwerk-Einstufungsvorrichtung 166 ein trainiertes vorwärtsgekoppeltes tiefes neuronales Netzwerk. Die Neuronales-Netzwerk-Einstufungsvorrichtung 116 wird vor dem Betrieb des Systems 100 trainiert, um den oben beschriebenen Spracherkennungsprozess durchzuführen. 3 bildet eine veranschaulichende Ausführungsform eines computergestützten Systems 300 ab, das dazu ausgelegt ist, die Neuronales-Netzwerk-Einstufungsvorrichtung 166 zu trainieren, und 4 bildet einen Trainingsprozess 400 zum Erzeugen der trainierten Neuronales-Netzwerk-Einstufungsvorrichtung 166 ab.
-
Das System 300 beinhaltet einen Prozessor 304 und einen Speicher 320. Der Prozessor 304 beinhaltet zum Beispiel einen oder mehrere CPU-Kerne, die optional mit einem parallelisierten Hardwarebeschleuniger verbunden sind, der zum Trainieren von neuronalen Netzwerken auf eine zeit- und leistungseffiziente Art und Weise konstruiert ist. Beispiele derartiger Beschleuniger beinhalten zum Beispiel GPUs mit Compute-Shader-Einheiten, die für das Trainieren von neuronalen Netzwerken konfiguriert sind, und speziell programmierte FPGA-Chips oder ASIC-Hardware, die zum Trainieren von neuronalen Netzwerken dediziert sind. Bei manchen Ausführungsformen umfasst der Prozessor 304 ferner ein Cluster von Recheneinrichtungen, die zum Durchführen des Trainingsprozesses des neuronalen Netzwerks parallel arbeiten.
-
Der Speicher 320 beinhaltet zum Beispiel eine nichtflüchtige Festkörper- oder magnetische Datenspeicherungseinrichtung und eine flüchtige Datenspeicherungseinrichtung, wie etwa einen Direktzugriffsspeicher (RAM: Random Access Memory), die programmierte Anweisungen für den Betrieb des Systems 300 speichert. In der Konfiguration von 3 speichert der Speicher 320 Daten, die Trainingseingabedaten 324 entsprechen, einen stochastischen Gradientenabstiegstrainer 328 für ein neuronales Netzwerk, eine Neuronales-Netzwerk-Einstufungsvorrichtung 332 und einen Merkmalsextraktor 164.
-
Die Trainingsdaten 324 beinhalten zum Beispiel eine große Menge an Spracherkennungsergebnissen, die durch dieselben Spracherkennungs-Engines 162 erzeugt werden, die im System 100 für eine große Menge von vorbestimmten Eingaben verwendet werden, die optional hybride Spracherkennungsergebnisse beinhalten. Die Trainingsspracherkennungsergebnisdaten beinhalten auch die Konfidenzbewertungen für die Trainingsspracherkennungsergebnisse. Für jedes Spracherkennungsergebnis beinhalten die Trainingsdaten auch eine Levenshtein-Distanz-Metrik, die die Differenzen zwischen dem Spracherkennungsergebnis und den vorbestimmten Grundwahrheit-Spracheingabetrainingsdaten repräsentiert, die die kanonisch „korrekten“ Ergebnisse im Trainingsprozess repräsentieren. Die Levenshtein-Distanz-Metrik ist ein Beispiel einer „Editierdistanz“-Matrix, da die Metrik die Menge an Änderungen (Editierungen) quantifiziert, die notwendig sind, um das Spracherkennungsergebnis von der Spracherkennungs-Engine in die tatsächliche Eingabe zu transformieren, die für die Trainingsdaten verwendet wurde. Sowohl das Spracherkennungsergebnis als auch die Grundwahrheit-Spracheingabetrainingsdaten werden in der Vergleichsmetrik als „Strings“ von Text bezeichnet. Die Editierdistanz quantifiziert zum Beispiel die Anzahl von Änderungen, die erforderlich sind, um einen Spracherkennungsergebnis-String „Sally shells sea sells by the seashore“ (Sally schält Meerverkäufe am Meeresstrand) zu einem entsprechenden richtigen Grundwahrheit-Trainingsdaten-String „Sally sells sea shells by the seashore“ (Sally verkauft Muscheln am Meeresstrand) umzuwandeln.
-
Die Levenshtein-Distanz-Metrik ist in der Technik in anderen Zusammenhängen bekannt und besitzt mehrere Eigenschaften, einschließlich: (1) die Levenshtein-Distanz ist immer mindestens die Differenz der Größen der beiden Strings; (2) die Levenshtein-Distanz ist höchstens die Länge des längeren Strings; (3) die Levenshtein-Distanz ist null, wenn, und nur wenn, die Strings gleich sind; (4), falls die Strings dieselbe Größe besitzen, ist der Hamming-Abstand eine Obergrenze der Levenshtein-Distanz und (4) die Levenshtein-Distanz zwischen zwei Strings ist nicht größer als die Summe ihrer Levenshtein-Distanzen von einen dritten String (Dreiecksungleichung). Der Hamming-Abstand bezieht sich im Gegenzug auf eine Metrik der minimalen Anzahl von Substitutionen, die erforderlich sind, um einen String in den anderen zu ändern, oder der minimalen Anzahl von Fehlern, die einen String in den anderen transformiert haben könnten. Obwohl das System 300 Trainingsdaten beinhaltet, die für veranschaulichende Zwecke mit der Levenshtein-Distanz codiert sind, wird bei alternativen Ausführungsformen eine andere Editierdistanz-Metrik verwendet, um die Differenzen zwischen den Trainingsspracherkennungsergebnissen und den entsprechenden Grundwahrheit-Trainingseingaben zu beschreiben.
-
Bei der Ausführungsform von 3 ist der Merkmalsextraktor 164 im Speicher 320 derselbe Merkmalsextraktor 164, der im oben beschriebenen System 100 verwendet wird. Insbesondere verwendet der Prozessor 304 den Merkmalsextraktor 164 zum Erzeugen eines Merkmalsvektors aus jedem der Trainingsspracherkennungsergebnisse unter Verwendung des Auslösewortpaares und/oder der Konfidenzbewertung und/oder von Wortebene-Merkmalen, die oben beschrieben sind.
-
Der stochastische Gradientenabstiegstrainer 328 beinhaltet die gespeicherten Programmanweisungen und Parameterdaten für einen Trainingsprozess eines neuronalen Netzwerks, den der Prozessor 304 zum Trainieren der Neuronales-Netzwerk-Einstufungsvorrichtung 332 unter Verwendung von Merkmalsvektoren, die der Merkmalsextraktor 164 basierend auf den Trainingsdaten 324 erzeugt, durchführt. Wie in der Technik bekannt ist, beinhalten stochastische Gradientenabstiegstrainer eine Klasse von in Beziehung stehenden Trainingsprozessen, die ein neuronales Netzwerk in einem iterativen Prozess durch Anpassen der Parameter innerhalb des neuronalen Netzwerks trainieren, um die Differenzen (Fehler) zwischen den Ausgaben des neuronalen Netzwerks und einer vorbestimmten Zielfunktion, die auch als eine „Zielsetzungs“-Funktion bezeichnet wird, zu minimieren. Obwohl ein stochastisches Gradientenabstiegstraining allgemein in der Technik bekannt ist und hierin nicht ausführlicher besprochen wird, modifiziert das System 300 den standardmäßigen Trainingsprozess des Stands der Technik. Insbesondere versucht ein Trainingsprozess, Ausgaben mit einem neuronalen Netzwerk unter Verwendung der Trainingsdaten als Eingaben zu erzeugen, die die Fehler zwischen den Ausgaben des neuronalen Netzwerks und den erwarteten Zielergebnissen von den vorbestimmten Trainingsdaten minimieren. In Trainingsprozessen des Stands der Technik spezifizieren die Zielwerte typischerweise, ob eine gegebene Ausgabe ein binäres „Richtig“ oder „Falsch“ ist, wie etwa eine Zielausgabe von der Neuronales-Netzwerk-Einstufungsvorrichtung, die eine Bewertung bereitstellt, um anzugeben, ob die Merkmalsvektoreingabe für ein Trainingsspracherkennungsergebnis entweder 100%-ig richtig oder irgendwie nicht richtig ist, wenn es mit der Grundwahrheitseingabe in den Trainingsdaten verglichen wird. Im System 300 verwendet der stochastische Gradientenabstiegstrainer 328 jedoch die Editierdistanz-Zieldaten in den Trainingsdaten 324 als ein „Soft“-Ziel, um den Richtigkeitsgrad für unterschiedliche Trainingsspracherkennungsergebnisse genauer widerzuspiegeln, was einen Fehlerbereich beinhalten kann, der die Einstufungsbewertung über einen kontinuierlichen Bereich beeinflussen kann, anstatt lediglich vollständig richtig oder falsch zu sein.
-
Der Prozessor
304 verwendet die „Soft“-Zieldaten in der Zielsetzungsfunktion, um den Trainingsprozess unter Verwendung der stochastischen Gradientenabstiegstrainers
328 durchzuführen. Die Konfiguration von
3 verwendet zum Beispiel eine „Softmax“-Zielsetzungsfunktion der Form:
wobei di die Editierdistanz für ein gegebenes Trainingsspracherkennungsergebnis i ist. Während des Trainingsprozesses führt der Gradientenabstiegstrainer
328 einen Kostenminimierungsprozess durch, wobei sich die „Kosten“ auf die Kreuzentropie zwischen den Ausgabewerten der Neuronales-Netzwerk-Einstufungsvorrichtung
332 während jeder Iteration des Trainingsprozesses und den Zielwerten, die durch die Zielsetzungsfunktion erzeugt werden, beziehen. Der Prozessor
304 liefert Batches von Abtastungen an den Gradientenabstiegstrainer
328 während des Trainingsprozesses, wie etwa ein Batch von
180 Trainingseingaben, die jeweils unterschiedliche Trainingsspracherkennungsergebnisse beinhalten, die durch die mehreren Spracherkennungs-Engines erzeugt werden. Der iterative Prozess fährt fort, bis sich die Kreuzentropie des Trainingssatzes über einen Verlauf von zehn Iterationen nicht verbessert hat, und die Parameter des trainierten neuronalen Netzwerks, die die insgesamt niedrigste Entropie aller Trainingsdaten erzeugen, bilden das endgültige trainierte neuronale Netzwerk.
-
Während des Trainingsprozesses mischt der Prozessor 304 dieselben Eingabemerkmalsvektoren zwischen unterschiedlichen Mengen von Eingabeneuronen in der Neuronales-Netzwerk-Einstufungsvorrichtung 332 während unterschiedlicher Iterationen des Trainingsprozesses, um zu gewährleisten, dass die Position eines speziellen Merkmalsvektors in der Eingabeschicht des neuronalen Netzwerks kein falsches Bias im trainierten neuronalen Netzwerk erzeugt. Wie oben im Inferenzprozess beschrieben, falls eine spezielle Menge von Trainingsdaten keine ausreichende Anzahl von Kandidatenspracherkennungsergebnissen beinhaltet, um Eingaben für alle der Neuronen in der Eingabeschicht der Neuronales-Netzwerk-Einstufungsvorrichtung 332 bereitzustellen, erzeugt der Prozessor 304 „leere“ Eingabemerkmalsvektoren mit Nullwert-Eingaben. Wie in der Technik bekannt ist, beinhaltet der stochastische Gradientenabstiegstrainingsprozess numerische Trainingsparameter, und bei einer Konfiguration des Systems 300 sind die Hyperparameter des stochastischen Gradientenabstiegstrainers 328 α = 0,001 , β1 =0,9 und β2 = 0,999.
-
Die Neuronales-Netzwerk-Einstufungsvorrichtung 332 ist bei einer Ausführungsform ein vorwärtsgekoppeltes tiefes neuronales Netzwerk mit der Struktur des neuronalen Netzwerks 550, das in 5 abgebildet ist. Während des Betriebs erzeugt der Prozessor 304 die Struktur einer nicht trainierten Neuronales-Netzwerk-Einstufungsvorrichtung 332 mit einer vorbestimmten Anzahl von Neuronen basierend auf der Anzahl von Neuronen in der Eingabeschicht 554 des neuronalen Netzwerks 550 in 5 und der Anzahl von Ausgabeneuronen in der Ausgabeschicht 566 für insgesamt n Kandidatenspracherkennungsergebnisse, die jeweils als Eingaben in das neuronale Netzwerk für den Inferenzprozess bereitgestellt werden. Der Prozessor 304 erzeugt auch eine geeignete Anzahl von Neuronen in den k verdeckten Schichten 562 des neuronalen Netzwerks 550. Bei einer Ausführungsform initialisiert der Prozessor 304 die neuronale Netzwerkstruktur mit randomisierten Gewichtungswerten für jede Eingabe in die Neuronen. Wie oben beschrieben, passt der Prozessor 304 während des Trainingsprozesses die verschiedenen Gewichtungen und Biaswerte für die Neuronen innerhalb der Eingabeschicht 554 und den verdeckten Schichten 562 des neuronalen Netzwerks zusammen mit den Parametern der Aktivierungsfunktion in den Neuronen der Ausgabeschicht 566 an, um die Kreuzentropie der Ausgabe von der Neuronales-Netzwerk-Einstufungsvorrichtung 332 für eine gegebene Menge von Eingaben im Vergleich zu der Zielsetzungsfunktion zu minimieren.
-
Obwohl 3 eine spezifische Konfiguration einer computergestützten Einrichtung 300 abbildet, die die trainierte Neuronales-Netzwerk-Einstufungsvorrichtung erzeugt, ist dasselbe System, das die trainierte Neuronales-Netzwerk-Einstufungsvorrichtung in einem Spracherkennungsprozess verwendet, bei manchen Ausführungsformen ferner dazu ausgelegt, die Neuronales-Netzwerk-Einstufungsvorrichtung zu trainieren. Beispielsweise ist die Steuerung 148 im System 100 ein Beispiel eines Prozessors, der bei manchen Ausführungsformen konfigurierbar ist, den Trainingsprozess des neuronalen Netzwerks durchzuführen.
-
4 bildet einen Prozess 400 zum Durchführen einer Spracherkennung unter Verwendung mehrerer Spracherkennungs-Engines und einer Neuronales-Netzwerk-Einstufungsvorrichtung zum Auswählen eines Kandidatenspracherkennungsergebnisses ab. In der untenstehenden Beschreibung bezieht sich eine Referenz auf den Prozess 400, der eine Funktion oder Handlung durchführt, auf den Betrieb eines Prozessors zum Ausführen von gespeicherten Programmanweisungen, um die Funktion oder Handlung in Assoziation mit anderen Komponenten im automatisierten System durchzuführen. Der Prozess 400 ist für veranschaulichende Zwecke in Verbindung mit dem System 300 von 3 beschrieben.
-
Der Prozess 400 beginnt, wenn das System 300 mehrere Merkmalsvektoren erzeugt, die den mehreren Trainingsspracherkennungsergebnissen entsprechen, die in den Trainingsdaten 324 gespeichert sind (Block 404). Im System 300 verwendet der Prozessor 304 den Merkmalsextraktor 164, um die mehreren Merkmalsvektoren zu erzeugen, wobei jeder Merkmalsvektor einem Trainingsspracherkennungsergebnis in den Trainingsdaten 324 entspricht. Wie oben beschrieben, erzeugt die Steuerung 304 jeden Merkmalsvektor, der die Auslösewortmerkmale und/oder die Konfidenzbewertung und/oder die Wortebene-Merkmale einschließlich der Bag-of-Words-mit-Abklingen-Merkmale beinhaltet, in mindestens einer Ausführungsform des Prozesses 400.
-
Als Teil des Merkmalsextraktions- und Merkmalserzeugungsprozesses erzeugt die Steuerung 304 bei manchen Ausführungsformen die Struktur des Merkmalsvektors einschließlich der spezifischen Elemente, die auf die Auslösewortmerkmale und Wortebene-Merkmale abgebildet werden. Wie oben im System 100 beschrieben, erzeugt die Steuerung 304 bei manchen Ausführungsformen zum Beispiel den Merkmalsvektor mit einer Struktur, die nur einem Teil der Wörter entspricht, die in den Trainingsdaten 324 beobachtet werden, wie etwa die 90 % am häufigsten beobachteten Wörter, während die verbleibenden 10 % der Wörter, die mit der geringsten Häufigkeit auftreten, nicht in die Struktur des Merkmalsvektors codiert werden. Der Prozessor 304 identifiziert optional die häufigsten Auslösewortmerkmale und erzeugt die Struktur für die am häufigsten beobachteten Paare von Auslösewörtern, die in den Trainingsdaten 324 vorhanden sind. Bei einer Ausführungsform, bei der das System 300 die Struktur für den Merkmalsvektor während des Prozesses 400 erzeugt, speichert der Prozessor 304 die Struktur der Merkmalsvektoren mit den Merkmalsextraktordaten 164, und die Struktur des Merkmalsvektors wird zusammen mit der Neuronales-Netzwerk-Einstufungsvorrichtung 332 nach Beendigung des Trainingsprozesses automatisierten Systemen bereitgestellt, die die Merkmalsvektoren mit der spezifizierten Struktur als Eingaben in das trainierte neuronale Netzwerk verwenden, um die Einstufungsbewertungen für die Kandidatenspracherkennungsergebnisse zu erzeugen. Bei anderen Ausführungsformen wird die Struktur der Merkmalsvektoren a priori basierend auf einer natürlichen Sprache, wie etwa Englisch oder Chinesisch, bestimmt, anstatt spezifisch auf den Inhalten der Trainingsdaten 324 zu basieren.
-
Der Prozess 400 fährt fort, wenn das System 300 die Neuronales-Netzwerk-Einstufungsvorrichtung 332 basierend auf den Merkmalsvektoren der Trainingsspracherkennungsergebnisse und den Soft-Ziel-Editierdistanzdaten von den Trainingsdaten 324 unter Verwendung des stochastischen Gradientenabstiegstrainers 328 trainiert (Block 408). Während des Trainingsprozesses verwendet der Prozessor 304 die mehreren Merkmalsvektoren, die den mehreren Trainingsspracherkennungsergebnissen entsprechen, als Eingaben in die Neuronales-Netzwerk-Einstufungsvorrichtung und trainiert die Neuronales-Netzwerk-Einstufungsvorrichtung 332 basierend auf dem Kostenminimierungsprozess zwischen den mehreren Ausgabebewertungen, die durch die Neuronales-Netzwerk-Einstufungsvorrichtung während des Trainingsprozesses erzeugt werden, und der Zielsetzungsfunktion mit den Soft-Bewertungen, die oben beschrieben sind, basierend auf den bestimmten Editierdistanzen zwischen den mehreren Trainingsspracherkennungsergebnissen und vorbestimmten korrekten Eingaben für jede Trainingsspracherkennung in den mehreren Spracherkennungsergebnissen. Während des Prozesses 400 modifiziert der Prozessor 304 die Eingabegewichtungskoeffizienten und Neuronenbiaswerte in den Eingabe- und verdeckten Schichten der Neuronales-Netzwerk-Einstufungsvorrichtung 332 und, um die Parameter der Aktivierungsfunktionen in den Ausgabeschichten von Neuronen auf eine iterative Art und Weise unter Verwendung des stochastischen Gradientenabstiegstrainers 328 anzupassen.
-
Nachdem der Trainingsprozess beendet ist, speichert der Prozessor 304 die Struktur der trainierten Neuronales-Netzwerk-Einstufungsvorrichtung 332 und optional die Struktur der Merkmalsvektoren bei Ausführungsformen, bei denen die Merkmalsvektoren basierend auf den Trainingsdaten im Speicher 320 erzeugt werden (Block 412). Die gespeicherte Struktur der Neuronales-Netzwerk-Einstufungsvorrichtung 332 und die Merkmalsvektorstruktur werden anschließend zu anderen automatisierten Systemen, wie etwa dem System 100 von 1, transferiert, die die trainierte Neuronales-Netzwerk-Einstufungsvorrichtung 332 und den Merkmalsextraktor 164 verwenden, um mehrere Kandidatenspracherkennungsergebnisse während Spracherkennungsoperationen einzustufen.
-
Es versteht sich, dass Varianten der oben offenbarten und andere Merkmale und Funktionen, oder Alternativen zu diesen, wünschenswerterweise zu vielen anderen unterschiedlichen Systemen, Anwendungen oder Verfahren kombiniert werden können. Verschiedene derzeit unvorhergesehene oder nicht erwartete Alternativen, Modifikationen, Variationen oder Verbesserungen können nachfolgend durch einen Fachmann vorgenommen werden, die auch durch die folgenden Ansprüche eingeschlossen werden sollen.