-
Diese
Erfindung betrifft kontinuierliche Spracherkennung.
-
Viele
Spracherkennungssysteme, einschließlich DragonDictateTM von Dragon SystemsTM of
West Newton, Massachusetts, speichern Daten, die die Sprache eines
Benutzers repräsentieren,
(d. h. Sprachrahmen) für
eine kurze Liste von Worten, z. B. 32, die gerade durch den Benutzer
ausgesprochen worden sind. Wenn ein Benutzer feststellt, daß ein Wort
nicht korrekt erkannt wurde, ruft der Benutzer (durch Tastenanschlag,
Mausauswahl oder eine Außerung)
auf einem Anzeigebildschirm ein Korrekturfenster auf. Das Korrekturfenster
zeigt die kurze Liste von Worten oder einen Abschnitt der kurzen
Liste von Worten, und der Benutzer wählt das falsch erkannte Wort
zur Korrektur aus. Die Auswahl des Wortes veranlaßt das Spracherkennungssystem,
das Wort erneut zu erkennen, indem es die gespeicherten Sprachrahmen,
die mit dem Wort verbunden sind, mit einem Wörterverzeichnis von Sprachmodellen
vergleicht. Der Vergleich liefert eine Auswahlliste von Worten,
die durch den Benutzer gesprochen worden sein können, und das System zeigt
die Auswahlliste für
den Benutzer an. Der Benutzer wählt
dann das korrekte Wort aus der Auswahlliste aus, oder der Benutzer buchstabiert
mündlich
das korrekte Wort in das Korrekturfenster. In jedem Fall ersetzt
das System das nicht korrekte Wort durch das korrekte Wort und paßt (d. h.
trainiert) die Sprachmodelle, die das korrekte Wort repräsentieren,
unter Verwendung der zugehörigen
Sprachrahmen an.
-
Für wertere
Informationen über
das Training von Sprachmodellen, siehe das US-Patent Nr. 5,027,406, mit dem mit dem
Titel „Method
for Interactive Speech Recognition and Training", und die US-Patentanmeldung Serien-Nr.
08/382,752 mit dem Titel „Apparatuses
and Methods for Training and Operating Speech Recognition Systems".
-
Für weitere
Informationen über
Auswahllisten und eine alphabetische Vorfilterung siehe das US-Patent
Nr. 4,783,803, mit dem Titel „Speech
Recognition Apparatus and Method",
das US-Patent Nr. 4,865,778 mit dem Titel „Inieractive Speech Recognition
Apparatus", und
das US-Patent Nr. 5,027,406 mit dem Titel „Method for Interactive Speech
Recognition and Training".
-
Abgesehen
von der Korrektur von Spracherkennungsfehlern ändern Benutzer häufig ihre
Meinung hinsichtlich des vorher eingegebenen Textes und wollen ein
oder mehrere vorher eingegebene Worte durch andere Worte ersetzen.
Um diese Editierung durchzuführen,
rufen Benutzer häufig
das Korrekturfenster auf, wählen
ein vorher eingegebenes Wort, und tippen oder sprechen dann ein
anderes Wort. Das System ersetzt das vorher eingegebene Wort mit
dem anderen Wort, und da das Training kontinuierlich ist, paßt das System
auch die Sprachmodelle, die mit dem anderen Wort verbunden sind,
mit den Sprachrahmen aus der ursprünglichen Äußerung an. Diese „Fehlanpassung" kann die Integrität der Sprachmodelle
für das
andere Wort beeinträchtigen
und die Spracherkennungsgenauigkeit reduzieren.
-
Zum
Beispiel kann der Benutzer „It
was a rainy day" eingegebenen
haben und möchte,
das sich der Text als „It
was a cold day" liest.
Wenn der Benutzer das Korrekturfenster aufruft, das Wort „rainy" auswählt und
das Wort „cold" eintippt oder spricht,
ersetzt das System das Wort „rainy" durch das Wort „cold" und paßt die Sprachmodelle
für „cold" falsch mit den Sprachmodellen
für "rainy" an.
-
Wenn
das Spracherkennungssystem eine oder mehrere Wortgrenzen falsch
erkennt, dann könnte
es sein, daß der
Benutzer zwei oder mehrere Worte korrigieren muß. Wenn der Benutzer zum Beispiel „let's recognize speech" sagt und das System „let's wreck a nice beach" erkennt, dann muß der Benutzer „wreck
a nice beach" in „recognize
speech" ändern. Der
Benutzer kann das Korrekturfenster aufrufen und jedes Wort einzeln ändern, wobei
die Auswahlliste für
jedes Wort verwendet wird. Zum Bespiel kann der Benutzer das Korrekturfenster
aufrufen und „wreck" als das zu ändernde
Wort auswählen
und „recognize" aus der Auswahlliste (falls
verfügbar)
auswählen
oder (durch Tastenanschlag oder Äußerung:
Wort oder Schreibweise) „recognize" in das Korrekturfenster
eingeben. Der Benutzer kann dann „a" und dann „nice" auswählen und ablehnen (d. h. löschen),
und zuletzt kann der Benutzer „beach" auswählen und „speech" aus der Auswahlliste
wählen
oder „speech" in das Korrekturfenster
eingeben.
-
Alternativ
lassen es einige Spracherkennungssysteme zu, nachdem der Benutzer
das Korrekturfenster aufgerufen und „recognize" gewählt
hat, daß der
Benutzer ein Leerzeichen nach „recognize" eingibt, um dem
System anzuzeigen, daß eine
andere Wortkorrektur folgt. Das System erkennt die Sprachrahmen
erneut, die dem neu eingegebenen Wort „recognize" folgen und stellt eine Hypothese (z.
B. „Sprache") und eine entsprechende
Auswahlliste für
den Benutzer auf. Der Benutzer wählt
entweder die Hypothese oder ein Wort aus der Auswahlliste und kann
dem Wort erneut ein Leerzeichen folgen lassen, um das System zu
veranlassen, das nächste
Wort erneut zu erkennen.
-
Andere
Spracherkennungssysteme weisen große Speicherfähigkeiten
auf, die alle Sprachrahmen speichern, die mit Benutzeräußerungen
verbunden sind, und alle Benutzeräußerungen aufzeichnen. Der Benutzer
kann ein vorher gesprochenes Wort auswählen, um das System die ursprüngliche Äußerung des
Benutzers wiedergeben zu lassen. Wenn die Äußerung nicht zum erkannten
Wort paßt
(d. h. das System erkennt das Wort falsch), dann kann der Benutzer
ein Korrekturfenster aufrufen und das korrekte Wort tippen oder sprechen,
um das System zu veranlassen, die Korrektur vorzunehmen und die
Sprachmodelle auf das korrigierte Wort zu trainieren. Dies kann
eine Sprachmodell-Fehlanpassung reduzieren, da es notwendig ist,
daß der
Benutzer feststellt, ob das System das Wort tatsächlich falsch erkannt hat,
bevor die Sprachmodelle trainiert werden.
-
US-5
231 670 offenbart ein Spracherkennungssystem, in dem jede erkannte
Spracheingabe in ein Diktatereignis, das die Verarbeitung von Daten
handhabt, die die Eingabe betreffen, und ein Textereignis getrennt wird,
das sich mit der Erzeugung von Text aus den Spracheingabesignalen
zu tun hat. Die Diktatereignisse können Befehle, wie "SCRATCH THAT", "FORWARD", „BACK", „NEXT CHOICE" und „TRY AGAIN" enthalten.
-
Im
allgemeinen zeichnet sich in einem Aspekt die Erfindung durch ein
Verfahren zur Verwendung bei der Erkennung von Sprache aus. Es werden
Signale angenommen, die eingestreuten Sprachelementen entsprechen,
die Textelemente, die zu erkennenden Text entsprechen, und auszuführende Befehlselemente
enthalten. Die Elemente werden erkannt. Es werden als Reaktion auf
erkannte vorbestimmte Befehlselemente Modifikationsprozeduren ausgeführt. Die
Modifikationsprozeduren umfassen das automatische Feststellen, ob die
Modifikationsprozeduren einen Spracherkennungsfehler korrigieren,
das Training der Sprachmodelle, wenn die Modfikationsprozeduren
einen Spracherkennungsfehler korrigieren, und das Unterlassen des
Trainierens von Sprachmodellen, wenn die Modifikationsprozeduren
einen Spracherkennungsfehler nicht korrigieren.
-
Im
allgemeinen schließen
die Modifikationsprozeduren in einem anderen Aspekt das gleichzeitige
Modifizieren vorher erkannter Textelemente ein.
-
Implementierungen
der Erfindung können
ein oder mehrere der folgenden Merkmale umfassen. Textelementgrenzen
(z. B. falsch erkannte Grenzen) der vorher erkannten Textelemente
können
modifiziert werden. Die Detektion eines Spracherkennungsfehlers
kann die Feststellung umfassen, ob Sprachrahmen oder Sprachmodelle,
die einer Spracherkennungsmodifikation entsprechen, zu mindestens
einem Anteil der Sprachrahmen oder Sprachmodelle passen, die den
vorhergehenden Äußerungen
entsprechen. Passende Sprachrahmen oder Sprachmodelle können ausgewählt werden.
Die vorbestimmten Befehlselemente können einen Auswahlbefehl und
eine Äußerung enthalten,
die ein ausgewähltes
erkanntes Textelement repräsentieren,
das korrigiert werden soll. Das ausgewählte erkannte Textelement kann
an vorher erkannte Textelemente angepaßt werden, Vorher erkannte
Textelemente können
syntaktisch analysiert werden, und es kann eine Baumstruktur aufgebaut
werden, die die geordnete Beziehung zwischen den vorher erkannten
Textelementen repräsentiert.
Die Baumstruktur kann ein mehrfaches Auftreten eines gegebenen vorher
erkannten Textelements widerspiegeln. Die Äußerung kann eine Sequenz von
mehreren ausgewählten
erkannten Textelementen repräsentieren.
Eines der erkannten Textelemente kann beruhend auf Korrekturinformationen
modifiziert werden, die durch einen Benutzer bereitgestellt werden,
der einen Ersatztext spricht. Die Korrekturinformation können eine
Korrektur der Grenzen zwischen Textelementen umfassen. Die Modifikationsprozeduren
können das
Modfizieren eines oder mehrerer der jüngst erkannten Textelemente
umfassen.
-
Die
vorbestimmten Befehlselemente können
einen Befehl (z. B. „oops") umfassen, der anzeigt,
daß eine
kurzfristige Korrektur vorgenommen werden soll. Die Modifikationsprozeduren
können
eine interaktion mit einem Benutzer in Bezug auf vorzunehmende Modifikationen
umfassen. Die Interaktion kann ein Anzeigefenster umfassen, in dem
vorgeschlagene Modifikationen angezeigt werden. Die Interaktion
kann umfassen, daß ein
Benutzer die Schreibweise eines Wortes ausspricht, das korrigiert
werden soll. Die Modifikationsprozeduren können das Aufbauen einer Baumstruktur
umfassen, die Sprachrahmen gruppiert, die in Zweigen des Baums möglichen
Textelementen entsprechen. Die jüngste
erkannten Textelemente können
unter Verwendung der Sprachrahmen der Baumstruktur erneut erkannt
werden. Der Baum kann verwendet werden, um Textelement für Textelement
eine Übereinstimmung
zwischen einer Korrekturäußerung und
den ursprünglich
erkannten Textelementen festzustellen. Die Modifikationsprozeduren
können
nach der Bestimmung einer Übereinstimmung
das erneute Erkennen anschließender
Sprachrahmen einer ursprünglichen Äußerung umfassen. Wenn
keine Übereinstimmung
festgestellt wird, kann die erkannte Korrekturäußerung dem Benutzer angezeigt werden.
Der Befehl kann anzeigen, daß der
Benutzer ein erkanntes Textelement löschen möchte. Das Textelement kann
das jüngste
erkannte Textelement sein.
-
Der
vorbestimmte Befehl kann „scratch
that„ sein.
Dem Befehl kann eine Pause folgen, und das jüngst erkannte Textelement kann
dann gelöscht
werden. Dem Befehl kann eine Äußerung folgen,
die einem Ersatztextelement entspricht, und das jüngst erkannte
Textelement wird dann durch das Ersatztextelement ersetzt.
-
Die
Vorteile der Erfindung können
eines oder mehreres des Folgenden umfassen. Die Versorgung des Benutzers
mit einer Vielfalt von Editierungs-/Korrekturtechniken gestattet
es dem Benutzer, auszuwählen,
wie er den vorher eingegebenen Text editieren oder korrigieren wird.
Die gewählte
Technik kann von der vorzunehmenden Editierung oder Korrektur abhängen, oder
der Benutzer kann die Technik auswählen, die ihm am bequemsten
ist. Die unterschiedlichen Techniken lassen außerdem eine Flexibilität des Benutzers
zu, wann Änderungen
oder Korrekturen vorgenommen werden. Zum Beispiel kann der Benutzer
kontinuierlich editieren, während
er Text diktiert, oder der Benutzer kann ein ganzes Dokument diktieren,
bevor er zurückgeht,
um Änderungen
oder Korrekturen vorzunehmen. Außerdem wird der kognitive Aufwand
des Benutzers zur Korrektur und Editierung vorher eingegebenen Textes
reduziert. Zum Beispiel können
Sprachmodelle nur dann trainiert werden, wenn das Spracherkennungssystem,
nicht der Benutzer, feststellt, daß ein Wort oder eine Reihe
von Worten falsch erkannt worden sind. Entsprechend kann das System
als Reaktion auf eine Korrektur des Benutzers automatisch Wortgrenzen
modifizieren, um gleichzeitig eine erste Anzahl von Worten in eine
zweite Anzahl anderer Worte zu ändern.
-
Andere
Vorteile und Merkmale werden aus der folgenden Beschreibung und
aus den Ansprüchen deutlich
werden.
-
1 ist
ein Blockdiagramm eines Spracherkennungssystems.
-
2 ist
ein Blockdiagramm einer Spracherkennungssoftware und Anwendungssoftware.
-
3 ist
ein Blockdiagramm einer Spracherkennungssoftware und von Wörterverzeichnissen,
die im Speicher gespeichert sind.
-
4 ist
eine Computerbildschirmanzeige von Wortverarbeitungsbefehlsworten
und Sätzen.
-
5 ist
ein Flußdiagramm,
das ein langfristiges Editierungsmerkmal darstellt.
-
6 und 7 sind
Blockdiagramme von Baumstrukturen des tangfristigen Editierungsmerkmals.
-
8a–8f sind
Computerbildschirmanzeigen, die das langfristige Editierungsmerkmal
darstellen.
-
9 ist
ein Flußdiagramm,
das ein kurzfristiges Fehlerkorrekturmerkmal darstellt.
-
10a–10e sind Computerbildschirmanzeigen, die ein kurzfristiges
Spracherkennungsfiehler-Korrekturmerkmal darstellen.
-
11 ist
eine Computerbildschirmanzeige eines Korrekturfensters und eines
Schreibweisenfensters.
-
12 und 13 sind
Blockdiagramme der Saumstrukturen des kurzfristigen Fehlerkorrekturmerkmals.
-
14 ist
ein Flußdiagramm,
das ein Streich-das-Editierungsmerkmal darstellt.
-
15a–15d zeigen Benutzerschnittstellenfenster.
-
Das
Spracherkennungssystem enthält
verschiedene Korrektur-/Editierungsmerkmale. Wenn er ein Korrekturmerkmal
verwendet, das als "kurzfristige
Fehlerkorrektur" bezeichnet
wird, ruft der Benutzer (durch Tastenanschlag, Mausauswahl oder
eine Äußerung,
z. B. "oops") ein Korrekturfenster
auf und gibt (durch Tastenanschlag oder Äußerung) eines oder mehrere
vorher gesprochene Worte ein, um eine kürzlich falsch erkannte Äußerung zu
korrigieren. Das System vergleicht Sprachmodelle (für getippte
Worte) oder Sprachrahmen (für
gesprochene Worte), die mit der Korrektur verbunden sind, gegen
die Sprachrahmen einer vorbestimmten Anzahl, z. B. drei, der vorhergehenden Äußerungen
des Benutzers. Wenn der Vergleich Sprachrahmen lokalisiert, die
einem Abschnitt einer der vorhergehenden drei Äußerungen des Benutzers entsprechen, die
im wesentlichen zu den Sprachmodellen oder Rahmen der Korrektur
des Benutzers passen, dann modifiziert das System die ursprüngliche
Erkennung, um die Korrektur einzuschließen. Die Modifikation der ursprünglichen Äußerung umfaßt die erneute
Erkennung der Sprachrahmen um die Korrektur herum. Folglich kann
der Benutzer gleichzeitig ein Wort, eine Reihe von Worten oder eine
ganze Äußerung modifizieren,
was die Korrektur falsch erkannter Wortgrenzen einschließt. Die
Sprachrahmen aus der ursprünglichen Äußerung werden
außerdem
verwendet, um die Sprachmodelle für die Korrektur zu trainieren
(d. h. anzupassen).
-
Wenn
der Vergleich keine Sprachrahmen lokalisiert, die einem Abschnitt
einer der vorhergehenden drei Äußerungen
des Benutzers entsprechen, die im wesentlichen zur Korrektur des
Benutzers passen, dann teilt das System dem Benutzer mit, daß die Korrektur
nicht vorgenommen werden kann. Wenn der Benutzer zum Beispiel irrtümlicherweise
ein oder mehrere andere Worte als Korrektur eingibt, wird der Vergleich
keine entsprechenden Sprachrahmen in einer der vorhergehenden drei Äußerungen
des Benutzers lokalisieren. Dies reduziert die Möglichkeit, daß Sprachmodelle
falsch angepaßt
werden können.
-
Ein
anderes Editierungsmerkmal, das als „Langfristige Editierung" bezeichnet wird,
gestattet es dem Benutzer, vorher eingegebenen Text auszuwählen und
zu modifizieren. Nachdem der Text durch Tastenanschläge oder
Mausauswahl oder durch Aussprechen der auszuwählenden Worte ausgewählt worden
ist, modifiziert der Benutzer den ausgewählten Text durch Tippen oder
Sprechen von Ersatzworten. Der Benutzer kann gleichzeitig ein Wort,
eine Reihe von Worten oder eine ganze Äußerung modifzieren, was die
Korrektur falsch erkannter Wortgrenzen einschließt. Da der Benutzer die langfristige
Editierung verwenden kann, um vorher eingegebenen Text zu editieren
oder um Spracherkennungsfehler zu korrigieren, trainiert das System
nicht automatisch die Sprachmodelle auf die Modfikationen, was im
wesentlichen eine Fehlanpassung der Sprachmodelle verhindert. Der
Benutzer kann jedoch anfordern, daß das System die Sprachmodelle
auf eine Modifikation trainiert.
-
Ein
Korrektur-/Editierungsmerkmal, das als „streiche das und wiederhole" bezeichnet wird,
gestattet es dem Benutzer, schnell und leicht seine jüngste Äußerung zu
löschen
oder zu löschen
und zu ersetzen. Wenn der Benutzer feststellt, nachdem eine Äußerung ausgesprochen
ist, daß das
System die vorhergehende Äußerung nicht
korrekt erkennt, wählt
der Benutzer (durch Tastenanschlag, Mausauswahl oder eine Äußerung, z.
B. „scratch
that„)
einen Streichungsbefehl und wiederholt die Äußerung. Das System ersetzt
die Worte, die aus der ursprünglichen Äußerung erkannt
wurden, durch Worte, die aus der zweiten Äußerung erkannt werden. Wenn
der Benutzer die Worte der vorhergehenden Äußerung löschen möchte, gibt der Benutzer nur
den Streiche-das-Befehl (z. B. mit anschließender Stille) ein, und wenn
der Benutzer die Worte der vorhergehenden Äußerung editieren möchte, sagt
der Benutzer „scratch
that" gefolgt von
neuen Text. In jedem Fall trainiert das System keine Sprachmodelle
entsprechend irgendeinem Ersetzungstext, was die Möglichkeit
einer Fehlanpassung der Sprachmodelle reduziert.
-
Bezugnehmend
auf 1, weist ein typisches Spracherkennungssystem 10 ein
Mikrofon 12 zur Umwandlung der Sprache eines Benutzers
in ein analoges Datensignal 14 und eine Tonkarte 16 auf.
Die Tonkarte weist einen digitalen Signalprozessor (DSP) 19 und
einen Analog-Digital-(A/D)-Wandler 17 auf, zur Umwandlung
des analogen Datensignals in ein digitales Datensignal 18 durch
Abtastung des analogen Datensignals mit etwa 11 khz, um 220 digitale
Abtastwerte während
einen Zeitspanne von 20 ms zu erzeugen. Jede Zeitspanne von 20 ms
entspricht einem getrennten Sprachrahmen. Der DSP verarbeitet die
Abtastwerte entsprechend jedem Sprachrahmen, um während der
Zeitspanne von 20 ms eine Gruppe von Parametern zu erzeugen, die
mit dem analogen Datensignal verbunden ist. Im allgemeinen repräsentieren
die Parameter die Amplitude der Sprache in Jedem eines Satzes von
Frequenzbändern.
-
Der
DSP überwacht
außerdem
die Lautstärke
der Sprachrahmen, um Benutzeräußerungen
zu detektieren. Wenn die Lautstärke
von drei aufeinanderfolgenden Sprachrahmen innerhalb eines Fensters
von fünf aufeinanderfolgenden
Sprachrahmen (d. h. drei der letzten fünf Sprachrahmen) eine vorbestimmte
Sprachschwelle überschreitet,
zum Beispiel 20 dB, dann stellt der DSP fest, daß das analoge Signal Sprache
repräsentiert,
und der DSP beginnt, mehrere, z. B. drei Sprachrahmen von Daten
aufeinmal (d. h. einen Stapel) über ein
digitales Datensignal 23 an eine Zentraleinheit (CPU) 20 zu
senden. Der DSP macht ein Äußerungssignal (Utt) 22 gültig, um
der CPU jedesmal mitzuteilen, daß ein Stapel von Sprachrahmen,
die eine Äußerung repräsentieren, über das
digitale Datensignal gesendet wird.
-
Wenn
ein Unterbrechungs-Behandler 24 an der CPU Geltendmachungen
des Utt-Signals 22 empfängt, wird
die normale Ausführungsabfolge
der CPU unterbrochen. Das Unterbrechungssignal 26 bewirkt,
daß die
Betriebssystemsoftware 28 eine Speicherroutine 29 aufruft.
Die Speicherroutine 29 speichert den ankommenden Stapel
von Sprachrahmen in einem Puffer 30. Wenn fünfzehn aufeinanderfolgende
Sprachrahmen innerhalb eines Fensters von neunzehn aufeinanderfolgenden
Sprachrahmen unter eine vorbestimmte Schweigeschwelle fallen, z.
B. 6 dB, dann stoppt die DSP die Sendung von Sprachrahmen an die
CPU und macht ein End_Utt-Signal 21 gültig. Das End_Utt-Signal veranlaßt die Speicherroutine,
die Stapel zuvor gespeicherter Sprachrahmen in einem Sprachpaket 39 zu
erkennen, das der Benutzeräußerung entspricht.
-
Das
Unterbrechungssignal 26 bewirkt auch, daß die Betriebssystemsoftware
eine Überwachungssoftware 32 aufruft.
Die Überwachungssoftware 32 hält einen
Zählwert 34 der
Anzahl der Sprachpakete, die gespeichert, jedoch noch nicht verarbeitet
worden sind. Eine Anwendung 36, zum Beispiel ein Wortprozessor, der
durch die CPU periodisch ausgeführt
wird, prüft
auf eine Benutzereingabe, indem er den Zählwert der Überwachungssoftware untersucht.
Wenn der Zählwert
null ist, dann gibt es keine Benutzereingabe. Wenn der Zählwert nicht
null ist, dann ruft die Anwendung eine Spracherkennungssoftware 38 auf,
und übergibt
einen Zeiger 37 auf die Speicheradresse des Sprachpakets
im Puffer 30. Der Spracherkenner kann direkt durch die Anwendung
aufgerufen werden oder kann im Auftrag der Anwendung durch ein getrenntes
Programm, wie DragonDictateTM von Dragon
Systems of West Newton, Massachusetts, als Reaktion auf die Anforderung
der Anwendung einer Eingabe von einer Maus oder Tastatur aufgerufen
werden.
-
Für eine detailliertere
Beschreibung, wie Benutzeräußerungen
in einem Spracherkennungssystem empfangen und gespeichert werden,
siehe das US-Patent Nr. 5,027,406 mit dem Titel "Method for Interactive Speech Recognition
and Training".
-
Bezugnehmend
auf 2, veranlaßt
die Spracherkennungssoftware 38, um festzustellen, welche Worte
gesprochen worden sind, die CPU, Sprachrahmen innerhalb des Sprachpakets 39 aus
dem Puffer 30 abzurufen und die Sprachrahmen (d. h. die
Sprache des Benutzers) mit Sprachmodellen zu vergleichen, die in
einem oder mehreren Wörterverzeichnissen 40 gespeichert
sind. Für
eine detailliertere Beschreibung kontinuierlicher Spracherkennung
siehe das US-Patent Nr. 5,202,952, mit dem Titel "Large-Vocabulary Continuous
Speech Prefiltering and Processing System".
-
Die
Erkennungssoftware verwendet eine gemeinsame Skriptspracheninterpretersoftware,
um mit der Anwendung 36 zu kommunizieren, die die Erkennungssoftware
aufrief. Die gemeinsame Skriptspracheninterpretersoftware ermöglicht es
dem Benutzer, direkt in die Anwendung diktieren, entweder durch
Emulation der Computertastatur und Umwandlung der Erkennungsergebnisse
in anwendungsabhängige
Tastenanschläge oder
durch Senden anwendungsabhängiger
Befehle direkt an die Anwendung unter Verwendung der Anwendungskommunikationseinrichtung
des Systems (Microsoft WindowsTM verwendet
z. B. Dynamic Data ExchangeTM). Die erwünschten
Anwendungen umfassen zum Beispiel Textverarbeitungsprograramme 44 (z.
B. Word Perfect oder Microsoft WordTM),
Tabellenkalkulationen 46 (z. B. Lotus 1-2-3TM oder
ExcelTM) und Spiele 48 (z. B. SolitaireTM).
-
Alternativ
zum direkten Diktieren in eine Anwendung diktiert der Benutzer Text
in ein Spracherkennerfenster, und nach dem Diktieren eines Dokuments übeträgt der Benutzer
das Dokument (manuell oder automatisch) in die Anwendung.
-
Wenn
bezugnehmend auf 3 eine Anwendung erstmals die
Spracherkennungssoftware aufruft, wird sie von einem entfernten
Speicher (z. B. einem Pattenlaufwerk) in den lokalen Speicher 42 des
Computers geladen. Ein oder mehrere Wörterverzeichnisse, zum Beispiel
das gemeinsame Wörterverzeichnis 48 und
das Wörterverzeichnis 50 aus
Microsoft OfficeTM werden ebenfalls von
einem entfernten Speicher in den Speicher 42 geladen. Die
Wörterverzeichnisse 48, 52,
und 54 umfassen alle Worte 48b, 50b und 54b (Text
und Befehle), und die entsprechenden Sprachmodelle 48a, 50a und 84a,
die ein Benutzer sprechen kann.
-
Das
Ausbreiten der Sprachmodelle und Worte über unterschiedliche Wörterverzeichnisse
läßt es zu, daß die Sprachmodelle
und Worte in lieferantenabhängige
(z. B. MicrosoftTM und NovellTM)
Wörterverzeichnisse
gruppiert werden, die nur in den Speicher geladen werden, wenn eine
Anwendung, die einem besonderen Lieferanten entspricht, zum erstenmal
nach dem Einschalten ausgeführt
wird. Zum Beispiel repräsentieren
viele der Sprachmodelle und Worte im Wörterverzeichnis 54 von
Novell PerfectOfficeTM Worte, die nur ausgesprochen
werden, wenn ein Benutzer eine Novell PerfectOfficeTM-Anwendung
ausführt,
z. B. WordPerfect. Als Ergebnis werden diese Sprachmodelle und Worte
nur benötigt,
wenn der Benutzer eine NovellTM-Anwendung ausführt. Um
die Verschwendung von wertvollen Speicherplatz zu vermeiden, wird
das Novell PerfectOfficeTM-Wörterverzeichnis 54 nur
in den Speicher geladen, falls benötigt (d. h. wenn der Benutzer
eine NovellTM-Anwendung ausführt).
-
Alternativ
werden die Sprachmodelle und Worte in anwendungsabhängige Wörterverzeichnissen gruppiert.
Zum Beispiel können
getrennte Wörterverzeichnisse
für Microsoft
WordTM, Microsoft ExcelTM und
Novell WordPerfectTM vorhanden sein. Entsprechend
können
die Sprachmodelle und Worte, die Befehlen entsprechen, in einem
Satz von Wörterverzeichnissen
gruppiert werden, während
die Sprachmodelle und Worte, die Text entsprechen, in einen anderen
Satz von Wörterverzeichnissen
gruppiert werden können.
Als eine andere Alternative wird nur ein einziges Wörterverzeichnis,
das alle Worte und entsprechende Sprachmodelle umfaßt, die
ein Benutzer sprechen kann, in den lokalen Speicher geladen und
durch die Spracherkennungssoftware verwendet, um die Sprache eines
Benutzers zu erkennen.
-
Bezugnehmend
auf 4, vergleicht die CPU, sobald die Wörterverzeichnisse
geladen sind und eine Anwendung die Erkennungssoftware aufruft,
Sprachrahmen, die die Sprache des Benutzers repräsentieren, mit Sprachmodellen
in den Wörterverzeichnissen,
um die Sprache des Benutzers zu erkennen (Schritt 60).
Die CPU stellt dann fest (Schritte 62 und 64),
ob die Ergebnisse einen Befehl oder Text darstellen. Befehle umfassen
einzelne Worte und Ausdrücke
und Sätze,
die durch Schablonen (d. h. Einschränkungsregeln) definiert sind,
Die Schablonen definieren die Worte, die in Befehlssätzen gesagt
werden können,
und die Reihenfolge, in der die Worte gesprochen werden. Die CPU
vergleicht (Schritt 62) die Erkennungsergebnisse mit den
möglichen
Befehlsworten und Ausdrücken und
mit Befehlsschablonen, und wenn die Ergebnisse zu einem Befehlswort
oder Ausdruck oder einer Befehlsschablone passen (Schritt 64),
dann sendet die CPU (Schritt 65a) der Anwendung, die die
Spracherkennungssoftware aufgerufen hat, Tastenanschläge oder
eine Skriptsprache, die die Anwendung veranlassen, den Befehl auszuführen, und
wenn die Ergebnisse nicht zu einem Befehlswort oder Ausdruck oder
eine Befehlsschablone passen, sendet die CPU (Schritt 65b)
der Anwendung Tastenanschläge
oder Skriptsprache, die die Anwendung veranlassen, die Ergebnisse
als Text zu tippen.
-
Für weitere
Informationen über
diese und andere Verfahren zur Unterscheidung zwischen Text und Befehlen
siehe die US-Patentanmeldung Serien-Nr. 08/559,207, mit dem Titel „Continuous
Speech Recognition of Text and Commands", eingereicht am selben Tag und auf
denselben Rechtsnachfolger wie diese Anmeldung übertragen.
-
Erneut
auf 3 bezugnehmend, weisen die Wörterverzeichnisse zusätzlich dazu,
daß sie
Worte 51 (und Ausdrücke)
und entsprechende Sprachmodelle 53 aufweisen, anwendungsabhängige (z.
B. Microsoft WordTM 100 und Microsoft
ExcelTM 102) Befehlssätze 48c, 50c und 54c,
die dem Benutzer zur Verfügung
stehen, und anwendungsabhängige
Gruppen 48d, 50d und 54d auf, auf die
durch die Sätze
gezeigt wird und die auf Gruppen von variablen Worten in den Befehlsschablonen
zeigen.
-
Langfristige Editierung
-
Das
langfristige Editierungsmerkmal versieht den Benutzer mit der Flexibilität, Text
zu editieren, der gerade (korrekt oder unkorrekt) in ein offenes
Dokument eingegeben wurde oder ein altes Dokument zu öffnen und
Text zu editieren, der zu einem früheren Zeitpunkt eingegeben
wurde. Bezugnehmend auf 5, stellt das System zuerst
fest (Schritt 130), ob der Benutzer gesprochen hat, und
wenn dem so ist, erkennt das System (Schritt 132) die Sprache
das Benutzers. Das System stellt dann fest (Schritt 134),
ob der Benutzer „select" sagte. Wenn der
Benutzer nicht „select" sagte, stellt das
System fest (Schritt 136), ob irgendwelcher Text ausgewählt ist.
Wenn Text ausgewählt
wurde, ersetzt das System (Schritt 138) den ausgewählten Text
durch den neu erkannten Text auf einem Anzeigebildschirm 135 (1).
Wenn kein anderer Text ausgewählt
ist, trägt das
System (Schritt 140) den neu erkannten Text auf den Anzeigebildschirm
ein.
-
Wenn
das System feststellt (Schritt 134), daß der Benutzer „select" sagte, dann stellt
das System fest (Schritt 142), ob sich „select" eine Pause anschließt. Wenn sich „select" eine Pause anschließt, dann
trägt das System
(Schritt 140) das Wort „select" auf dem Anzeigebildschirm ein. Falls
sich „select" keine Pause anschließt, dann
liest das System (Schritt 144) Daten, die in einem Anzeigebildschirmpuffer 143 (1)
gespeichert sind. Diese Daten repräsentieren die Aufeinanderfolge
der Worte, die auf dem Anzeigebildschirm angezeigt werden und können durch
eine Standard-Editiersteueranforderung an das Betriebssystem oder
durch eine Anwendungsprogrammschnittstelle (API) gelesen werden,
die der Anwendung entspricht, die ausgeführt wird, zum Beispiel Microsoft
WordTM oder Novell WordperfectTM.
-
Das
System analysiert (Schritt 146) die gespeicherten Daten
syntaktisch und bildet jedes Wort auf Indizes in einem oder mehreren
Wörterverzeichnissen
ab, die zum Beispiel aus 180000 Worten bestehen. Beispielsweise
wird „hello
there." syntaktisch
zu drei Worten analysiert, "hello" „there" und „period", während „New York", ein Ausdruck, syntaktisch
zu einem „Wort" analysiert wird.
Wenn die Daten ein Wort repräsentieren,
das sich nicht in einem oder mehreren Wörterverzeichnissen befindet,
dann indiziert das System das Wort nicht, oder das System indiziert
das Wort, nachdem es eine geschätzte
Aussprache unter Verwendung bekannter Text-Sprachesyntheseregeln
erzeugt hat.
-
Unter
Verwendung der syntaktisch analysierten Worte baut das System (Schritt 148)
eine Baumstruktur auf, die die Verbindung zwischen den Worten beschreibt,
die angezeigt werden. Bezugnehmend auf 6, baut
das System dann, wenn der Anzeigebildschirm „This is a test of speech" anzeigt, eine Baumstruktur 149 auf,
die mit dem Wort „select" 150 beginnt,
das anzeigt (Pfeile 151), daß dem Wort „select" mindestens eines der Worte folgen muß, die angezeigt
werden: „This", „is", „a", „test", „of" oder „speech". Wenn zum Beispiel gemäß der Baumstruktur 149 „This" sich an „select" anschließt, dann
muß „is" das nächste sein,
wenn „is" sich an „select" anschließt, dann
muß „a" das nächste sein,
wenn „a" sich an „select" anschließt, dann
muß „test" das nächste sein,
wenn „test" sich an „select" anschließt, dann
muß „of" das nächste sein,
wenn „of" sich an „select" anschließt, dann
muß „speech" das nächste sein,
und wenn „speech" sich an „select" anschließt, dann muß Ruhe folgen.
Die Baumstruktur berücksichtigt
auch wiederholte Worte. Bezugnehmend auf 7, baut das
System dann, wenn der Anzeigebildschirm „This is a test of this test" anzeigt, eine Baumstruktur 152 auf, die
anzeigt (Pfeile 154), daß das Wort „test" den Worten „a" oder „this" folgen kann.
-
Atternativ
zur Ausführung
der Schritte 144, 146 und 148 nachdem
der Auswahlbefehl erkannt wird, kann das System diese Schritte ausführen, bevor
der Auswahlbefehl durch den Benutzer ausgegeben wird (z. B. wenn
ein Dokument erstmals geöffnet
wird und jedesmal, wenn sich die Worte auf dem Anzeigebildschirm ändern) oder
das System kann diese Schritte ausführen, wenn der Auswahlbefehl
teilweise erkannt wird (z. B. wenn der Benutzer „select" sagt).
-
Außerdem auf
die 8a–8c bezugnehmend,
muß die
Sprache des Benutzers anschließend
an „select" 302 (d.
h. es werden Teil-Spracherkennungsergebnisse gezeigt), um eines
oder mehrere Worte im vorher eingegebenen Text 300 auszuwählen, zu
einem oder mehreren Worten im vorher eingegebenen Text (z. B. „test" 304) passen.
Folglich vergleicht das System (Schritt 156) die Worte
des neu erkannten Textes (z. B. „lest") mit der Baumstruktur, um festzustellen
(Schritt 158), ob die Worte des neu erkannten Textes zu
mindestens einem Abschnitt der Baumstruktur passen. Wenn keine Übereinstimmung
gefunden wird, dann gibt das System (Schritt 159) „select" und den restlichen
neu erkannten Text auf dem Anzeigebildschirm ein. Wenn eine Übereinstimmung
gefunden wird, dann hebt das System (Schritt 160) den passenden
Text 306 (8c) hervor und wartet (Schritte 162 und 164)
darauf, daß der
Benutzer die Auswahl akzeptiert oder ablehnt.
-
Wenn
der Benutzer mit der Auswahl des Systems einverstanden ist, dann
akzeptiert der Benutzer (Schritt 164) die Auswahl, und
das System wählt
(Schritt 166) den passenden Text aus und wartet (Schritt 130) auf
eine Benutzereingabe. Wenn der Benutzer einen neuen Text (z. B. „Text") tippt oder spricht,
ersetzt das System (Schritte 130–138) den ausgewählten Text
durch den neuen Text (z. B. „Text" 308, 8d).
-
Wenn
er Benutzer mit der Auswahl des Systems nicht einverstanden ist,
dann kann der Benutzer (Schritt 162) (durch Tastenanschlag,
Mausauswahl oder eine Äußerung,
z. B. „try
again" 310,
die als Teilergebnis auf dem Anzeigebildschirm in 8e gezeigt
wird) anfordern, daß das
System den neu erkannten Text erneut mit der Baumstruktur vergleicht
(Schritt 156). Wenn die Worte der neu erkannten Sprache
an verschiedenen Stellen auf dem Anzeigebildschirm angezeigt werden,
dann paßt
die neu erkannte Sprache zu mehreren Abschnitten der Baumstruktur.
Wenn zum Beispiel der Bildschirm „This is a test of continuous
speech ... Somewhere in this test is an error..." anzeigt (8f) und
der Benutzer „select
lest" sagt, dann
paßt „test" zu zwei Abschnitten
der Baumstruktur. Ursprünglich
wählt das
System den Text 308 aus, der davor (oder dannach) und dem
obersten Teil des Anzeigebildschirms (oder der gegenwärtigen Position
der Einfügemarke)
am nächsten liegend
angezeigt wird. Wenn der Benutzer einen erneuten Vergleich anfordert,
dann wählt
das System die nächst
naheliegendste Übereinstimmung 312 aus
und hebt diese Übereinstimmung
hervor.
-
Wenn
der neu erkannte Text nicht anderswo auf dem Anzeigebildschirm angezeigt
wird und der Benutzer einen erneuten Vergleich anfordert, dann wählt das
System die nächstbeste Übereinstimmung
aus (d. h. einen anderen Text, der im wesentlichen zu dem neu erkannten
Text paßt).
-
Anstatt
einen erneuten Vergleich anzufordern, kann der Benutzer den ausgewählten Text
(durch Tastenanschlag, Mausauswahl oder eine Äußerung, z. B. „abort", Schritt 164)
ablehnen und das langfristige Editierungsmerkmal verlassen.
-
Wenn
beispielsweise der angezeigte Text „This is a test of speech" ist und der Benutzer „select
test" („select
a test" oder „select
a test of") sagt,
dann stellt das System fest, daß „test" („a test" oder „a test
of") zu einem Abschnitt
der Baumstruktur 149 (6) paßt und wählt (d.
h. hebt hervor) „test" („a test" oder „a test
of") auf dem Anzeigebildschirm
aus. Wenn der Benutzer mit der Auswahl nicht einverstanden ist,
dann kann der Benutzer anfordern, daß das System den neu erkannten
Text erneut mit der Baumstruktur vergleicht, oder der Benutzer kann
die Auswahl verlassen. Wenn der Benutzer mit der Auswahl einverstanden
ist, dann wählt
das System (166) den passenden Text aus. Wenn keine Übereinstimmung
festgestellt wird, dann stellt das System fest, daß der Benutzer
Text diktierte und nicht den Auswahlbefehl ausgegeben hat und gibt
(Schritt 159) „select" und den erkannten
Text auf dem Anzeigebildschirm ein. Wenn zum Beispiel der angezeigte
Text „This
is a test of speech" ist
und der Benutzer „select
this test" sagt,
stellt das System fest, daß der
erkannte Text nicht zur Baumstruktur paßt und tippt „select
this test" auf den
Anzeigebildschirm.
-
Da
das langfristige Editierungsmerkmal keine Sprachrahmen oder Modelle
einer Textauswahl des Benutzers mit Sprachrahmen oder Modellen des
vorher eingegebenen Textes vergleicht, muß das System keine Sprachrahmen
für gesamte
Dokumente speichern, und der Benutzer hat die Flexibilität, den neu
eingegebenen Text in einem schon geöffneten Dokument zu editieren
oder ein altes Dokument zu öffnen
und den Text in diesem Dokument zu editieren, Das System paßt keine
Sprachmodelle für
editierten Text an, wenn das langfristige Editierungsmerkmal verwendet
wird, da die Editierungen des Benutzers Spracherkennungsfehler korrigieren
können
oder nicht. Dies verhindert im wesentlichen eine Fehlanpassung.
Da der Benutzer ferner gleichzeitig mehrere vorher vorhandene Worte
durch mehrere neue Worte ersetzen kann, kann der Benutzer das langfristige
Editierungsmerkmal verwenden, um falsch erkannte Wortgrenzen zu ändern.
-
Kurzfristige Spracherkennungsfehlerkorrektur
-
Das
kurzfristige Fehlerkorrekturmerkmal gestattet es dem Benutzer, Spracherkennungsfehler
in einer vorbestimmten Anzahl (z. B. drei) der letzten Äußerungen
das Benutzers zu korrigeren. Die Korrektur kann gleichzeitig eines
oder mehrere Worte korrigieren und falsch erkannte Wortgrenzen modifizieren
als auch die Sprachmodelle für
jedes falsch erkannte Wort oder Worte trainieren. Das System modifiziert
nur dann eine vorherige Äußerung und
trainiert Sprachmodelle, wenn die Korrektur des Benutzers im wesentlichen
zu Sprachrahmen paßt,
die mindestens einem Abschnitt der vorherigen Äußerung entsprechen. Dies verhindert
im wesentlichen eine Fehlanpassung der Sprachmodelle, indem der
Benutzer daran gehindert wird, vorher eingegebenen Text durch neue
Worte unter Verwendung des kurzfristigen Fehlerkorrekturmerkmals
zu ersetzen.
-
Bezugnehmend
auf die 9 und 10a–10e, kann der Benutzer „Oops" 322 (10b)
sagen oder Tastenanschläge
tippen oder eine Mausauswahl eines Korrekturfenster-Piktogramms treffen,
wenn ein Benutzer feststellt, daß ein Spracherkennungsfehler 320 in
den letzten drei Äußerungen
aufgetreten ist. Wenn das System feststellt (Schritt 178),
daß der
Benutzer den Oops-Befehl gegeben hat, zeigt das System (Schritt 180)
ein Korrekturfenster 182 (10c)
auf dem Anzeigebildschirm 136 an und zeigt (Schritt 183)
die letzte Äußerung 184 in
einem. Korrekturteilfenster 186 an. Das System stellt dann
fest (Schritt 188), ob der Benutzer (durch Tastenanschlag
oder Äußerung)
korrigierten Text eingegeben hat (z. B. „This" 324, 10d).
Wenn zum Beispiel der Benutzer sagte „This ability to talk fast" und des System „Disability
to talk fast" erkannte,
kann der Benutzer „oops" sagen und dann „This" (oder „This ability" oder „This ability
to talk", etc.)
wiederholen oder tippen.
-
Wenn
das System feststellt (Schritt 190), daß der Benutzer den korrigierten
Text sprach, dann erkennt das System (Schritt 192) die
Sprache des Benutzers. Anstatt die Worte als korrigierten Text bereitzustellen, kann
der Benutzer (durch Tastenanschlag, Mausauswahl oder eine Äußerung,
z. B. „spell
that", 11)
einen Schreibweisenbefehl eingeben, dem sich die Buchstaben der
Worte im korrigierten Text anschließen. Nachdem es festgestellt
hat, daß der
Benutzer den Schreibweisenbefehl eingegeben hat, zeigt das System
ein Schreibweisenfenster 194 an. Das System erkennt dann
die Buchstaben 196, die durch den Benutzer gesprochen oder
getippt werden und stellt eine Auswahlliste 197 bereit,
die den erkannten Buchstaben entspricht. Für weitere Informationen hinsichtlich
des Schreibweisenbefehls und der Spracherkennung von Buchstaben,
siehe die US- Patentanmeldung
US-A-3903964 mit dem Titel „Speech
Recognition", eingereicht
am 30. August 1995.
-
Außerdem auf 12 bezugnehmend,
baut das System (Schritt 198) eine Baumstruktur (z. B. 200), ob
der Benutzer korrigierten Text tippt oder spricht, für jede der
letzten drei Äußerungen
auf, wobei es die Sprachrahmen, die diesen Äußerungen entsprechen, und die
Sprachrahmen (falls gesprochen) oder Sprachmodelle (falls getippt)
verwendet, die dem körrigierten
Text entsprechen. Das System erkennt dann (Schritt 202)
jede der letzten drei Äußerungen
gegen die entsprechende Baumstruktur erneut, um festzustellen (Schritt 204),
ob mindestens ein Anteil der Sprachrahmen in der entsprechenden Äußerung im
wesentlichen zu den Sprachrahmen oder Modellen paßt, die
dem korrigierten Text entsprechen. Jeder Zustand 210–220 in
der Baumstruktur enthält
einen oder mehrere Sprachrahmen, die einem vorher erkannten Wort
in der Äußerung entsprechen,
die restlichen Sprachrahmen in der Äußerung und die Sprachrahmen
oder Modelle, die einem zuerst erkannten Wort im korrigierten Text
entsprechen.
-
Wenn
der Benutzer zum Beispiel „Let's recognize speech" sagt und das System
erkennt „Let's wreck a nice beach", kann der Benutzer „oops" sagen, um das Korrekturfenster
aufzurufen und „recognize" als den korrigierten
Text zu sagen. Der Zustand 210 weist alle Sprachrahmen
der Äußerung und
die Sprachrahmen auf, die „recognize" entsprechen, während der
Zustand 216 nur die Sprachrahmen, die „nice" entsprechen, die restlichen Sprachrahmen
der Äußerung (z.
B. „beach") und die Sprachrahmen
enthält,
die „recognize" entsprechen. Der
Zustand 220 enthält
nur die Sprachrahmen, die „recognize" entsprechen, um
zu verhindern, daß das System
den Endzustand 222 erreicht, bevor festgestellt wird, daß mindestens
ein Anteil der Sprachrahmen in der Äußerung im wesentlichen zu den
Sprachrahmen passen, die „recognize" entsprechen.
-
Wenn
das System feststellt, daß die
anfänglichen
Sprachrahmen der Äußerung am
besten zu den Sprachmodellen im Systemwörterverzeichnis für das Wort „let's" passen, dann stellt das System fest,
ob die nächsten
Sprachrahmen am besten zu "wreck" oder „recognize" passen. Wenn das
System feststellt, daß die Sprachrahmen
am besten zu „wreck" passen, stellt das
System fest, ob die nächsten
Sprachrahmen am besten zu „a" oder „recognize" passen. Das System
trifft diese Feststellung für
jedes der ursprünglich
erkannten Worte in der Äußerung.
-
Während der
erneuten Erkennung stellt das System fest, welcher Weg (von Zustand 210 zu 222)
die höchste
Spracherkennungsbewertung aufweist. Anfänglich ist es wahrscheinlich,
daß das
System nach einer erneuten Erkennung der ursprünglichen Äußerung den Zustand 220 erreicht,
wie es dies ursprünglich
tat, d. h. „let's wreck a nice beach". Nachdem es den
Zustand 220 erreicht, kann das System jedoch keinen der
restlichen Sprachrahmen an „recognize" anpassen und den
Endzustand 222 erreichen. Folglich ist die Bewertung für diesen
Weg sehr niedrig, und das System ignoriert diesen Weg als Möglichkeit.
In diesem Beispiel ist der höchste
Bewertungsweg „let's recognize speech" (im Gegensatz zu
anderen möglichen
Wegen: "let's wreck recognize" oder „let's wreck a recognize").
-
Wenn
eine Übereinstimmung
für das
erste Wort des korrigierten Textes gefunden wird, dann geht das System
in den Endzustand 222 über
und erkennt erneut die restlichen Sprachrahmen der Benutzeräußerung gegen
das gesamte Systemwörterverzeichnis.
Das System zeigt dann (Schritt 224) die vorgeschlagene
Textkorrektur im Korrekturteilfenster an und stellt fest (Schritte 226 und 228),
ob der Benutzer einen zusätzlichen korrigierten
Text (Schritt 226) geliefert hat oder die Korrektur angenommen
oder abgelehnt hat (Schritt 228). Der Benutzer kann mit
der vorgeschlagenen Korrektur nicht einverstanden sein und (durch
Tastenanschlag oder eine Äußerung)
zusätzlichen
korrigierten Text eingeben. Zum Beispiel kann der Benutzer, anstatt "oops recognize" zu sagen, „oops recognize
speech" sagen, Der
Benutzer kann die Korrektur auch ablehnen, um das Korrekturfenster
zu verlassen. Wenn der Benutzer der Korrektur zustimmt, modifiziert
das System (Schritt 2301 den angezeigten Text (d. h. ändert „Disability" 320, 10d zu „This
ability" 326, 10e) und trainiert die Sprachmodelle der korrekt
erkannten Worte gegen die Sprachrahmen der ursprünglichen Benutzeräußerung.
-
Wenn
keine Übereinstimmung
gefunden wird (Schritt 204) oder wenn die Bewertung der Übereinstimmung
unter einer empirisch eingestellten Schwelle liegt, dann benachrichtigt
das System (Schritt 232) den Benutzer und zeigt den erkannten
korrigierten Text im Korrekturteilfenster an und wartet erneut (Schritte 226 und 228)
auf eine Benutzereingabe. Eine Anzeige des korrigierten Textes läßt es zu,
daß der
Benutzer feststellt, ob er einen Fehler gemacht hat, indem ein anderer
Text anstelle des korrigierten Textes bereitgestellt wird (d. h.
eine Wiederholung der ursprünglichen Äußerung).
Wenn der Benutzer einen Fehler gemacht hat, kann es der Benutzer
erneut versuchen, indem er den korrigierten Text spricht oder tippt.
Wenn der Benutzer keinen Fehler gemacht hat, jedoch das System keine Übereinstimmung
fand oder eine unkorrekte Übereinstimmung fand,
dann kann der Benutzer zusätzlichen
korrigierten Text eingeben, um die Wahrscheinlichkeit zu erhöhen, daß eine korrekte Übereinstimmung
gefunden wird.
-
Zum
Beispiel stellt der Benutzer, anstatt ein einzelnes Wort „recognize" als den korrigierten
Text bereitzustellen, mehrere Worte „recognize speech" als den korrigierten
Text bereit. Bezugnehmend aus 13, fügt die resultierende
Baumstruktur 234, die durch das System erzeugt wird, einen
Zustand 236 hinzu, der die Sprachrahmen oder Modelle des
zweiten Worts im korrigierten Text (z. B. „speech") enthält. Ein ähnlicher Zustand wird für jedes
zusätzliche
Wort im korrigierten Text hinzugefügt. Nach der Anpassung des
ersten Worts im korrigierten Text an einen oder mehrere Sprachrahmen
in der Benutzeräußerung,
um den Endzustand 238 zu erreichen, muß das System einen oder mehrere
folgende Sprachrahmen der Äußerung an
Sprachrahmen oder Modelle anpassen, die jedem zusätzlichen
Wort im korrigierten Text entsprechen. Zusätzliche Worte erhöhen die
Genauigkeit, mit der Sprachrahmen aus der ursprünglichen Äußerung an Sprachrahmen oder
Modelle aus der Korrektur angepaßt werden.
-
Die
empirisch eingestellte Schwelle hindert den Benutzer im wesentlichen
daran, neuen Text als korrigierten Text einzugeben, was die Möglichkeit
reduziert, daß Sprachmodelle,
die korrekt erkannten Worten entsprechen, falsch angepaßt werden.
Da der korrigierte Text mehrere Worte enthalten kann, kann der Benutzer
mehrere Wortfehlerkennungen und Wortbegrenzungsfehlerkennungen gleichzeitig
korrigieren. Die Begrenzung der Anzahl der vorhergehenden Äußerungen,
die korrigiert werden können,
begrenzt die Anzahl der Sprachrahmen, die das System speichern muß.
-
Streiche das und Wiederhole
-
Der
Streiche-das-Befehl läßt es zu,
daß der
Benutzer schnell und leicht seine letzte Äußerung löscht oder löscht und ersetzt. Bezugnehmend
auf 14, wenn das System feststellt (Schritt 212),
daß der
Benutzer den Streiche-das-Befehl eingegeben hat (d. h. durch Tastenanschlag,
Mausauswahl eines Streiche-das-Piktogramms oder durch eine Äußerung,
z. B. „scratch
that"), löscht das
System (Schritt 214) die letzte Äußerung. Wenn der Benutzer eine
zusätzliche Äußerung nach
dem Streiche-das-Befehl ausspricht, dann erkennt das System diese
zusätzliche Äußerung und
zeigt sie auf dem Anzeigebildschirm anstelle der gelöschten Äußerung an.
-
Bezugnehmend
auf die 15a–15d,
kann zum Beispiel dann, wenn der Benutzer sagt „I will like to dictate" 330 (15a) oder wenn der Benutzer sagt „I would
like to dictate", das
System jedoch "I
will like to dictate" 330 erkennt,
der Benutzer sagen "scratch
that" 332 (15b), um diese Äußerung zu löschen (15c).
Wenn der Benutzer einen Fehler gemacht hat, dann kann der Benutzer
den neuen korrekten Text sprechen "I would like to dictate" 334 (15d), und wenn der Benutzer korrekt gesprochen
hat, aber das System die Äußerung falsch
erkannt hat, dann kann der Benutzer die Äußerung wiederholen „I would
like to dictate" 334.
In jedem Fall erkennt das System die Sprache und zeigt sie auf dem
Anzeigebildschirm an.
-
Da
der Benutzer den Streiche-das-Befehl verwenden kann, um den vorhergehenden
Text zu editieren oder Spracherkennungsfehler zu korrigieren, paßt das System
keine Sprachmodelle an, wenn der Benutzer den Streiche-das-Befehl
eingibt. Dies verhindert im wesentlichen eine Fehlanpassung der
Sprachmodelle.
-
Andere
Ausführungsformen
liegen im Rahmen der folgenden Ansprüche.
-
Zum
Beispiel weist die CPU, anstatt einen digitalen Signalprozessor
(DSP) die Abtastwerte verarbeiten zu lassen, die jedem Sprachrahmen
entsprechen, um während
jeder 20 ms-Zeitspanne eine Gruppe von Parametern zu erzeugen, die
mit dem analogen Datensignal verbunden sind, eine Vorfeld-Verarbeitungssoftware
auf, die es zuläßt, daß die CPU
die Parameter erzeugt.
-
Als
ein anderes Beispiel können
Sprachmodelle selektiv trainiert werden, wenn das langfristige Editierungsmerkmal
und/oder der Streiche-das-Befehl verwendet werden. Zum Beispiel
kann dem Benutzer die Kontrolle übergeben
werden, wenn Sprachmodelle angepaßt werden. Mit einer solchen
Kontrolle kann der Benutzer entscheiden, wann ein Spracherkennungsfehler
aufgetreten ist und das System entsprechend dieser Entscheidung
Sprachmodelle trainieren lassen. Als ein anderes Beispiel kann dem
System die Kontrolle übergeben
werden, wenn Sprachmodelle angepaßt werden. Wenn das System
feststellt, daß der
Benutzer einen Spracherkennungsfehler korrigiert, dann trainiert
das System die Sprachmodelle entsprechend.
-
Es
sind viele Optimierungen möglich,
um die Spracherkennungsleistung zu verbessern. Zum Beispiel kann
getippter Text keine Spracherkennungsfehler verursachen, und folglich
kann das System während
der erneuten Erkennung zur kurzfristigen Fehlerkorrektur (Schritt 202, 10),
wenn das System die restlichen Sprachrahmen gegenüber einem
Systemwörterverzeichnis
erneut erkennt (Zustand 222, 12), die
Spracherkennungsbewertung für
Worte erhöhen,
die zum Text passen, den der Benutzer durch Tastenanschläge eingegeben
hat.
-
Pseudo-Code
-
Es
folgt ein Pseudocode, der vom Code der C-Programmiersprache abgeleitet
ist, der den Prozeß zur langfristigen
Editierung und kurzfristigen Spracherkennungsfehlerkorrektur beschreibt:
-
-
-
-
-
Kurzfristige
Spracherkennungsfehler-Korrektur
-
-
-
-