DE3786822T2 - Spracherkennungssystem. - Google Patents
Spracherkennungssystem.Info
- Publication number
- DE3786822T2 DE3786822T2 DE19873786822 DE3786822T DE3786822T2 DE 3786822 T2 DE3786822 T2 DE 3786822T2 DE 19873786822 DE19873786822 DE 19873786822 DE 3786822 T DE3786822 T DE 3786822T DE 3786822 T2 DE3786822 T2 DE 3786822T2
- Authority
- DE
- Germany
- Prior art keywords
- sentence
- hypothesis
- word
- error
- hypotheses
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 31
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 2
- 230000014509 gene expression Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 15
- 230000007704 transition Effects 0.000 description 14
- 239000012634 fragment Substances 0.000 description 8
- 239000002243 precursor Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 230000015654 memory Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
- G10L15/193—Formal grammars, e.g. finite state automata, context free grammars or word networks
Landscapes
- Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Machine Translation (AREA)
- Character Discrimination (AREA)
Description
- Die Erfindung bezieht sich auf ein Spracherkennungssystem, wie es im Oberbegriff des Patentanspruchs 1 definiert ist. Ferner bezieht sie sich auf ein Verfahren zum Bestimmen einer besten Satzhypothese entsprechend einer Folge hypothetisch angenommener Wörter.
- Die Erkennung von Sprache mittels Computer war bisher ein sehr großes Problem. Anstatt das gesamte Problem anzugehen, wurden Versuche gemacht, das Problem auf bestimmte Bereiche zu beschränken und auf diese Weise die Erkennungsaufgabe zu vereinfachen. Es ist viel daran gearbeitet worden, einzelne Wörter sowohl sprecherabhängig als auch sprecherunabhängig sowie Zahlen zu erkennen. Derzeitige Systeme zeigen für manche Anwendungen ein akzeptables Verhalten, jedoch ist die Erkennung selbst unter noch stärker eingeschränkten Umständen keinesfalls völlig zuverlässig.
- Das Problem der kontinuierlichen Worterkennung (CWR) ist schwieriger als das Erkennen einzelner Wörter. Dabei treten größere Schwierigkeiten bei der Bestimmung auf, welche Wörter gerade gesprochen werden und wie sie zur Bildung von Sätzen zusammengefügt werden sollen.
- Versuche, alle gesprochenen Sätze ohne irgendwelche Einschränkungen zu erkennen, erscheinen im Rahmen der derzeitigen Technologie nicht lösbar. Frühere Versuche, den Problembereich einzuengen, führten zur Anwendung von Grammatikregeln und anderen Einschränkungsverfahren, mit denen festgestellt werden soll, welche Wörter in der Nachfolge anderer Wörter zulässig sind. Wenn ein Wort erkannt wird, wird eine Gruppe nächster Wörter bestimmt, die aufgrund der Grammatik zulässig sind. Eine Worthypotheseanordnung wird dann beauftragt, die nachfolgende Äußerung mit dieser Gruppe in Übereinstimmung zu bringen.
- Solche bisherigen Lösungen führten zu Systemen, die hinsichtlich des Vokabulars und der Grammatik, die sie behandelten, zu stark eingeschränkt waren, und sie führten zu unakzeptabel hohen Erkennungsfehlerraten. Wenn irgendwo im Verlauf einet Äußerung ein Fehler auftritt, ist es häufig schwierig oder unmöglich, den fehlerfreien Zustand wiederherzustellen, und die Sprachfolge muß abgebrochen oder erneut gestartet werden.
- In "Sys. Comp. Cont., 4/84, Seiten 80-88" ist ein Spracherkennungssystem offenbart, jedoch wird dabei deutlich festgestellt, daß in den Spracherkennungsprozeß keine grammatikalische Einschränkung eingeführt ist.
- Ferner ist in "Rad. Elec. Eng., 5314 1983, Seiten 166-175" ein Spracherkennungssystem offenbart, bei dem verhindert wird, daß eine Eingabe als Phrase erkannt wird, die lediglich Unsinn darstellt.
- In ASSP - 33 (1985) Juni, Nr. 3, Seiten 561-573 sind eine LPC-Analyse einer unbekannten Wortfolge und die Erzeugung einer Syntax (deterministische Grammatik) offenbart, die beschreibt, wie Wörter des Vokabulars aneinanderzufügen sind. Dabei wird eine Gruppe optimaler, hinsichtlich der Syntax beschränkter Übereinstimmungen von Folgen aus im Wort versteckten Markov-Modellen mit einer unbekannten Wortfolge abgeleitet, und es wird eine Auswahl der bevorzugten Wortfolge getroffen.
- Es ist daher ein Ziel der Erfindung, ein robustes Spracherkennungssystem zu schaffen, das relativ komplexe Vokabularien und Grammatiken behandeln kann.
- Ein weiteres Ziel der Erfindung ist es, ein Spracherkennungssystem zu schaffen, das parallel mehrere Satzalternativen betrachten und die beste auswählen kann.
- Nach der Erfindung ist das Spracherkennungssystem durch die Merkmale des kennzeichnenden Teils des Patentanspruchs 1 gekennzeichnet.
- Das erfindungsgemäße Verfahren enthält die Schritte:
- a) Erzeugen aller möglichen Worthypothesen für eine Äußerung und Vergleichen jedes hypothetisch angenommenen Worts mit einer Grammatikspezifikation;
- b) Bestimmen, ob innerhalb der Einschränkungen der Grammatik jedes hypothetisch angenommene Wort gültig an das Ende einer vorhandenen Teil-Satzhypothese angefügt werden kann, und Identifizieren solcher existierender Teil-Satzhypothesen;
- c) Erzeugen neuer Teil-Satzhypothesen durch Anfügen jedes hypothetisch angenommenen Worts an das Ende einer identifizierten Teil-Satzhypothese für jede gültige Anfügung;
- d) Bestimmen, ob innerhalb der Grammatikspezifikation Teil-Satzhypothesen, Komplett- Satzhypothesen sind;
- e) Berechnen eines Komplett-Satzhypothesenfehlers für jede Komplett-Satzhypothese, einschließlich
- (e. 1) Zuordnen eines Lückenfehlers zu jedem hypothetisch angenommenen Wort, das nach dem Ende des letzten Worts in der im Schritt (b) identifizierten Teil-Satzhypothese beginnt;
- f) Auswählen einer Komplett-Satzhypothese auf der Basis der Ergebnisse des Schritts (e).
- Die neuartigen Merkmale, die die Erfindung kennzeichnet, sind durch die Patentansprüche definiert. Die obigen und weitere Ziele und Vorteile der Erfindung werden anschließend erkennbar, und zum Zwecke der Erläuterung, jedoch nicht zur Einschränkung, ist in den beigefügten Zeichnungen ein bevorzugtes Ausführungsbeispiel dargestellt.
- Fig. 1 ist ein Blockschaltbild eines Spracherkennungssystems;
- Fig. 2 ist ein Datenobjekt für eine Worthypothese;
- Fig. 3 ist ein Zeitdiagramm für drei Hypothesen einer Äußerung;
- Fig. 4 ist ein Zeitdiagramm für eine Äußerung;
- Fig. 5 ist ein Diagramm des der Überlappung und Lücken im Sprachsignal zuzuordnenden Fehlers;
- Fig. 6 ist ein Zustandsdiagramm, das eine Grammatik für die Anwendung bei der Spracherkennung definiert;
- Fig. 7 ist ein genaueres Diagramm eines Abschnitts von Fig. 6;
- Fig. 8 ist ein Abschnitt eines Zustandsdiagramms, das in der Grammatikdefinition benutzt wird und Übergangszustände veranschaulicht;
- Fig. 9 ist ein Zustandsdiagramm, das die Anwendung mehrerer Grammatik-Teilgruppen veranschaulicht; und
- Fig. 10 ist ein Datenobjekt für eine Satzhypothese.
- Fig. 1 zeigt ein Blockschaltbild eines Spracherkennungssystems 10 nach der Erfindung. Eine Worthypotheseeinheit 12 empfangt ankommende Sprachsignale, vergleicht sie mit Referenzschablonen in ihrem Vokabular und erzeugt Worthypothesen. Die Eingangssprachsignale sind vorzugsweise digitalisierte Signale, und die Wortsyntheseeinheit arbeitet durch Teilen einer Folge von Sprachabtastwerten in Rahmen, Entnahme von Parametern der linearen Voraussagecodierung (LPC), Transformieren der LPC-Parameter in eine Gruppe unkorrelierter Merkmale, den Hauptmerkmalsvektor (PFV), und durch ihr Vergleichen mit den in den Vokabular-Referenzschablonen gespeicherten PFV-Parametern. Worthypotheseeinheiten sind in der Technik allgemein bekannt; Beispiele von Hypotheseeinheiten, die bei der vorliegenden Erfindung angewendet werden können, sind in dem US- Patent 4831551 mit dem Titel "SPEAKER-DEPENDENT CONNECTED-SPEECH WORD RECOGNIZER" von George Doddington et al vom 16. Mai 1989, die auf Texas Instruments, dem Zessionar der vorliegenden Anmeldung, übertragen wurde und in dem US-Patent 4908865 mit dem Titel "SPEAKER INDEPENDENT SPEECH RECOGNION METHOD AND SYSTEM" von George Doddington et al vom 13. März 1990, die auf Texas Instruments übertragen wurde, beschrieben. Eine Beschreibung der Verwendung des PFV findet sich in dem Aufsatz von Doddington et al "RECOGNITION OF SPEECH UNDER STRESS AND IN NOISE", erschienen in Proceedings of the ICASSP, 1986, Nr. 14.10, Seite 733.
- Die in jeder Worthypothese enthaltene Information ist in Fig. 2 gezeigt. Die Information besteht aus dem hypothetisch angenommenen Wort, einem Fehler-Wert sowie Start- und Stop-Zeiten für das Wort. Der Fehler-Wert zeigt das Vertrauen an, das die Hypotheseeinheit 12 in ihre Vermutung setzt, und er wird durch ein geeignetes Maß bestimmt, das den "Abstand" zwischen der Schablone des hypothetisch angenommenen Worts und den Parametern des tatsächlichen Worts angibt. Ein relativ großer Fehler-Wert zeigt eine größere Wahrscheinlichkeit dafür an, daß die Hypothese unrichtig ist, während ein relativ kleinerer Fehler-Wert eine erhöhte Wahrscheinlichkeit dafür anzeigt, daß das Wort richtig erkannt wurde.
- Die Start-Zeit und die Stop-Zeit sind die tatsächlichen Start- und Stop-Zeiten der Eingangssprachvokalisationen, die die Worthypothese erzeugten. Die Länge der tatsächlichen Äußerung ist gegeben durch (Stop-Zeit - Start-Zeit). Diese Werte werden von einer Satzerkennungseinheit 14 der unten beschriebenen Art zur Verbesserung der Gesamterkennung angewendet.
- Die Worthypothesen werden zu der Satzerkennungseinheit 14 geschickt, die versucht, aus ihnen Sätze zu bauen. Zum Unterstützen der Erkennungseinheit 14 beim Zusammenfügen der Hypothesen zu Sätzen, wird eine Grammatikspezifikation angewendet. Die Grammatik ist vorzugsweise eine begrenzte Grammatik, und sie grenzt diejenigen Sätze ein, die vom System 10 als gültig erkannt werden. Sobald die Satzerkennungseinheit 14 einen Satz erfolgreich erkennt, wird der erkannte Satz vom Spracherkennungssystem 10 ausgegeben.
- Anders als bei bisherigen Systemen sind die Worthypotheseeinheit 12 und die Satzerkennungseinheit 14 vorzugsweise nicht eng miteinander gekoppelt. Mit anderen Worten heißt dies, daß keine direkte Rückkopplung zwischen der Satzerkennungseinheit 14 und der Worthypotheseeinheit 12 vorhanden ist. Die Worthypotheseeinheit 12 erzeugt ständig alle Hypothesen, die mit ihren Referenzschablonen zusammenpassen. Dies ist eine Abweichung von bekannten Systemen, die eine Satzerkennungseinheit verwenden, die die Worthypotheseeinheit steuert und sie darauf beschränkt, nur diejenigen Wörter hypothetisch anzunehmen, die als gültige nächste Wörter von der Erkennungseinheit angesehen werden. Der hier vorliegende Weg veranlaßt die Hypotheseeinheit 12, eine größere Anzahl möglicher Wörter zu erzeugen, und es wird die Kompliziertheit der Satzerkennungseinheit 14 erhöht. Das System hat dafür aber eine größere Flexibilität und die Fähigkeit, ihre "Ansicht" über ihre derzeitige Lage in der Grammatik zu ändern.
- Entsprechend der hier vorgenommenen Verwendung sind die Wörter "Wort" und "Satz" nicht auf ihre allgemein üblichen Bedeutungen beschränkt. Entsprechend der hier vorgenommenen Anwendung ist ein Wort eine Grundeinheit einer Sprachäußerung, und ein Satz ist irgendeine aus solchen Grundeinheiten aufgebaute Struktur. Beispielsweise könnte ein "Wort" ein Phonem sein, und ein ',Satz", der eine aus solchen Phonemen aufgebaute Struktur ist, könnte englischen Wörtern entsprechen. Die Grundeinheit einer Äußerung könnte aber auch eine Phrase sein, so daß ein "Wort" tatsächlich aus drei oder vier englischen Wörtern bestehen würde, und ein "Satz" würde eine aus diesen Phrasen aufgebaute Struktur sein. Während in der hier beschriebenen Ausführungsform die Ausdrücke "Wörter" und "Sätze" englische Wörter und englische Sätze betreffen, wie sie durch eine ausgewählte Grammatik eingeschränkt werden, ist jedoch zu erkennen, daß die vorliegende Erfindung nicht derart eingeschränkt ist.
- Die Erkennungsschwellen der Worthypotheseeinheit 12 sind vorzugsweise auf ein Niveau eingestellt, bei dem viele Hypothesen erzeugt werden. Dies bedeutet, daß die Einschränkungen bei der Bestimmung, ob eine gültige Hypothese gemacht worden ist, gelockert oder verbreitert werden. Dies bedeutet, daß die Hypotheseeinheit 12 häufig mehrfache Hypothesen für eine einfache Äußerung erzeugt.
- Eine solche Situation ist in Fig. 3 dargestellt. Diese zeigt mehrere Hypothesen, die durch die Äußerung "FOURTEEN DEGREES" erzeugt werden können. Unter der Annahme, daß das Vokabular der Hypotheseeinheit die Wörter "FOUR", "FORTY" und "FOURTEEN" enthält, ist es wahrscheinlich, daß die Hypotheseeinheit 12 alle drei dieser Wörter als gültige Hypothesen während der Äußerung des Worts "FOURTEEN" erzeugt. Wenn das Sprachsystem beispielsweise zum Eingeben von Informationen in ein Navigationssystem benutzt wird, ist es wichtig, daß die Satzerkennungseinheit 14 zwischen den Sätzen "FOUR DEGREES", "FORTY DEGREES" und "FOURTEEN DEGREES" unterscheiden kann.
- Die Satzerkennungseinheit 14 gemäß der Erfindung trifft diese Unterscheidung durch Einführen von Fehlerausdrücken für die Überlappung oder Lücken zwischen Wörtern zusätzlich zu denjenigen Fehlerausdrücken, die das Vertrauen in das Erkennen der Wörter selbst anzeigen. Die Größe der Lücken- und Überlappungsfehlerausdrücke erhöhen den Grad der Fehlübereinstimmung zwischen aufeinanderfolgenden Wörtern. Die Hypothese "FOUR DEGREES" hat eine Lücke mit der Dauer t&sub5; - t&sub2;, "FORTY DEGREES" hat eine Lücke mit der Dauer t&sub5; - t&sub3;, und "FOURTEEN DEGREES" hat eine Lücke mit der Dauer t&sub5; - t&sub4;. Die Satzerkennungseinheit 14 berechnet diese Lückendauerzeiten und die entsprechenden Lückenfehler, indem sie von den Startzeit- und Stopzeit-Informationen Gebrauch macht, die zu ihr von der Worthypotheseeinheit 12 als Teil der Worthypothese übertragen werden. In Fig. 3 wählt die Satzerkennungseinheit 14 unter der Annahme, daß die Wörter "FOUR", "FORTY" und "FOURTEEN" ungefähr gleiche Wortfehler erzeugen, was eine vernünftige Annahme darstellt, den Satz "FOURTEEN DEGREES" als beste Übereinstimmung aus, da bei dieser Auswahl die Lückenfehler auf ein Minimum herabgesetzt werden. Die Einbeziehung der Lückenfehler in die Teil- oder Gesamt-Satzfehlerberechnungen veranlassen die Satzerkennungseinheit 14, diejenigen Hypothesen vorzuziehen, die einen größeren Anteil der gesamten ankommenden Äußerung erklären.
- Fig. 4 veranschaulicht das zugehörige Problem der Überlappung. Es wird angenommen, daß die Worthypotheseeinheit 12 die Wörter "SEVEN", AVAILABLE" und "UNAVAILABLE" erkennt. Es wird ferner angenommen, daß die Grammatik die Satzteile "SEVEN AVAILABLE" und "SEVEN UNAVAILABLE" erlaubt.
- Wenn die Phrase "SEVEN AVAILABLE" als kontinuierliche Äußerung ausgesprochen wird, kann von der Worthypotheseeinheit 12 erwartet werden, daß sie die Hypothese "SEVEN" am Zeitpunkt t&sub3; und die Hypothesen "AVAILABLE" und "UNAVAILABLE" am Zeitpunkt t&sub4; erzeugt. Diese beiden letztgenannten Hypothesen haben etwa den gleichen Wortfehler. Die Satzerkennungseinheit 14 bestimmt die richtige Äußerung dadurch, daß sie das Fehlen der Überlappung zwischen dem Wort "SEVEN" und "AVAWABLE" feststellt und bevorzugt, während die Hypothese "SEVEN UNAVAILABLE" eine Überlappung mit der Dauer t&sub3; - t&sub2; ergibt.
- Die Fehlerfunktion für eine Satzhypothese oder eine Teil-Satzhypothese bis zu einem gegebenen Punkt ist:
- N = Anzahl der Worthypothesen in dem Satz
- EWi = mittlerer (Rahmen)-Fehler für die Worthypothese i
- ti&sub1; = Beginnzeit der Worthypothese i
- ti&sub2; - Beendigungszeit der Worthypothese i
- t&sup0;&sub2; = Beginnzeit der Sprache
- tN+1&sub1; = Beendigungszeit der Äußerung
- ERR = Fehlerfunktion für Lücken- und Überlappungsfehler
- Überlappung, wenn ti&sub1; < ti-1&sub2;
- Lücke, wenn ti&sub1; > ti-1&sub2;
- Im einfachsten Fall können die Funktionen EG und EO linear sein. Dies bedeutet, daß die Lücken- und Überlappungsfehler linear mit ansteigender Lücken- und Überlappungsdauer zunehmen.
- Zur Verbesserung der Genauigkeit können nichtlineare Fehlerfunktionen angewendet werden. Fig. 5 zeigt ein Diagramm bevorzugter Funktionen für die Überlappungs- und Lückenfehlerberechnungen. Wenn der Überlappungsbetrag Null ist, wird kein zusätzlicher Fehlerausdruck eingeführt. Wenn der Überlappungsbetrag positiv ist, ist eine Überlappung aufgetreten, und wenn der Überlappungsbetrag negativ ist, ist eine Lücke zwischen Worthypothesen aufgetreten.
- Die Kurve 30 auf der rechten Seite von Fig. 5 zeigt die gewünschte Fehlerfunktion für die Überlappung. Wenn der Überlappungsbetrag ziemlich klein ist, bis zur Zeitdauer t&sub0;, ist der Überlappungsfehler klein. Für eine Überlappung, die größer als t&sub0; ist, steigt der Überlappungsfehler schnell an. Dieser Funktionstyp berücksichtigt Koartikulationseffekte, die oft zwischen Wörtern auftreten. Dies bedeutet, daß dann, wenn nahezu der gleiche Klang ein Wort beendet und ein nachfolgendes Wort beginnt, der Klang gewöhnlich wie nur ein einziger Klang ausgesprochen wird. Die Zeit t&sub0; hängt natürlich von den Besonderheiten einer Implementierung ab, jedoch liegt sie vorzugsweise in der Größenordnung einer halben Phonemdauer, die etwa 60 ms beträgt. Wenn eine Überlappung eine Dauer von 150 bis 200 ms erreicht, sollte das Überlappungsstrafmaß ziemlich hoch sein. Diese Zahlen können natürlich abhängig von den Umständen, wie der Sprechgeschwindigkeit des Sprechers, stark modifiziert werden.
- Lückenfehler werden vorzugsweise in zwei Klassen eingeteilt, wie auf der linken Seite von Fig. 5 angegeben ist. Eine Lücke zwischen Hypothesen, die auftritt, wenn nichts gesagt wird, also beispielsweise dann, wenn der Sprecher eine Pause macht, um sein nächstes Wort zu überlegen, sollte nicht mit einem hohen Strafmaß belegt werden. Wenn also die Energie des Eingangssprachsignals einen Wert unter einer gewissen Schwelle anzeigt, stellt die Satzerkennungseinheit fest, daß nichts gesprochen wird und legt einen niedrigen Fehlerwert an, wie durch die untere Kurve 32 gezeigt ist. Dieser niedrige Fehlerwert kann Null sein, wenn dies gewünscht wird. Wenn ein Lückenfehler jedoch zwischen zwei Hypothesen auftritt, während Sprachenergie empfangen wird, wird dem Lückenfehler ein relativ hoher Fehlerwert zugeordnet, wie die obere Kurve 34 zeigt. Dadurch wird die Tatsache berücksichtigt, daß aufeinanderfolgende Worthypothesen, die durch eine Lücke voneinander getrennt sind, während bekannt ist, daß der Sprecher spricht, als fehlende Teile der Äußerung vermutet werden und zur Zurückweisung neigen. Dies ist beispielsweise in Fig. 3 gezeigt, wo eine Hypothese einer Lücke dann, wenn der Sprecher "TEEN" sagt, zu einem großen Lückenfehler und zur Zurückweisung des Satzes führt.
- Die Lücken- und Überlappungsfehlerberechnungen können bei Beginn und am Ende von Sätzen angewendet werden. Jede Verzögerung zwischen dem Beginn des Satzes und dem Start eines hypothetisch gebildeten ersten Worts wird als Lückenfehler gezählt, was auch für eine Verzögerung zwischen einem hypothetisch gebildeten letzten Wort und dem Ende des Satzes gilt. Eine genaue Lage der Satzbeginn- und Satzendpunkte ist nicht notwendig. Es ist zu erkennen, daß alle Hypothesen einen Lückenfehler zeigen, wenn der Satzbeginn vor dem Beginn des frühesten hypothetisch gebildeten Worts liegt. Diese Lückenfehler heben sich tatsächlich auf, wenn Satzfehler miteinander verglichen werden. Es ist daher nur notwendig, daß der Beginn des Satzes (t&sup0;&sub2;) nicht später als der Beginn des frühesten hypothetisch gebildeten Worts (t¹&sub1;) liegt. Satzhypothesen, die ein erstes Wort enthalten, das später als diese Annahme beginnen, werden mit einem Lückenfehler bestraft. Dies veranlaßt die Satzerkennungseinheit 14, Satzhypothesen zu bevorzugen, die als Sprache gelten, die bei Beginn einer Äußerung startet. Eine ähnliche Berechnung gilt am Ende eines Satzes, wo eine Hypothese, daß der Satz vollständig ist, mit einem Lückenfehler bestraft wird, wenn der Sprecher fortfährt, zu sprechen.
- Zur Verbesserung der Leistungsfähigkeit der Spracherkennungseinheit 10 wird bevorzugte die Gruppe von zulässigen Sätzen zu beschränken. Die Satzerkennungseinheit 14 macht von einer Art von Grammatik Gebrauch, um die Auswahl der Sätze einzuschränken, die identifiziert werden können. Zur Erleichterung der Implementierung ist diese Grammatik vorzugsweise eine begrenzte Grammatik, die eine endliche Anzahl von Knoten oder Zuständen aufweist.
- Fig. 6 zeigt ein Diagramm einer sehr einfachen begrenzten Grammatik. Diese Grammatik wäre brauchbar für die Verwendung gesprochener Befehle zur Durchführung von Telefonanrufen. Wie Fig. 6 zeigt, kann die Grammatik zum Anrufen einer die Verwendung einer siebenstelligen Zahl erfordernden externen Nummer oder einer die Verwendung eines nur vierstelligen Anschlusses erfordernden internen Nummer benutzt werden. Die Äußerungen, die jeden Übergang hervorrufen, sind nahe bei den Übergangswegen im Diagramm gezeigt. Die mit "d" markierten Übergänge sind in Fig. 7 genauer dargestellt, in der gezeigt ist, daß jede Ziffer benutzt werden kann. Der Übergang d&sub1;, der zwischen den Zustandspaaren 8, 10 und 9, 10 vorliegt, ist eingeschränkter, da die erste Ziffer einer Zentrale nicht mit 0 oder 1 beginnen kann.
- Die Gruppe zulässiger Sätze aus der Grammatik von Fig. 6 ist in der Tabelle I dargestellt.
- CALL dddd
- CALL EXTENSION dddd
- PLACE CALL dddd
- PLACE CALL EXTENSION dddd
- CALL OUTSIDE d&sub1;dd dddd
- CALL OUTSIDE NUMBER d&sub1;dd dddd
- PLACE CALL OUTSIDE NUMBER d&sub1;dd dddd
- PLACE CALL OUTSIDE d&sub1;dd dddd
- Es ist ohne weiteres zu erkennen, daß die erlaubten Sätze, die in der Tabelle I angegeben sind, durch Verfolgen der Verbindungspfeile in dem gerichteten Diagramm von Fig. 6 erzeugt werden können. Die Grammatik kann als eine Maschine mit endlichen Zuständen betrachtet werden, wobei jeder der möglichen Zustände durch einen bezifferten Knotenpunkt dargestellt ist. Alle durch die Grammatik erlaubten möglichen Sätze können durch Verfolgen aller möglichen Wege durch das gerichtete Diagramm erzeugt werden. Beispielsweise veranlaßt der erlaubte Satz "CALL EXTENSION dddd" die Grammatik, durch die Zustände 0 (Start), 2, 4, 5, 6 und 7 zu laufen. Um den Knoten 7 ist ein Quadrat gezeichnet, damit angezeigt wird, daß dies ein Endknoten ist. Dies bedeutet, daß dann, wenn die Satzerkennungseinheit 14 den Knoten 7 erreicht, von ihr hypothetisch angenommen wird, daß ein vollständiger Satz geäußert worden ist, worauf sie entsprechend verfährt.
- Die Grammatik der Satzerkennungseinheit 14, die durch das Diagramm von Fig. 6 dargestellt ist, kann auf verschiedene Arten zur Unterstützung bei der Erkennung einer Äußerung angewendet werden. Die einfachste Art für die Satzerkennungseinheit 14 besteht darin, das von der Worthypotheseeinheit 12 angegebene Vokabular zu kontrollieren, so daß von einem gegebenen Knoten aus nur Wörter, die innerhalb der Gruppe zulässiger nächster Wörter von diesem Knoten aus liegen, von der Worthypotheseeinheit 12 hypothetisch angenommen werden können. Wenn die Satzerkennungseinheit 14 in einem solchen System beispielsweise feststellt, daß sie sich gerade am Knoten 2 befindet, würde die Worthypotheseeinheit 12 durch das Vokabularsteuersignal von Fig. 2 darauf beschränkt, nur die Wörter "OUTSIDE", "EXTENSION" oder eine Ziffer zu erkennen. Bei diesem Typ der Anordnung wird die Satzerkennungseinheit 14 als eine Voraussageeinheit benutzt, und sie ist eng mit der Worthypotheseeinheit 12 gekoppelt, um zu versuchen, die Leistungsfähigkeit des Systems zu verbessern.
- Ein solches Voraussageerkennungsverfahren hat jedoch zahlreiche Nachteile. Wenn das System jemals einen "unkorrekten" Knoten erreicht, gibt es keine Möglichkeit, mit der es wieder in den fehlerfreien Zustand zurückkehrt. Im Gegensatz dazu wird in der bevorzugten Ausführungsform von einem Verfahren der dynamischen Programmierung (DP) Gebrauch gemacht, das ermöglicht, mehrere Hypothesen parallel zu betrachten. Anstelle der Einschränkung auf einen einzigen Weg durch die Grammatik erlaubt es das DP-Verfahren der Satzerkennungseinheit, mit der gesamten Information betreffend die verschiedenen Wörter den besten Weg auszuwählen. Dieses Verfahren benutzt die Lücken- und Überlappungsfehlertechnik, die oben beschrieben wurde. Es optimiert einen gegebenen Wegfehler auf dem Satz- oder Teilsatzniveau und nicht auf dem örtlichen Optimierungsniveau, das durch frühere enggekoppelte Systeme angewendet wurde.
- Beim bevorzugten DP-Verfahren empfängt die Satzerkennungseinheit 14 eine Worthypothese von der Worthypotheseeinheit 12 und bestimmt alle Knoten in dem Diagramm, für die dieses Wort gelten könnte. Wenn beispielsweise in Fig. 6 eine Ziffer geäußert wird, versucht die Satzerkennungseinheit 14, diese Ziffer mit allen Knoten 4, 5, 6, 7, 11 und 12 in Übereinstimmung zu bringen. Wenn die geäußerte Ziffer im Bereich von 2 bis 9 liegt, versucht die Satzerkennungseinheit 14 auch, sie dem Knoten 10 zuzuordnen.
- Für jeden Knoten, für den eine gerade vorliegende Hypothese gültig ist, wendet die Satzerkennungseinheit 14 das DP-Verfahren mit rückwärtsgerichteten Zeigern an, um alle möglichen Satzfragmente zu bestimmen, für die die gerade vorliegende Hypothese das letzte Wort wäre. Wenn die gerade vorliegende Hypothese an einem bestimmten Knoten geprüft wird, muß dieser Knoten ein gültiges Satzfragment aufweisen, das zu einem vorangehenden Knoten führt, damit ein neues gültiges Satzfragment erzeugt wird. Wenn beispielsweise die erste Ziffer hypothetisch angenommen wird, versucht die Satzerkennungseinheit 14, diese Ziffer mit den oben beschriebenen Knoten in Übereinstimmung zu bringen. Wenn eine Ziffer die erste Äußerung eines Satzes ist, befindet sich die Grammatik im Zustand 0, und die Hypothese einer Ziffer wird als ungültig zurückgewiesen. Dies bedeutet, daß von denjenigen Knoten, zu denen eine Ziffer in gültiger Weise führen kann, keiner einen vorherigen Zustand des Knotens 0 aufweist.
- Wenn die Äußerung "CALL" empfangen worden ist, erfolgt ein Eintrag als ein Teilsatz, der die Grammatik zum Knoten 2 bringt. Wenn dann eine Ziffer hypothetisch angenommen wird, weist der Knoten 4 einen gültigen vorhergehenden Knoten (den Knoten 2) auf, so daß ein Satzfragment hypothetisch mit "CALL erste Ziffer" angenommen wird. Die Knoten 5, 6, 7, 10, 11 und 12 erzeugen immer noch keine gültigen Teilsätze, weil bei ihnen kein gültiger Teilsatz existiert, der in einem einem dieser Knoten vorangehenden Knoten endet.
- Das DP-Verfahren erzeugt eine Anzahl hypothetischer Teilsätze, die alle parallel betrachtet werden. Wenn eine Satzhypothese den Knoten 7 erreicht, ist ein vollständiger Satz hypothetisch angenommen. An diesem Punkt ist wenigstens ein gültiger vollständiger Satz hypothetisch angenommen worden, und es wird gemäß der Gleichung (1) ein Gesamtsatzfehler berechnet. Wenn der Gesamtsatzfehler infolge von großen Fehlern in den Wörtern oder großen Lücken- und Überlappungsfehlern zu groß ist, wird die Satzhypothese zurückgewiesen. Wenn der Satzfehler unter eine gewisse vorbestimmte Schwelle fällt, wird die Satzhypothese beibehalten. In der bevorzugten Ausführung wird eine gültige Satzhypothese als der geäußerte Satz nur akzeptiert, wenn der Sprecher aufhört, zu sprechen, oder wenn innerhalb einer kurzen Zeit keine bessere Teilsatzhypothese erzeugt wird. Wenn beispielsweise für die Dauer von 800 ms keine Äußerungen erfolgen, kann die Satzhypothese akzeptiert werden, da angenommen wird, daß der Sprecher einen Satz in der Grammatik beendet hat. Wenn zusätzliche Äußerungen erfolgen und zu einer teilweisen oder vollständigen Satzhypothese mit einem niedrigeren Fehler als die derzeitige Satzhypothese führen, weist die Satzerkennungseinheit 14 die ältere Satzhypothese zugunsten der jüngeren zurück. Wenn die zusätzlichen Äußerungen keine teilweise oder vollständige Satzhypothese mit einem niedrigeren Fehler als die derzeitige Satzhypothese erzeugen, wird diese Hypothese akzeptiert. Es ist nicht notwendig, daß die Sprache aufhört, bevor ein erkannter Satz generiert wird: diese Generierung wird durch die Grammatik bestimmt.
- Als einfaches Beispiel veranlaßt die Äußerung "CALL dddd (Stille)" die Satzerkennungseinheit 14, einen vollständigen Satz zu erkennen. Für die hier vorliegende Beschreibung der Erkennungseinheit wird während des Erkennens einer solchen Äußerung angenommen, daß die Worthypotheseeinheit 12 keine "schlechten" Hypothesen erzeugt. Im tatsächlichen Einsatz erzeugt die Hypotheseeinheit 12 jedoch Hypothesen, die schlecht sein können, und der Zweck der Anwendung der Gesamtsatzfehlerberechnung sowie der verschiedenen Lücken- und Überlappungsfehlerberechnungen besteht darin, das Erkennen der korrekten Äußerung vorzugsweise gegenüber unkorrekten Äußerungen durch einen einfachen Vergleich der Satzfehlerwerte zu veranlassen.
- Die Hypothese "CALL" ist nur für den Knoten 2 gültig, so daß die Satzerkennungseinheit 12 einen Teilsatz entsprechend dem Knoten 2 mit dem Wert CALL erzeugt. Wenn die erste Ziffer empfangen wird, ist der Knoten 4 der einzige gültige Knoten für eine Ziffernhypothese, der auch einen vorangehenden Knoten aufweist, der ein gerade gültiges Satzfragment enthält. Dies bedeutet, daß ein rückwärtsgerichteter Zeiger vom Knoten 4 zum Knoten 2 zeigt, daß ein dem Knoten 2 entsprechendes Satzfragment vorhanden ist. Das Zurückgehen um einen Schritt von jedem Knoten 5, 6, 7, 10, 11 und 12 aus zeigt nicht zu einem Knoten, der ein Satzfragment beendet, so daß die Hypothesen, daß die erste Ziffer für die Knoten 5, 6, 7, 10, 11 oder 12 gilt, zurückgewiesen werden.
- Wenn die zweite Ziffer empfangen wird, kann sie an den Knoten 5 angelegt werden, da dem Knoten 4 ein gültiger Teilsatz als Ergebnis der ersten Ziffer zugeordnet worden ist. Die zweite Ziffer kann hypothetisch auch so angenommen werden, daß sie für den Knoten 4 gilt. Die Satzerkennungseinheit 14 enthält nun die Teilsatzhypothesen "CALL", "CALL erste Ziffer", "CALL erste Ziffer, zweite Ziffer" und "CALL zweite Ziffer". Wenn eine Satzerkennungseinheit an diesem Punkt anhalten würde, sollte das Fragment "CALL erste Ziffer, zweite Ziffer" bevorzugt werden, da es die empfangenen Sprachdaten am besten erklärt. Dies bedeutet, daß bei etwa gleich angenommenen Wortfehlern für jedes Wort die längere Satzhypothese die Lückenfehler auf ein Minimum verringert.
- Diese Prozedur wird fortgesetzt, bis die Satzhypothese "CALL erste Ziffer, zweite Ziffer, dritte Ziffer, vierte Ziffer" empfangen ist. An diesem Punkt mit der Zuordnung der "vierten Ziffer" zum Knoten 7 wird ein vollständiger Satz hypothetisch angenommen. Wenn der Sprecher aufhört, zu sprechen, wird diese Hypothese als ein tatsächlicher Satz akzeptiert, wenn der Gesamtsatzfehler, wie er mittels der Gleichung (1) berechnet wird, kleiner als eine vorbestimmte Schwelle ist.
- Eine kompliziertere Äußerung wäre "PLACE CALL OUTSIDE NUMBER 5436789 (Stille)". Wie durch Betrachtung des Diagramms von Fig. 6 zu erkennen ist, werden mehrere Teilsatzhypothesen von der Satzerkennungseinheit 14 gleichzeitig berücksichtigt. Beispielsweise wird der vollständige Satz "PLACE CALL 5436" als gültige Hypothese parallel zum Teilsatz "PLACE CALL OUTSIDE NUMBER 5436" betrachtet. Da zwischen dem Wort "CALL" und der ersten Ziffer eine beträchtliche Lücke vorhanden ist, führt die kürzere Satzhypothese zu einer viel größeren Fehlerberechnung, wenn Lückenfehler einbezogen werden. Daher wird schließlich die längere Hypothese von der Satzerkennungseinheit 14 vorgezogen.
- Die Tabelle II zeigt die Aktionen der Satzerkennungseinheit 14 bei der Erkennung des Satzes "PLACE CALL OUTSIDE NUMBER 5436789 (Stille)". Zum Zwecke der Erläuterung sei wieder angenommen, daß die Worthypotheseeinheit 12 keine falschen Hypothesen erzeugt.
- Für jede Äußerung zeigt die Tabelle II, welche Knoten im Diagramm von Fig. 6 zugeordnet werden, und es werden alle rückwärtsgerichteten Zeiger zu zuvor gültigen Knoten gezeigt. Es werden keine rückwärtsgerichteten Zeiger zu Knoten erzeugt, denen noch kein gültiger Teilsatz zugeordnet worden ist. Es wird also kein rückwärtsgerichteter Zeiger vom Knoten 4 zum Knoten 12 erzeugt, bis dem Knoten 12 eine Hypothese zugeordnet worden ist. Dies geschieht erst nach Empfang der Äußerung "6".
- Da jedem Knoten mehrfache Worthypothesen zugeordnet werden können, unterscheidet die Tabelle II zwischen ihnen mit alphabetischen Indizes. Somit ist dem Knoten "4a" die Ziffer "5" zugeordnet, während dem Knoten "4b" die Äußerung "4" zugeordnet ist. Eine teilweise oder vollständige Satzhypothese ist durch rückwärtsgerichtete Zeiger von der derzeitigen Worthypothese zum Startknoten definiert. Beispielsweise folgt die Satzhypothese "PLACE CALL OUTSIDE NUMBER 543 6789 den Rückwärtszeigern vom Knoten 7 zum Knoten 0 in der Reihenfolge 7d, 6d, 5d, 4d, 12a, 11a, 10a, 9, 8, 2, 1, 0. Die Teilsatzhypothese "PLACE CALL 543" folgt Rückwärtszeigern durch die Knoten 6a, 5a, 4a, 2, 1, 0. Tabelle II Äußerung wird zugeordnet dem (den) Knoten Nr.: Rückwärtszeiger zum Knoten Nr.: PLACE (START) CALL OUTSIDE NUMBER
- Eine Untersuchung der Tabelle II zeigt, daß jedesmal dann, wenn eine Worthypothese einem Knoten zugeordnet wird, gewisse Entscheidungen getroffen werden müssen. Diese Entscheidungen umfassen die Entscheidung darüber, welcher Knoten der richtige Vorläufer für jeden Knoten ist. Wenn beispielsweise "CALL" dem Knoten 2 zugeordnet wird, könnte der Vorläufer entweder der Knoten 0 oder der Knoten 1 sein. Die Satzfehlerberechnung (nach Gleichung 1) wird für jede Möglichkeit durchgeführt, und die beste wird ausgewählt. Wie in der Tabelle II gezeigt ist, ist der ausgewählte Vorläufer für den Knoten 2 der Knoten 1, der die Teilsatzhypothese "PLACE CALL" gegenüber "CALL" auswählt. Diese Auswahl wird getroffen, weil die Teilsatzhypothese "CALL" einen der Äußerung des Worts "PLACE" entsprechenden Lückenfehler enthält.
- Es ist auch möglich, daß einem einzigen Vorläuferknoten mehrere Hypothesen zugeordnet werden. Wenn beispielsweise dem Knoten 5d "7" zugeordnet wird, sind mögliche Vorläuferknoten die Knoten 4a, 4b, 4c und 4d. Diese vier möglichen Vorläufer müssen untersucht werden, und der beste wird ausgewählt. Im hier vorliegenden Beispiel ergibt die Teilsatzhypothese 4d in Kombination mit 5d die beste nächste Teilsatzhypothese. Abhängig von den den Lücken- und Überlappungsfehlern zugeordneten Gewichtsfaktoren und den tatsächlichen Wortfehlern können einige der Vorläuferknoten auf andere Weise ausgewählt werden, als in der Tabelle II gezeigt ist.
- Die Satzerkennungseinheit 14 erzeugt jedesmal dann ein neues Datenobjekt, wenn eine Worthypothese einem Knoten und einem speziellen Vorläuferknoten zugeordnet worden ist. Ein solches Datenobjekt ist in Fig. 10 dargestellt; es wirkt als Satzhypothese für einen an diesem Knoten endenden teilweisen oder vollständigen Satz. Alle Hypothesen für einen gegebenen Knoten werden mit den Zeigern für den aktuellen Zustand in eine verknüpfte Liste eingegeben, und unter Verwendung des Zeigers für den vorhergehenden Zustand werden die Knoten mit einem vorhergehenden Knoten verknüpft.
- Der Fehlerwert einer vollständigen Satzhypothese wird durch eine rekursive Prozedur berechnet, die rückwärtsgerichtete Zeiger vom derzeitigen Knoten zum vorhergehenden Knoten verfolgt, wobei dem Weg gefolgt wird, der die niedrigsten Ergebnisse hat. Da die Zwischen-Teilsatzfehler an jedem Knoten gespeichert werden, muß diese Prozedur nur ein Rekursionsniveau zurück prüfen. Ein Algorithmus des obersten Niveaus für die Durchführung dieser Verfolgung ist in den Gleichungen (2) und (3) angegeben:
- Satzfehler = Teilsatzfehler (Knoten 7) (2)
- Teilsatzfehler (Knoten n) = Wortfehler (Knoten n) + Lücken-Überlappungs-Fehler (Knoten n, Knoten n-1) + Teilsatzfehler (Knoten n-1) (3)
- Die Gleichungen (2) und (3) implementieren einen DP-Algorithmus. Die Zurückverfolgung durch die ausgewählten Knoten ergibt den Satz mit dem niedrigsten Fehler. Es ist zu erkennen, daß die Gleichungen (2) und (3) lediglich eine rekursive Implementierung der Gleichung (1) sind.
- Wie in der Tabelle II dargestellt ist, kann selbst eine sehr einfache Äußerung mit einer sehr einfachen Grammatik zu einer großen Anzahl von betrachteten Teilsatzhypothesen führen. In praxisgerechten Systemen sind die Rechenleistung und die Speichermittel nicht unbegrenzt, und es können aus mehreren Schemata einige angewendet werden, um bei der Durchführung "schlechte" Teilsatzhypothesen zu eliminieren.
- Das einfachste wäre es, einfach alle Teilsatzhypothesen zu eliminieren, deren Gesamtfehler größer als eine vorbestimmte Schwelle ist. Dies würde in der Tendenz Teilsatzhypothesen eliminieren, die extrem große Lückenfehler aufweisen. In dem in der Tabelle II dargestellten Beispiel wird die Teilhypothese "CALL 8" als gültig betrachtet. Aufgrund des extrem großen Lückenfehlers zwischen "CALL" und "8" würde ein solcher Satz in Wirklichkeit wahrscheinlich nicht zu einer bevorzugten vollständigen Satzhypothese führen. Die Satzerkennungseinheit 14 kann daher eine solche Teilsatzhypothese unmittelbar zurückweisen und nicht für spätere Berechnungsschritte festhalten.
- Ein eingeschränkteres Verfahren würde darin bestehen, für jede Worthypothese nur eine einzige Satzhypothese beizubehalten. Im obigen Beispiel würde nur die beste Hypothese einem Knoten zugeordnet, und Mehrfachzuordnungen zu einem Knoten (beispielsweise 4a, 4b, 4c . . . ) würden eliminiert. Ein solches Schema ist in gewisser Weise restriktiv und macht es schwieriger, nach einem Fehler in einen fehlerfreien Zustand zurückzukehren.
- Wenn alle in der Tabelle II dargestellten Berechnungen beendet sind, sollte die Satzerkennungseinheit 14 den tatsächlich geäußerten Satz als ihre beste Hypothese erkennen. Diese Hypothese berücksichtigt am besten alle empfangenen Sprachdaten bei einer Minimierung der Lücken- und Überlappungsfehler zwischen erkannten Wörtern. Alle anderen Hypothesen führen zu Lückenfehlern, die einen Gesamtsatzfehlerwert ergeben, der größer als der richtige ist.
- Derzeit übliche CWR-Systeme versuchen, einen gültigen Satz zu erzeugen, wenn der Sprecher mit dem Sprechen aufhört. Dies bedeutet, daß eine Stille, die länger als ein Schwellenwert dauert, die Erkennungseinheit veranlaßt, das Satzende anzunehmen und zu versuchen, die beste Übereinstimmung zu finden. Die Anwendung der vorliegenden Lösungsmethode erlaubt der Erkennungseinheit 14, Pausen in der Mitte einer Äußerung ohne weiteres zu verstehen. Die Erkennungseinheit 14 wird keine vollständige Satzhypothese erkennen, wenn eine bessere Teilsatzhypothese vorliegt. Wenn der Sprecher in der Mitte eines Satzes eine Pause macht, wartet die Satzerkennungseinheit 14 lediglich auf die Fortsetzung der Sprache. Ein erkannter Satz wird nur erzeugt, wenn eine vollständige Satzhypothese einen geringeren Fehler als eine vorbestimmte Schwelle hat. Da Schweigelücken kein großer Lückenfehler zugeordnet ist, wird die Gesamtsatzfehlerberechnung nicht beeinflußt.
- Theoretisch gibt es keine Grenze für die Länge der Pause. Ein Sprecher könnte einen Satz beginnen, anhalten, über das Wochenende nach Hause gehen und Tage später zum Beenden des Satzes zurückkehren. Wenn der der Stille zugeordnete Lückenfehler Null wäre (was ziemlich wahrscheinlich ist), würde der erkannte vollständige Satz mit dem identisch sein, der als Ergebnis einer einzigen vollständigen Äußerung erkannt würde. In der Praxis ist dies kaum eine wünschenswerte Situation. Um zu verhindern, daß in einem Satz beliebig lange Lücken auftreten, kann zu ihrer Begrenzung eine Zeitablaufsperre angewendet werden. Wenn für eine die Zeitablaufsperre überschreitende Zeitperiode Stille herrscht oder kein Wort hypothetisch gebildet wird, kann die Satzerkennungseinheit 14 entweder ihre bisherige teilweise oder vollständige Satzhypothese ausgeben, oder sie kann abbrechen und zum Startzustand zurückkehren, was von der Implementierung oder davon abhängt, was der Benutzer bevorzugt. Das Einstellen einer Zeitablaufsperre von beispielsweise einer Minute veranlaßt das System, anzunehmen, daß ein Benutzer nicht beabsichtigt, nach einer Pause von dieser Länge seinen Satz zu beenden.
- Eine Implementierung der oben beschriebenen Prozedur in FORTRAN ist als Anlage A beigefügt. Dieser Code ist auf einem TI-Sprachsystem in einem Texas Instruments Personal Computer unter Verwendung eines TM5320-Signalprozessors von Texas Instruments implementiert worden.
- Zur Minimierung der Lücken- und Überlappungsfehler ist es wichtig, zu erkennen, daß häufig bei den Übergängen zwischen Wörtern eine Koartikulation und andere Effekte auftreten. Zum Minimieren eines Lückenfehlers, der sonst zwischen nacheinander gesprochenen Wörtern vorhanden zu sein scheint, kann es notwendig sein, Extrazustände in die Grammatik einzuführen, wenn der Lückenfehler tatsächlich nicht vorhanden ist. Beispielsweise ist es für einen Sprecher sehr üblich, zwischen das Aussprechen der aufeinanderfolgenden Ziffern "3" und "8" einen Übergangslaut einzuschieben.
- Die tatsächliche Äußerung klingt häufig wie "three/IE/-eight", wobei /IE/ der Übergangslaut zwischen dem End/I/ von "three" und dem Anfangs/E/ von "eight" ist. Obgleich der Sprecher tatsächlich keine Lücke zwischen den Ziffern 3 und 8 gelassen hat, kann die Erkennungseinheit 14 an dieser Stelle eine einfügen, da für "/IE/" hypothetisch angenommen wird. Dies könnte den berechneten Fehlerwert für den Satz stören.
- Fig. 8 zeigt die Einfügung eines Übergangszustandes in eine Grammatik für den Fall, daß die Ziffern 3 und 8 eine gültige Äußerung gemäß der Grammatik bilden können. Die Übergangsäußerung ist in Fig. 8 als "3 : 8" dargestellt, so daß Sprecher, die einen solchen Übergang einfügen, die Grammatik veranlassen, die Zustände von A nach B nach D nach C anstelle direkt von A nach B nach C zu wechseln. Die Berücksichtigung dieser Arten von Übergangseffekten kann die Erkennungsfähigkeit des Systems stark verbessern, und sie ist insbesondere in sprecherunabhängigen Erkennungssystemen nützlich, in denen die Sprechgewohnheiten verschiedener Benutzer variieren können.
- Fig. 9 zeigt zusätzliche wünschenswerte Merkmale einer tatsächlichen Implementierung. Als erstes wäre es wünschenswert, wenn ein System ',Meta-Befehle" enthielte. Diese Befehle sind als solche definiert, die von jedem Zustand aus einen gültigen Übergang darstellen. Beispiele solcher Befehle wären "Abbruch" und "Annullierung". Der Befehl "Abbruch" kann zum Rückstellen der Erkennungseinheit in einen Startzustand in der Gesamtgrammatik ohne Rücksicht auf ihre gerade vorliegende Position verwendet werden. Der Befehl "Annullierung" kann zur Rückkehr zum Anfang der gerade vorliegenden Grammatik in einer unten beschriebenen Grammatik mit Gruppenumschaltung benutzt werden. Diese Art von Befehlen ist besonders nützlich, wo das Erkennungssystem die derzeit beste Teilsatzhypothese auf einer Sichtanzeigevorrichtung, beispielsweise einem Computer-Anzeigeschirm, wiedergibt. Der Benutzer kann die Wirkungen der Erkennungseinheit auf dem Schirm beobachten und abbrechen oder seinen Eingangsbefehl wunschgemäß auf andere Weise ändern. Wie in Fig. 9 dargestellt ist, ist jeder Zustand ein gültiger Vorläuferzustand für die Meta-Befehle M1, und jeder Zustand innerhalb einer Grammatik ist ein gültiger Vorläufer für den entsprechenden Meta-Befehl M2, M3 oder M4.
- Fig. 9 zeigt ein weiteres, extrem nützliches Merkmal für Systeme, die eine begrenzte Rechenleistung haben. Dies beinhaltet die Anwendung der Gruppenumschaltung von Grammatiken und des Vokabulars. Fig. 9 zeigt Teile von drei Grammatiken G1, G2 und G3, die einen Teil einer größeren, komplizierteren Grammatik bilden. Wenn in der Grammatik G1 ein Endknoten 50, 52 erreicht wird, zeigt dies dem System an, daß die Daten für die Grammatiken G2 oder G3 in das System geladen werden sollen, je nachdem, was zutrifft. Ein Übergang zum zutreffenden Anfangszustand 54, 56 der neuen Grammatik G2 oder G3 erfolgt dann automatisch. Der Prozessor kann dann mit der Verarbeitung in der neuen Grammatik fortfahren.
- Der Übergang zu einer neuen Grammatik oder zu einem neuen Vokabular erfolgt immer dann, wenn ein Endknoten in einer vorhergehenden Grammatik erreicht wird. Da die Grammatik das Ende eines Satzes gemäß der Definition in dieser Grammatik während des Fortgangs der Sprache feststellen kann, können Endknoten der Untergrammatiken G1, G2 und G3 wunschgemäß angebracht werden, ohne daß auf Stille Bezug genommen wird, die in der Eingangssprache vorkommen kann.
- Der neuen Grammatik kann auch ein neues Vokabular zugeordnet sein. Wenn das Vokabular des Erkennungssystems aufgrund der begrenzten Verarbeitungs- oder Speicherkapazität eingeschränkt ist, kann es notwendig oder wünschenswert sein, auf eine neue Gruppe von Vokabularschablonen umzuschalten, wenn eine neue Grammatik geladen wird. Es ist nicht notwendig, daß die Grammatik und die Vokabularien gleichzeitig gruppenweise umgeschaltet werden, solange ein Bruch längs gemeinsamer Linien in vielen Fällen auftreten kann.
- Der Meta-Befehl "Abbruch" sollte für alle Kombinationen von Vokabular und Grammatik gültig bleiben. Der Meta-Befehl "Annullierung", der eine Rücksetzung zum Start der gerade vorliegenden Grammatik führt, ist für jede Grammatik geringfügig unterschiedlich. Die Meta-Befehle M2, M3 und M4 bewirken das Rücksetzen der Grammatiken G1, G2 bzw. G3. Wenn der Annullierungsbefehl in einem System implementiert ist, sollte er für alle Kombinationen von Vokabular und Grammatik gültig sein.
- Die Gruppenumschaltung von Grammatiken und Vokabularien könnte als "virtuelle Grammatiken" und "virtuelle Vokabularien" bezeichnet werden. Die bedeutet einfach, daß die Grammatik und das Vokabular, die für das gesamte System gelten, größer als das sind, was durch den Prozessor gleichzeitig direkt behandelt werden kann. Dies ist in gewisser Weise dem Konzept des virtuellen Speichers in einem Computersystem analog, bei dem der virtuelle Speicher viel größer ist und für den Prozessor direkt zugänglich ist.
- Es ist zu erkennen, daß Gruppenumschaltung des Vokabulars und der Grammatik eine Rückkopplung zwischen der Satzerkennungseinheit 14 und der Worthypotheseeinheit 12 beinhaltet. Dies bedeutet, daß die Worthypotheseeinheit 12 durch die Auswahl eines Vokabulars durch die Satzerkennungseinheit auf die hypothetische Annahme nur gewisser Wörter beschränkt ist. In Systemen mit Gruppenumschaltung ist die Entkopplung der Worthypotheseeinheit 12 und der Satzerkennungseinheit 14 daher nicht vollständig. Jedoch ist die Kopplung viel geringer als die in enggekoppelten Systemen vorhandene Kopplung. Eine freie Auswahl der Hypothesen innerhalb des laufenden Vokabulars ist in Systemen mit Gruppenumschaltung immer noch möglich. Im Rahmen des Betriebs einer gegebenen Vokabular/Grammatik-Kombination ist die Entkopplung zwischen der Worthypotheseeinheit 12 und der Satzerkennungseinheit 14 vollständig. Die Kopplung, die auftritt, erfolgt nur in dem von den begrenzten Ressourcen des Systems 10 bestimmten Ausmaß.
- Für die Umschaltoperationen der Grammatik und des Vokabulars wird ein gewisser Zeitanteil benötigt. Auch wenn diese Zeit nur einige Zehntel Millisekunden beträgt, ist es für ein Erkennungssystem, das von Datenrahmen mit einer Länge von typischerweise 10 oder 20 Millisekunden Gebrauch macht, eine lange Verzögerung. Vorzugsweise enthält das System daher einen Puffer, der für die digitalisierten Eingangssprachdaten benutzt wird. Dieser Puffer kann fortlaufend Daten erfassen, während die Vokabular- oder Grammatik-Gruppenumschaltvorgänge durchgeführt werden, und die Verarbeitung kann dann an dem Punkt fortgesetzt werden, wo sie verlassen wurde. Dies ermöglicht einem kleinen System, von großen und komplexen Vokabularien und Grammatiken Gebrauch zu machen, ohne daß ankommende Sprache verlorengeht.
- Das oben beschriebene Spracherkennungssystem ist ein robustes, kostengünstiges System. Die Entkopplung zwischen der Worthypotheseeinheit und der Satzerkennungseinheit ermöglicht eine größere Flexibilität im Systembetrieb und eine größere Chance zur Rückkehr in einen fehlerfreien Zustand nach dem Auftreten falscher Worthypothesen. Die Anwendung von Lücken- und Überlappungsfehlern verbessert die Systemleistung, indem die Satzerkennungseinheit toleranter gegenüber fehlerhaften Hypothesen wird, da diese in einen Kontext sowohl bezüglich der Grammatik als auch bezüglich der Zeit gesetzt werden kann. Eine Gruppenumschaltung von Vokabularien und Grammatiken ermöglicht einem relativ einfachen System, komplexe Aufgaben durchzuführen, und die Implementierung von Meta-Befehlen ermöglicht dem Benutzer, nach Auftreten irgendwelcher Systemfehler wieder in den fehlerfreien Zustand zurückzukehren.
- Das System wird unter Anwendung der verfügbaren Technologie einfach implementiert. Die Worthypotheseeinheit 12 und die Satzerkennungseinheit 14 können mit zugeordneten Speichern und Steuereinheiten auf einer einzigen Karte für die Verwendung in einem Personalcomputer implementiert werden. Beispielsweise kann der Signalprozessor TMS320 für die Worthypotheseeinheit 12 und die Satzerkennungseinheit 14 benutzt werden. Die oben beschriebene Erkennungsprozedur läßt sich einfach in Maschinensprache, in FORTRAN oder auf eine andere gewünschte Weise gemäß bekannten Prinzipien implementieren.
- Die Erfindung ist anhand des oben beschriebenen Systems veranschaulicht worden, und es ist für den Fachmann erkennbar, daß verschiedene Modifikationen und Abänderungen durchgeführt werden können. Solche Variationen fallen in den Rahmen der beigefügten Patentansprüche.
- Dies ist eine modifizierte Version von GRAMREC2D, die die Einschränkung bezüglich der Berücksichtigung von Vorgängerteilsätzen modifiziert und die die maximale Anzahl von Teilsätzen als Initialisierungsargument weitergibt. Dies war wegen eines Mangels in GRAMREC2D erforderlich. Insbesondere war ein viel größerer Wert von ESS DELT in GRAMREC2D als in GRAMREC2C erforderlich wegen der Notwendigkeit, nur diejenigen Vorgängerteilsätze zu betrachten, deren Fehler streng kleiner als die Schwelle waren. Ohne diese Einschränkung besteht die Möglichkeit der Verbindung mit einem Teilsatz, der zuvor wieder verwendet (und dadurch zerstört) wurde. Mit dieser Einschränkung ist die Möglichkeit fehlender richtiger Vorgängerteilsätze ziemlich hoch, wenn ESS DELT nicht übermäßig groß ist. Um dies zu umgehen, wurde eine Änderung der Einschränkung für die Berücksichtigung von Vorgängerteilsätzen durchgeführt. Insbesondere wird der Minimumfehler für ersetzte Teilsätze berechnet und als obere Fehlergrenze für die Berücksichtigung von Vorgängerteilsätzen verwendet.
- Dies ist eine modifizierte Version von GRAMREC2C, bei der die Anwendung einer maximal zulässigen Trennzeit zwischen angrenzenden Wörtern in einer legitimierten Satzhypothese weggelassen ist. Dieses Erfordernis wurde ursprünglich zur Verbesserung des Erkennens und zur Reduzierung der Anzahl erzeugter Satzhypothesen verwendet. Die vorherige Modifikation (GRAMREC2C), die die Berücksichtigung schlechter Vorläuferteilsätze eliminiert, bewirkt eine effektivere Reduzierung der Anzahl von Teilsatzhypothesen. Außerdem wurde festgestellt, daß bei der betriebsmäßigen Anwendung lange Pausen zwischen Wörtern oft angewendet werden, damit der Benutzer seine Gedanken fassen kann.
- Eine zweite Änderung in GRAMREC2D beruht auf der Fähigkeit, einen Teilsatzhypothesenspeicher für alte Teilsätze zurückzugewinnen, die von der Berücksichtigung ausgeschlossen waren, weil der Teilsatzfehler größer als der Schwellenwert ist. Dies wird dadurch erzielt, daß unproduktive Teilsätze mit hohem Fehler erneut verwendet werden. Dies unterscheidet sich geringfügig von GRAMREC2C in dem Sinne, daß GRAMREC2C das Einfügen neuer Hypothesen beschränkt, während GRAMREC2D die Berücksichtigung alter Teilsatzhypothesen beschränkt.
- Dies ist eine modifizierte Version von GRAMREC2B, die neue Teilsatzhypothesen nur dann einführt, wenn sie bei Beurteilung gegenüber dem laufenden besten Teilsatz gut genug sind.
- Dies ist eine modifizierte Version von GRAMREC2, die den besten Teilsatz zurückgibt (einschließlich vollständiger Sätze, wenn der beste Satz den niedrigsten Fehler hat), der mit dem eingegebenen Wort endet, anstatt nur vollständige Sätze zurückzugeben. Eine zusätzliche Variable wird GRAMREC MATCH übergeben, die für ein logisches Ausgangssignal sorgt, um anzuzeigen, wenn die Ausgangswortfolge ein vollständiger Satz ist.
- Die Bestensuche ist nicht auf vollständige Sätze beschränkt, so daß es möglich ist, daß ein gültiger Satz, der mit dem eingegebenen Wort endet, von einem Teilsatz mit einem besseren Gesamt-Teilsatzfehler blockiert wird.
- Dieses Unterprogramm ist mit GRAMEEC2 aufwärtskompatibel in dem Sinne, daß die zusätzliche logische Variable optional ist, und wenn sie nicht enthalten ist, arbeitet das Unterprogramm so, wie oben in GRAMREC2 festgelegt wurde.
- Eine von Mike McMahan angegebene Fehlerbeseitigung muß ibpbest auf Null stellen, auch wenn der Vorläuferknoten der Startknoten ist.
- Dies ist eine wirksamere Version von GRAMREC1. Sie erzielt ihre Wirksamkeit dadurch, daß die Suche nach dem Verbinden von Teilsätzen entsprechend dem Vorläuferknoten organisiert wird und daß eine Zeigermatrix verwendet wird, die auf das nächstvorhergehende Auftreten des ausgewählten Vorläuferknotens zeigt.
- Dieses Unterprogramm wird dazu verwendet, eine Satz- oder Worterkennungshypothese in einen gültigen Satz entsprechend den Einschränkungen einer endlichen Grammatik einzubauen. GRAMREC INJT initialisiert die Grammatik und die Erkennungsparameter.
- GRAMREC RESET wird dazu verwendet, den Erkennungsspeicher nach jedem Satz zurückzustellen. GRAMREC MATCH wird dazu benutzt, jede Erkennungshypothese der Reihe nach zu verarbeiten.
- parameter (maxwords=300) max # der Vokabularwörter
- parameter (maxnodes=99) max # der Grammatikknoten
- parameter (maxwdns=5) max # der ein Wort enthaltenden Knoten
- parameter (maxpcns= 10) max # von Vorläuferknoten für einen Knoten
- Achtung: Ein Vorläuferknoten ist ein Knoten, der zum gerade betrachteten Knoten zeigt.
- integer*2 nnodes # von Knoten in der Grammatik
- character*15 word(-1:maxwords) Buchstabieren jedes Vokabularworts
- integer*2 nwdns(-1:maxwords) # von Knoten, die jedes Wort enthalten
- integer*2 wdns(maxwdns,-1 :maxwords) Knoten, die jedes Wort enthalten
- integer*2 npcns(maxnodes) # von Vorläuferknoten für jeden Knoten
- integer*2 pcns(maxpcns,maxnodes) Vorläuferknoten für jeden Knoten
- integer*2 last ss(maxnodes) letzte Teilsatzhypothese für jeden Knoten
- logical*2 stopnode(maxnodes) Stopknotenkennzeichen
- character*(*) GFILE Name der Grammatikdefmitionsdatei
- integer*2 MAX HYP max # von Teilsatzhypothesen
- integer*2 ID Wortidentität der Eingangsworthypothese
- integer*2 NWOUT # von Wörtern im ausgegebenen Satz
- integer*2 IDOPT(*) Identität des Worts im besten Satz
- real*4 TIMES(2,*) Beginn/End-Zeiten von Wörtern im besten Satz
- logical*2 SENTFLG Kennzeichen zur Anzeige, ob der Ausgang ein vollständiger Satz ist
- parameter (maxhyp=9999) max # von Zustandshypothesen
- parameter (maxlen=20) max # von Wörtern in einem Satz
- real*4 ehyg(maxhyp) TS (Teilsatz)-Fehler für diesen TS
- real*4 thyp(maxhyp) Endzeit für das letzte Wort in diesem TS
- real*4 bhyp(maxhyp) Startzeit für das letzte Wort in diesem TS
- real*4 berr(maxhyp) Best-TS-Fehler für TS's mit diesem TS
- integer2 phyp(maxhyp) Zeiger auf mit dem gleichen Knoten endenden vorherigen TS
- integer*2 fhyp(maxhyp) Zeiger auf mit dem gleichen Knoten endenden nächsten TS
- integer*2 nhyp(maxhyp) Knotenangliederung des letzten Worts im TS
- integer*2 ihyp(maxhyp) Rückwärtszeiger zum vorherigen Wort (TS) in diesem TS
- integer*2 iwrd(maxhyp) letztes Wort in diesem TS parameter (Iug=1)
- logical*2 end of sentence Kennzeichen zum Melden des erfolgreichen Satzendes logical*2 sub sentence Kennzeichen zum Melden eines Teilsatzes
- integer*4 hyp Hypotheseindex
- data jhyp/0/, err max/9E9/, last ss/maxnodes*0/
- Dieser Eingangspunkt initialisiert die Grammatik.
- GFILE: character*(*), der Name der Grammatikdatei
- MAX HYP: integer*2, die maximale Anzahl von Teilsatzhypothesen
- ERROR NULL: real*4 scalar, das Strafmaß (pro Sekunde) für die Wortunterlappung
- ERROR OVLP: real*4 scalar, das Strafmaß (pro Sekunde) für die Wortüberlappung
- WT TIME: real*4 scalar, die Nennlänge eines "Langworts"
- WT MULT: real*4 scalar, der Vorzugsfaktor für ein nominell langes Wort
- ESS DELT: real*4 scalar, die maximale Differenz zwischen dem laufenden besten Satz und einem legitimen Kandidaten-Teilsatz Lesen in der Grammatik
- Achtung: node = 0 ist der Startknoten, node = nnodes ist der Stopknoten.
- Dieser Eingangspunkt bewirkt die Rücksetzung des Eingangshypothesenzählers, so daß alle vorhergehenden Worthypothesen verworfen werden und die Erkennung eines neuen Satzes beginnen kann.
- Dieser Eingangspunkt zählt die Anzahl der Teilsätze, die derzeit aktiv sind.
- NSS ACTIVE: integer*2 scalar, die Anzahl der Teilsatzhypothesen, die derzeit aktiv sind. (Ein Teilsatz, der "aktiv" ist, bedeutet, daß er in einem erfolgreichen Ausgangssatz oder Teilsatz vorhanden sein kann.)
- Dieser Eingangspunkt nimmt eine Eingangsworthypothese und baut mit ihr, eingeschränkt durch die Grammatik, einen optimalen Satz aus Wörtern auf. Wenn die Eingangsworthypothese einen gültigen Satz beendet, wird GRAMREC MATCH auf wahr gesetzt, und der Satz und die Satzstatistik werden ausgegeben.
- ID: integer*2 scalar, der Wortindex der Eingangsworthypothese (EWH)
- ERROR: real*4 scalar, der Erkennungsfehler für die EWH
- T1: real*4 scalar, die Anfangszeit (s) für die EWH
- T2: real*4 scalar, die Beendigungszeit (s) für die EWH
- TWGT: real*4 scalar, die effektive (energiegewichtete) Zeitdauer der EWH
- SENTERR: real*4 scalar, der Satzfehler für den besten Satz, der mit der Eingabe von EWH endet. Dieser Fehler sollte negativ sein. (Ein Fehler mit dem Wert Null ist einem Satz äquivalent, dessen mittlerer Wortfehler gleich dem Nullwortfehler ist.)
- NWOUT: integer*2 scalar, die Anzahl der Wörter im besten Satz, der mit der Eingabe von EWH endet
- IDOPT: integer*2 matrix (xNWOUT), die Wortidentitäten der Wörter im besten Satz, der mit der Eingabe von EWH endet
- TEEES: real*4 matrix, (2xNWOUT), die Beginn-(TIMES(1,nw)) und End- (TEEES(2,nw))-Zeiten der Wörter im besten Satz
- SENTFLG: logisch*2 scalar, ist wahr, wenn und nur wenn der Ausgangsteilsatz ein vollständiger Satz ist (wenn SENTFLG nicht zu GRAMREC MATCH weitergegeben wird, dann werden nur vollständige Sätze zum aufrufenden Programm zurückgegeben.)
- Rückwärtszeiger für jeden Knoten finden, der diese Worthypothese enthält
- Alle Vorläuferknoten für eine beste Übereinstimmung durchsuchen
- Rückwärtssuche durch die vorherige Hypothesenkette der Ts-Hypothesen für beste Übereinstimmung
- Besten Vorläufer-TS für diese Wort/Knoten-Hypothese sichern
- Besten TS-Pfadfehler aktualisieren (zuerst tun, um zu verhindern, daß der laufende
- Nächstverfügbaren inaktiven TS finden
- inaktive TS-Hypothese wiedergewinnen
- TS-Daten sichern
- Verkettungsdaten sichern und TS-Deaktivierungsdaten berechnen
- beste TS-Hypothese für das Eingangswort sichern
- besten Satz aus eben
Claims (15)
1. Spracherkennungssystem (10)
mit einer Spracheingabevorrichtung für den
Empfang einer Spracheingabe und für die Erzeugung einer kontinuierlichen Folge
von Sprachrahmen, die die Sprache repräsentieren, mehreren Referenzschablonen,
von denen jede Folgen von Referenzsprachrahmen enthält, die zu erkennende
Wörter definieren, einem Worthypothesemittel (12), das mit der
Spracheingabevorrichtung und den Referenzschablonen gekoppelt ist, um die kontinuierliche
Folge von Sprachrahmen mit den Referenzschablonen in Übereinstimmung zu
bringen, denn jeder neue Rahmen von der Spracheingabevorrichtung empfangen wird,
und um an ihrem Ausgang mehrere Worthypothesen für alle Folgen von
Sprachrahmen zu erzeugen, die mit einer Referenzschablone übereinstimmen, wobei
einzelne Worthypothesen der mehreren Worthypothesen, die einen bestimmten Wort der
zu erkennenden Sprache entsprechen, durch einen Fehlerwert unterschieden
werden, der den Grad der Ähnlichkeit zwischen dem hypothetisch angenommenen Wort
und der damit in Übereinstimmung gebrachten Referenzschablone angibt und einen
Vertrauensfaktor sowie eine Startzeit und Stopzeit entsprechend der
tatsächlichen Start- und Stopzeit der Erfolge von Sprachrahmen definiert, aus der die
Worthypothese durch das Worthypothesemittel generiert wird, gekennzeichnet
durch eine Grammatikspezifikation, die alle zulässigen, zu erkennenden Sätze
definiert; und mit der Grammatikspezifikation gekoppelte
Spracherkennungsmittel (14), wobei das Worterkennungsmittel einen mit dem Ausgang der
Worthypothesemittel gekoppelten Eingang als Verbindung dazwischen aufweist für den
Empfang jeder Worthypothese, wie sie von dem Worthypothesemittel erzeugt wird,
und für die Bestimmung, ob das hypothetisch angenommene Wort entsprechend der
Grammatikspezifikation eine gültige Fortsetzung einer bisher erzeugten Teil-
Satzhypothese ist, und, falls dies zutrifft, zum Erzeugen einer neuen Teil-
Satzhypothese oder einer Komplett-Satzhypothese einschließlich des
hypothetisch angenommenen Worts, wobei das Satzerkennungsmittel abhängig von einer
Überlappung oder von Lücken zwischen hypothetisch angenommenen Wörtern
entsprechend der Identifizierung durch Startzeit- und Stopzeit-Daten aus den
Worthypothesemitteln Fehlerausdrücke zusätzlich zu den die Vertrauensfaktoren
für jede der Worthypothesen definierten Fehlerwerten erzeugt, und wobei das
Satzerkennungsmittel auf der Basis einer Analyse der Fehlerausdrücke, die eine
Überlappung oder Lücken zwischen hypothetisch angenommenen Wörtern anzeigen,
sowie der die Vertrauensfaktoren für jede der Worthypothesen definierenden
Fehlerwerte bestimmt, ob ein hypothetisch angenommenes Wort eine gültige
Fortsetzung einer bisher erzeugten Teil-Satzhypothese ist.
2. Spracherkennungssystem nach Anspruch 1, bei welchem das
Satzerkennungsmittel einen Gesamtsatzfehler einschießlich der Fehlerausdrücke und der
Fehlerwerte bei der Bestimmung einer gültigen Komplett-Satzhypothese erzeugt.
3. Spracherkennungssystem nach Anspruch 2, bei welchem das
Satzerkennungsmittel mit einer vorbestimmten Satzakzeptanzschwelle bezüglich des bei der
Bestimmung einer gültigen Komplett-Satzhypothese zu tolerierenden maximalen
Gesamtsatzfehlers versehen ist, so daß vorgeschlagene Gesamtsatzhypothesen, die
den maximalen Satzfehler überschreiten, zurückgewiesen werden.
4. Spracherkennungssystem nach Anspruch 2, bei welchem der Gesamtsatzfehler
von dem Satzerkennungsmittel gemäß der folgenden Beziehung erzeugt wird:
wobei gilt: N = Anzahl der Worthypothesen im Satz;
EWi = mittlerer (Rahmen)-Fehler für die
Worthypothese i;
t&sub1;i = Beginnzeit der Worthypothese i;
t&sub2;i = Beendigungszeit der Worthypothese i;
t2º = Beginn der Sprachzeit;
t&sub1;N+1 = Ende der Äußerungszeit;
ERR = Fehlerfunktion für Lücken und
Überlappungsfehler;
wobei eine Überlappung vorliegt, wenn t&sub1;i < t&sub2;i-1 ist und eine Lücke vorliegt,
wenn t&sub1;i > t&sub2;i-1 ist.
5. Verfahren zum Bestimmen einer besten Satzhypothese entsprechend einer Folge
hypothetisch angenommener Wörter, denen jeweils ein Wortfehler sowie Start-
und Stopzeiten zugeordnet sind, enthaltend die Schritte:
a) Erzeugen aller möglichen Worthypothesen für eine Äußerung und Vergleichen
jedes hypothetisch angenommenen Worts mit einer Grammatikspezifikation;
b) Bestimmen, ob innerhalb der Einschränkungen der Grammatik jedes hypothetisch
angenommene Wort gültig an das Ende einer vorhandenen Teil-Satzhypothese
angefügt werden kann, und Identifizieren solcher existierender
Teil-Satzhypothesen;
c) Erzeugen neuer Teil-Satzhypothesen durch Anfügen jedes hypothetisch angenommenen
Worts an das Ende einer identifizierten Teil-Satzhypothese für jede gültige
Anfügung;
d) Bestimmen, ob innerhalb der Grammatikspezifikation Teil-Satzhypothesen, Komplett-
Satzhypothesen sind;
e) Berechnen eines Komplett-Satzhypothesenfehlers für jede Komplett-Satzhypothese,
einschließlich
(e. 1) Zuordnen eines Lückenfehlers zu jedem hypothetisch angenommenen Wort, das
nach dem Ende des letzten Worts in der im Schritt (b) identifizierten
Teil-Satzhypothese beginnt;
f) Auswählen einer Komplett-Satzhypothese auf der Basis der Ergebnisse des Schritts (e).
6. Verfahren nach Anspruch 5, bei welchem die ausgewählte
Komplett-Satzhypothese diejenige Komplett-Satzhypothese ist, deren Komplett-Satzhypothesefehler
zuerst kleiner als ein vorbestimmter Schwellenwert ist und die auf keine
Komplett-Satzhypothesen folgen, deren Komplett-Satzhypothesenfehler kleiner als
ihr eigener sind.
7. Verfahren nach Anspruch 5, bei welchem die ausgewählte
Komplett-Satzhypothese diejenige Komplett-Satzhypothese ist, deren Komplett-Satzhypothesefehler
zuerst kleiner als ein vorbestimmter Schwellenwert ist und auf die keine
Komplett-Satzhypothesen folgen, deren Komplett-Satzhypothesenfehler kleiner als
ihr eigener ist und die innerhalb einer vorbestimmten Periode erzeugt werden,
nachdem ihr Komplett-Satzhypothesenfehler berechnet wird.
8. Verfahren nach Anspruch 5, bei welchem ein Teil-Satzhypothesefehler
jedesmal berechnet wird, wenn ein neuer Teilsatz hypothetisch angenommen wird, und
bei welchem der Schritt (e) den Schritt der Berechnung eines
Teil-Satzhypothesefehlers für die Teil-Satzhypothese umfaßt, die mit dem neu hinzugefügten
hypothetisch angenommenen Wort endet.
9. Verfahren nach Anspruch 8, bei welchem die Berechnung des
Teil-Satzhypothesefehlers die folgenden Schritte umfaßt:
(g) Zuordnen eines Wortfehlers zu jedem hypothetisch angenommenen Wort;
(h) Zuordnen eines Überlappungsfehlers zu jedem hypothetisch angenommenen Wort,
das vor dem Ende des letzten Worts, in der im Schritt (b) identifizierten
Teil-Satzhypothese beginnt;
(i) Summieren der jedem hypothetisch angeordneten Wort in den Schritten (f), (g)
und (e. 1) zugeordneten Fehler zusammen mit dem Teil-Satzfehler der Teil-
Satzhypothese, die im Schritt (b) identifiziert worden ist, damit sich ein
neuer Teil-Satzhypothesefehler ergibt; und
(i) Zuordnen eines neuen Teil-Satzhypothesefehlers zu der im Schritt (c) erzeugten
neuen Teil-Satzhypothese.
10. Verfahren nach Anspruch 9, bei welchem der Lückenfehler im Schritt (e. 1)
Null ist, wenn einer Lücke zwischen aufeinanderfolgenden hypothetisch
angenommenen Wörtern Schweigen zugeordnet ist.
11. Verfahren nach Anspruch 5, ferner enthaltend den Schritt:
(k) Auswählen einer Teil-Satzhypothese als die beste Komplett-Satzhypothese, wenn
eine vorbestimmte Periode verstrichen ist, in der keine Wörter hypothetisch
angenommen worden sind.
12. Verfahren nach Anspruch 5, ferner enthaltend den Schritt:
(1) Abbrechen der Bestsatzbestimmung, wenn eine vorbestimmte Periode verstrichen
ist, in der keine Wörter hypothetisch angenommen worden sind.
13. Verfahren nach Anspruch 5, bei welchem die Grammatikspezifikation Zustände
enthält, die Übergangsäußerungen repräsentieren, die gewöhnlich zwischen
ausgewählten Paaren verbundener Wörter auftreten.
14. Verfahren nach Anspruch 5, ferner enthaltend den Schritt:
(m) Wechsel zu einer zweiten Grammatikspezifikation, in der zusätzliche Teil- und
Komplettsätze gemäß der zweiten Grammatikspezifikation erzeugt werden, wenn
ein Komplettsatz ausgewählt wird.
15. Verfahren nach Anspruch 14, bei welchem auf einen Komplettsatz gemäß der
ersten Grammatik eine Pause folgen muß.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US85653486A | 1986-04-25 | 1986-04-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3786822D1 DE3786822D1 (de) | 1993-09-09 |
DE3786822T2 true DE3786822T2 (de) | 1994-01-13 |
Family
ID=25323876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873786822 Expired - Lifetime DE3786822T2 (de) | 1986-04-25 | 1987-04-10 | Spracherkennungssystem. |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0242743B1 (de) |
JP (1) | JP3124277B2 (de) |
DE (1) | DE3786822T2 (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19857070A1 (de) * | 1998-12-10 | 2000-06-15 | Michael Mende | Verfahren und Vorrichtung zur Ermittlung einer orthographischen Wiedergabe eines Textes |
DE10229207B3 (de) * | 2002-06-28 | 2004-02-05 | T-Mobile Deutschland Gmbh | Verfahren zur natürlichen Spracherkennung auf Basis einer Generativen Transformations-/Phrasenstruktur-Grammatik |
DE10010232B4 (de) * | 1999-03-05 | 2004-08-05 | Auralog | Verfahren und Vorrichtung zur Spracherkennung |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3732849A1 (de) * | 1987-09-29 | 1989-04-20 | Siemens Ag | System-architektur fuer ein akustisches mensch/maschine-dialogsystem |
GB8908205D0 (en) * | 1989-04-12 | 1989-05-24 | Smiths Industries Plc | Speech recognition apparatus and methods |
GB2240203A (en) * | 1990-01-18 | 1991-07-24 | Apple Computer | Automated speech recognition system |
FR2674524B1 (fr) * | 1991-03-25 | 1993-05-21 | Adir | Nouveaux amides alkyl heterocycliques, leur procede de preparation et les compositions pharmaceutiques qui les contiennent. |
US5267345A (en) * | 1992-02-10 | 1993-11-30 | International Business Machines Corporation | Speech recognition apparatus which predicts word classes from context and words from word classes |
US5233681A (en) * | 1992-04-24 | 1993-08-03 | International Business Machines Corporation | Context-dependent speech recognizer using estimated next word context |
DE4397100C2 (de) * | 1992-12-31 | 2003-02-27 | Apple Computer | Verfahren zum Erkennen von Sprachsignalen und Spracherkennungssystem mit rekursiver Grammatik mit endlicher Zustandsanzahl |
DE4306508A1 (de) * | 1993-03-03 | 1994-09-08 | Philips Patentverwaltung | Verfahren und Anordnung zum Ermitteln von Wörtern in einem Sprachsignal |
DE4407833A1 (de) * | 1994-03-09 | 1995-09-14 | Philips Patentverwaltung | Verfahren und Anordnung zum Ermitteln einer Folge von Wörtern aus einem Sprachsignal |
DE4412930A1 (de) * | 1994-04-15 | 1995-10-19 | Philips Patentverwaltung | Verfahren zum Ermitteln einer Folge von Wörtern |
JP2010126266A (ja) * | 2008-11-25 | 2010-06-10 | Nikka Whisky Distilling Co Ltd | 樽搬出入作業システム |
US9799328B2 (en) * | 2012-08-03 | 2017-10-24 | Veveo, Inc. | Method for using pauses detected in speech input to assist in interpreting the input during conversational interaction for information retrieval |
KR20200048976A (ko) * | 2018-10-31 | 2020-05-08 | 삼성전자주식회사 | 전자 장치 및 그 제어 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60501180A (ja) * | 1983-03-28 | 1985-07-25 | エクソン リサ−チ アンド エンジニアリング カンパニ− | スピ−チ認識方法および装置 |
JPS60122475A (ja) * | 1983-11-15 | 1985-06-29 | Nec Corp | パタン認識装置 |
-
1987
- 1987-04-10 EP EP19870105363 patent/EP0242743B1/de not_active Expired - Lifetime
- 1987-04-10 DE DE19873786822 patent/DE3786822T2/de not_active Expired - Lifetime
- 1987-04-24 JP JP62101691A patent/JP3124277B2/ja not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19857070A1 (de) * | 1998-12-10 | 2000-06-15 | Michael Mende | Verfahren und Vorrichtung zur Ermittlung einer orthographischen Wiedergabe eines Textes |
DE10010232B4 (de) * | 1999-03-05 | 2004-08-05 | Auralog | Verfahren und Vorrichtung zur Spracherkennung |
DE10229207B3 (de) * | 2002-06-28 | 2004-02-05 | T-Mobile Deutschland Gmbh | Verfahren zur natürlichen Spracherkennung auf Basis einer Generativen Transformations-/Phrasenstruktur-Grammatik |
Also Published As
Publication number | Publication date |
---|---|
EP0242743B1 (de) | 1993-08-04 |
JPS6326700A (ja) | 1988-02-04 |
DE3786822D1 (de) | 1993-09-09 |
JP3124277B2 (ja) | 2001-01-15 |
EP0242743A1 (de) | 1987-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69818231T2 (de) | Verfahren zum diskriminativen training von spracherkennungsmodellen | |
DE3786822T2 (de) | Spracherkennungssystem. | |
DE69827988T2 (de) | Sprachmodelle für die Spracherkennung | |
DE4397100C2 (de) | Verfahren zum Erkennen von Sprachsignalen und Spracherkennungssystem mit rekursiver Grammatik mit endlicher Zustandsanzahl | |
DE69315374T2 (de) | Spracherkennungssystem zur naturgetreuen Sprachübersetzung | |
DE69908254T2 (de) | System zur Suchoptimierung und Verfahren zur kontinuierlichen Spracherkennung | |
DE69613338T2 (de) | Verfahren und system zur mustererkennung mittels baumstrukturierten wahrscheinlichkeitsdichten | |
DE69725802T2 (de) | Vorfilterung mittels lexikalischer Bäumen für die Spracherkennung | |
DE69225173T2 (de) | Spracherkennungsgerät | |
DE69816177T2 (de) | Sprache/Pausen-Unterscheidung mittels ungeführter Adaption von Hidden-Markov-Modellen | |
DE69225371T2 (de) | Schlüsselwörtererkennung in einem zusammenhängenden Text mittels zweier "Hidden Markov" Modelle | |
DE69518723T2 (de) | Verminderung des Suchraumes bei Spracherkennung unter Verwendung von Phonemgrenzen und Phonemklassen | |
DE60126722T2 (de) | Aussprache von neuen Wörtern zur Sprachverarbeitung | |
EP0299572B1 (de) | Verfahren zur Erkennung von zusammenhängend gesprochenen Wörtern | |
DE69324428T2 (de) | Verfahren zur Sprachformung und Gerät zur Spracherkennung | |
DE69029188T2 (de) | Auf Wahrscheinlichkeitclusterbildung gestützte Schriftzeichenerkennung | |
DE69818161T2 (de) | Automatisierte Gruppierung von sinnvollen Sätzen | |
DE602005000308T2 (de) | Vorrichtung für sprachgesteuerte Anwendungen | |
DE69317229T2 (de) | Verfahren und System zur Verhinderung der Eingabe von verwirrend ähnlichen Sätzen in eine Wörterliste eines Spracherkennungssystems | |
DE69009522T2 (de) | Diagrammanalysator für stochastische Unifikationsgrammatik. | |
EP0604476B1 (de) | Verfahren zur erkennung von mustern in zeitvarianten messsignalen | |
DE3876379T2 (de) | Automatische bestimmung von kennzeichen und markov-wortmodellen in einem spracherkennungssystem. | |
DE69420842T2 (de) | Spracherkennung unter anwendung einer zweidurchgängigen suchmethode | |
DE69010941T2 (de) | Verfahren und Einrichtung zur automatischen Bestimmung von phonologischen Regeln für ein System zur Erkennung kontinuierlicher Sprache. | |
DE69925479T2 (de) | Dynamisch konfigurierbares akustisches modell für spracherkennungssysteme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |