DE60119643T2 - Homophonewahl in der Spracherkennung - Google Patents

Homophonewahl in der Spracherkennung Download PDF

Info

Publication number
DE60119643T2
DE60119643T2 DE60119643T DE60119643T DE60119643T2 DE 60119643 T2 DE60119643 T2 DE 60119643T2 DE 60119643 T DE60119643 T DE 60119643T DE 60119643 T DE60119643 T DE 60119643T DE 60119643 T2 DE60119643 T2 DE 60119643T2
Authority
DE
Germany
Prior art keywords
words
word
homophone
group
recognition result
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
Application number
DE60119643T
Other languages
English (en)
Other versions
DE60119643D1 (de
Inventor
Stijn Jamaica Plain van Even
Olivier Arlington Divay
Francoise Medford Renaud
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
L & H Holdings Usa Inc
L & H Holdings Usa Inc Burlington
Original Assignee
L & H Holdings Usa Inc
L & H Holdings Usa Inc Burlington
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by L & H Holdings Usa Inc, L & H Holdings Usa Inc Burlington filed Critical L & H Holdings Usa Inc
Publication of DE60119643D1 publication Critical patent/DE60119643D1/de
Application granted granted Critical
Publication of DE60119643T2 publication Critical patent/DE60119643T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue

Landscapes

  • Engineering & Computer Science (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)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)

Description

  • TECHNISCHES GEBIET
  • Diese Erfindung bezieht sich auf eine computerunterstützte Spracherkennung und insbesondere auf die Auswahl von Homophonen in Äußerungen.
  • HINTERGUND
  • Ein Spracherkennungssystem analysiert die Sprache eines Nutzers, um festzustellen, was der Nutzer sagt. Die meisten Spracherkennungssysteme arbeiten mit Frames. In einem auf Frames basierenden System teilt ein Prozessor ein für die zu erkennende Sprache beschreibendes Signal in eine Reihe von digitalen Frames, von denen jeder einem kleinen Zeitvorschritt der Sprache entspricht.
  • Ein Spracherkennungssystem kann ein "diskretes" System sein, das diskrete Wörter oder Ausdrücke erkennt, dass aber erfordert, dass der Nutzer zwischen jedem diskreten Wort oder Ausdruck eine kurze Pause einlegt. Alternativ kann ein Spracherkennungssystem ein "kontinuierliches" System sein, das gesprochene Wörter oder Ausdrücke erkennen kann, ungeachtet dessen, ob der Nutzer zwischen diesen eine Pause einlegt. Kontinuierliche Spracherkennungssysteme haben typischerweise wegen der Komplexität bei der Erkennung einer kontinuierlichen Sprache ein hohes Vorkommen von Erkennungsfehlern im Vergleich zu diskreten Erkennungssystemen.
  • Im Allgemeinen analysiert der Prozessor eines kontinuierlichen Spracherkennungssystems "Äußerungen" der Sprache. Eine Äußerung umfasst eine variable Anzahl von Frames und entspricht zum Beispiel einer Sprachdauer, der eine Pause von wenigstens einer vorbestimmten Dauer folgt.
  • Der Prozessor stellt fest, was der Nutzer sagte, indem er akustische Modelle findet, die am besten zu den digitalen Frames einer Äußerung passen, und indem er Text identifiziert, der solchen akustischen Modellen entspricht. Ein akustisches Modell kann einem Wort, einem Ausdruck oder einem Befehl aus einem Wörterverzeichnis entsprechen. Ein akustisches Modell kann auch einen Ton oder ein Phonem repräsentieren, der einem Teil eines Wortes entspricht. Insgesamt geben die konstituierenden Phoneme für ein Wort die phonetische Aussprache des Wortes wieder. Aktustische Modelle können auch Ruhe und verschiedene Typen von Umgebungsgeräuschen darstellen. Im Allgemeinen kann der Prozessor durch Bezugnahme auf phonetische Wortmodelle in einem aktiven Wörterverzeichnis von Worten und Ausdrücken einen Text identifizieren, der mit dem am besten passenden akustischen Modellen korrespondiert.
  • Die Wörter oder Ausdrücke, die mit den am besten passenden akustischen Modellen korrespondieren, werden als Erkennungskandidaten bezeichnet. Der Prozessor kann einen einzelnen Erkennungskandidaten für eine Äußerung erzeugen oder kann eine Liste von Erkennungskandidaten erzeugen.
  • ZUSAMMENFASSUNG
  • Ein fehlerhafter Text, der auf Erkennungsfehler in einer computerunterstützten Spracherkennung zurück geht, wird korrigiert, indem eine Spracherkennung an einer Äußerung durchgeführt, um für die Äußerung ein Erkennungsergebnis zu erzeugen. Ein Korrekturbefehl wird in dem Erkennungsergebnis für die Äußerung identifiziert. Der Korrekturbefehl umfasst eine Satz aus ein oder mehreren Wörtern eines früheren Erkennungsergebnisses und ein Affix, das mit der Gruppe aus ein oder mehreren Wörtern kombiniert sein kann, um ein Homophon der ein oder mehreren Wörtern zu bilden. Das Homophon wird aus der Gruppe von ein oder mehreren Wörtern und dem Affix auf der Basis von Merkmalen von ein oder mehreren Wörtern des früheren Erkennungsergebnisses erzeugt, die nicht in der Gruppe von ein oder mehreren Wörter enthalten sind.
  • Ausführungsformen können ein oder mehrere der folgenden Merkmale enthalten. Zum Beispiel kann die Gruppe aus ein oder mehreren Wörtem des früheren Erkennungsergebnisses durch das Homophon ersetzt werden.
  • Das Erzeugen des Homophons aus der Gruppe aus ein oder mehreren Wörtern und dem Affix kann ein Kombinieren der Gruppe von ein oder mehreren Wörtem und des Affix in der Weise umfassen, dass die Merkmale der ein oder mehreren Wörter des früheren Erkennungsergebnisses mit dem Homophon zusammenpassen. Das Erzeugen des Homophons kann ein Präsentieren einer Liste möglicher Homophone und ein Erhalten einer Auswahl eines Homophons aus der Liste umfassen.
  • Der Korrekturbefehl kann umfassen "ecrire <wort><endung>", wobei <wort> die Gruppe von ein oder mehreren Wörtern des früheren Erkennungsergebnisses repräsentiert und <endung> das Affix repräsentiert. Die Gruppe aus ein oder mehreren Wörtem kann nur ein Wort enthalten und das Affix ist eine Endung.
  • Das Homophon kann genauso wie die Gruppe aus ein oder mehreren Wörtern des früheren Erkennungsergebnisses betont werden. Die ein oder mehreren Phoneme des Homophons können in der Gruppe aus ein oder mehreren Wörtem des früheren Erkennungsergebnisses enthalten sein.
  • Das Homophon umfasst ein Gruppe aus ein oder mehreren Wörtern. Das Affix kann eine Endung sein (das heißt, ein Suffix) oder das Affix kann ein Präfix sein.
  • Die Einzelheiten ein oder mehrerer Ausführungsformen der Erfindung gemäß der angehängten unabhängigen Ansprüche werden in den beigefügten Zeichnungen und der unten stehenden Beschreibung dargelegt. Weitere Merkmale, Aufgaben und Vorteile der Erfindung werden aus der Beschreibung und den Zeichnungen und aus den Ansprüchen deutlich. Beispiele von Versuchen des Standes der Technik, die Probleme der Homophonerkennung anzugehen, sind zum Beispiel in FR 2 735 268 und WO99/16051 zu finden.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm eines Spracherkennungssystems.
  • 2 ist ein Blockdiagramm einer Spracherkennungssoftware des Systems aus 1.
  • 3 ist ein Fließdiagramm einer Signalbearbeitungsprozedur, die von der Software aus 2 durchgeführt wird.
  • 4A und 4B sind Zustandsdiagramme einer Constraint-basierten Grammatik.
  • 5 ist eine grafische Darstellung eines lexikalischen Baumes.
  • 6 ist eine grafische Darstellung eines Teils des lexikalischen Baumes aus 5.
  • 7 ist ein Fließdiagramm einer Vorfilterprozedur, die durch die Software aus 2 durchgeführt wird.
  • 8A, 8B und 8C sind Zustandsgrafiken, welche Knoten des lexikalischen Baumes aus 5 repräsentieren.
  • 9 und 10 sind Treffertabellen, welche den Zuständen der Zustandsgrafiken der 8A, 8B und 8C entsprechen.
  • 11 ist ein Fließdiagramm einer Prozedur zum Bearbeiten von Knoten eines lexikalischen Baumes.
  • 12 ist ein Fließdiagramm einer Spracherkennungsprozedur.
  • 13A und 13B sind Blockdiagramme eines vollständigen Diktier-Wörterverzeichnisses, das Wortfragmente enthält (13B) bzw. nicht enthält (13A).
  • 14A und 14B sind Blockdiagramme eines sollständigen Diktier-Wörterverzeichnisses für die französische Sprache, das Wortfragmente enthält (14B) bzw. nicht enthält ( 14A).
  • 14C ist ein Blockdiagramm der Wortfragmentkomponente des Wörterverzeichnisses aus 14B.
  • 15A und 15B sind Blockdiagramme eines vollständigen Diktier-Wörterverzeichnisses für die US-englische Sprache, welches Wortfragmente enthält (15B) bzw. nicht enthält (15A).
  • 15C ist ein Blockdiagramm der Wortfragmentkomponente des Wörterverzeichnisses aus 14B.
  • 16A ist ein Fließdiagramm einer Prozedur zum Erzeugen von Wortfragmenten, die in einem Spracherkennungssystem verwendet werden sollen.
  • 16B ist ein Fließdiagramm einer Prozedur zum Verwenden erzeugter Wortfragmente in dem Spracherkennungssystem.
  • 17 ein Fließdiagramm einer Prozedur für Die Spracherkennung unter Verwendung eines Homophon-Korrekturbefehls.
  • 18A-D zeigen Schirmanzeigen einer Benutzerschnittstelle des Spracherkennungssystems unter Verwendung der Prozedur aus 17.
  • 19 ist ein Fließdiagramm einer Prozedur zum Korrigieren von Homophonen in der Spracherkennung.
  • 20A, 20B, 21A, 21B und 22A-D sind Diagramme, welche die Korrektur von Erkennungskandidaten unter Verwendung der Prozedur aus 19 zeigen.
  • Ähnliche Bezugssymbole in der verschiedenen Zeichnungen geben ähnliche Elemente an.
  • DETAILLIERTE BESCHREIBUNG
  • Ein Spracherkennungssystem nutzt Wortmerkmale und Ausdrücke in einem Erkennungskandidaten, um Homophonfehler zu korrigieren. Als Hintergrundinformation für die Besprechung der Korrektur von Homophonen wird ein Spracherkennungssystem, das keinen Homophon-Korrekturbefehl verwendet, mit Bezug auf die 1 bis 16B besprochen.
  • Mit Bezug auf 1 umfasst ein Sprecherkennungssystem 100 Eingabe/Ausgabe (I/O)-Einrichtungen (zum Beispiel Mikrofon 102, Maus 104, Tastatur 106 und Display 108) und einen Computer 110 mit einem Prozessor 112, eine I/O-Einheit 114 und eine Soundkarte 116. Ein Speicher 118 speichert Daten und Programme, wie beispielsweise ein Betriebssystem 120, ein Anwenderprogramm 122 (zum Beispiel ein Wortbearbeitungsprogramm) und eine Spracherkennungssoftware 124.
  • Ein für eine Implementierung des Systems geeigneter Computer enthält einen 700 mHz PentiumTM Prozessor, 128 MB Speicher, 12 GB verfügbaren Speicherplatz auf der Festplatte. Der Computer kann mit Windows 95, Windows 98, Windows 2000 oder Windows NT 4.0 als Betriebssystem oder mit irgendeinem anderen geeigneten Betriebssystem laufen.
  • Der Computer 110 kann für die herkömmliche Spracherkennung verwendet werden. In diesem Falle empfängt das Mikrofon 102 die Sprache des Nutzers und transportiert die Sprache in Form eines analogen Signals zu der Soundkarte 116, welche wiederum das Signal durch einen Analog/Digital (A/D)-Wandler hindurch leitet, um das analoge Signal in eine Gruppe von digitalen Werten umzuwandeln. Unter der Steuerung des Betriebssystems 120 und der Spracherkennungssoftware 124 identifiziert der Prozessor 112 Äußerungen in der kontinuierlichen Sprache des Nutzers. Äußerungen werden voneinander durch eine Pause getrennt, die ausreichende Größe bzw. vorbestimmte Dauer (zum Beispiel 160-260 Millisekunden) hat. Jede Äußerung kann ein oder mehrere Wörter der Nutzersprache enthalten.
  • Das System kann auch einen analogen Recorderanschluss 126 und/oder einen digitalen Recorderanschluss 128 enthalten. Der analoge Recorderanschluss 126 ist mit der Soundkarte 116 verbunden und wird dazu verwendet, aufgezeichnete Sprache unter Verwendung eines mobilen analogen oder digitalen Aufzeichnungsgerätes an die Soundkarte zu übertragen. Der analoge Recorderanschluss 126 kann unter Verwendung eines Line-In-Anschlusses implementiert sein. Der Handrecorder ist unter Verwendung eines Kabels an den Anschluss angeschlossen, das zwischen dem Line-In-Anschluss und einem Line-Out-Anschluss oder Lautsprecheranschluss des Recorders angeschlossen ist. Der analoge Recorderanschluss 126 kann als Mikrofon implementiert sein, das so positioniert ist, dass es dem Sprecher des Handrecorders am nächsten ist, wenn der Recorder in den Anschluss 126 eingesetzt ist, und kann auch unter Verwendung des Mikrofon 102 implementiert sein. Alternativ kann der analoge Recorderanschluss 126 als Bandabspielgerät implementiert sein, das ein Band erhält, das unter Verwendung eines Handrecorders aufgezeichnet wurde und eine auf das Band aufgezeichnete Information an die Soundkarte 116 überträgt.
  • Der digitale Recorderanschluss 128 kann so implementiert sein, dass dieser eine digitale Datei überträgt, die unter Verwendung eines digitalen Handrecorders 130 erzeugt wurde. Die Datei kann direkt in einen Speicher 118 übertragen werden oder auf eine Speichereinrichtung, wie eine Festplatte 132. Der digitale Recorderanschluss 128 kann als Speichereinrichtung (zum Beispiel als Floppylaufwerk oder CD-ROM-Laufwerk) des Computers 110 implementiert sein.
  • Um die Spracherkennung und die Prozessfunktionen des Systems 100 zu implementieren, läuft auf dem Computer 110 eine Schnittstellensoftware 140, die Spracherkennungssoftware 124, ein Analysator 142 und eine nachlaufende Software 144. Die Dragon NaturallySpeaking Preferred Edition 3.1, erhältlich von Dragon Systems, Inc. aus Newton, Massachusetts, bietet ein Beispiel einer geeigneten Spracherkennungssoftware. Die Schnittstellensoftware 140 liefert eine Nutzerschnittstelle für ein Steuern der Datenübertragung vom digitalen Recorder und die Erzeugung Aktionsbegriffen für die Verwendung durch die nachlaufende Software 144. Im Allgemeinen kann die Nutzerschnittstelle unter Verwendung von Eingabeein richtungen, wie einer Maus oder einer Tastatur, oder unter Verwendung von Sprachbefehlen, die durch die Spracherkennungssoftware 124 bearbeitet werden, gesteuert werden.
  • Nach dem Übertragen von Daten vom Recorder liefert die Schnittstellensoftware 140 die digitalen Werte für einen Aktionsbegriff an die Spracherkennungssoftware 124. Falls die digitalen Werte unter Verwendung von Kompressionstechniken gespeichert wurden, entkomprimiert die Schnittstellensoftware 140 diese, bevor sie der Spracherkennungssoftware zur Verfügung gestellt werden. Im Allgemeinen analysiert die Spracherkennungssoftware die digitalen Werte, um eine Textsequenz zu erzeugen, und liefert diese Sequenz an die Schnittstellensoftware 140. Die Schnittstellensoftware 140 überträgt dann den Text und die zugehörige Zeitwertung, falls vorhanden, an den Analysator 142, welcher den Text zusammen mit der Zeitwertung bearbeitet, um eine grammatisch bestimmte Version des Aktionsbegriffes zu erzeugen. Der Analysator schickt den grammatisch bestimmten Aktionsbegriff an die Schnittstellensoftware zurück, welche diesen dem Nutzer anzeigt. Nach einem Editieren durch den Nutzer und mit Bestätigung durch den Benutzer überträgt die Schnittstellensoftware dann den Aktionsbegriff an die geeignete nachlaufende Software 144. Ein Beispiel einer nachlaufenden Software, mit welcher das System arbeitet, ist eine Personal Information Management Software, wie Microsoft Outlook, die von der Microsoft Corporation aus Redmond, Washington, erhältlich ist. Eine weitere geeignete nachlaufende Software umfasst eine Kontakt Management Software, Zeit Management Software, Anwendungen zur Kostenaufstellung, elektronische Mailprogramme und Faxprogramme.
  • 2 zeigt Komponenten der Spracherkennungssoftware 124. Für die Besprechung gibt die folgende Beschreibung an, dass die Komponenten Operationen ausführen, um spezifische Ergebnisse zu erhalten. Es sollte jedoch klar sein, dass jede Komponente tatsächlich den Prozessor 112 veranlasst, in der spezifischen Weise zu operieren.
  • Anfänglich wandelt ein voraus laufendes Bearbeitungsmodul 200 die digitalen Werte 205 von der Soundkarte 116 (oder von dem digitalen Recorderanschluss 128) in Frames von Parametern 210 um, welche den Frequenzinhalt einer Äußerung repräsentieren. Jeder Rahmen umfasst 24 Parameter und repräsentiert einen kurzen Teil (zum Beispiel 10 Millisekunden) der Äußerung.
  • Wie in 3 gezeigt ist, erzeugt das voraus laufende Bearbeitungsmodul 200 einen Frame von digitalen Werten gemäß einer Prozedur 300. Das Modul erzeugt zuerst eine Darstellung des Frequenzbereichs X(f) des Teils der Äußerung, indem eine schnelle Fourier-Transforma tion (FFT) an den digitalen Werten (Schritt 305) durchgeführt wird. Als nächstes bestimmt das Modul log(X(f))2 (Schritt 310). Das Modul kann dann eine Frequenzverzerrung (Schritt 315) und eine Filterbankanalyse (Schritt 320) durchführen, um eine Sprechernormierung zu erhalten. Siehe S. Wegmann et al., "Speaker Normalization on Conversational Speech", Proc. 1996 ICASSP, Seiten 1339 bis 1341.
  • Anhand der normierten Ergebnisse führt das Modul eine Cepstralanalyse durch, um zwölf Cepstralparameter (Schritt 325) zu erzeugen. Das Modul erzeugt die Cepstralparameter, indem es eine inverse Cosinustransformation am Logarithmus der Frequenzparameter durchführt. Es hat sich heraus gestellt, dass die Cepstralparameter und die Cepstraldifferenzen (unten beschrieben) effektiver sind, um eine für die Spracherkennung wichtige Information hervor zu heben, als dies Frequenzparameter tun. Nach dem Durchführen einer Kanalnormierung der Cepstralparameter (Schritt 330) erzeugt das Modul zwölf Cepstraldifferenzen (das heißt, die Differenzen zwischen Cepstralparametern in aufeinander folgenden Frames) (Schritt 335) und zwölf Cepstral-Zweitdifferenzen (das heißt, die Differenz zwischen Cepstraldifferenzen in aufeinander folgenden Frames) (Schritt 340). Schließlich führt das Modul eine IMELDA Linear-Kombinationstransformation durch, um die vierundzwanzig verwendbaren Parameter der zwölf Cepstralparameter, die zwölf Cepstraldifferenzen und die zwölf Cepstral-Zweitdifferenzen (Schritt 345) auszuwählen.
  • Wie mit Bezug auf 2, erhält eine Erkennungseinrichtung 215 die Frames einer Äußerung und verarbeitet diese, um einen Text entsprechend der Äußerung zu identifizieren. Die Erkennungseinrichtung unternimmt mehrere Hypothesen zum Text und ordnet jeder Hypothese einen Zahlenwert zu. Der Zahlenwert reflektiert die Wahrscheinlichkeit, mit der eine Hypothese der Sprache eines Nutzers entspricht. Zur Vereinfachung der Verarbeitung werden Zahlenwerte als negative logarithmische Werte beibehalten. Demgemäß zeigt ein niedriger Zahlenwert eine bessere Entsprechung (eine hohe Wahrscheinlichkeit), während ein hoher Zahlenwert eine weniger wahrscheinliche Entsprechung anzeigt (eine geringere Wahrscheinlichkeit), wobei die Wahrscheinlichkeit der Entsprechung mit steigendem Zahlenwert abnimmt. Nach dem Bearbeiten der Äußerung liefert die Erkennungseinrichtung die Hypothese mit dem besten Wert an das Steuer/Schnittstellen-Modul 220 als eine Liste von Erkennungskandidaten, wobei jeder Erkennungskandidat einer Hypothese entspricht und einen zugehörigen Zahlenwert hat. Einige Erkennungskandidaten können dem Text entsprechen, während andere Erkennungskandidaten Befehlen entsprechen. Befehle können Worte, Ausdrücke oder Sätze enthalten.
  • Die Erkennungseinrichtung 215 bearbeitet die Frames 210 einer Äußerung im Hinblick auf ein oder mehrere auf Constraint basierende Grammatiken 225. Eine auf Constraint basierende Grammatik, auch als eine Vorlagen- oder Beschränkungsregel bezeichnet, kann eine Begrenzung auf die Worte, die einer Äußerung entsprechen können, eine Beschränkung auf die Reihenfolge oder grammatische Form der Wörter oder auf beides sein. Zum Beispiel kann eine auf Constraint basierende Grammatik für Menü-Manipulationsbefehle nur Einträge aus dem Menü (zum Beispiel "Datei", "Edit") oder Befehlswörter zum Navigieren durch das Menü (zum Beispiel "up", "down", "oben", "unten") enthalten. Unterschiedliche auf Constraint basierende Grammatiken können zu unterschiedlichen Zeiten aktiv sein. Zum Beispiel kann eine auf Constraint basierende Grammatik einem speziellen Anwendungsprogramm 122 zugeordnet sein und kann aktiviert werden, wenn der Nutzer das Anwendungsprogramm öffnet, und deaktiviert werden, wenn der Nutzer das Anwendungsprogramm schließt. Die Erkennungseinrichtung 215 verwirft jede Hypothese, die nicht mit einer aktiven auf Constraint basierenden Grammatik entspricht. Zudem kann die Erkennungseinrichtung 215 den Zahlenwert einer Hypothese einstellen, die einer speziellen auf Constraint basierenden Grammatik zugeordnet ist, und zwar basierend auf Eigenschaften der auf Constraint basierenden Grammatik.
  • 4A zeigt ein Beispiel einer auf Constraint basierenden Grammatik für einen "Auswahl"-Befehl, der verwendet wird, um einen vorher erkannten Text auszuwählen. Wie dargestellt ist, kann eine auf Constraint basierende Grammatik als ein Zustanddiagramm 400 dargestellt werden. Der "Auswahl"-Befehl enthält das Wort "Auswahl", gefolgt von ein oder mehreren vorher erkannten Wörtern, wobei die Wörter in der Reihenfolge vorliegen, in welcher sie vorher erkannt wurden. Der erste Zustand 405 der auf Constraint basierenden Grammatik gibt an, dass das erste Wort des Auswahlbefehls "Auswahl" sein muss. Nach dem Wort "Auswahl" erlaubt die auf Constraint basierende Grammatik einen Übergang entlang eines Pfades 410 zu einem zweiten Zustand 415, der erfordert, dass das nächste Wort in dem Befehl ein vorher erkanntes Wort ist. Ein Pfad 420, welcher zu dem zweiten Zustand 415 zurück kehrt, gibt an, dass der Befehl zusätzliche vorher erkannte Wörter enthalten kann. Ein Pfad 425, welcher den zweiten Zustand 415 verlässt und den Befehl beendet, zeigt an, dass der Befehl nur vorher erkannte Wörter enthalten kann. 4B zeigt das Zustanddiagramm 450 der auf Constraint basierenden Grammatik für den Auswahlbefehl, wenn eine vorher erkannte Äußerung "four score and seven" ist. Dieses Zustandsdiagramm könnte erweitert werden, so dass es Wörter von zusätzlichen Äußerungen enthält. Der "Auswahl"-Befehl und die Techniken zum Erzeugen seiner auf Constraint basierenden Grammatik sind weiter beschrieben im US Patent Nr. 5,794,189 unter der Bezeichnung "CONTINUOUS SPEECH RECOGNITION", und veröffentlicht am 11. August 1998.
  • Die auf Constraint basierende Grammatik kann auch in einer Backus-Naur-Form (BNF) oder einer Extended BNF (EBNF) ausgedrückt werden. In der EBNF ist die Grammatik für den "Auswahl"-Befehl:
    Figure 00100001
  • Wie in den 4A und 4B dargestellt ist, gibt diese Schreibweise an, dass "Auswahl" irgendeine geordnete Sequenz vorher erkannter Wörter folgen kann. Diese Grammatik erlaubt keine optionalen oder alternativen Wörter. In einigen Fällen kann die Grammatik modifiziert sein, um optionale Wörter (zum Beispiel ein optionales "and", um "four score and seven" oder "four score seven" zu erlauben) oder alternative Wörter oder Ausdrücke (zum Beispiel "four score and seven" oder "eighty seven") zu erlauben. Auf Constraint basierende Grammatiken werden weiter besprochen im US patent Nr. 5,799,279 unter der Bezeichnung "CONTINUOUS RECOGNITION OF SPEECH AND COMMANDS" und veröffentlicht am 25. August 1998.
  • Eine weitere auf Constraint basierende Grammatik 225, die durch die Spracherkennungssoftware 124 genutzt werden kann, ist eine Diktiergrammatik mit großem Wörterverzeichnis. Die Diktiergrammatik mit großem Wörterverzeichnis identifiziert Wörter, die in dem aktiven Wörterverzeichnis 230 enthalten sind, welches das Wörterverzeichnis von der Software bekannten Wörtern ist. Die Diktiergrammatik mit großem Wörterverzeichnis gibt auch die Häufigkeit an, mit welcher Wörter auftreten. Ein Sprachenmodell, das der Diktiergrammatik mit großem Wörterverzeichnis zugeordnet ist, kann ein Unigram-Modell sein, das unabhängig vom Kontext die Häufigkeit angibt, mit welcher ein Wort auftritt, oder ein Bigram-Modell, das im Kontext eines voraus gegangenen Wortes die Häufigkeit angibt, mit welcher ein Wort auftritt. Zum Beispiel kann ein Bigram-Modell anzeigen, dass ein Nomen oder Adjektiv dem Wort "the" wahrscheinlicher folgt als ein Verb oder eine Präposition.
  • Andere auf Constraint basierende Grammatiken 225 umfassen eine Grammatik für In-line-Diktiermakros für Diktierbefehle, wie "CAP" oder "Capitalize", um ein Wort groß zu schreiben, und "New-Paragraph", um einen neuen Absatz zu beginnen; die oben besprochene und beim Auswählen von Text verwendete XYZ-Auswahlgrammatik; eine Grammatik für Fehlerkorrekturbefehle; eine Grammatik für eine Diktateditierung; eine Grammatik zum Befehlen und Steuern einer Anwendung, die verwendet werden kann, um ein spezielles Anwendungsprogramm 122 zu steuern; eine Grammatik zum globalen Befehlen und Steuern, die verwendet werden kann, um das Betriebssystem 120 und die Spracherkennungssoftware 124 zu steuern; eine Grammatik zur Menü- und Dialogverfolgung, die verwendet werden kann, um Menüs zu handhaben; und eine Grammatik zur Tastatursteuerung, die die Verwendung von Sprache anstelle von Eingabeeinrichtungen, wie der Tastatur 106 oder der Maus 104, erlaubt.
  • Das aktive Wörterregister 230 verwendet ein Betonungsmodell, in welchem jedes Wort durch eine Reihe von Phonemen repräsentiert wird, welche die phonetische Aussprache des Wortes bilden. Jedes Phonem kann als ein Triphon repräsentiert werden, das drei Knoten enthält. Ein Triphon ist ein Kontext-abhängiges Phonem. Zum Beispiel repräsentiert das Triphon "abc" das Phonem "b" in dem Kontext der Phoneme "a" und "c", wobei dem Phonem "b" das Phonem "a" voraus geht und das Phonem "c" folgt.
  • Ein oder mehrere Wortschatzdateien können jedem Nutzer zugeordnet werden. Die Wortschatzdateien enthalten alle der Wörter, Betonungen und die Sprachmodellinformation für den Nutzer. Diktat- und Befehlsgrammatiken können zwischen Wortschatzdateien aufgeteilt werden, um die Sprachen-Modellinformation und die Speichernutzung zu optimieren und um jede einzelne Wortschatzdatei unter einer Größengrenze von zum Beispiel 64.000 Wörter zu halten. Es gibt auch eine Gruppe von System-Wortschätzen.
  • Separate Akustikmodelle 235 sind für jeden Nutzer des Systems vorgesehen. Anfänglich sind sprecherabhängige Akustikmodelle für eine männliche oder weibliche Sprache an eine spezielle Sprache des Nutzers unter Verwendung eines Anmeldungsprogramms angepasst. Die Akustikmodelle können mit Verwendung des Systems weiter angepasst werden. Die Akustikmodelle werden in einer Datei getrennt von dem aktiven Wortschatz 230 gehalten.
  • Die Akustikmodelle 235 repräsentieren Phoneme. Im Falle von Triphonen repräsentieren die Akustikmodell 235 jeden Triphonknoten als eine Mischung von Funktionen der gaußschen Wahrscheinlichkeitsverteilung ("PDFs"). Zum Beispiel kann der Knoten "i" eines Triphons "abc" repräsentiert werden als ab'c:
    Figure 00120001
    in welcher jedes wk eine Mischgewichtung ist,
    Figure 00120002
    μk ist eine Hauptvektor für die Funktion der Wahrscheinlichkeitsverteilung ("PDF") Nk und ck ist die Covarianzmatrix für die PDF Nk. Wie die Frames in der Sequenz von Frames enthalten die Vektoren μk vierundzwanzig Parameter. Die Matrizes ck ergeben vierundzwanzig mal vierundzwanzig Matrizes. Jeder Triphonknoten kann als eine Mischung von zum Beispiel sechzehn unterschiedlichen PDFs repräsentiert sein.
  • Eine spezielle PDF kann bei der Darstellung mehrfacher Triphonknoten verwendet werden. Demgemäß repräsentieren die Akustikmodelle 235 jeden Triphonknoten als eine Sammlung von Mischgewichtungen wk, die bis zu sechzehn unterschiedlichen PDFs Nk zugeordnet sind und jeweils jede PDF Nk unter Verwendung eines Hauptvektors μk unter einer Covarianzmatrix ck repräsentieren. Die Verwendung einer speziellen PDF zur Darstellung mehrfacher Triphonknoten ermöglicht, dass die Modelle eine kleinere Anzahl von PDFs enthalten, als erforderlich wäre, wenn jeder Triphonknoten völlig getrennte PDFs enthielte. Da die englische Sprache grob unter Verwendung von 43 unterschiedlichen Phonemen repräsentiert werden kann, können bis zu 79.507 (433) unterschiedliche Triphone vorhanden sein, was zu einer riesigen Anzahl von PDFs führen würde, wenn jeder Triphonknoten durch eine separate Gruppe von PDFs repräsentiert würde. Das Repräsentieren mehrfacher Knoten mit gemeinsamen PDFs kann auch ein Datenverarmungsproblem vermeiden oder verringern, das sich ergibt, weil einige Triphone (zum Beispiel "tzp" in der englischen Sprache) kaum auftreten. Diese raren Triphone können repräsentiert werden, indem sich eng verwandte Triphone die gleiche Gruppe von PDFs teilen.
  • Eine große Wortschatz-Diktatgrammatik kann multiple Diktatthemen enthalten (zum Beispiel "Medizin" oder "Jura"), die jeweils ihre eigene Wortschatzdatei und ihr eigenes Sprachenmodell haben. Ein Diktatthema umfasst eine Gruppe von Wörtern, die den aktiven Wortschatz 230 repräsentieren. In einem typischen Beispiel kann ein Thema etwa 30.000 Wörter enthalten, die für die normale Erkennung in Betracht gezogen werden.
  • Ein vollständiger Diktatwortschatz besteht aus dem aktiven Wortschatz 230 plus einem Un terstützungswortschatz 245. Der Unterstützungswortschatz kann Dateien enthalten, die nutzerspezifische Wörter des Unterstützungswortschatzes und systemweite Wörter eines Unterstützungswortschatzes enthalten.
  • Wörter des nutzerspezifischen Unterstützungswortschatzes enthalten Wörter, die ein Nutzer erzeugt hat, als er die Spracherkennungssoftware verwendet hat. Diese Wörter sind in Wortschatzdateien für den Nutzer und für das Diktatthema gespeichert und sind als Teil des Unterstützungswortschatzes für das Diktatthema ungeachtet des Nutzers und für den Nutzer ungeachtet dessen, welches Diktatthema verwendet wird, verfügbar. Zum Beispiel hat, wenn ein Nutzer ein Medizinthema verwendet und dem Diktatwortschatz das Wort "Ganglion" hinzu fügt, jeder andere Nutzer des Medizinthemas sofort Zugriff auf das Wort "Ganglion". Zudem wird das Wort in den nutzerspezifischen Unterstützungswortschatz geschrieben. Falls dann der Nutzer "Ganglion" sagt, während er ein Jurathema verwendet, wird das Wort "Ganglion" während der Korrektur von dem Unterstützungswörterbuch verfügbar.
  • Zusätzlich zum oben angegebenen nutzerspezifischen Unterstützungswortschatz gibt es einen systemweiten Unterstützungswortschatz. Der systemweite Unterstützungswortschatz enthält all die Wörter, die dem System bekannt sind, einschließlich Wörtern, die gegenwärtig in einem aktiven Wortschatz sein können.
  • Wieder mit Bezug auf 2 kann die Erkennungseinrichtung 215 parallel mit einer Vorfilterprozedur 240 arbeiten. Bei Beginn der Verarbeitung einer Äußerung fordert die Erkennungseinrichtung 215 von der Vorfilterprozedur 240 eine Liste von Wörter an, die als erstes Wort der Äußerung gesprochen worden sein können (das heißt, Wörter, die dem ersten und den nachfolgenden Frames der Äußerung entsprechen können). Die Vorfilterprozedur 240 führt einen groben Vergleich der Sequenz von Frames mit dem aktiven Wortschatz 230 durch, um eine Teilmenge des Wortschatzes zu identifizieren, für welchen ein ausgedehnterer Vergleich unter Verwendung der Erkennungseinrichtung gerechtfertigt ist.
  • Mit Bezug auf die 5 und 6 nutzt die Vorfilterprozedur 240 einen lexikalischen Baum 500, der initialisiert wird, bevor die Verarbeitung beginnt. Der lexikalische Baum repräsentiert den aktiven Wortschatz 230 basierend auf den phonetischen Beziehungen zwischen Wörtem m Wortschatz. Der lexikalische Baum umfasst einen Wurzelknoten 505, der in den lexikalischen Baum eintretende neue Wörter repräsentiert. Von dem Wurzelknoten 505 erstreckt sich der Baum zu einer Gruppe 510 von Knoten, die Phonemen entsprechen, mit welchen Wörter beginnen. Ein Ruheknoten 512, der Ruhe repräsentiert, kann auch vom Wurzel knoten 505 aus erreicht werden.
  • Jeder Knoten in der Gruppe 510 repräsentiert ein Phonem, das am Beginn eines oder mehrerer Wörter auftritt. Zum Beispiel entspricht im Bereich 600 des in 6 dargestellten lexikalischen Baumes 500 ein Knoten 610 allen Wörtern im Wortschatz, die mit dem Phonem "H" beginnen. Zusammen umfassen die Knoten der Gruppe 510 Darstellungen des Startphonems jedes Wortes im Wortschatz.
  • Der lexikalische Baum erstreckt sich weiter, bis er Blätterknoten 515 erreicht, welche die tatsächlichen Wörter des Wortschatzes repräsentieren. Zum Beispiel entspricht, wie mit dem Quadratsymbol angegeben, der Blätterknoten 615 in 6 dem Wort "healing". Ein innerer Knoten des Baumes kann auch ein Wort des Wortschatzes repräsentieren. Zum Beispiel könnte der Knoten 520 ein spezielles Worfschatzwort repräsentieren zusätzlich dazu, dass dieser die ersten zwei Phoneme anderer Wortschatzwörter repräsentiert. Ebenso entspricht der Blätterknoten 620 in 6 den Wörtem "hael" und "heel", wobei er auch den ersten drei Phonem der Wörter "heals", "heels" und "healing" entspricht. Der Knoten 620 zeigt auch, dass ein Blätterknoten mehr als einem Wort entsprechen kann, da mehrere Wörter die gleiche phonetische Aussprache haben können. Wie in 6 dargestellt ist, können die Blätterknoten an unterschiedlichen Niveaus innerhalb des lexikalischen Baumes auftreten. Die Blätterknoten können auch Befehlen entsprechen. Zum Beispiel kann ein Blätterknoten dem Wort "auswählen" und dem Befehl "AUSWÄHLEN" entsprechen. Wie oben angegeben, können Befehle speziellen auf Constraint basierenden Grammatiken 225 zugeordnet sein.
  • Die Betriebsweise der Vorfilterprozedur 240 ist in 7 dargestellt. Die Vorfilterprozedur beginnt mit dem Zurückladen des nächsten Frames von Parametern für eine Äußerung (Schritt 700). Unmittelbar nach der Initialisierung wird der nächste Frame der erste Frame für die Äußerung. Danach wird der nächste Frame der Frame, der dem letzten Frame folgt, welcher durch die Vorfilterprozedur verarbeitet wurde, als die Vorfilterprozedur zuletzt aufgerufen wurde. Die Vorfilterprozedur reinitialisiert den lexikalischen Baum zwischen Anforderungen der Wörterliste nicht. Demgemäß entspricht der Zustand des lexikalischen Baumes, wenn eine Liste von Wörtern angefordert wird, dem Zustand des lexikalischen Baumes, nachdem eine vorherige Liste von Wörtern zurück geschickt wurde.
  • Nach dem Zurückladen eines Frames von Daten findet die Vorfilterprozedur einen aktiven Knoten im Baum ohne unverarbeitete aktive Nachfolger (Schritt 705). Die Nachfolger eines Knotens können auch als Unterknoten des Knotens bezeichnet werden. Wenn der lexi kalische Baum initialisiert wird, ist der Ruheknoten 512 der einzige aktive Knoten.
  • Als Nächstes verarbeitet die Vorfilterprozedur den gegenwärtigen Knoten (Schritt 710) entsprechend einer Knoten-Verarbeitungsprozedur 1100, die unten mit Bezug auf 11 besprochen wird. Die Knoten-Bearbeitungsprozedur bestimmt, ob der Knoten zusätzliche aktive Knoten produzieren sollte und ob der Knoten inaktiv gemacht werden sollte. Falls der Knoten ein Blattknoten ist, bestimmt die Knoten-Bearbeitungsprozedur auch, ob das dem Knoten entsprechende Wort zu einer dem Knoten zugeordneten Zeit einer Wortliste hinzu gefügt werden sollte.
  • Nach dem Bearbeiten des Knotens (Schritt 710) bestimmt die Vorfilterprozedur, ob der Knoten der höchste Knoten im Baum ist (das heißt, der Wurzelknoten) (Schritt 715). Falls der Knoten nicht der höchste Knoten ist, dann geht die Vorfilterprozedur zum nächsten Knoten, der keine unbearbeiteten aktiven Unterknoten (Schritt 720) hat und bearbeitet diesen Knoten (Schritt 710). Bei der Suche nach dem nächsten zu bearbeitenden Knoten berücksichtigt die Vorfilterprozedur inaktive Knoten mit aktiven Unterknoten oder aktiven Geschwistern.
  • Falls der bearbeitete Knoten der höchste aktive Knoten (Schritt 715) ist, dann bearbeitet die Vorfilterprozedur den Ruheknoten 512 (Schritt 725). Im Allgemeinen wird der Ruheknoten bearbeitet, indem ein Frame mit einem Modell für Ruhe verglichen wird und der resultierende Wert dem Minimum des gegenwärtigen Werts für den Ruheknoten und dem Wert für den Wurzelknoten 505 hinzu gefügt wird.
  • Als Nächstes setzt die Vorfilterprozedur den lexikalischen Baum (Schritt 730) neu. Die Vorfilterprozedur setzt den Baum immer dann neu, wenn der Ruheknoten 512 aktiv ist oder ein Wort durch einen Blattknoten des lexikalischen Baumes produziert wurde, ungeachtet dessen, ob das Wort der Wörterliste hinzu gefügt war. Die Vorfilterprozedur setzt den Baum neu, indem sie die Wertung für den Wurzelknoten 505 durch das Minimum der Wertung für den Wurzelknoten 512 und die Wertungen von Wörtern, die durch Blätterknoten des lexikalischen Baumes für den gegenwärtigen Rahmen erzeugt wurden, ersetzt. Falls der Ruheknoten inaktiv ist und kein Blätterknoten ein Wort erzeugt hat, ersetzt dann die Vorfilterprozedur die Wertung für den Wurzelknoten 505 mit einer schlechten Wertung (das heißt, einer Wertung mit einem Wert größer als einem Pruning-Schwellenwert.
  • Als Nächstes bestimmt die Vorfilterprozedur, ob mehrere Wörter der Wörterliste für die erforderliche Zeit (Schritt 735) hinzu gegeben werden können. Falls es keine aktiven Knoten in dem lexikalischen Baum gibt, die der Sprache entsprechen, die zu dem, vor dem oder kurz nach dem Startzeitpunkt begonnen hat, für welche die Liste angefordert wurde, und falls der letzte zu bearbeitende Frame einer Zeit entspricht, die kurz nach der Startzeit liegt, für welche die Liste angefordert wurde, dann können keine weiteren Wörter der Wörterliste hinzu gefügt werden. Ein durch den lexikalischen Baum erzeugtes Wort wird der Liste von Wörtem entsprechend der Startzeit des Wortes und der Wörterliste entsprechend den Zeiten, die der Startzeit des Wortes voraus gehen und folgen, hinzu gefügt. Aus diesem Grunde wartet die Vorfilterprozedur, bis keine aktiven Knoten in dem Baum vorliegen, der der Sprache entspricht, die kurz nach der Startzeit für die Wörterliste gestartet wurde. Falls mehrere Wörter hinzu gefügt werden können, dann lädt die Vorfilterprozedur den nächsten Frame von Parametern (Schritt 700) zurück und wiederholt die oben besprochenen Schritte.
  • Falls Wörter der Wörterliste nicht hinzu gefügt werden können (Schritt 735), dann bringt die Vorfilterprozedur die Wörterliste (Schritt 740) zur Erkennungseinrichtung 215 zurück. Falls die Wörterliste mehr als eine vordefinierte Anzahl von Wörtern enthält, entfernt dann die Vorfilterprozedur Wörter von der Liste, bevor sie die Liste zurück bringt. Die Vorfilterprozedur entfernt die Wörter, die am wenigsten wahrscheinlich der Sprache des Benutzers entsprechen und entfernt genügend Wörter, um die Anzahl von Wörtern auf der Liste auf die vordefinierte Anzahl zu reduzieren. Die Prozedur löscht auch alle Wörterlisten für Zeiten vor der angeforderten Startzeit.
  • Jeder Knoten des lexikalischen Baumes 500 (5) repräsentiert eine Folge von Zuständen für ein spezielles Phonem. Zum Beispiel zeigt 8A einen Knoten 800, der einen ersten Zustand 805, einen zweiten Zustand 810 und einen dritten Zustand 815 enthält. Ein Vergleich mit einem Frame von Parametern kann bewirken, dass die Wertung in einem speziellen Zustand in dem Zustand verbleibt (über einen Pfad 820). Eine Wertung bleibt in dem Zustand, wenn die Wertung, nachdem sie basierend auf einen Vergleich mit einem Modell für den Zustand eingestellt worden ist, besser als eine Wertung ist, die aus einem vorher gehenden Zustand oder Knoten kommt, oder wenn keine Wertung von einem vorstehenden Zustand oder Knoten kommt. Der Vergleich kann auch bewirken, dass die Wertung über einen Pfad 825 an einen nachfolgenden Zustand gegeben wird. Eine Wertung wird an einen nachfolgenden Zustand gegeben, wenn die Wertung, nachdem sie basierend auf einen Vergleich mit einem Modell für den nachfolgenden Zustand eingestellt wurde, besser ist als die Wertung in den nachfolgenden Zustand, oder wenn keine Wertung dem nachfolgenden Zustand zugeordnet wird. Die Wertung für den dritten Zustand 815 kann über einen Pfad 830 an einen oder mehrere nachfolgende Knoten weiter gegeben werden.
  • Mit Bezug auf 8B wird der Knoten 512, der der Ruhe entspricht, durch einen einzelnen Zustand 840 repräsentiert. Jeder Vergleich mit einem Frame von Parametern kann bewirken, dass eine Wertung in dem Knoten in dem Zustand 840 verbleibt (über den Pfad 845), und kann auch bewirken, dass die Wertung über einen Pfad 850 zu dem Wurzelknoten 505 weiter gegeben wird.
  • Mit Bezug auf 8C wird der Wurzelknoten 505 durch einen Einzelzustand 860 repräsentiert. Ein Vergleich mit einem Frame bewirkt, dass die Wertung in den Knoten, die über einem Pfad 865 an ein oder mehrere nachfolgende Knoten weiter gegeben wird (einschließlich dem Ruheknoten 512).
  • Jeder Zustand eines Knotens kann durch vier Werte repräsentiert werden: eine Wertung, eine Startzeit, eine abgehende Strafe und eine bleibende Strafe. Die Wertung repräsentiert die Wahrscheinlichkeit, dass eine Reihe von Frames den lexikalischen Baum in den Zustand gesetzt haben (das heißt, die Wahrscheinlichkeit, dass die Reihen von Frames dem Wort oder dem Teil eines Wortes entsprechen, dem der Zustand entspricht). Die Wertungen werden als negative logarithmische Werte beibehalten.
  • Die Startzeit identifiziert die hypothetisch angenommene Zeit, zu welcher der Nutzer begann, das Wort oder die Wörter zu sprechen, die durch den Zustand repräsentiert werden. Insbesondere identifiziert die Startzeit die Zeit, zu welcher die dem Zustand zugeordnete Wertung in den lexikalischen Baum eintritt (das heißt, die Zeit, zu welcher die Wertung vom Zustand 840 den Pfad 850 entlang geschickt wurde).
  • Die abgehende und bleibende Strafe sind dem Zustand zugeordnete feste Werte. Die abgehende Strafe wird einer Wertung hinzu gefügt, die in dem Zustand bleibt. Die abgehende Strafe steht in umgekehrtem Bezug zur Länge des durch den Zustand repräsentierten Tons und zur Länge des durch den Knoten, zu welchem der Zustand gehört, repräsentierten Phonems. Zum Beispiel könnte die bleibende Strafe proportional sein zu -log (1-1/davg), wobei davg die mittlere Dauer in Frames durch den Zustand repräsentierten Ton ist. So hat die bleibende Strafe einen relativ großen Wert, wenn der mit dem Zustand korrespondierende Ton nur für einen kurzen Zeitbetrag auftritt und einen relativ kleinen Wert, wenn der mit dem Zustand korrespondierende Ton für einen großen Zeitbetrag auftritt.
  • Die mittlere Dauer wird einer Wertung hinzu gefügt, die den Zustand verlässt und enthält eine Zeitkomponente und eine Sprachmodellkomponente. Die Zeitkomponente bezieht sich direkt auf die Länge des durch den Zustand repräsentierten Tons und auf die Länge des durch den Knoten, zu dem der Zustand gehört, repräsentierten Phonems. Zum Beispiel könnte die Zeitkomponente die abgehende Strafe proportional zu -log (1/davg) sein. Auf diese Weise hat die Zeitkomponente der abgehenden Strafe einen relativ großen Wert, wenn der dem Zustand entsprechende Ton für eine lange Zeitdauer auftritt, und einen relativ kleinen Wert, wenn der dem Zustand entsprechende Ton für eine kleine Zeitdauer auftritt.
  • Die Sprachmodellkomponenten der abgehenden Strafe für alle Zustände in einen speziellen Knoten zusammen repräsentieren eine Sprachmodell-Wertung für das diesem Knoten zugeordnete Phonem. Die Sprachmodell-Wertung repräsentiert die Wahrscheinlichkeit, dass ein Wort, welches das Phonem enthält, in der Sprache auftritt. Die Sprachmodell-Wertung, die in den abgehenden Strafen für einen Knoten erhalten ist, ist die Zunahme der Wertung für das beste Sprachenmodell für den Zweig des lexikalischen Baumes, das mit dem Knoten relativ zu dem Zweig des lexikalischen Baumes beginnt, der mit den Knoteneltern beginnt.
  • Die folgende Besprechung geht davon aus, dass es mit dem Zustand 840 oder dem Zustand 860 keinen verbundenen, abgehenden oder bleibenden Strafen gibt. Das gleiche Ergebnis könnte erreicht werden, indem die abgehenden und bleibenden Strafen für die Zustände 840 und 860 gleich Null gesetzt werden. Die folgende Besprechung geht auch davon aus, dass der erste Frame der Frame ist, der Sprache und keiner Ruhe entspricht.
  • 9 liefert ein vereinfachtes Beispiel, wie sich Wertungen durch den lexikalischen Baum hindurch fortpflanzen. Bevor der erste Frame zurückgeladen wird (Zeile 900), hat der Zustand 840 (welcher der Ruhe entspricht) eine Wertung Null und keine anderen Knoten sind aktiv. Die Wertung Null bedeutet, dass es eine Wahrscheinlichkeit von einhundert Prozent gibt, dass das System von der Ruhe aus startet.
  • Nachdem der erste Frame zurückgeladen worden ist (Zeile 905) wird die Wertung für den Zustand 840 (SA1) gleich der akustischen Wertung (AA1) gesetzt, die sich aus einem akustischen Abgleich des ersten Frames mit einem akustischen Modell entsprechend dem Zustand 840 ergibt (das heißt, dem akustischen Modell für Ruhe). Auf diese Weise wird die Wertung für den Zustand 840 (SA1) gleich der Wahrscheinlichkeit gesetzt, dass der erste Frame Ruhe entspricht.
  • Das Zurückladen des ersten Frames bewirkt auch, dass der Zustand 805 zu einem aktiven Zustand wird. Angenommen, dass der Knoten 800 einem Phonem entspricht, welches ein Wort startet, wird die Wertung für den Zustand 805 (SB1) gleich der akustischen Wertung (AB1) gesetzt, die sich aus einem akustischen Abgleich des ersten Frames mit dem akustischen Modell entsprechend dem Zustand 805 ergibt. Auf diese Weise wird die Wertung für den Zustand 805 (SB1) gleich der Wahrscheinlichkeit gesetzt, dass der ersten Frame dem Zustand 805 entspricht. Die Startzeit für den Zustand 805 wird gleich der dem ersten Frame zugeordneten Zeit gesetzt. Dieser Wert für die Startzeit gibt an, dass die Wertung am Zustand 805 ein Wort repräsentiert, das zu einer Zeit gestartet wurde, die dem ersten Frame entspricht. Die Startzeit bewegt sich mit der Wertung, wenn sich die Wertung durch den lexikalischen Baum fortpflanzt.
  • Nachdem der zweite Frame zurückgeladen wurde (Zeile 910), wird die Wertung für den Zustand 840 (SA2) gleich der Summe der vorherigen Wertung für den Zustand (SA1) und der akustischen Wertung (AA2) gesetzt, die sich aus einem akustischen Abgleich des zweiten Frames mit dem akustischen Modell für Ruhe ergibt: SA2 = SA1 + AA2 = AA1 + AA2
  • Wie oben angemerkt, entspricht jede der Wertungen einer negativen logarithmischen Wahrscheinlichkeit. Demgemäß entspricht das Addieren von Wertungen einem Multiplizieren der Wahrscheinlichkeiten. Auf diese Weise ist die Wertung des Zustands 840 (SA2) gleich der Wahrscheinlichkeit, dass sowohl der erste als auch der zweite Frame der Ruhe entspricht. Diese Verfahren wird für nachfolgende Frames wiederholt (zum Beispiel Zeile 915 und 920), so dass die Wertung für den Zustand 840 am Frame "n" (SAn) gleich:
    Figure 00190001
  • Dieser Ausdruck geht davon aus, dass der Ruheknoten 512 nicht von dem Wurzelknoten 505 neu gesetzt wird. Falls am Frame n ein neues Setzen auftritt, würde dann der Wert SAn-1, durch die Wertung in dem Wurzelknoten 505 für den Frame n-1 ersetzt werden.
  • Nachdem der zweite Frame zurückgeladen worden ist, wird die Wertung für den Zustand 805 (SB2) gleich gesetzt mit: SB2 = min(SB1 + stayB,SA1) + AB2 wobei AB2 die akustische Wertung ist, die sich aus einem akustischen Abgleich des zweiten Frames mit dem akustischen Modell entsprechend dem Zustand 805 ergibt, und stayB der bleibenden Strafe für den Zustand 805 ist. Die Wertung für den Zustand 805 (SB2) entspricht den wahrscheinlicheren zwei Alternativen: (1) der erste Frame war Ruhe und der zweite Frame war der durch den Zustand 805 repräsentierte Ton, oder (2) sowohl der erste als auch der zweite Frame waren der durch den Zustand 805 repräsentierte Ton. Die erste Alternative entspricht einem Übergang von einem Zustand 840 zum Zustand 805 entlang des Pfades 850. Die zweite Alternative entspricht einem Übergang vom Zustand 805 zurück zum Zustand 805 entlang des Pfades 820. Wenn die erste Alternative wahrscheinlicher ist, wird die Startzeit, die dem ersten Frame entspricht, der vor dem Zustand 805 gespeichert wurde, ersetzt durch einen Wert, der dem zweiten Frame entspricht. Dieser Wert gibt an, dass die Wertung am Zustand 805 ein Wort repräsentiert, das mit dem zweiten Frame begonnen hat.
  • Nachdem der zweite Frame zurückgeladen worden ist, wird der Zustand 810 ein aktiver Zustand. Die Wertung für den Zustand 810 (SC2) wird gleich gesetzt mit: SC2 = SB1 + leaveB + AC2 wobei AC2 die akustische Wertung ist, die sich aus einem akustischen Abgleich des zweiten Frames mit dem akustischen Modell entsprechend dem Zustand 810 ergibt, und leaveB ist die abgehende Strafe für den Zustand 805. Ähnlich sind leaveC und leaveD abgehende Strafen für jeweils die Zustände 810 bzw. 815. Die Summe der Sprachenmodellkomponenten von leaveB, leaveC und leaveD repräsentiert die Sprachemodell-Wertung für das durch den Knoten 800 repräsentierte Phonem.
  • Die Methodik zum Bestimmen von Zustandwertungen für andere Zustände als den Ruhezustand können allgemeiner ausgedrückt werden als: Si,j = min(Sij-1 + stayi, Si-1,j-1 + leavej-1) + Ai,j,für i größer als Null (wobei i gleich Null der Ruhe entspricht), und mit der Grenzbedingung, dass die Wertung für einen inaktiven Zustand gleich unendlich oder einem ausreichend großen Wert ist. Die Startzeit für den Zustand kann dargestellt werden als: ti,j = ti,j-1 für Si,j-1 + stayi ≤ Si-1,j-1 + leavej-1 oder ti,j = ti-1,j-1 für Si,j-1 + stayi ≤ Si-1,j-1 + leavej-1 für i und j größer als Null und mit der Grenzbedingung, dass der Zeitwert für einen erneuten aktiven Zustand den Frame repräsentiert, bei welchem der Zustand aktiv wird. Wie vorher angegeben, können die Zustandswertungen für den Ruhezustand bestimmt werden, als:
    Figure 00210001
    wobei die Grenzbedingung gilt, dass S0,0 gleich Null ist. Eine noch allgemeinere form, in welcher die Wertungen als Funktionen der verschiedenen Parameter ausgedrückt werden, ist in 10 dargestellt.
  • Mit Bezug auf 11 kann eine Knoten gemäß einer Knoten-Bearbeitungsprozedur 1100 bearbeitet werden. Anfänglich aktualisiert die Knoten-Bearbeitungsprozedur die Wertungen und Zeitwerte für jeden Zustand des Knotens (Schritt 1105). Die Knoten-Bearbeitungsprozedur aktualisiert die Wertungen und die Zeitwerte, indem akustische Wertungen erzeugt werden und die oben besprochenen Gleichungen verwendet werden.
  • Wenn der letzte Zustand des Knotens vor dem Aktualisieren der Wertungen für den Knoten aktiv war, nutzt die Knoten-Bearbeitungsprozedur die Wertung für den letzten Zustand, um Wertungen für inaktive Subknoten des Knotens zu erzeugen. Falls die erzeugte Wertung für einen Subknoten einen Schwellenwert nicht übersteigt, aktiviert dann die Knoten-Bearbeitungsprozedur diesen Subknoten und versorgt den Subknoten mit der erzeugten Wertung.
  • Als Nächstes bestimmt die Knoten-Bearbeitungsprozedur, ob die Wertung eines Zustands des Knotens den Pruning-Schwellenwert übersteigt (Schritt 1110). Wenn eine Wertung den Schwellenwert übersteigt, wird die Wahrscheinlichkeit, dass das durch die Wertung repräsentierte Wort gesprochen wurde, als zu klein angenommen, um eine weitere Berücksichtigung zu finden. Aus diesem Grunde beschneidet die Prozedur den lexikalischen Baum, indem jeder Zustand mit einer Wertung deaktiviert wird, welche den Schwellenwert übersteigt (Schritt 1115). Falls jeder Zustand des Knotens deaktiviert wird, dann deaktiviert die Knoten-Bearbeitungsprozedur auch den Knoten. Die Knoten-Bearbeitungsprozedur kann einen Knoten oder Zustand deaktivieren, indem eine mit dem Knoten oder Zustand verbundene Aufzeichnung gelöscht wird oder indem in der Aufzeichnung angegeben wird, dass der Knoten oder Zustand inaktiv ist. Ebenso kann die Knoten-Bearbeitungsprozedur einen Knoten oder Zustand aktivieren, indem eine Aufzeichnung erzeugt wird und die Aufzeichnung dem Knoten oder Zustand zugeordnet wird oder indem in einer bestehenden Aufzeichnung angegeben wird, dass der Knoten oder Zustand aktiv ist. Die Prozedur kann einen dynamischen Schwellenwert verwenden, der die Variationen im Mittelwert oder der besten Wertungen im lexikalischen Baum zu einer gegebenen Zeit berücksichtigt.
  • Als Nächstes bestimmt die Knoten-Bearbeitungsprozedur, ob ein Wort einer Liste von Wörtern (Schritt 1120) hinzu gegeben werden soll. Ein Wort wird der Liste von Wörtern hinzu gegeben, wenn der bearbeitete Knoten dem letzten Phonem eines Wortes entspricht, eine Wertung des letzten Zustands des Knotens propagiert wurde und die Wertung geringer als ein Listen-Schwellenwert ist. Bevor die Wertung mit dem Listen-Schwellenwert verglichen wird, fügt die Knoten-Bearbeitungsprozedur eine Sprachenmodellwertung der Wertung hinzu. Die Sprachenmodellwertung entspricht der Differenz zwischen der Sprachenmodellwertung für das Wort und der zusätzlichen Sprachenmodellwertung, die bereits in der Wertung enthalten ist. Im Allgemeinen hat der Listen-Schwellenwert einen geringeren Wert als der Pruning-Schwellenwert. Falls der bearbeitete Knoten dem letzten Phonem mehrerer Wörter mit der gleichen phonetischen Aussprache entspricht, dann werden alle die Wörter, denen der Knoten entspricht, der Liste von Wörtern hinzu gefügt.
  • Falls die angegebenen Bedingungen erfüllt sind, fügt die Knoten-Bearbeitungsprozedur das Wort oder Wörter der Liste hinzu (Schritt 1125). Ein Wort wird in der Liste von Wörtern zusammen mit der verbreiteten Wertung des letzten Zustands gespeichert. Falls sich das Wort bereits auf der Liste befindet, speichert dann die Knoten-Bearbeitungsprozedur die bessere der bereits auf der Liste gespeicherten Wertung oder der verbreiteten Wertung des letzten Zustands in der Liste. Die Wertungen für Wörter in einer Liste von Wörtern werden zusammen mit der Liste von Wörtern zurück geschickt. Die Erkennungseinrichtung 215 verwendet diese Wertungen bei der Herstellung des detaillierten Abgleichs.
  • Die Knoten-Bearbeitungsprozedur fügt das Wort auch Listen von Wörtern zu Zeiten hinzu, die der Startzeit voraus gehen oder folgen, um mögliche Ungenauigkeiten der Startzeit des Wortes zu berücksichtigen, die sich aus der Auswahl der besseren Wertung ergeben kann, die in einem Zustand bleibt, oder aus einer verbreiteten Wertung eines früheren Zustandes. Das Verteilen des Wortes über mehrere Listen stellt sicher, dass diese Ungenauigkeiten nicht die Genauigkeit des Spracherkennungssystems beeinflussen. Die Knoten-Bearbeitungsprozedur verteilt das Wort über mehrere Listen auf der Basis der Länge des Wortes.
  • Nach dem Hinzufügen eines Wortes zu der Liste von Wörtern (Schritt 1125) sichert die Knoten-Bearbeitungsprozedur die Wertung, die dem Wort zugeordnet ist als einen Wiedereinsetzungswert zur Verwendung beim neuen Setzen des Baumes (Schritt 1130). Die Erzeugung eines Wortes durch den lexikalischen Baum bedeutet, dass der laufende Frame mit dem letzten Frame des Wortes korrespondieren kann (wobei die Wahrscheinlichkeit einer solchen Korrespondenz durch die Wertung reflektiert wird, die dem Wort zugeordnet ist). Dies bedeutet, dass der nächste Frame mit dem Beginn eines Wortes oder mit der Ruhe, die sich aus einer Pause zwischen Wörtem ergibt, korrespondieren kann. Die Vorfilterprozedur setzt den Baum neu (Schritt 730 in 7), um diese Möglichkeit zu berücksichtigen.
  • Für einen gegebenen Frame können mehrere Knoten Wörter erzeugen. Jedoch muss der Baum nur einmal neu gesetzt werden. Um dies zu berücksichtigen, sichert nur die Knoten-Bearbeitungsprozedur die einem Wort (SW) zugeordnete Wertung als die Wiedereinsetzungswertung (SRS), falls das Wort das erste Wort ist, das durch den Baum für einen laufenden Frame erzeugt werden soll, falls die Wortwertung geringer als die Wertung für alle anderen Wörter ist, die durch vorher bearbeitete Knoten für den laufenden Frame (SRS') erzeugt wurden: SRS = min(SW,SRS').
  • Das Sichern nur der untersten Wertung (das heißt, der Wertung, die die höchste Wahrscheinlichkeit angibt, dass der laufende Frame der letzte Frame eines Wortes war) stellt sicher, dass der Baum unter Verwendung der höchsten Wahrscheinlichkeit, dass der nächste Frame der erste Frame eines neuen Wortes ist, neu gesetzt wird.
  • Um den Baum neu zu setzen (Schritt 730 in 7), aktiviert die Vorfilterprozedur den Wurzelknoten 505 und ordnet das Minimum der Wiedereinsetzungswertung (SRS) und der Wertung für den Ruheknoten 512 dem Wurzelknoten zu. Während der Bearbeitung des nächsten Frames kann der aktive Wurzelknoten 505 dazu verwendet werden, Knoten in der Gruppe 510 zu aktivieren oder den Ruheknoten 512 zu aktivieren.
  • Ein Verarbeiten des Knotens wird abgeschlossen, nachdem die Knoten-Bearbeitungsprozedur eine Wertung für die Verwendung bei der Neusetzung des Baumes (Schritt 1130) gesichert hat oder falls kein Wort der Liste von Wörtern hinzu gefügt werden muss (Schritt 1120). Die Vorfilterprozedur mit dem lexikalischen Baum wird im Detail besprochen im US Patent Nr. 5,822,730 unter der Bezeichnung "LEXICAL TREE PRE-FILTERING IN SPEECH RECOGNITION" und veröffentlicht am 13. Oktober 1998.
  • Nachdem die Vorfilterprozedur mit der angeforderten Liste von Wörtern geantwortet hat, initialisiert die Erkennungseinrichtung eine Hypothese für jedes Wort aus der Liste und vergleicht akustische Modelle für das Wort mit den Frames von Parametern, welche die Äuße rung repräsentieren. Die Erkennungseinrichtung verwendet die Ergebnisse dieser Vergleiche dazu, Wertungen für die Hypothesen zu erzeugen. Hypothesen mit übermäßigen Wertungen werden von einer weiteren Berücksichtigung ausgeschlossen. Wie oben gemerkt, werden Hypothesen, die keiner aktiven auf Contraint basierenden Grammatik entsprechen, auch ausgeschlossen.
  • Wenn die Erkennungseinrichtung feststellt, dass ein Wort einer Hypothese geendet hat, fordert die Erkennungseinrichtung von der Vorfilterprozedur eine Liste von Wörtern an, die unmittelbar nach der Endzeit für das Wort gesprochen sein kann. Die Erkennungseinrichtung erzeugt dann eine neue Hypothese für jedes Wort auf der Liste, wobei jede neue Hypothese die Wörter der alten Hypothese plus das korrespondierende neue Wort aus der Liste enthält.
  • Beim Erzeugen der Wertung für eine Hypothese nutzt die Erkennungseinrichtung akustische Wertungen für Wörter der Hypothese, eine Sprachenmodellwertung, die die Wahrscheinlichkeit angibt, dass Wörter der Hypothese zusammen verwendet werden, und Wertungen, die für jedes Wort der Hypothese durch die Vorfilterprozedur bereit gestellt werden. Die Wertungen, die durch die Vorfilterprozedur bereit gestellt werden, umfassen Komponenten, die mit einem grobem akustischen Vergleich und einer Sprachenmodellwertung, die für die Wahrscheinlichkeit steht, dass ein Wort unabhängig vom Kontext verwendet wird, korrespondieren. Die Erkennungseinrichtung kann jede Hypothese ausschließen, die zu einer auf Constraint basierenden Grammatik gehört (zum Beispiel eine Befehlshypothese), nicht aber der auf Constraint basierenden Grammatik entspricht.
  • Mit Bezug auf 12 arbeitet die Erkennungseinrichtung 215 gemäß einer Prozedur 1200. Zuerst initialisiert die Erkennungseinrichtung 215 vor der Bearbeitung den lexikalischen Baum 500, wie oben beschrieben (Schritt 1205). Die Erkennungseinrichtung 215 fragt dann einen Frame von Parametern ab (Schritt 1210) und bestimmt, ob Hypothesen für den Frame beachtet werden müssen (Schritt 1215). Der erste Frame entspricht immer der Ruhe, so dass für den ersten Frame keine Hypothesen zu beachten sind.
  • Falls für den Frame Hypothesen zu beachten sind (Schritt 1215), geht die Erkennungseinrichtung 215 zur der ersten Hypothese (Schritt 1220). Die Erkennungseinrichtung vergleicht dann den Frame hinsichtlich akustischer Modell 235 für das letzte Wort der Hypothese (Schritt 1225) und aktualisiert basierend auf den Vergleich eine der Hypothese zugeordneten Wertung (Schritt 1230).
  • Nach dem Aktualisieren der Wertung (Schritt 1230) bestimmt die Erkennungseinrichtung, ob der Nutzer das Wort oder die Wörter entsprechend der Hypothese wahrscheinlich gesprochen hat (Schritt 1235). Die Erkennungseinrichtung macht diese Bestimmung, indem sie die laufende Wertung für die Hypothese mit einem Schwellenwert vergleicht. Falls die Wertung den Schwellenwert übersteigt, bestimmt dann die Erkennungseinrichtung 215, dass die Hypothese zu unwahrscheinlich ist, als dass sie weiter Berücksichtigung finden muss und löscht die Hypothese (Schritt 1240).
  • Falls die Erkennungseinrichtung, feststellt, dass das Wort oder die Wörter entsprechend der Hypothese wahrscheinlich vom Benutzer gesprochen wurden, dann bestimmt die Erkennungseinrichtung, ob das letzte Wort der Hypothese endet (Schritt 1245). Die Erkennungseinrichtung bestimmt, dass ein Wort endet, wenn der Frame mit der letzten Komponente des Modells für das Wort korrespondiert. Falls die Erkennungseinrichtung feststellt, dass ein Wort endet (Schritt 1245), setzt die Erkennungseinrichtung eine Fahne, die angibt, dass der nächste Frame mit dem Beginn eines Wortes korrespondieren kann (Schritt 1250).
  • Falls es für den Frame zusätzlich zu berücksichtigende Hypothesen gibt (Schritt 1255), dann wählt die Erkennungseinrichtung die nächste Hypothese (Schritt 1260) und wiederholt den Vergleich (Schritt 1225) und andere Schritte. Falls es keine weiteren Hypothesen für den Frame zu berücksichtigen gibt (Schritt 1255), stellt die Erkennungseinrichtung fest, ob es mehrere Frames gibt, die für die Äußerung zu berücksichtigen sind (Schritt 1265). Die Erkennungseinrichtung stellt fest, dass es mehrere zu berücksichtigende Frames gibt, wenn zwei Bedingungen erfüllt sind. Erstens müssen mehrere Frames verfügbar sein. Zweitens muss der Knoten mit der besten Wertung für den laufenden Frame oder für ein oder mehrere einer vorbestimmten Anzahl unmittelbar vorher gehender Frames ein anderer Knoten sein als der Ruheknoten (das heißt, die Äußerung ist beendet, wenn der Ruheknoten der Knoten mit der besten Wertung für den laufenden Frame und für eine vorbestimmte Anzahl von aufeinander folgender vorher gehender Frames ist).
  • Falls es mehrere zu berücksichtigende Frames gibt (Schritt 1265) und die Fahne gesetzt ist, die angibt, dass ein Wort geendet hat (Schritt 1270) oder falls es keine für den Frame zu berücksichtigende Hypothese gab (Schritt 1215), dann fordert die Erkennungseinrichtung von der Vorfilterprozedur 240 eine Liste von Wörtern an, die mit dem nächsten Frame starten können (Schritt 1275).
  • Beim Empfang der Liste von Wörtern aus der Vorfilterprozedur nutzt die Erkennungseinrichtung die Liste von Wörtern dazu, Hypothesen zu erzeugen oder eine Hypothese zu erweitern, für welche ein Wort geendet ist (Schritt 1280). Jedes Wort in der Liste von Wörtem hat eine zugehörige Wertung. Vor dem Hinzufügen eines Listenwortes zu einer Hypothese modifiziert die Erkennungseinrichtung die Listenwertung (SL) für das Wort, um eine modifizierte Listenwertung (SML) zu erzeugen: SML = SL + LC – LL,in welcher LC eine Sprachenmodellwertung ist, die die Häufigkeit repräsentiert, mit welcher das Paar von Wörtern, das das Listenwort enthält und das unmittelbar voraus gehende Wort in der Hypothese in der Sprache zusammen verwendet werden, und LL ist eine Sprachemodellwertung, die in der Listenwertung enthalten ist und der Häufigkeit entspricht, mit welcher das Listenwort in der Sprache verwendet wird ohne Bezug auf den Kontext. Die Erkennungseinrichtung fügt dann die modifizierte Listenwertung der Wertung für die Hypothese zu und vergleicht das Ergebnis mit einem Schwellenwert. Falls das Ergebnis geringer ist als der Schwellenwert, dann hält die Erkennungseinrichtung die Hypothese bei. Andernfalls bestimmt die Erkennungseinrichtung, dass die Hypothese keine weitere Beachtung verdient und schließt die Hypothese aus. Als ein zusätzlicher Teil zum Erzeugen oder Erweitern der Hypothese vergleicht die Erkennungseinrichtung die Hypothesen mit den aktiven auf Constraint basierenden Grammatiken 225 und schließt jede Hypothese aus, die keiner aktiven auf Constraint basierenden Grammatik entspricht. Die Erkennungseinrichtung ruft dann den nächsten Frame (Schritt 1210) ab und wiederholt die Prozedur.
  • Falls es keine weiteren Sprachframes zu bearbeiten gibt, liefert die Erkennungseinrichtung 215 dann die wahrscheinlichste Hypothese an das Steuer/Schnittstellen-Modul 220 als Erkennungskandidaten (Schritt 1285).
  • Das Steuer/Schnittstellen-Modul 220 steuert die Operation der Spracherkennungssoftware und stellt eine Schnittstelle zu einer anderen Software oder dem Nutzer bereit. Das Steuer/Schnittstellen-Modul erhält die Liste von Erkennungskandidaten für jede Äußerung von der Erkennungseinrichtung. Die Erkennungskandidaten können einem diktierten Text, Spracherkennungsbefehlen oder äußeren Befehlen entsprechen. Wenn der Erkennungskandidat mit der besten Wertung einem diktierten Text entspricht, stellt das Steuer/Schnittstellen-Modul den Text einer aktiven Anwendung zur Verfügung, wie beispielsweise einem Wortprozessor. Das Steuer/Schnittstellen-Modul kann auch den Erkennungskandidaten mit der besten Wertung dem Nutzer über eine grafische Nutzerschnittstelle anzeigen. Wenn der Erkennungskandidat mit der besten Wertung ein Befehl ist, implementiert das Steuer/Schnitt stellen-Modul 220 den Befehl. Zum Beispiel kann das Steuer/Schnittstellen-Modul die Operation der Spracherkennungssoftware in Antwort auf Spracherkennungsbefehle steuern (zum Beispiel "Aufwachen", "Tu dies"), und kann externe Befehle an die geeignete Software weiterleiten.
  • Das Steuer/Schnittstellen-Modul steuert auch den aktiven Wortschatz, Akustikmodelle und auf Constraint basierende Grammatiken, die von der Erkennungseinrichtung verwendet werden. Zum Beispiel aktualisiert das Steuer/Schnittstellen-Modul den aktiven Wortschatz, wenn die Spracherkennungssoftware in Verbindung mit einer speziellen Anwendung verwendet wird (zum Beispiel Microsoft Word), um Befehlsworte einzuschließen, die mit der Anwendung verbunden sind und aktiviert auf Constraint basierende Grammatiken, die mit der Anwendung verbunden sind.
  • Weitere Funktionen, die durch das Steuer/Schnittstellen-Modul 220 bereit gestellt werden, umfassen ein Anmeldungsprogramm, einen Wortschatzanpasser und einen Wortschatzmanager. Das Anmeldungsprogramm sammelt akustische Information von einem Nutzer und trainiert die Modelle eines Nutzers basierend auf dieser Information bzw. passt diese an. Der Wortschatzanpasser optimiert das Sprachenmodell eines spezifischen Themas, indem der vom Nutzer zur Verfügung gestellte Text abgetastet wird. Der Wortschatzmanager ist ein Entwicklerwerkzeug, das dazu verwendet wird, Wortschätze, Grammatiken und Makros zu durchstöbern und zu handhaben. Jede Funktion des Steuer/Schnittstellen-Moduls 220 können als ein ausführbares Programm implementiert sein, das separat von der Spracherkennungs-Hauptsoftware ist.
  • Das Anmeldungsprogramm kann in einem interaktiven Modus arbeiten, der den Nutzer durch den Anmeldevorgang leitet, oder in einem nicht-interaktiven Modus, der dem Nutzer erlaubt, sich unabhängig vom Computer anzumelden. In dem interaktiven Modus zeigt das Anmeldungsprogramm dem Nutzer den Anmeldetext, und der Nutzer liest den angezeigten Text. Wenn der Nutzer liest, verwendet die Erkennungseinrichtung 215 die Anmeldungsgrammatik, um eine Folge von Äußerungen vom Nutzer mit sequentiellen Abschnitten des Anmeldetextes abzugleichen. Wenn die Erkennungseinrichtung 215 nicht erfolgreich ist, fordert das Anmeldeprogramm den Nutzer auf, bestimmte Passagen des Textes zu wiederholen. Die Erkennungseinrichtung verwendet akustische Information von den Äußerungen des Nutzers, um akustische Modelle 235 entsprechend den abgeglichenen Abschnitten des Anmeldetextes zu trainieren oder an diese anzupassen. Das interaktive Anmeldungsprogramm wird besprochen in der US-Anmeldung Nr. 08/825,536 unter der Bezeichnung "ENROLLMENT IN SPEECH REGOGNITION" und eingereicht am 28. März 1997.
  • Das Steuer/Schnittstellen-Modul 220 implementiert auch eine Fehlerkorrektur und Cursor/Positions-Manipulationsprozeduren der Software 124. Fehlerkorrekturprozeduren umfassen einen "Tu dies"-Befehl und einen "Sprich dies"-Befehl. Die Cursor/Positions-Manipulationsprozeduren umfassen den "Auswahl"-Befehl, der oben besprochen wurde, und Variationen davon (zum Beispiel "Auswahl [Start] durch [Ende]"), "Füge ein vor/nach"-Befehle und einen "Mache weiter"-Befehl. Die verschiedenen Korrekturprozeduren sind beschrieben in US Patent Nr. 5,794,189, veröffentlicht am 11. August 1998 und US Patent Nr. 6,064,959, veröffentlicht am 16. Mai 2000.
  • Auch mit Bezug auf 13A umfasst ein vollständiger Diktatwortschatz 1300 den aktiven Wortschatz 230 plus einem Unterstützungs-Wörterverzeichnis 245. Das Unterstützungs-Wörterverzeichnis 245 kann nutzerspezifische Unterstützungs-Wortschatzwörter und systemweite Unterstützungs-Wortschatzwörter umfassen. Nutzerspezifische Unterstützungs-Wortschatzwörter umfassen Wörter, die ein Nutzer hinzu gefügt hat, während er die Spracherkennungssoftware nutzt. In einer Implementierung gibt es eine Grenze von 64.000 nutzerspezifischen Wörtern. Nutzerspezifische Wörter werden in Wortschatzdateien für den Nutzer und für das während ihrer Hinzufügung verwendete Diktatthema gespeichert und sind als Teil des Unterstützungs-Wörterregisters für das Diktatthema unabhängig vom Nutzer verfügbar und für den Benutzer unabhängig von dem Diktatthema. Falls zum Beispiel ein Nutzer, der ein Medizinthema verwendet, das Wort "Ganglion" dem Diktatwortschatz 1300 hinzufügt, wird jeder weitere Nutzer des Medizinthemas unmittelbar Zugriff auf das Wort "Ganglion" haben. Zudem wird das Wort in den nutzerspezifischen Unterstützungs-Wortschatz geschrieben, so dass, falls der Nutzer später "Ganglion" sagt, während er ein Jurathema nutzt, das Wort "Ganglion" verfügbar sein wird. Die systemweiten Unterstützungs-Wortschatzwörter umfassen alle weiteren nicht aktiven Wörter, die dem System bekannt sind.
  • Das Steuer/Schnittstellen-Modul 220 implementiert Fehlerkorrekturprozeduren der Spracherkennungssoftware 124. Wenn das Spracherkennungssystem 100 einen Erkennungsfehler macht, kann der Nutzer einen geeigneten Korrekturbefehl aufrufen, um den Fehler zu beseitigen. Während der Fehlerkorrektur beginnen Wortsuchen des Unterstützungs-Wörterbuches 245 bei dem nutzerspezifischen Unterstützungs-Wörterbuch und prüfen dann das systemweite Unterstützungs-Wörterbuch. Das Unterstützungs-Wörterbuch 245 wird auch durchsucht, wenn es neue Wörter im Text gibt, die ein Nutzer getippt hat.
  • Im Allgemeinen umfasst das Unterstützungs-Wörterbuch 245 im Wesentlichen mehr Wörter als im aktiven Wortschatz 230 enthalten sind. Wenn zum Beispiel der aktive Wortschatz in etwa 60.000 Einträgt hat, kann das Unterstützungs-Wörterbuch 245 grob 190.000 Einträge haben. Der aktive Wortschatz 230 ist ein dynamischer Wortschatz, in den mit der Zeit Einträge hinzu gefügt oder aus dem aktiven Wortschatz entzogen werden können. Wenn zum Beispiel der Nutzer angibt, dass ein Fehler gemacht wurde und das Steuer/Schnittstellen-Modul 220 das Unterstützungs-Wörterbuch 245 nutzt, um den Fehler zu korrigieren, kann aus dem Unterstützungs-Wörterbuch 245 ein neues Wort dem aktiven Wortschatz 230 hinzu gefügt werden, um die Wahrscheinlichkeit zu verringern, dass der Fehler wiederholt wird.
  • Mit Bezug auf 13B kann die effektive Größe des aktiven Wortschatzes 230 erhöht werden, indem Wörter in Baukomponenten oder Wortfragmente 1315 unterteilt werden. Die Wortfragmente umfassen Präfixe und Suffixe, die zusammen als Affixe bekannt sind. Ein Präfix ist irgendein Wortfragment, das einem anderen Wortfragment oder Wort voraus geht und deshalb als "präfix+" dargestellt werden kann. Ein zum Beispiel häufig verwendetes Präfix in der englischen Sprache ist "re+". Im Gegensatz zu einem Präfix ist ein Suffix irgendein Wortfragment, das einem anderen Wortfragment oder Wort folgt. Ein Suffix kann als "+suffix" dargestellt werden. Zum Beispiel ist ein häufiges Suffix, das in der englischen Sprache verwendet wird, "+ed".
  • Wortfragmente umfassen auch Wurzeln, die sich mit einem Präfix oder einem Suffix verbinden können. Eine Wurzel kann eine echte Wurzel sein, die dann kein vollständiges Wort ist, wenn sie alleine verwendet wird, und deshalb als "+Wurzel+" dargestellt werden kann. Ein Beispiel einer echten Wurzel ist "+crimin+", die das Wort "decriminalize" bilden kann, wenn ihr der Präfix "de+" vorangeht und nacheinander die Suffixe "+al" und "+ize" folgen. Eine Wurzel kann eine Wortwurzel sein, die ein Wort ist, wenn sie alleine verwendet wird. Zum Beispiel kann die Wortwurzel "look" als das Wort "look" verwendet werden oder kann mit anderen Wortfragmenten verbunden werden, so dass sie ein anderes Wort bildet, wie "looked".
  • Wortfragmente können auch Trennglieder umfassen, wie das in der deutschen Sprache verwendete "s", um Wörter zu verbinden, oder den Bindestrich, welcher häufig in der englischen Sprache verwendet wird, und Infixe, die Wortfragmente sind, die in Inneren eines Wortes stehen, und zwar in Sprachen, wie Ungarisch, Mon-Khmer. Zum Beispiel bedeutet in der Sprache Tagalog "tawa" "Lachen", aber "t-um-awa" bedeutet "zu lachen". So könnte -um- ein Infix in der Tagalog-Sprache darstellen. Als ein weiteres Beispiel bedeutet in der Thaisprache "pak" "Pause", jedoch bedeutet "p-n-ak" "eine Abstützung", wie beispielsweise ein Stuhl. So könnte -n- ein Infix in der Thaisprache darstellen. Infixe sind in der englischen Sprache selten. Ein Beispiel eines im Englischen verwendeten informellen Infix könnte -bloody- sein, wie beispielsweise in "fan-bloody-tastic".
  • Jedes Wortfragment 1315 kann als ein separater Eintrag in den aktiven Wortschatz 230 zusammen mit einer Gruppe von aktiven Wörtern 1320 enthalten sein, die typischerweise einen großen Teil der vorherigen Wörter 1312 enthält. Die Wortfragmente 1315 vergrößern die effektive Größe des aktiven Wortschatzes, so dass Wörter enthalten sind, die im Unterstützungs-Wörterbuch 245 sein können, als aufteilbare Wörter 1325 bezeichnet, die aus Kombinationen von Wortfragmenten mit anderen Wortfragmenten oder mit aktiven Wörtern gebildet werden können. Die Wörter des Unterstützungs-Wörterbuches, die nicht aus diesen Kombinationen gebildet werden können, werden als nicht aufteilbare Wörter 1330 bezeichnet.
  • Wenn die Erkennungseinrichtung 215 ein Wortfragment 1315 in einer Äußerung erfasst, kombiniert das System das Wortfragment mit ein oder mehreren anderen Wortfragmenten oder Wörtern, um ein neues Wort zu erzeugen, und sucht dann das Unterstützungs-Wörterbuch 245 oder wendet Regeln an, um zu bestätigen, dass das neue Wort ein gültiges Wort ist. Auf diese Weise ist das Spracherkennungssystem 100 in der Lage, in das Unterstützungs-Wörterbuch 245 hinein zu schauen, ohne das es erforderlich ist, dass die Erkennungseinrichtung Wörter des Unterstützungs-Wörterbuches 245 bearbeitet. Mit Zunahme der effektiven Größe des aktiven Wortschatzes 230, ohne seine wirkliche Größe zu vergrößern, wird die Erkennungserfassung des Spracherkennungssystems 100 erweitert, ohne dass die benötigte Speicherkapazität oder Bearbeitungszeit signifikant vergrößert wird.
  • Das Unterstützungs-Wörterbuch 245 kann Wörter enthalten, die nicht als eine Aufreihung einer Folge erkannt werden, die Wörter und Wortfragmente enthält. Zum Beispiel können viele Eigennamen in dem Unterstützungs-Wörterbuch enthalten sein. Der Name "Scarlotti" ist ein Beispiel eines Eigennamens, der nicht aufteilbar ist.
  • Die 14A und 15A zeigen Beispiele der Größe des vollständigen Diktierwortschatzes 1300 einer Implementierung für jeweils die französische Sprache und die US-Version der englischen Sprache, ohne die Verwendung von Wortfragmenten. In dieser Implementierung umfasst der vollständige französische Diktierwortschatz 1400 etwa 180.000 Wörter, wobei etwa 40.000 dieser Wörter im französischen aktiven Wortschatz 230 sind. Im Gegensatz dazu umfasst in dieser Implementierung der vollständige US-englische Diktierwortschatz 1500 etwa 240.000 Wörter, wobei etwa 30.000 dieser Wörter im US-englischen aktiven Wortschatz 230 sind.
  • Mit Bezug auf 14B können Wortfragmente verwendet werden, um die effektive Größe des französischen aktiven Wortschatzes 230 zu erhöhen, während gleichzeitig der komplette Diktierwortschatz 1400 bei etwa 180.000 Wörtern und der aktive Wortschatz 230 bei 40.000 Elementen gehalten wird. Mit Wortfragmenten umfasst der aktive Wortschatz etwa 36.700 aktive französische Wörter 1402 und etwa 3.300 französische Wortfragmente 1405, derart, dass die Wortfragmente 1405 insgesamt etwa 8% des gesamten aktiven Wortschatzes 230 ausmachen. Wie in dieser Intermittierung gezeigt ist, bildet ein wesentlicher Teil des Unterstützungs-Wörterbuchs aufteilbare Wörter 1410, auf die der aktive Wortschatz 230 zugreifen kann, während ein viel kleinerer Teil nicht aufteilbare Wörter 1415 bildet. Auch mit Bezug auf 14C umfassen die französischen Wortfragmente 1405 meistens französische echte Wurzeln 1420 (das heißt, Wurzeln, die keine Wörter sind), während französische Wortwurzeln 1425 (das heißt, Wurzeln, die auch Wörter sind), französische Suffixe 1430 und französische Präfixe 1435 einen kleineren Anteil der französischen Wortfragmente 1405 bilden.
  • Mit Bezug auf 15B können auch Wortfragmente verwendet werden, um die effektive Größe des US-englischen aktiven Wortschatzes 230 zu erhöhen, während gleichzeitig der vollständige Diktierwortschatz 1500 nahe etwa 240.000 Wörtern und der aktive Wortschatz 230 bei 30.000 Elementen gehalten wird. Der aktive Wortschatz 230 umfasst etwa 28.800 aktive US-englische Wörter 1502 und etwa 1.200 US-englische Wortfragmente 1505, derart, dass die Wortfragmente 1505 insgesamt etwa 4% des gesamten aktiven Wortschatzes 230 ausmachen. Wie gezeigt wird, bildet ein kleinerer Anteil des Unterstützungs-Wörterbuches aufteilbare Wörter 1510, auf die vom aktiven Wortschatz 230 zugegriffen werden kann, wohingegen ein größerer Teil nicht aufteilbarer Wörter 1515 bildet. Mit Bezug auch auf 15C umfasst die Gruppe von US-englischen Wortfragmenten 1505, im Gegensatz zu den französischen Wortfragmenten 1405, einen sehr kleinen prozentualen Anteil US-englischer echter Wurzeln 1520 in dieser speziellen Implementierung, wohingegen US-Wortwurzeln 1525 den größten Anteil der US-Wortfragmente 1505 bilden. In dieser Implementierung bilden US-englische Suffixe 1530 und Präfixe 1535 etwa ein Drittel der US-englischen Wortfragmente 1505, einen wesentlich größeren Anteil als die echten Wurzeln. In einer weiteren jüngeren Implementierung kann die Gruppe der US-englischen Wortfragmente 1505 größer sein oder kann einen größeren Prozentanteil der echten Wurzeln enthalten.
  • Eine effektive Größe des aktiven Wortschatzes kann vergrößert werden, indem fragmentierte Wortmodelle erzeugt und verwendet werden. Die Anforderungen an die Speicher- Bearbeitungsgeschwindigkeit wird sich mit der Anzahl von Einträgen in dem aktiven Wortschatz erhöhen. So wird die Größe des aktiven Wortschatzes, die in einer zugeteilten Zeit durch einen speziellen Prozessor unter Verwendung eines verfügbaren Speicherplatzes bearbeitet werden kann, beschränkt. Da die Erkennungseinrichtung nicht Wörter erkennt, die nicht in dem aktiven Wortschatz enthalten sind, kann die Fähigkeit der Erkennungseinrichtung, weniger häufig verwendete Wörter zu erkennen, durch Steigerung der Größe des aktiven Wortschatzes verbessert werden.
  • Die effektive Größe des aktiven Wortschatzes kann vergrößert werden, indem Wörter in Baukomponenten oder Fragmente (zum Beispiel Präfixe, Suffixe, Trennglieder, Infixe und Wurzeln) unterteilt werden und jede Komponente als ein separater Eintrag in dem aktiven Wortschatz enthalten ist. Auf diese Weise kann zum Beispiel eine Liste von Wörtern und ihrer Pluralformen (zum Beispiel "book, books, cook, cooks, hook, hooks, look und looks") in dem aktiven Wortschatz unter Verwendung der Wörter (zum Beispiel "book, cook, hook und look") und durch einen Eintrag, der den Suffix repräsentiert, welcher den Plural der Wörter bildet (zum Beispiel "+a", wobei das "+" vor dem "s" angibt, dass das "+s" ein Suffix ist) repräsentiert werden. Für eine große Liste von Wörtern und unter Nichtbeachtung des mit dem Suffix verbundenen Eintrags kann diese Technik die Anzahl von Wortschatzeinträgen, die benötigt werden, um die Liste von Wörtern zu repräsentieren, beachtlich verringert werden.
  • Mit Bezug auf 16A können Wortfragmente in dem Spracherkennungssystem 100 durch eine Prozedur 1600 erzeugt werden. Diese Prozedur 1600 wird "offline" implementiert; das heißt, bevor die Spracherkennungssoftware 160 verkauft und installiert wird. Die Prozedur wird durch ein anderes System als dem Spracherkennungssystem 100 durchgeführt.
  • Währen der Offline-Prozedur 1600 werden Wortfragmente 1315 identifiziert (Schritt 1605). Dann werden unter Verwendung der Wortfragmente 1315 ein neuer aktiver Wortschatz 230 und ein neues Unterstützungs-Wörterbuch 245 erzeugt (Schritt 1610).
  • In einer Implementierung wird der neue aktive Wortschatz auf die gleiche Größe wie der alte aktive Wortschatz begrenzt, derart, dass die Wortfragmente 1315 die weniger häufig verwendeten Wörter des aktiven Wortschatzes ersetzen. Zum Beispiel hat in der in 14B gezeigten Implementierung der neue französische aktive Wortschatz 230 die gleiche Gesamtzahl von Elementen (das heißt, 40.000) wie der alte französische aktive Wortschatz, der in 14A gezeigt ist, aber enthält nun Wortfragmente 1405 und eine entsprechende Reduktion in der Anzahl aktiver Worte.
  • In einer anderen Implementierung kann der neue aktive Wortschatz größer oder kleiner sein als der alte aktive Wortschatz.
  • Nachdem das neue Unterstützungs-Wörterbuch und der neue aktive Wortschatz aufgebaut worden sind, wird das Sprachenmodell erzeugt (Schritt 1615). Dies erlaubt dem Spracherkennungssystem 100, das erzeugte Sprachenmodell zu verwenden, um sowohl Wortfragmente als auch Wörter zu erkennen und insbesondere Wortfragmente im Kontext der Umgebenden Wortfragmente und Wörter zu erkennen.
  • Auch mit Bezug auf 16 ist das Spracherkennungssystem 100 bereit, unter Verwendung des aktualisierten Sprachenmodells und des neuen aktiven Wortschatzes gemäß einer "On-line"-Prozedur 1650 durchzuführen, sobald die Off-line-Prozedur 1600 beendet ist. Zu diesem Zweck führt das System 100 eine Spracherkennung an einer Äußerung durch, um eine Liste von Kandidaten zu erzeugen (Schritt 1655). Während der Spracherkennung arbeitet die Erkennungseinrichtung 215 gemäß der in 12 gezeigten Prozedur 1200, mit der Ausnahme, dass die Erkennungseinrichtung 215 in der Lage ist, Wortfragmente 1315 wie auch Wörter zu erfassen.
  • Nachdem die Erkennungseinrichtung 215 die Liste von Kandidaten für eine Äußerung erzeugt hat, führt das System 100 eine Nacherkennungsprozedur durch (Schritt 1660). Während der Nacherkennungsprozedur kombiniert das System 100 alle Wortfragmente 1315, die in einem Erkennungskandidaten enthalten sein können, um ein Wort zu bilden und sucht das Wort in dem Unterstützungs-Wörterbuch 245 oder wendet Regeln an, um zu verifizieren, dass es ein gültiges Wort ist. Kandidaten, die Wortfragmente enthalten, welche ungültige Wörter bilden, werden ausgeschieden.
  • Das Spracherkennungssystem 100 führt eine Spracherkennung unter Verwendung des aktualisierten Sprachenmodells und des neuen aktiven Wortschatzes durch (Schritt 1655). Während der Spracherkennung werden Wortfragmente wie normale Wörter behandelt, und die Spracherkennungseinrichtung 215 arbeitet gemäß der in 12 dargestellten Prozedur 1200. Wenn die Erkennungseinrichtung 215 feststellt, dass es keine weiteren Sprachframes zu bearbeiten gibt, liefert sie, wie oben angemerkt, die wahrscheinlichsten Hypothesen für die Äußerung an das Steuer/Schnittstellen-Modul 220 als eine Liste von Erkennungskandidaten (Schritt 1285). Ein spezieller Erkennungskandidat kann Wortfragmente zusätzlich zu Wörtern aus dem aktiven Wortschatz enthalten.
  • Sobald die Spracherkennungseinrichtung 215 die Liste von Erkennungskandidaten ausgibt, führt das Spracherkennungssystem 100 die Nacherkennungsprozedur 1660 durch, welche für Wortfragmente in einem Erkennungskandidaten Wörter aus dem Unterstützungs-Wörterbuch oder durch einen Regelsatz akzeptierte Wörter ersetzt und den Erkennungskandidaten im Hinblick auf den Austausch neu wertet. Neu gewertete Kandidaten werden auf eine überarbeitete Kandidatenliste gesetzt. Kandidaten, die keine Wortfragmente enthalten, werden direkt an die überarbeitete Kandidatenliste übertragen. Auf diese Weise kann die überarbeitete Liste sowohl Erkennungskandidaten von der ursprünglichen Liste und überarbeitete Erkennungskandidaten enthalten.
  • Die Implementierung der Prozeduren 1600 und 1650 zum Erzeugen bzw. Verwenden von Wortfragmenten ist beschrieben in der US-Anmeldung Nr. 09/390,370 unter der Bezeichnung "EXPANDING AN EFFEKTIVE VOCABULARY OF A SPEECH RECOGNITION SYSTEM"; eingereicht am 07. September 1999.
  • HOMOPHONAUSWAHL
  • Homophone sind Wörter, die gleich klingen, sich aber im Buchstabieren oder in ihrer Repräsentation, ihrem Ursprung und ihrer Bedeutung unterscheiden. In der französischen sind zum Beispiel viele Wörter Homophone. Insbesondere umfassen französische Wörter Suffix-Wortfragmente, die das Geschlecht, die Anzahl, die Peron und/oder die Zeit des Wortes angeben. Häufig mangelt es den oben beschriebenen Spracherkennungssystemen daran, Homophone, wie sie in der französischen Sprache verwendet werden, korrekt zu unterscheiden.
  • Ein Wort ist ein reines Homophon eines anderes Wortes, wenn die Wörter genau gleich betont werden. Zum Beispiel wird das Wort "manger" genauso betont, wie seine reinen Homophone "mangé" und "mangés".
  • Ein Wort ist ein nahes Homophon eines anderen Wortes, falls ein Teil der Phoneme in den Wörtern sehr ähnlich klingen. Zum Beispiel klingt das Wort "manger" ähnlich seinem nahen Homophon "mangeait". Als ein anderes Beispiel klingt das Wort "jouait" ähnlich seinem nahen Homophon "joué".
  • Eine Gruppe von Wörtern ist ein n-nach-m Homophon einer Gruppe von m-Wörtem, falls die Gruppen gleich betont werden. Zum Beispiel klingen die zwei Wörter "un patient" (n=2) exakt wie ihr 2-nach1 Homophon "impatient" (m=1).
  • Mit Bezug auf 17 kann das Spracherkennungssystem Erkennungsergebnisse gemäß einer Prozedur 1700 bearbeiten. Anfänglich erhält das Spracherkennungssystem Erkennungsergebnisse für eine Aussprache (Schritt 1705). Obwohl die Erkennungsergebnisse mehrere Erkennungskandidaten enthalten können, bearbeitet das System nur den Erkennungskandidaten beim Implementieren der Prozedur 1700 mit der besten Wertung. Für die Vereinfachung der Diskussion wird dieser Kandidat als der Top-Erkennungskandidat bezeichnet. Falls das Spracherkennungssystem nicht in einem Korrekturmodus arbeitet (das heißt, die Korrektur-Dialogbox wird nicht angezeigt) (Schritt 1710), stellt das Spracherkennungssystem fest, ob der Top-Erkennungskandidat nur Text enthält (Schritt 1715). Falls dies so ist, bearbeitet das Spracherkennungssystem den Text (Schritt 1720). Zum Beispiel kann das Spracherkennungssystem den Text 1800, 18005 in ein Diktierfenster 1810 einsetzen, wie dies in den 18A und 18B gezeigt ist.
  • Falls der Top-Erkennungskandidat etwas anderes als Text enthält (Schritt 1715), stellt das Spracherkennungssystem fest, ob der Kandidat einen Korrekturbefehl enthält, wie beispielsweise die oben besprochenen Befehle "mache dies" oder "buchstabiere dies" (Schritt 1725). Falls der Top-Erkennungskandidat keinen Korrekturbefehl enthält (Schritt 1725), bearbeitet das Spracherkennungssystem einen anderen Befehl, der in dem Top-Erkennungskandidaten enthalten ist (Schritt 1730). Falls zum der Top-Erkennungskandidat Text und einen Formatierungsbefehl, wie einen neuen Absatz, enthält, dann bearbeitet das Spracherkennungssystem den Textteil des Kandidaten und führt den Formatierungsbefehl durch.
  • Falls der Top-Erkennungskandidat einen Korrekturbefehl enthält (Schritt 1725), stellt das Spracherkennungssystem fest, ob der Kandidat einen Homophon-Korrekturbefehl enthält, der eine aktive Korrektur eines Homophonfehlers ermöglicht (Schritt 1735). Der Homophon-Korrekturbefehl kann implementiert werden, zum Beispiel als "Write<Wort><Endung> in Englisch oder "Ecrire<Wort><Endung>" in Französisch. In diesem Befehl ist das <Wort> ein Wort im sichtbaren Text und die <Endung> eine finite Gruppe möglicher Endungen (zum Beispiel etwa 300 mögliche Endungen). In einer Implementierung buchstabiert der Nutzer die Endung. In anderen Implementierungen kann der Nutzer die Endung tippen oder betonen.
  • Falls der Kandidat keinen Homophon-Korrekturbefehl enthält (Schritt 1735), dann führt das Spracherkennungssystem einen Rückblick auf die Erkennungskandidaten mit der besten Wertung durch (Schritt 1740), bevor die Korrektur-Dialogbox angezeigt wird (Schritt 1745) und der Korrekturmodus begonnen wird (Schritt 1750).
  • Auch mit Bezug auf 19 führt das Spracherkennungssystem eine Prozedur 1740 zum Neubetrachten der Erkennungskandidaten mit bester Wertung durch. Anfänglich wählt das Spracherkennungssystem den Erkennungskandidaten mit bester Wertung (Schritt 1900) und bestimmt, ob der Erkennungskandidat mit bester Wertung Homophone enthält (Schritt 1905). Falls der Erkennungskandidat mit bester Wertung nicht ein oder mehr Homophone enthält (Schritt 1905), dann wählt das Spracherkennungssystem den nächsten Erkennungskandidaten mit bester Wertung aus (Schritt 1910), um zu bestimmen, ob dieser Erkennungskandidat mit bester Wertung ein oder mehrere Homophone enthält (Schritt 1905).
  • Falls der Erkennungskandidat mit bester Wertung ein oder mehrere Homophone enthält, dann ruft das Spracherkennungssystem für jedes Wort in dem ausgewählten Erkennungskandidaten alle möglichen grammatischen Kategorien auf (das heißt, Teile der Sprache), und zwar unter Verwendung eines Merk-Sets, das dem Wort zugeordnet ist (Schritt 1915). Ein Merk-Set (geschrieben als {P1 P2 ... Pn}) für ein Wort umfasst Merker, die Pi entsprechen, grammatische Kategorien des Wortes. Grammatische Kategorien umfassen zum Beispiel Teile von Sprache, wie Nomen, Präpositionen, Adjektive, Verben, Pronomen und Merkmale von Wörtern, wobei Merkmale umfassen zum Beispiel die Person, das Geschlecht, die Anzahl und die Zeit. Zum Beispiel kann P3 in einem speziellen Merk-Set eine Information über eine Person enthalten (zum Beispiel die zweite Person) und kann P8 eine Information über die Zeit enthalten (zum Beispiel Vergangenheit).
  • Mit Bezug auch auf die 20A und 20B ruft in einem Beispiel das Spracherkennungssystem alle möglichen grammatischen Kategorien 2000 für einen ausgewählten Erkennungskandidaten "nous nous la sommes partagés" 2005 unter Verwendung der Merker 2010 auf. In diesem Beispiel ist der Merker für das Wort "nous" {__4PF_T____} und der Merker für das Wort "sommes" ist {_V4NEAE____}. Die möglichen grammatischen Kategorien 2000 für das Wort "nous" sind OD (direkte Objektpronomen), Ol (indirekte Objektpronomen), PerR (persönliche Reflexivpronomen), PerS (persönliche Subjektpronomen) und PerT (Personalpronomen) und die möglichen grammatischen Kategorien 2000 für das Wort "sommes" sind NV (Nomen) und VC (konjugiertes Verb).
  • Mit Bezug auch auf die 21A und 21B ruft in einem weiteren Beispiel das Spracherkennungssystem alle möglichen grammatischen Kategorien 2100 für einen ausgewählten Erkennungskandidaten "quelque cinquante personnes étaient présente" 2105 unter Verwendung von Merkern 2110 auf. In diesem Beispiel ist der Merker für das Wort "présente" {_E8_BT____} und der Merker für das Wort "étaient" ist {/V6_BE____}. Die einzige mögliche grammatische Kategorie für das Wort "cinquante" ist NumC (Nummer) und die möglichen grammatischen Kategorien für das Wort "quelque" sind Adv (Adverb) und Adj (Adjektiv).
  • Wieder mit Bezug auf 19 wählt das Spracherkennungssystem eine grammatische Kategorie für jedes Wort in dem ausgewählten Erkennungskandidaten (1920), nachdem alle möglichen grammatischen Kategorien für jedes Wort dem ausgewählten Erkennungskandidaten abgefragt worden sind (Schritt 1915). Das Spracherkennungssystem verwendet Regeln, um eine grammatische Kategorie für ein Wort in dem ausgewählten Erkennungskandidaten zu bestimmen (dies kann als eine Lösung grammatikalischer Konflikte bezeichnet werden). Diese Regeln umfassen eine lokale syntaktische oder Kontext abhängige Information, wie dies unten besprochen wird.
  • Zum Beispiel kann das Wort "le" in dem ausgewählten Erkennungskandidaten "le bel enfants jouait" ein Objektpronomen oder Determinante sein. Im Kontext des ausgewählten Erkennungskandidaten verwendet das Spracherkennungssystem die Regel, dass eine Determinante einem Adjektiv (das heißt, "bel") voran geht und erwägt, dass das Wort "le" eine Determinante ist.
  • Wie in den 20A und 20B gezeigt ist, werden die grammatischen Kategorien 2015 für jedes Wort in dem ausgewählten Erkennungskandidaten unter Verwendung der Regeln 2017 beurteilt. Ebenso werden in den 21A und 21B die grammatischen Kategorien 2115 für jedes Wort in dem ausgewählten Erkennungskandidaten unter Verwendung der Regeln 2117 beurteilt. Zum Beispiel kann eine Regel sein: ein Wort, das normalerweise ein Adjektiv wäre und das einer Zahl voran geht, muss ein Adverb sein. Diese Regel ist in 21A als "<Adv: "quelque"> (NumC, "peu")" geschrieben. So muss das Wort "quelque" ein Adverb sein, weil das Wort "quelque" in dem ausgewählten Erkennungskandidaten 2105 dem Wort "cinquante" voran geht, welches eine Zahl ist. Als Beispiel gibt die Regel, die in 20A als "nous" {Adv} <PerR: "nous"> geschrieben ist, an, dass, falls das Wort "nous" dem Wort "nous" voraus geht, dann der zweite Fall von "nous" grammatisch ein persönliches Reflexivpronomen ist.
  • Basierend auf der für jedes Wort in dem ausgewählten Erkennungskandidaten beurteilten grammatischen Kategorie fragt das Spracherkennungssystem eine Merkmalgruppe für jedes Wort in dem ausgewählten Erkennungskandidaten ab (Schritt 1925). Die Merkmalgruppe für ein Wort ist die Gruppe aller relevanten Merkmale, wie der Person, des Geschlechts, der Anzahl und der Zeit, für dieses Wort und kann als eine Untergruppe der Merkergruppe angesehen werden. Wie in den 20B und 21B gezeigt ist, werden die Merkmalsgruppen 2020 und 2120 jeweils für jedes der Worte in dem ausgewählten Erkennungskandidaten 2005 bzw. 2105 abgefragt. Die Merkmalgruppe für das Wort "sommes" ist [Person = 4, Zeit = Gegenwart], was angibt, dass das Wort "sommes" die erste Person Plural und Gegenwart ist. Die Merkmalgruppe für das Wort "présente" ist [Geschlecht = weiblich, Anzahl = Singular], was angibt, dass das Wort "présente" ein weibliches Geschlecht hat und in der Einzahl vorliegt.
  • Nachdem die Merkmalgruppe für jedes Wort in dem ausgewählten Erkennungskandidaten abgefragt worden ist (Schritt 1925), ordnet das Spracherkennungssystem die Wörter in dem ausgewählten Erkennungskandidaten in Ausdrücken an (Schritt 1930). Ein Ausdruck ist eine Kombination von Wörtern, die miteinander in Beziehung stehen. Zum Beispiel umfasst in dem ausgewählten Erkennungskandidaten "le bel enfants jouait" ein Nomenausdruck "le bel enfants" und umfasst ein Verbausdruck "jouait". Das Spracherkennungssystem ordnet die Wörter auf der Basis der grammatischen Kategorien jedes der Wörter in Ausdrücke.
  • Die 20B und 21B zeigen Wortausdrücke 2025 und 2125 für die ausgewählten Erkennungskandidaten 2005 und 2105. Zum Beispiel ist "étaient présente" ein Verbausdruck, ist cinquante personnes" ein Nomenausdruck und ist "la" ein Nomenausdruck.
  • Nach dem Anordnen der Wörter in Ausdrücke (Schritt 1930) bestimmt jedes Spracherkennungssystem die Beziehung unter (oder zwischen) solchen Ausdrücken unter Verwendung einer Gruppe von Ausdrucksregeln (Schritt 1935). Zum Beispiel verwendet das Spracherkennungssystem in dem ausgewählten Erkennungskandidaten "le bel enfants jouait" die Regel, dass ein Nomenausdruck das Subjekt eines Verbausdrucks ist, um zu bestimmen, dass "le bel enfants" das Subjekt von "jouait" ist.
  • Die 20B und 21B zeigen Ausdrucksbeziehungen 2030 und 2130 für die ausgewähl ten Erkennungskandidaten 2005 und 2105. Zum Beispiel ist in dem ausgewählten Erkennungskandidaten 2005 das Wort "nous" das Subjekt des Verbausdrucks "sommes partagés". In dem ausgewählten Erkennungskandidaten 2105 ist der Nomenausdruck "cinquante personnes" das Subjekt des Verbausdrucks "étaient présente".
  • Nachdem die Beziehungen unter den Ausdrücken bestimmt worden sind (Schritt 1935) löst das Spracherkennungssystem Konflikte in den Merkmalsgruppen (Schritt 1940), indem jedes der Wörter in dem ausgewählten Erkennungskandidaten durch Worthomophone oder nahe Homophone ersetzt wird. Zum Beispiel kann das Spracherkennungssystem den Konflikt in dem ausgewählten Erkennungskandidaten "le bel enfants jouait" zwischen dem Wort "enfants" (welches im Plural vorliegt) und den Wörtern "jouait", "le" und "bel" lösen, welche im Singular vorliegen, indem das Wort "enfants" durch sein singulares Homophon "enfant" ersetzt wird.
  • Mit Bezug auf 20B löst das Spracherkennungssystem den Konflikt zwischen dem Wort "partagés", welches männlichen Geschlechts ist und im Plural vorliegt, und dem Wort "la", welches weiblich ist und im Singular vorliegt, indem das Wort "partagés" durch das Wort "partagée" ersetzt, welches weiblich ist und im Singular vorliegt. 20B zeigt die Wörter 2035 in dem Kandidaten, nachdem die Konflikte gelöst worden sind.
  • Mit Bezug auf 21B löst das Spracherkennungssystem den Konflikt zwischen den Wörtern "personnes" und "cinquante", welche im Plural vorliegen, und dem Wort "présente", welches im Singular vorliegt, indem das Wort "présente" durch das Wort "présentes" ersetzt wird, welches der Plural ist. Auf diese Weise stimmen alle die relevante Wörter in dem ausgewählten Erkennungskandidaten 2105 in ihrer Zahligkeit überein. In 21B sind auch die Wörter 2135 in dem Kandidaten gezeigt, nachdem die Konflikte gelöst worden sind.
  • Das Spracherkennungssystem ersetzt sein Wort in dem ausgewählten Erkennungskandidaten durch Homophone oder nahe Homophone des Wortes, falls das Austauchwort den Konflikt in den Merkmalsgruppen bewirkt. Das Spracherkennungssystem bewirkt, welche Homophone in dem ausgewählten Erkennungskandidaten unter Verwendung der Merkmalsgruppeninformation der nicht homophonen Wörter in dem ausgewählten Erkennungskandidaten ersetzt werden sollten. Auf diese Weise kann sich das Spracherkennungssystem nur auf Ergebnisse stützen, die äußerst wahrscheinlich korrekt sind. Zum Beispiel sind in dem ausgewählten Erkennungskandidaten "nous nous la sommes partagés" die Wörter "nous", "la" und "sommes" Nicht-Homophone. Das Spracherkennungssystem verwendet die Regel, dass Partizip Perfekt die Merkmalsgruppe seines Objekt übernehmen muss, wenn das Wort "partagés" durch das Wort "partagée" ersetzt wird, weil "la" ein Objekt des Partizip Perfekts "partagés" ist. Weil "la" weiblich und Singular ist, muss "partagés" auch weiblich und Singular sein. Deshalb ersetzt das Spracherkennungssystem "partagés" durch "partagée".
  • Wenn der Konflikt gelöst ist gibt das Spracherkennungssystem den alternativen Erkennungskandidaten als den ausgewählten Erkennungskandidaten aus (Schritt 1945). In einer Implementierung überträgt das Spracherkennungssystem dem alternativen Erkennungskandidaten eine bessere Wertung als dem ausgewählten Erkennungskandidaten, weil der Benutzer vermutlich wollte, den Erkennungskandidaten mit der besten Wertung zu korrigieren.
  • Falls das Spracherkennungssystem nicht in Lage ist, Konflikte in dem ausgewählten Erkennungskandidaten zu lösen, dann würde der ausgewählte Erkennungskandidat der alternative Erkennungskandidat sein. Mit Bezug auf die 22A bis 22D bleiben ausgewählte Erkennungskandidaten "ce sont les amis que j' ai aidés", "tu devrais les avoir recus", "les tois premiéres maquettes sont les seules qui soient présentables" bzw. "la lavés par les pluies, /virgule les sol s'érodent" unverändert, nachdem das Spracherkennungssystem die Prozedur 1740 durchgeführt hat.
  • Das Spracherkennungssystem bestimmt, ob die Auswahlliste voll ist (Schritt 1950). Falls nicht, bestimmt das Spracherkennungssystem, ob es noch einen anderen Erkennungskandidaten von der Auswahlliste gibt, der Homophone enthält (Schritt 1955). Falls es andere Erkennungskandidaten gibt, die Homophone enthalten (Schritt 1955), wählt das Spracherkennungssystem den nächsten Erkennungskandidaten mit bester Wertung für eine Nachprüfung (Schritt 1910). Falls die Auswahlliste voll ist (Schritt 1950) oder falls keine weiteren Erkennungskandidaten vorhanden sind, die Homophone enthalten (Schritt 1955), dann präsentiert, wieder mit Bezug auf 17, das Spracherkennungssystem die alternative Auswahlliste (zusammengesetzt aus ursprünglichen Erkennungskandidaten und/oder alternativen Erkennungskandidaten), dem Benutzer (Schritt 1745), indem zum Beispiel die alternative Auswahlliste in einer Korrekturdialogbox angezeigt wird.
  • Wie mit Bezug auf 17 führt das Spracherkennungssystem die Prozedur 1740 in einer Weise aus, die für den Benutzer kaum wahrnehmbar ist. Das Spracherkennungssystem kann die Merkmalsgruppen von Homophonen in einem Ausdruck möglicherweise nicht immer korrekt verschieben. Dies kann passieren, weil es mehrere Interpretationen eines Homophones geben kann. Dies kann auch passieren, wenn es keine Nicht-Homophone in dem ausgewählten Erkennungskandidaten gibt. Wenn dies passiert, würde das Spracherkennungssystem nicht in der Lage sein, die Merkmalsgruppe eines Homophones mit einem Nicht-Homophon zu vergleichen. So würde das Spracherkennungssystem alle Merkmalsgruppen der Homophone aufeinander ausrichten (zum Beispiel Homophone mit gemischten Merkmalsgruppen durch Homophone mit einer einzelnen Merkmalsgruppe ersetzen). In diesem Fall kann das Spracherkennungssystem möglicherweise eine fehlerhafte Ausrichtung durchführen.
  • Falls der Top-Erkennungskandidat einen Homophon-Korrekturbefehl enthält (Schritt 1735), beginnt dann das Spracherkennungssystem mit der Bearbeitung des Homophon-Korrekturbefehls, indem eine vorher erkannte Äußerung gefunden wird, die das <Wort> aus dem Homophon-Korrekturbefehl enthält (Schritt 1770). In einigen Implementierungen ist der Befehl darauf beschränkt, zu fordern, dass das <Wort" ein solches ist, das auf dem Display sichtbar ist. Diese Beschränkung vereinfacht die Aufgabe des Auffindens der zu korrigierenden geeigneten Äußerung.
  • Als Nächstes wird die zu korrigierende Äußerung modifiziert, indem das <Wort> durch eine Variation <Wort> ersetzt wird, die <Endung> enthält (Schritt 1775). Das Spracherkennungssystem bearbeitet dann die modifizierte Äußerung (Schritt 1780), indem Konflikte in Merkmalsgruppen von Ausdrücken in dem Erkennungskandidaten mit bester Wertung so gelöst werden, wie dies mit Bezug auf 19 besprochen wurde. Auf diese Weise sollten die Merkmale der aus dem <Wort> und der <Endung> gebildeten Homophones mit Merkmalen der relevanten Nicht-Homophonwörter in den Erkennungskandidaten mit bester Wertung zusammenpassen. Falls die Merkmale nicht übereinstimmen, modifiziert dann das Spracherkennungssystem den Erkennungskandidaten gemäß dem <Wort> und der <Endung>, derart, dass die Merkmale der relevanten nicht-homophonen Wörter mit den Merkmalen des Austauschhomophones übereinstimmen.
  • Zum Beispiel ist in den 18A und 18C die zu korrigierende Äußerung 1800 "ce sont les amis que j'ai aidés et protéges", und der Nutzer sprach den Homophon-Korrekturbefehl: "ecrire amis ies" 1820. Das Spracherkennungssystem findet die Wurzel "amis" in der zu korrigierenden Äußerung 1800 und bestimmt das durch die Wurzel "amis" und die Endung "ies" gebildete Wort, welches in diesem Beispiel "amies" ist.
  • Nach dem Austausch von "amis" durch "amies" kann das Spracherkennungssystem alle Wörter in dem Kandidaten 1800 überprüfen, um zu bestimmten, ob es noch weitere Homo phone gibt, die in ihren Merkmalen mit "amies" in Konflikt geraten. Hier bestimmt das Spracherkennungssystem, dass der Austausch von "amis", was männlich ist, durch "amies", was weiblich ist, erfordert, dass die männlichen Wörter "aidés" und "protégés" durch die weiblichen Homophone "aidées bzw. "protégées" ersetzt werden müssen, um Konflikte in dem Geschlechtsmerkmal zu lösen.
  • Als ein weiteres Beispiel ist in den 18B und 18D die zu korrigierende Äußerung 1805 "par la beauté de cours intérieurs fermés qui avait été attribuée à ..." und der Nutzer hat den Homophon-Korrekturbefehl 1825 "ecrire attribuée ées" eingegeben. Das Spracherkennungssystem kombiniert die Wurzel "atribuée" mit der Endung "ées", um das Wort "attribuées" zu bilden. Das Spracherkennungssystem bearbeitet anfänglich "la beauté" als Subjekt von "avait été attribué". Weil jedoch der Nutzer das Wort "attribué" korrigiert hat, löst das Spracherkennungssystem den Konflikt und bearbeitet "cours intérieures fermées als das Subjekt von "avaient été attribueés".
  • Falls das Spracherkennungssystem bestimmt (Schritt 1785), dass es mehrere mögliche alternative homophone Erkennungsergebnisse gibt, dann zeigt das Spracherkennungssystem dies auf der Korrektur-Dialogbox an (Schritt 1745). Zum Beispiel kann das Spracherkennungssystem bestimmen, dass mehr als ein Wort aus dem Wort "attribuée" und dem Wort "ées" gebildet werden kann, wobei in diesem Falle es mehrere unterschiedliche alternative Homophon-Erkennungskandidaten mit gelösten Konflikten geben kann.
  • Nach der Anzeige der Korrektur-Dialogbox (Schritt 1745) geht das Spracherkennungssystem in den Korrekturmodus (Schritt 1750) und bearbeitet den Erkennungskandidaten mit bester Wertung und die Eingabe vom Nutzer (Schritt 1755), bis das System bestimmt, dass die Korrektur vollständig ist (Schritt 1760). Falls die Korrektur vollständig ist (Schritt 1760), verlässt das Spracherkennungssystem den Korrekturmodus und lehrt die Korrektur-Dialogbox (Schritt 1765). Das System wartet dann auf weitere Erkennungsergebnisse (Schritt 1705).
  • Falls das Spracherkennungssystem feststellt (Schritt 1785), dass es keine mehreren alternativen homophone Erkennungsergebnisse gibt, und falls das Spracherkennungssystem feststellt, dass es nur ein mögliches alternatives homophones Erkennungsergebnis basierend auf der Bearbeitung gibt (Schritt 1790), dann ersetzt das Spracherkennungssystem die zu korrigierende Äußerung durch das alternative Homophon-Erkennungsergebnis (Schritt 1792) und wartet auf den Erhalt der nächsten Gruppe von Erkennungskandidaten (Schritt 1705).
  • Falls das Spracherkennungssystem keine alternativen Homophon-Erkennungsergebnisse identifiziert, zeigt dies, dass die Kombination von <Wort> und <Endung> kein Homophon erzeugt. In diesem Fall informiert das Spracherkennungssystem den Nutzer (Schritt 1795), dass der Homophon-Korrekturbefehl nicht erfolgreich war. Optional kann das Spracherkennungssystem eine Korrektur-Dialogbox anzeigen.
  • Weitere Ausführungsformen liegen innerhalb des Schutzbereichs der folgenden Ansprüche. Zum Beispiel sind die hier beschriebenen Techniken nicht beschränkt auf eine spezielle Hardware- oder Softwarekonfiguration; sie können in jeder Rechner- und Prozessorumgebung Anwendung finden, die für eine Spracherkennung verwendet werden kann. Die Techniken können in Hardware oder Software implementiert sein oder in eine Kombination aus beiden. Vorzugsweise sind die Techniken in Computerprogrammen implementiert, die auf programmierbaren Computern ausgeführt werden, die jeweils einen Prozessor, ein durch den Prozessor lesbares Speichermedium (einschließlich flüchtiger und nicht flüchtiger Speicher- und/oder Speicherelemente), wenigstens eine Eingabeeinrichtung und wenigstens eine Ausgabeeinrichtung umfassen. Ein Programmcode wird auf Daten angewendet, die unter Verwendung der Eingabeeinrichtung eingegeben werden, um die beschriebenen Funktionen durchzuführen und eine Ausgabeinformation zu erzeugen. Die Ausgabeinformation wird an ein oder mehreren Ausgabeeinrichtung eingesetzt.
  • Jedes Programm ist vorzugsweise implementiert in einer komplexen Prozedur- oder objektorientierten Programmiersprache, um mit einem Computersystem zu kommunizieren. Die Programme können jedoch bedarfsweise in einer Assembler- oder Maschinensprache implementiert sein. In jedem Falle kann die Sprache eine kompilierte oder interpretierte Sprache sein.
  • Jedes solches Computerprogramm wird vorzugsweise auf einem Speichermedium oder einer Speichereinrichtung gespeichert (zum Beispiel einer CD-ROM, Festplatte oder Magnetdiskette), die durch einen allgemeinen oder für einen speziellen Zweck programmierbaren Computer lesbar ist, um den Computer zu konfigurieren und zu betreiben, wenn das Speichermedium oder die Einrichtung vom Computer gelesen wird, um die in dieser Druckschrift beschriebenen Prozeduren durchzuführen. Das System kann auch als ein computerlesbares Speichermedium, das mit einem Computerprogramm konfiguriert ist, implementiert sein, in welchem das so konfigurierte Speichermedium einen Computer veranlasst, in einer spezifischen und vordefinierten Weise zu arbeiten.
  • In der beschriebenen Implementierung erzeugt das Spracherkennungssystem nur eine alternative homophone Wahl für jede vorgesehene Wahl. Die Alternative gibt eine bessere Wertung, so dass sie gegenüber der ursprünglichen Wahl bevorzugt wird und während des Diktats erscheint. Die alte Wahl wird nicht zerstört oder beseitigt. Die Alternative wird weder akustisch umgewertet noch unter Verwendung von Sprachmodellen umgewertet. In anderen Implementierungen kann das Spracherkennungssystem mehr als einen einzelnen alternativen Erkennungskandidaten erzeugen und kann der ursprüngliche Erkennungskandidat nicht bestraft werden.
  • Das Spracherkennungssystem kann auch die Prozedur 1700 mit n-nach-m-Homophonen implementieren.
  • In der beschriebenen Implementierung für reine Homophone und nahe Homophone, ist der Homophon-Korrekturbefehl "Schreibe <Wort><Endung>". Für n-nach-m-Homophone kann der Homophon-Korrekturbefehl sein "Schreibe <Homophon><Affix> oder "Schreibe <Affix><Homophon>", wobei <Homopon> n-Wörter repräsentiert und <Affix> der Prefix oder der Suffix ist, der mit dem Homophon kombiniert werden sollte, um das korrigierte Homophon zu bilden. Unter Verwendung des obigen Beispiels kann der Nutzer, falls das Spracherkennungssystem fehlerhaft erkennt "un patient" als "impatient", sprechen "ecrire un impatient", um das Homophon zu korrigieren.
  • Figurenbeschreibung
  • 1
    • Display 108 = Display 108
    • Digital Port 128 = digitaler Ausgang 128
    • Analog Port 126 = analoger Ausgang 126
    • Hard Drive 132 = Festplatte 132
    • Memory 118 = Speicher 118
    • Inter-Face 140 = Schnittstelle 140
    • Parser 142 = Parser 142
    • Back End 144 = Backend 144
    • Operating System 120 = Betriebssystem 120
    • Application Program 122 = Anwendungsprogramm 122
    • Speech Recognition Software = Spracherkennungssoftware 124
    • I/O Unit 114 = Eingangs/Ausgangs-Einheit 114
    • Sound Card 116 = Soundkarte 116
    • CPU 112 = CPU 112
  • 2
    • Digital samples 205 = digitale Momentwerte 205
    • Front-End Processing Module 200 = Frontend-Bearbeitungsmodul 200
    • Frames of parameters 210 = Parameter-Frames 210
    • Recognizer 215 = Erkenner 215
    • Control = Steuern
    • Recognition candidates = Erkennungskandidaten
    • Control/Interface Module 220 = Steuerung/Schnittstellen-Modul 220
    • Requests = Anfordern
    • Lattice of words = Wörtergitter
    • Pre-Filtering Procedure 240 = Vorfilterprozedur 240
    • Active Vocabulary 230 = aktiver Wortschatz 230
    • Acoustic Models 235 = akustische Modelle 235
    • Constraint Grammars 225 = Constraint-Grammatiken 225
    • Backup Dictionary 245 = Unterstützungs-Wörterbuch 245
  • 3
    • Produce X(f) 305 = Prozedur X(f) 305
    • Determine log (X(f))2 310 = Bestimme log (X(f))2 310
    • Frequency warping 315 = Frequenzverzerrung 315
    • Filter bank analysis 320 = Filterbankanalyse 320
    • Cepstral analysis 325 = Cepstralanalyse 325
    • Channel normalzation 330 = Kanalnormierung 330
    • Produce cepstral differences 335 = Erzeuge Cepstral-Differenzen 335
    • Produce cepstral second differences 340 = Erzeuge Cepstral-Zweitdifferenzen 335
    • IMELDA 345 = IMELDA 345
  • 4A
    • "select" 405 = "wähle aus" 405
    • previously-recognized words 415 = vorher erkannte Wörter 415
  • 4B
    • "select" = "wähle aus"
    • "four" = "Vier"
    • "score" = "Wert"
    • "and" = "und"
    • "seven" = "Sieben"
  • 7
    • Get next frame 700 = nehme nächsten Frame 700
    • Find an active node with no acitve, unprocessed subnodes 705 = finde einen aktiven Knoten ohne aktiven, unbearbeiteten Unterknoten 705
    • Processnode 710 = Verfahrensknoten 710
    • At highest node? 715 = am höchsten Knoten? 715
    • No = Nein
    • Go to next node with no unproccessed Subnodes 720 = gehe zum nächsten Knoten ohne unbearbeitete Unterknoten 720
    • Yes = Ja
    • Process silence 725 = Prozessruhe 725
    • Reseed tree 730 = setze Baum neu 730
    • More words possible? 735 = weitere Wörter möglich? 735
    • Return list 740 = kehre zur Liste zurück 740
  • 9
    • Frame = Frame
    • Next node ("N") = nächster Knoten ("N")
  • 10
    • Frame = Frame
    • Next node ("N") = nächster Knoten ("N")
  • 11
    • Update scores/times 1105 = aktualisiere Wertungen/Zeiten 1105
    • Score(s)>Threshold? 1110 = Wertung(en)>Schwellenwert? 1110
    • No = Nein
    • Yes = Ja
    • Deactivate states/node 1115 = deaktiviere Zustände/Knoten 1115
    • Word to be added? 1120 = Wort hinzuzufügen? 11120
    • Add word to list 1125 = füge Wörter zur Liste hinzu 1125
    • Save score for reseeding 1130 = bewahre Wertung für Neusetzung 1130
    • Done = erledigt
  • 12
    • Initialize lexical tree 1205 = initialisiere lexikalischen Baum 1205
    • Retrive frame 1210 = frage Frame ab 1210
    • Hypothesis to consider? 1215 = Hypothese zu beachten? 1215
    • Yes = Ja
    • No = Nein
    • Go to first hypothesis 1220 = gehe zur ersten Hypothese 1220
    • Compare frame to hypothesis 1225 = vergleiche Frame mit Hypothese 1225
    • Update score 1230 = aktualisiere Wertung 1230
    • Hypothesis likely? 1235 = Hypothese wahrscheinlich? 1235
    • Delete hypothesis 1240 = lösche Hypothese 1240
    • Word ending? 1245 = Wort endet? 1245
    • Set word ending flag 1250 = setze Wortendefahne 1250
    • Additional hypothesis? 1255 = zusätzliche Hypothese 1255
    • Next hypothesis 1260 = nächste Hypothese 1260
    • More frames? 1285 = weitere Frames? 1285
    • Word ended? 1270 = Wort geendet? 1270
    • Request pre-filtering list 1275 = fordere Vorfilterliste an 1275
    • Create/expand hypothses 1280 = erzeuge/expandiere Hypothesen 1280
    • Return recognition candidates 1285 = bringe Erkennungskandidaten zurück 1285
  • 13A
    • Words = Wörter
    • Backup Dictionary 245 = Unterstützungswörterbuch 245
    • Active Vocabulary 230 = aktiver Wortschatz 230
    • User-Specific + System-Backup = nutzerspezifische und = Systemunterstützung
  • 13B
    • Words = Wörter
    • Backup Dictionary 245 = Unterstützungswörterbuch 245
    • Active Vocabulary 230 = aktiver Wortschatz 230
    • Non-Splittable Words 1330 = nicht trennbare Wörter 1330
    • Splittable Words 1325 = trennbare Wörter 1325
  • 14A
    • French-Before = Französisch-Vorher
    • Complete Dictation Vocabulary = vollständiger Diktierwortschatz
    • Words = Wörter
    • Active = aktiv
    • Backup = Unterstützung
  • 14B
    • French-After = Französisch-Nachher
    • Complete Dictation Vocabulary = vollständiger Diktierwortschatz
    • Words = Wörter
    • Active Words = aktive Wörter
    • Splittable = trennbar
    • Fragments = Fragmente
    • Non-Splittable = nicht trennbar
  • 14C
    • Fragments = Fragmente
    • Word Fragments = Wortfragmente
    • Word Roots = Wortwurzeln
    • True Roots = echte Wurzeln
    • Suffixes = Suffixe
    • Prefixes = Prefixe
  • 15A
    • U.S. English-Before = US Englisch-Vorher
    • Complete Dictation Vocabulary = vollständiger Diktierwortschatz
    • Words = Wörter
    • Active = aktiv
    • Backup = Unterstützung
  • 15B
    • U.S. English-After = US Englisch-Nachher
    • Complete Dictation Vocabulary = vollständiger Diktierwortschatz
    • Words = Wörter
    • Active Words = aktive Wörter
    • Splittable = trennbar
    • Fragments = Fragmente
    • Non-splittable = nicht trennbar
  • 15C
    • Fragments = Fragmente
    • Word Fragments = Wortfragmente
    • Word-Roots = Wortwurzeln
    • True Roots = echte Wurzeln
    • Suffixes = Suffixe
    • Prefixes = Prefixe
  • 16A
    • Determine Fragments 1605 = bestimmte Fragmente 1605
    • Generate New Active Vocabulary + Backup Dictionary 1610 = erzeuge neuen aktiven Wortschatz und Unterstützungs-Wörterbuch 1610
    • Create Language Model 1615 = erzeuge Sprachenmodell 1615
  • 16B
    • Perform Speech Recognition On Utterance 1655 = führe Spracherkennung an Äußerung durch 1655
    • Perform Post-Recognition Processing On Utterance 1660 = führe Nach-Erkennungsbearbeitung an Äußerung durch 1660
  • 17
    • Receive recognition results 1705 = erhalte Erkennungsergebnisse 1705
    • Correction mode? 1710 = Korrekturmodus 1710
    • No = Nein
    • Yes = Ja
    • Only text? 1715 = nur Text? 1715
    • Process text 1720 = bearbeite Text 1720
    • Correction command 1725 = Korrekturbefehl? 1725
    • Process command 1730 = bearbeite Befehl 1730
    • Homophone correction command? 1735 = Homophon-Korrekturbefehl 1735
    • Process recognition result 1770 = bearbeite Erkennungsergebnis 1770
    • Modify utterance 1775 = modifiziere Äußerung 1775
    • Process modified utterance 1780 = bearbeite modifizierte Äußerung 1780
    • Homophone review 1740 = Homophon-Überprüfung 1740
    • Mor than one alternative? 1795 = mehr als eine Alternative? 1795
    • Display correction dialog 1743 = Display-Korrekturdialog 1743
    • Enter correction mode 1750 = gebe Korrekturmodus ein 1750
    • Process recognition result 1755 = bearbeite Erkennungsergebnis 1755
    • One alternative? 1790 = eine Alternative 1790
    • Notify user 1745 = benachrichtige Nutzer 1745
    • Replace 1792 = ersetze 1792
    • Correction done? 1760 = Korrektur erfolgt? 1760
    • Exit correction mode/clear box 1765 = verlasse Korrekturmodus/leere Box 1765
  • 18A
    • Document = Dokument
  • 18B
    • Document = Dokument
  • 18C
    • Document = Dokument
  • 18D
    • Document = Dokument
  • 19
    • Select best-scoring recognition candidate 1900 = wähle Erkennungskandidaten mit mit bester Wertung 1900
    • Does selected recognition candidate include homophone? 1905 = enthält ausgewählter Erkennungs Kandidat ein Homophon 1905
    • Yes = Ja
    • No = Nein
    • Retrieve grammatical category for each word in selected recognition candidate 1915 = frage ab grammatische Kategorie für jedes Wort in ausgewähltem Erkennungskandidaten 1915
    • Guess grammatical category for each word 1920 = schätze grammatische Kategorie für jedes Wort 1920
    • Retrieve feature set for each word based On guessed grammatical category 1925 = frage Merkmalgruppe ab für jedes Wort basierend auf geschätzte grammatische Kategorie 1925
    • Arrange words into phrases 1930 = ordne Wörter in Ausdrücken 1930
    • Determine relationship among phrases 1935 = bestimme Beziehung unter Ausdrücken 1935
    • Resolve conflicts by replacing words 1940 = löse Konflikte durch Austausch von Wörtern 1940
    • Output alternative candidate 1945 = gebe alternativen Kandidaten aus 1945
    • Choice list full? 1950 = Auswahlliste voll? 1950
    • Candidates with homophones? 1955 = Kandidaten mit Homophonen 1955
    • Select next best scoring recognition Candidate 1910 = wähle nächsten Erkennungskandidaten mit bester Wertung 1910
  • 20A
    • Original (best scoring recognition candidate): = Original (Erkennungskandidat mit bester Wertung)
    • Answer (alternative recognition candidate) = Antwort (alternativer Erkennungskandidat)
    • words found = gefundene Worte
    • categorized (100%) = kategorisiert (100%)
    • do not match any category (0%) = passt in keine Kategorie (0%)
    • Rules applied 4 times (80%) = Regeln viermal angelegt (80%)
    • Rules: = Regeln:
    • Means plural/feminine) = Plural/weiblich
  • 20B
    • Gender neutral = Geschlecht neutral
    • Number plural = Mehrzahl
    • Noun phrase = Nomenausdruck
    • Subject of verb = Subjekt eines Verbs
    • Indirect object pronoun = indirektes Objektpronomen
    • Gender masculine = Geschlecht männlich
    • Tense présent = Zeit Präsens
    • Verb phrase = Verbausdruck
    • Number singular = Einzahl
    • Gender feminine = Geschlecht weiblich
    • Direct object pronoun = direktes Objektpronomen
  • 21A
    • Original (best scoring recognition candidate): = Original (Erkennungskandidat mit bester Wertung)
    • Answer (alternative recognition candidate) = Antwort (alternativer Erkennungskandidat)
    • words found = gefundene Worte
    • categorized (100%) = kategorisiert (100%)
    • do not match any category (0%) = passt in keine Kategorie (0%)
    • Rules applied 2 times (40%) = Regeln zweimal angelegt (40%)
    • Rules: = Regeln:
    • Means plural/feminine) = Plural weiblich
  • 21B
    • Not considered = nicht berücksichtigt
    • Gender neutral = Geschlecht neutral
    • Number plural = Mehrzahl
    • Gender feminine = Geschlecht weiblich
    • Tense présent = Zeit Gegenwart
    • Number singular = Einzahl
    • Noun phrase = Nomenausdruck
    • Verb phrase = Verbausdruck
    • Subjekt of verb = Subjekt eines Verbs
  • 22A
    • Original: = Original:
    • Answer: (no change) = Antwort: (keine Änderung)
    • Words found = Worte gefunden
    • Categorized (100%) = kategorisiert (100%)
    • Do not match any categorie (0%) = passt in keine Kategorie (0%)
    • Rules applied 3 times (37,5%) = Regeln dreimal angelegt (37,5%)
    • Rules = Regeln
    • Means plural/feminine = Plural/weiblich
  • 22B
    • Original: = Original:
    • Answer: (no change) = Antwort: (keine Änderung)
    • words found = gefundene Worte
    • categorized (100%) = kategorisiert (100%)
    • do not match any category (0%) = passt in keine Kategorie (0%)
    • Rules applied 4 times (80%) = Regeln viermal angelegt (80%)
    • Rules: = Regeln:
    • Means plural/feminine) = Plural/weiblich
  • 22C
    • Original: = Original:
    • Answer: (no change) = Antwort: (keine Änderung)
    • words found = gefundene Worte
    • categorized (100%) = kategorisiert (100%)
    • do not match any category (0%) = passt in keine Kategorie (0%)
    • Rules applied 4 times (80%) = Regeln viermal angelegt (80%)
    • Rules: = Regeln:
    • Means plural/feminine) = Plural/weiblich
  • 22D
    • Original: = Original:
    • Answer: (no change) = Antwort: (keine Änderung)
    • words found = gefundene Worte
    • categorized (100%) = kategorisiert (100%)
    • do not match any category (0%) = passt in keine Kategorie (0%)
    • Rules applied 3 times (33.3333%) = Regeln dreimal angelegt (33,3333%)
    • Rules: = Regeln:
    • Means plural/feminine) = Plural/weiblich

Claims (30)

  1. Verfahren zum Korrigieren eines fehlerhaften Textes in Verbindung mit Erkennungsfehlern in der computerunterstützten Spracherkennung, wobei das Verfahren umfasst: Durchführen einer Spracherkennung zu einer Äußerung, um ein Erkennungsergebnis für die Äußerung zu erzeugen; Identifizieren eines Korrekturbefehls in dem Erkennungsergebnis für die Äußerung, wobei der Korrekturbefehl umfasst: eine Gruppe aus ein oder mehreren Worten eines früheren Erkennungsergebnisses, und ein Affix, das mit der Gruppe aus ein oder mehreren Worten kombiniert werden kann, um ein Homophon der ein oder mehreren Worte zu bilden; und Erzeugen des Homophons aus der Gruppe von ein oder mehreren Worten und des Affix basierend auf den Merkmalen ein oder mehrerer Wörter des früheren Erkennungsergebnisses, die nicht in der Gruppe aus ein oder mehreren Worten enthalten sind.
  2. Verfahren nach Anspruch 1, mit einem Ersetzen der Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses durch das Homophon.
  3. Verfahren nach Anspruch 1, in welchem das Erzeugen des Homophons aus der Gruppe aus ein oder mehreren Wörtern und des Affix ein Kombinieren der Gruppe von ein oder mehreren Worten und des Affix in der Weise umfasst, dass die Merkmale der ein oder mehreren Wörter des früheren Erkennungsergebnisses mit dem Homophon zusammenpassen.
  4. Verfahren nach Anspruch 1, in welchem das Erzeugen des Homophons umfasst: Präsentieren einer Liste möglicher Homophone; und Erhalten einer Auswahl eines Homophons aus der Liste.
  5. Verfahren nach Anspruch 1, in welchem der Korrekturbefehl umfasst "ecrire <wort><endung>", wobei <wort> die Gruppe von ein oder mehrere Worten des früheren Erkennungsergebnisses repräsentiert und <endung> das Affix repräsentiert.
  6. Verfahren nach Anspruch 5, in welchem die Gruppe aus ein oder mehreren Worten nur ein Wort umfasst und das Affix eine Endung ist.
  7. Verfahren nach Anspruch 1, in welchem das Homophon genauso wie die Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses betont wird.
  8. Verfahren nach Anspruch 1, in welchem ein oder mehrere Phoneme des Homophons in der Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses enthalten sind.
  9. Verfahren nach Anspruch 1, in welchem das Homophon eine Gruppe aus ein oder mehreren Worten umfasst.
  10. Verfahren nach Anspruch 1, in welchem das Affix eine Endung ist.
  11. Computerunterstütztes Spracherkennungssystem mit: einem Prozessor; einer Eingabeeinrichtung, die eine Äußerung erhält; einer Speichereinrichtung zum Speichern von Softwarebefehlen, die von dem Prozessor durchgeführt werden; Mitteln zum Durchführen einer Spracherkennung zu der Äußerung, um ein Erkennungsergebnis für die Äußerung zu erzeugen; Mitteln zum Identifizieren eines Korrekturbefehls in dem Erkennungsergebnis für die Äußerung, wobei der Korrekturbefehl umfasst: eine Gruppe aus ein oder mehreren Worten eines früheren Erkennungsergebnisses, und ein Affix, das mit der Gruppe aus ein oder mehreren Worten kombiniert werden kann, um ein Homophon der ein oder mehreren Worte zu bilden; und Mittel zum Erzeugen des Homophons aus der Gruppe aus ein oder mehreren Worten und des Affix basierend auf Merkmalen von ein oder mehreren Worten des früheren Erkennungsergebnisses, die nicht in der Gruppe aus ein oder mehreren Worten enthalten sind.
  12. System nach Anspruch 11, in welchem die Speichereinrichtung von dem Prozessor ausgeführte Softwarebefehle zum Ersetzen der Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses durch das Homophon speichert.
  13. System nach Anspruch 11, in welchem das Mittel zum Erzeugen des Homophons aus der Gruppe aus ein oder mehreren Worten und des Affix Mittel zum Kombinieren der Gruppe aus ein oder mehreren Worten und des Affix umfasst, derart, dass die Merkmale der ein oder mehreren Worte des früheren Erkennungsergebnisses mit dem Homophon zusammenpassen.
  14. System nach Anspruch 11, in welchem die Mittel zum Erzeugen des Homophons Mittel umfassen: zum Präsentieren einer Liste möglicher Homophone; und zum Erhalten einer Auswahl eines Homophons aus der Liste.
  15. System nach Anspruch 11, in welchem der Korrekturbefehl umfasst "ecrire <wort><endung>", wobei <wort> die Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses repräsentier und <endung> das Affix repräsentiert.
  16. System nach Anspruch 15, in welchem die Gruppe aus ein mehreren Worten nur ein Wort enthält und das Affix eine Endung ist.
  17. System nach Anspruch 11, in welchem das Homophon genauso wie die Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses betont wird.
  18. System nach Anspruch 11, in welchem ein oder mehrere Phoneme des Homophons in der Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses enthalten sind.
  19. System nach Anspruch 11, in welchem das Homophon eine Gruppe aus ein oder mehreren Worten enthält.
  20. System nach Anspruch 11, in welchem das Affix eine Endung ist.
  21. Computersoftware, merklich ausgeführt in einem computerlesbaren Medium oder in einem mitlaufenden Trägersignal, zum Korrigieren eines fehlerhaften Textes in Verbindung mit Erkennungsfehlern, wobei die Software die folgenden Codesegmente umfasst, um ihre entsprechenden Operationen durchzuführen, wenn sie auf einem Computersystem läuft: ein erstes Codesegment, um eine Spracherkennung zu der Äußerung durchzuführen, um ein Erkennungsergebnis für die Äußerung zu erzeugen; ein zweites Codesegment, um einen Korrekturbefehl in dem Erkennungsergebnis für die Äu ßerung zu identifizieren, wobei der Korrekturbefehl umfasst: eine Gruppe aus ein oder mehreren Worten eines früheren Erkennungsergebnisses, und ein Affix, das mit der Gruppe aus ein oder mehreren Worten kombiniert werden kann, um ein Homophon der ein oder mehreren Worte zu bilden; und ein drittes Codesegment, um das Homophon aus der Gruppe aus ein oder mehreren Worten und des Affix basierend auf Merkmalen der ein oder mehreren Worte des früheren Erkennungsergebnisses zu erzeugen, die nicht in der Gruppe aus ein oder mehreren Worten enthalten sind.
  22. Software nach Anspruch 21, ferner mit einem vierten Codesegment, um die Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses durch das Homophon zu ersetzen.
  23. Software nach Anspruch 21, in welcher das dritte Codesegment ein Codesegment umfasst, um die Gruppe aus ein oder mehreren Worten und das Affix derart zu kombinieren, dass die Merkmale der ein oder mehreren Worte des früheren Erkennungsergebnisses mit dem Homophon zusammenpassen.
  24. Software nach Anspruch 21, in welcher das dritte Codesegment umfasst: ein Codesegment, um eine Liste möglicher Homophone zu präsentieren; und ein Codesegment, um eine Auswahl eines Homophons aus der Liste zu erhalten.
  25. Software nach Anspruch 21, in welcher der Korrekturbefehl umfasst: "ecrire <wort><endung>", wobei <wort> die Gruppe aus oder mehreren Worten des früheren Erkennungsergebnisses repräsentiert und <endung> das Affix repräsentiert.
  26. Software nach Anspruch 25, in welcher die Gruppe aus ein oder mehreren Worten nur ein Wort umfasst und das Affix eine Endung ist.
  27. Software nach Anspruch 21, in welcher das Homophon genauso wie die Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses betont wird.
  28. Software nach Anspruch 21, in welcher ein oder mehrere Phoneme des Homophons in der Gruppe aus ein oder mehreren Worten des früheren Erkennungsergebnisses enthalten sind.
  29. Software nach Anspruch 21, in welcher das Homophon eine Gruppe aus ein oder mehreren Worten enthält.
  30. Software nach Anspruch 21, in welcher das Affix eine Endung ist.
DE60119643T 2000-09-18 2001-09-18 Homophonewahl in der Spracherkennung Expired - Lifetime DE60119643T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US66454500A 2000-09-18 2000-09-18
US664545 2000-09-18

Publications (2)

Publication Number Publication Date
DE60119643D1 DE60119643D1 (de) 2006-06-22
DE60119643T2 true DE60119643T2 (de) 2007-02-01

Family

ID=24666410

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60119643T Expired - Lifetime DE60119643T2 (de) 2000-09-18 2001-09-18 Homophonewahl in der Spracherkennung

Country Status (3)

Country Link
EP (1) EP1189203B1 (de)
AT (1) ATE326754T1 (de)
DE (1) DE60119643T2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10251112A1 (de) * 2002-11-02 2004-05-19 Philips Intellectual Property & Standards Gmbh Verfahren und System zur Spracherkennung
GB2409561A (en) * 2003-12-23 2005-06-29 Canon Kk A method of correcting errors in a speech recognition system
US20060293889A1 (en) * 2005-06-27 2006-12-28 Nokia Corporation Error correction for speech recognition systems
CN103076893B (zh) * 2012-12-31 2016-08-17 百度在线网络技术(北京)有限公司 一种用于实现语音输入的方法与设备
US9514743B2 (en) * 2014-08-29 2016-12-06 Google Inc. Query rewrite corrections
CN113223516B (zh) * 2021-04-12 2022-11-29 北京百度网讯科技有限公司 语音识别方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9511855D0 (en) * 1995-06-12 1995-08-09 Dragon Syst Uk Ltd Speech recognition apparatus and methods
US5752230A (en) * 1996-08-20 1998-05-12 Ncr Corporation Method and apparatus for identifying names with a speech recognition program
JP2001517815A (ja) * 1997-09-24 2001-10-09 ルノー・アンド・オスピー・スピーチ・プロダクツ・ナームローゼ・ベンノートシャープ 言語認識上の類似発声識別方法及び装置

Also Published As

Publication number Publication date
EP1189203A3 (de) 2002-11-20
EP1189203B1 (de) 2006-05-17
ATE326754T1 (de) 2006-06-15
EP1189203A2 (de) 2002-03-20
DE60119643D1 (de) 2006-06-22

Similar Documents

Publication Publication Date Title
DE69829235T2 (de) Registrierung für die Spracherkennung
DE69827988T2 (de) Sprachmodelle für die Spracherkennung
DE60318544T2 (de) Sprachmodell für die Spracherkennung
DE69914131T2 (de) Positionshandhabung bei der Spracherkennung
DE69834553T2 (de) Erweiterbares spracherkennungssystem mit einer audio-rückkopplung
DE69822296T2 (de) Mustererkennungsregistrierung in einem verteilten system
DE102020205786B4 (de) Spracherkennung unter verwendung von nlu (natural language understanding)-bezogenem wissen über tiefe vorwärtsgerichtete neuronale netze
DE69632517T2 (de) Erkennung kontinuierlicher Sprache
DE69923191T2 (de) Interaktive anwenderschnittstelle mit spracherkennung und natursprachenverarbeitungssystem
DE60201262T2 (de) Hierarchische sprachmodelle
DE112014006542B4 (de) Einrichtung und Verfahren zum Verständnis von einer Benutzerintention
DE69634239T2 (de) Erkennung kontinuierlich gesprochener Texte und Befehle
DE602005000308T2 (de) Vorrichtung für sprachgesteuerte Anwendungen
DE60016722T2 (de) Spracherkennung in zwei Durchgängen mit Restriktion des aktiven Vokabulars
DE69923379T2 (de) Nicht-interaktive Registrierung zur Spracherkennung
EP1466317B1 (de) Betriebsverfahren eines automatischen spracherkenners zur sprecherunabhängigen spracherkennung von worten aus verschiedenen sprachen und automatischer spracherkenner
DE60005326T2 (de) Erkennungseinheiten mit komplementären sprachmodellen
DE69814589T2 (de) Spracherkennung unter verwendung mehrerer spracherkenner
DE60126564T2 (de) Verfahren und Anordnung zur Sprachsysnthese
DE60004862T2 (de) Automatische bestimmung der genauigkeit eines aussprachewörterbuchs in einem spracherkennungssystem
EP0925578B1 (de) Sprachverarbeitungssystem und verfahren zur sprachverarbeitung
DE60125397T2 (de) Sprachunabhängige stimmbasierte benutzeroberfläche
DE69725091T2 (de) Verfahren und System zum Editieren von Sätzen während der kontinuierlichen Spracherkennung
EP0802522B1 (de) Anordnung und Verfahren zur Aktionsermittlung, sowie Verwendung der Anordnung und des Verfahrens
DE19847419A1 (de) Verfahren zur automatischen Erkennung einer buchstabierten sprachlichen Äußerung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition