-
Ein
Spracherkennungssystem analysiert die gesprochene Sprache eines
Anwenders, um festzustellen, was der Anwender gesagt hat. Die meisten
Spracherkennungssysteme sind framebasiert. In einem framebasierten
System unterteilt ein Prozessor ein Signal, welches die zu erkennende
Sprache darstellt, in einer Reihe von digitalen Frames, von denen
jeder einem kleinen Zeitabschnitt der Sprache entspricht.
-
Ein
kontinuierliches Spracherkennungssystem kann gesprochene Worte oder
Phrasen erkennen, egal, ob der Anwender dazwischen Pausen macht.
Ein diskretes Spracherkennungssystem erkennt dagegen einzelne Wörter oder
Phrasen und setzt voraus, dass der Anwender kurz nach jedem einzelnen
Wort bzw. jeder Phrase pausiert. Aufgrund der Komplexität der Erkennung
von kontinuierlicher Sprache weisen kontinuierliche Spracherkennungssysteme
im Vergleich mit diskreten Erkennungssystemen typischerweise eine
größere Häufigkeit
Vorkommen von Erkennungsfehlern auf.
-
Im
allgemeinen analysiert der Prozessor eines kontinuierlichen Spracherkennungssystems „Äußerungen" von Sprache. Eine Äußerung enthält eine
unterschiedliche Anzahl von Frames und kann einem Sprechzeitabschnitt
entsprechen, der von einer Pause von wenigstens einer vorbestimmten
Länge gefolgt
wird.
-
Der
Prozessor bestimmt, was der Anwender gesagt hat, indem er akustische
Modelle findet, die am besten mit den digitalen Frames einer Äußerung übereinstimmen,
und den Text identifiziert, der diesen akustischen Modellen entspricht.
Ein akustisches Modell kann einem Wort, einer Phrase oder einem
Befehl aus einem Vokabular entsprechen. Ein akustisches Modell kann
auch ein Geräusch
oder Phonem darstellen, der einem Teil eines Wortes entspricht.
Gemeinsam bilden die einzelnen Phoneme eines Worts die phonetische Schreibweise
des Wortes. Akustische Modelle können
auch Stille oder verschiedene Arten von Umgebungsgeräuschen darstellen.
-
Die
Wörter
oder Phrasen, die den akustischen Modellen mit der größten Übereinstimmung
entsprechen, werden Erkennungskandidaten genannt. Der Prozessor
kann einen einzelnen Erkennungskandidaten (z. B. eine einzige Sequenz
von Worten oder Phrasen) für
eine Äußerung erzeugen,
oder er kann eine Liste von Erkennungsdaten erzeugen.
-
Korrekturmechanismen
von bekannten diskreten Spracherkennungssystemen zeigten eine Liste
von Alternativen für
jedes erkannte Wort an und erlaubten dem Anwender, eine Falscherkennung
durch Auswählen eines
Wortes aus der Liste oder durch Eintippen des korrekten Wortes zu
berichtigen. Zum Beispiel zeigte DragonDictate® für Windows®,
erhältlich
von Dragon Systems, Inc., Newton, Massachusetts, eine Liste von
nummerierten Erkennungskandidaten („eine Auswahlliste") für jedes
vom Anwender gesprochene Wort an und fügte den Erkennungskandidaten
mit den meisten Punkten in den vom Anwender diktierten Test ein.
Wenn der Erkennungskandidat mit den meisten Punkten falsch war,
konnte der Anwender einen Erkennungskandidaten von der Auswahlliste
auswählen,
indem er „Wähle-N" sagte, wobei „N" die Nummer des richtigen
Kandidaten war. Wenn das richtige Wort nicht auf der Auswahlliste
war, konnte der Anwender die Liste verbessern, indem er entweder
die ersten paar Buchstaben des richtigen Wortes eintippte, oder
indem er Worte sprach (z. B. „Alpha", „Bravo"), die den ersten
paar Buchstaben entsprachen. Der Anwender konnte das falsche Erkennungsergebnis
auch verwerfen, indem er sagte „Streich das".
-
Das
Diktat eines neuen Wortes bedeutete die Annahme der vorherigen Erkennung.
Wenn der Anwender einen Erkennungsfehler nach dem Diktat von weiteren
Wörtern
bemerkte, konnte er „Huch" sagen, woraufhin
eine nummerierte Liste von vorher erkannten Wörtern erscheinen würde. Der
Anwender konnte dann durch Sprechen von „Wort-N" ein vorher erkanntes Wort auswählen, wobei „N" die dem Wort entsprechende Nummer
ist. Das System reagierte, indem es eine dem ausgewählten Wort
entsprechende Auswahlliste anzeigte und dem Anwender wie oben beschrieben
die Berichtigung des Wortes ermöglichte.
-
Die
US 5,231,670 offenbart ein
System und ein Verfahren zum Erzeugen von Text aus einer Sprecheingabe,
welche bei der Verarbeitung von jedem Sprechereignis ein Diktatereignis
und ein Textereignis definieren.
-
Die
EP 0 785 540 A offenbart
ein Verfahren zur Verwendung bei der Erkennung von kontinuierlicher Sprache,
bei welchem Signale akzeptiert werden, die eingestreuten Sprachelementen
entsprechen, welche sowohl Textelemente enthalten, die zu erkennendem
Text entsprechen, als auch Befehlelemente, die auszuführenden
Befehlen entsprechen.
-
Die
vorliegende Erfindung ist in den beiliegenden unabhängigen Ansprüchen definiert.
-
Gemäß einem
allgemeinen Aspekt wird eine Aktionsposition in computerimplementierter
Spracherkennung in Reaktion auf empfangene Daten, die einen gesprochenen
Befehl darstellen, verändert.
Der Befehl enthält
einen Befehls-Identifizierer und eine Bestimmung von wenigstens
einem vorher gesprochenen Wort. Mit den Daten wird Spracherkennung
ausgeführt,
um den Befehls-Identifizierer und die Bestimmung zu identifizieren.
Danach wird basierend auf dem Befehls-Identifizierer relativ zu
dem vorher gesprochenen Wort eine Aktionsposition festgelegt.
-
Ausführungsbeispiele
können
ein oder mehrere der folgenden Merkmale enthalten. Die Bestimmung kann
ein vorher gesprochenes Wort oder vorher gesprochene Worte enthalten.
-
Der
Befehls-Identifizierer kann anzeigen, dass die Aktionsposition vor
(z. B. „Einfügen vor") oder nach (z. B. „Einfügen nach") dem vorher gesprochenen
Wort, den vorher gesprochenen Worten oder der vorher gesprochenen Äußerung sein
soll. Wenn dies der Fall ist, kann die Aktionsposition direkt vor,
oder direkt nach, dem/den/der vorher gesprochenen Wort, Worte oder Äußerung festgelegt
werden.
-
Die
Bestimmung kann ein oder mehrere vorher gesprochene Worte oder ein
oder mehrere neue Worte enthalten. In diesem Fall können alle
in dem Befehl enthaltene vorher gesprochenen Worte durch im Befehl enthaltenen
neue Worte ersetzt werden. Die Aktionsposition wird dann nach den
neuen Worten festgelegt. Dieser Befehl kann z. B. als ein „Weitermachen
bei"-Befehl implementiert
sein, bei dem den Worten „Weitermachen
bei" ein oder mehrere
vorher erkannte Worte und ein oder mehrere neue Worte folgen.
-
Der „Weitermachen
bei"-Befehl hängt nicht
von der Darstellung von Informationen auf der Anzeige ab. Aus diesem
Grund ist der Befehl besonders nützlich,
wenn der Anwender eine tragbare Aufnahmeeinrichtung verwendet, wie
z. B. einen analogen oder digitalen Recorder, und die aufgenommene
Sprache danach zur Verarbeitung auf ein Spracherkennungssystem überträgt. In diesem
Zusammenhang eröffnet
der „Weitermachen bei" Befehl dem Anwender
einen einfachen und effizienten Weg, das Diktat umzulenken und fälschlicherweise gesprochene
Worte zu löschen.
-
Die
den Befehl darstellenden Daten können
durch Aufnehmen des Befehls mittels einer Aufnahmeeinrichtung erzeugt
werden, die physisch von einem Computer getrennt ist, auf dem die
Spracherkennung implementiert ist. Wenn die Aufnahmeeinrichtung
eine digitale Aufnahmeeinrichtung ist, können die Daten die Form einer
von der digitalen Aufnahmeeinrichtung erzeugten Datei haben. Die
Daten können
auch die Form von Signalen haben, die durch Abspielen des gesprochenen
Befehls durch die Aufnahmeeinrichtung erzeugt werden, so wie bei
der Verwendung einer analogen Aufnahmeeinrichtung.
-
Gemäß einem
weiteren allgemeinen Aspekt wird bei computerimplementierter Spracherkennung
in Reaktion auf Daten, die einen gesprochenen Auswahlbefehl darstellen,
ein Textblock ausgewählt.
Der Befehl enthält
einen Befehls-Identifizierer und einen Textblock-Identifizierer,
der einen Block von vorher erkanntem Text identifiziert. Wenigstens
ein im Textblock enthaltenes Wort ist im Textblock-Identifizierer
nicht enthalten. Mit den Daten wird Spracherkennung durchgeführt, um
den Befehls-Identifizierer
und den Textblock-Identifizierer zu identifizieren. Danach wird
der dem Textblock-Identifizierer entsprechende Textblock ausgewählt.
-
Ausführungsbeispiele
können
eines oder mehrere der folgenden Merkmale enthalten. Der Textblock-Identifizierer
kann wenigstens ein erstes vorher erkanntes Wort aus dem Textblock
und wenigstens ein letztes vorher erkanntes Wort aus dem Textblock
enthalten. Zum Beispiel kann der Befehls-Identifizierer „Wähle" sein und der Textblock-Identifizierer
kann das erste vorher erkannte Wort des Textblocks, „bis", und das letzte
vorher erkannte Wort des Textblocks (z. B. „Wähle X bis Y") enthalten.
-
Spracherkennung
kann unter Verwendung einer Beschränkungsgrammatik durchgeführt werden.
Die Beschränkungsgrammatik
lässt z.
B. zu, dass der Textblock mit einem beliebigen Wort aus einer Menge
von vorher erkannten Wörtern
beginnt und mit einem beliebigen Wort aus der Menge von vorher erkannten
Wörtern endet.
Die Menge von vorher erkannten Wörtern
kann vorher erkannte Wörter
enthalten, die auf einem Anzeigegerät angezeigt werden, wenn der
Auswahlbefehl gesprochen wird.
-
Bei
der Durchführung
von Spracherkennung können
mehrere Kandidaten für
den Textblock-Identifizierer erzeugt werden und solche Kandidaten
verworfen wer den, für
die der Textblock mit einem vorher gesprochenen Wort beginnt, welches
nach einem vorher gesprochenen Wort gesprochen wurde, mit dem der
Textblock endet.
-
Gemäß einem
weiteren allgemeinen Aspekt beinhaltet ein computerbasiertes Verfahren
zur Verwendung beim Arbeiten mit Text das Empfangen eines Befehls,
der eine Äußerung enthält, die
einen Textabschnitt bezeichnet, das Durchführen von Spracherkennung mit
der Äußerung,
um den Textabschnitt zu identifizieren, und das Festlegen einer
Aktionsposition im Text an einer Position relativ zum identifizierten
Textabschnitt, wobei die Position durch den Befehl bestimmt wird.
-
Weitere
Merkmale und Vorteile werden aus der folgenden Beschreibung einschließlich der
Zeichnungen und aus den Ansprüchen
deutlich werden.
-
1 zeigt ein Blockdiagramm
eines Spracherkennungssystems.
-
2 zeigt ein Blockdiagramm
der Spracherkennungssoftware des Systems der 1.
-
4A–4N zeigen
Bildschirmanzeigen einer Benutzeroberfläche des Spracherkennungssystems
der 1.
-
5A, 5B und 6 zeigen
Flussdiagramme von durch ein Steuer-/Schnittstellen-modul der Software der 2 implementierten Prozeduren.
-
Wie
in 1 gezeigt, enthält ein Spracherkennungssystem 100 Eingabe-/Ausgabegeräte (I/O),
z. B. Mikrofon 105, Maus 110, Tastatur 115 und
Anzeige 120) und einen Allzweckcomputer 120 mit
einem Prozessor 130, einer I/O-Einheit 135 und
einer Soundkarte 140. Ein Speicher 145 speichert
Daten und Programme, wie z. B. ein Betriebssystem 150,
ein Anwendungsprogramm 155 (z. B. ein Textverarbeitungsprogramm)
und Spracherkennungssoftware 160.
-
Das
Mikrofon 105 empfängt
die gesprochene Sprache des Anwenders und überträgt die Sprache in Form eines
analogen Signals auf die Soundkarte 140, welche ihrerseits
das Signal durch einen Analog-zu-Digital (A/D) Konverter leitet,
um das analoge Signal in einen Satz digitaler Abtastwerte umwandelt.
Unter der Steuerung des Betriebssystems 50 und der Spracherkennungssoftware 160 identifiziert
der Prozessor 130 Äußerungen
in der kontinuierlichen gesprochenen Sprache des Anwenders. Äußerungen
werden voneinander durch eine Pause mit einer ausreichend großen vorbe stimmten
Länge (z.
B. 160–250
Millisek.) getrennt. Jede Äußerung kann
ein oder mehrere Wörter
der gesprochenen Sprache des Anwenders enthalten.
-
Das
System kann auch einen analogen Recordereingang 165 und/oder
einen digitalen Recordereingang 170 enthalten. Der analoge
Recordereingang 165 ist mit der Soundkarte 140 verbunden
und wird dazu verwendet, mit einem Handrecorder aufgenommene Sprache
auf die Soundkarte zu übertragen.
Der analoge Recordereingang kann als Mikrofon implementiert sein,
das so angeordnet ist, dass es sich neben dem Lautsprecher des Handrecorders
befindet, wenn dieser in den Eingang 165 eingeführt wird,
und kann auch unter Verwendung des Mikrofons 105 implementiert
sein. Als Alternative kann der analoge Recordereingang 165 als ein
Tonbandgerät
ausgeführt
sein, welches ein mit dem Handrecorder bespieltes Tonband aufnimmt
und auf dem Tonband aufgenommene Informationen auf die Soundkarte 140 überträgt.
-
Der
digitale Recordereingang 170 kann dazu eingerichtet sein,
eine mit einem digitalen Handrecorder erzeugte digitale Datei zu übertragen.
Die Datei kann direkt in den Speicher 145 übertragen
werden. Der digitale Recordereingang 170 kann als Speichergerät (z. B.
ein Diskettenlaufwerk) auf dem Computer 120 ausgeführt sein.
-
2 veranschaulicht Komponenten
der Spracherkennungssoftware 160. Der Einfachheit halber
wird in der folgenden Beschreibung angegeben, dass die Komponenten
gewisse Funktionen ausführen,
um bestimmte Ergebnisse zu erzielen. Es versteht sich jedoch von
selbst, dass jede Komponente in Wirklichkeit den Prozessor 130 dazu
veranlasst, auf die bestimmte Weise zu arbeiten.
-
Zuerst
wandelt ein Front-End-Verarbeitungsmodul 200 die digitalen
Abtastwerte 205 von der Soundkarte 140 (oder vom
digitalen Recordereingang 170) in Parameterframes 210 um,
die den Frequenzgehalt einer Äußerung repräsentieren.
Jeder Frame enthält
24 Parameter und repräsentiert
einen kurzen Abschnitt (z. B. 10 Millisek.) der Äußerung.
-
Der
Erkenner 215 empfängt
und verarbeitet die Frames einer Äußerung, um den der Äußerung entsprechenden
Text zu identifizieren. Der Erkenner stellt mehrere Hypothesen über den
Text auf und vergibt für jede
Hypothese eine Punktzahl. Die Punktzahl ist ein Maß für die Wahrscheinlichkeit,
dass eine Hypothese der gesprochenen Sprache des Anwenders entspricht.
Zur Vereinfachung der Verarbeitung werden Punktzahlen als negative
logarithmische Werte verwaltet. Dementsprechend zeigt eine niedrige
Punktzahl eine höhere Übereinstimmung
(eine höhere
Wahrscheinlichkeit) an, während
eine höhere
Punktzahl eine schlechtere Übereinstimmung
(eine niedrigere Wahrscheinlichkeit) anzeigt, wobei die Wahrscheinlichkeit
der Übereinstimmung
mit Zunahme der Punktzahl abnimmt. Nach der Verarbeitung der Äußerung liefert
der Erkenner die am besten bewertete Hypothese an das Steuer-/Schnittstellenmodul 220 als
eine Liste von Erkennungskandidaten, wobei jeder Erkennungskandidat
einer Hypothese entspricht und eine dazugehörige Punktzahl aufweist. Einige
Erkennungskandidaten können
Text entsprechen, während
andere Erkennungskandidaten Befehlen entsprechen. Befehle können Wörter, Phrasen
oder Sätze
enthalten.
-
Der
Erkenner 215 verarbeitet die Frames 210 einer Äußerung unter
Berücksichtigung
von einer oder mehr Beschränkungsgrammatiken 225.
Eine Beschränkungsgrammatik,
auch als Schablone oder Begrenzungsregel bezeichnet, kann eine Begrenzung
der Wörter,
die einer Äußerung entsprechen,
eine Begrenzung der Reihenfolge oder grammatikalischen Form der
Wörter
oder beides sein. Zum Beispiel kann eine Beschränkungsgrammatik für Befehle
zur Menubedienung nur Einträge
aus dem Menu (z. B. „File", „Edit") oder Befehlswörter zum
Navigieren durch das Menu (z. B. „up", „down", „top", „bottom") enthalten. Verschiedene
Beschränkungsgrammatiken
können
zu verschiedenen Zeiten aktiv sein. Zum Beispiel kann eine Beschränkungsgrammatik
zu einem bestimmten Anwendungsprogramm 155 gehören und
wird dann aktiviert, wenn der Anwender das Anwendungsprogramm öffnet und
deaktiviert, wenn der Anwender das Anwendungsprogramm schließt. Der
Erkenner 215 verwirft jegliche Hypothese, die die Bedingungen
einer aktiven Beschränkungsgrammatik nicht
erfüllt.
Außerdem
kann der Erkenner 215 die Punktzahl einer zu einer bestimmten
Beschränkungsgrammatik
gehörenden
Hypothese auf der Basis von Merkmalen der Beschränkungsgrammatik anpassen.
-
3A veranschaulicht ein Beispiel
einer Beschränkungsgrammatik
für einen „Wähle"-Befehl, der zum
Auswählen
von vorher erkanntem Text verwendet wird. Wie dargestellt, kann
eine Beschränkungsgrammatik
als ein Zustandsdiagramm veranschaulicht werden. Der „Wähle"-Befehl enthält das Wort „wähle" gefolgt von einem
weiteren vorher erkannten Wort, wobei die Wörter in der Reihenfolge stehen,
in der sie vorher erkannt wurden. Der erste Zustand 405 der
Beschränkungsgrammatik
zeigt an, dass das erste Wort des Wählbefehls „Wähle" sein muss. Nach dem Wort „Wähle" erlaubt die Beschränkungsgrammatik
einen Übergang entlang
eines Pfads 410 in einen zweiten Zustand 415,
welcher verlangt, dass das nächste
Wort im Befehl ein vorher erkanntes Wort sein muss. Ein Pfad 420,
der in den zweiten Zustand 415 zurückführt, zeigt an, dass der Befehl
zusätzliche
vorher erkannte Wörter
enthalten kann. Ein Pfad 25, der aus dem zweiten Zustand 415 herausführt und
den Befehl vervollständigt,
zeigt an, dass der Befehl nur vorher erkannte Wörter enthalten kann. 3B veranschaulicht das Zustandsdiagramm 450 der
Beschränkungsgrammatik
für den
Wählbefehl, wenn
eine vorher erkannte Äußerung „four score
and seven" ist.
Dieses Zustandsdiagramm könnte
um Wörter von
weiteren Äußerungen
erweitert werden.
-
Die
Beschränkungsgrammatik
kann auch in Backus-Naur-Form (BNF) oder erweiterter BNF (EBNF) ausgedrückt werden.
In EBNF ist die Grammatik für
den „Wähle"-Befehl:
<Erkennungsergebnis> ∷= Wähle<Wörter>,
wobei
<Wörter> ∷= [PRW1[PRW2[PRW3 ... PRWn]]]¦
[PRW2[PRW3 ... PWRn]]¦ ...
[PRWn],
"PRWi" das vorher erkannte
Wort i ist,
[] fakultativ bedeutet,
<> für eine Regel
steht,
¦ für eine ODER-Funktion
steht, und
∷= „ist definiert
als" oder „ist" bedeutet.
-
Wie
in den 3A und 3B veranschaulicht, zeigt
diese Darstellung, dass „Wähle" von einer geordneten
Folge von vorher erkannten Wörtern
gefolgt sein kann. Diese Grammatik erlaubt keine fakultativen oder alternativen
Wörter.
In einigen Fällen
kann die Grammatik verändert
werden, so dass sie fakultative Wörter (z. B. ein fakultatives „und" zum Erlauben von „four score
and seven" oder „four score
seven") oder alternative Wörter oder
Phrasen (z. B. „four
score and seven" oder „eighty
seven") zulässt.
-
Nochmals
mit Bezug auf 2 ist
eine andere Beschränkungsgrammatik 225,
die von der Spracherkennungssoftware verwendet werden kann, eine
Diktiergramma tik mit großem
Vokabular. Die Diktiergrammatik mit großem Vokabular identifiziert
im aktiven Vokabular 230, d. h. im Vokabular von Wörtern, die
der Software bekannt sind, enthaltene Wörter. Die Diktiergrammatik
mit großem
Vokabular zeigt auch die Häufigkeit an,
mit der die Wörter
auftreten. Ein zu der Diktiergrammatik mit großem Vokabular gehöriges Sprachmodell kann
ein Unigramm-Modell sein, welches die Häufigkeit anzeigt, mit dem ein
Wort unabhängig
vom Kontext vorkommt, oder ein Bigramm-Modell, welches die Häufigkeit
anzeigt, mit der ein Wort im Kontext eines vorhergehenden Wortes
vorkommt. Zum Beispiel kann ein Bigramm-Modell anzeigen, dass es
wahrscheinlicher ist, dass dem Wort „dass" ein Nomen oder Adjektiv folgt als ein
Verb oder eine Präposition.
-
Weitere
Beschränkungsgrammatiken 225 sind
z. B. eine In-line-Diktat-Makrogrammatik
für Diktatbefehle,
z. B. „CAP" oder „Groß" zum Großschreiben
eines Wortes und „Absatz" zum Beginnen eines
neuen Absatzes; die oben beschriebene „Wähle X Y Z" Grammatik, die zum Auswählen eines
Textes verwendet wird; eine Fehlerkorrektur-Befehlsgrammatik; eine
Grammatik zum Editieren eines Diktats; eine Anwendungsbefehls- und
Steuergrammatik, die dazu verwendet werden kann, ein bestimmtes
Anwendungsprogramm 155 zu steuern; eine globale Befehls-
und Steuergrammatik, die dazu verwendet werden kann, das Betriebssystem 150 und
die Spracherkennungssoftware 160 zu steuern; eine Menü- und Dialogtracking-Grammatik,
die zum Handhaben von Menüs
verwendet werden kann; eine Tastatur-Steuerungsgrammatik, die die
Verwendung von Sprache anstatt von Eingabe-Vorrichtungen, wie der
Tastatur 115 oder der Maus 110, erlaubt.
-
Das
aktive Vokabular 230 verwendet ein Aussprachemodell, in
welchem jedes Wort durch eine Reihe von Phonemen symbolisiert wird,
die die phonetische „Schreibweise" des Wortes enthalten.
Jedes Phonem kann als ein Triphon dargestellt sein, welcher drei
Knoten enthält.
Ein Triphon ist ein kontextabhängiges
Phonem. Zum Beispiel symbolisiert das Triphon „abc" das Phonem „b" im Kontext der Phoneme „a" und „c", wobei das Phonem „a" dem Phonem „b" vorausgeht und das
Phonem „b" vom Phonem „c" gefolgt wird.
-
Zu
jedem Benutzer können
eine oder mehrere Vokabeldateien gehören. Die Vokabeldateien enthalten alle
Wörter,
Aussprachen und Sprachmodellinformation für den Benutzer. Diktat- und
Befehlsgrammatiken können
zwischen den Vokabeldateien aufgeteilt sein, um die Sprachmodellinformationen
und Speicherplatzausnutzung zu optimieren und um jede einzelne Vokabeldatei
unter 64000 Wörtern
zu halten. Es gibt auch einen Satz von Systemvokabularen.
-
Für jeden
Benutzer des Systems werden gesonderte akustische Modelle 235 bereitgestellt.
Am Anfang werden sprecherunabhängige
akustische Modelle von männlicher
oder weiblicher Sprache an die Sprache eines bestimmten Benutzers
mittels eines Trainingsprogramms angepasst. Die akustischen Modelle
können
im Laufe der Benutzung des Systems weiter angepasst werden. Die
akustischen Modelle werden in einer vom aktiven Vokabular 230 getrennten
Datei verwaltet.
-
Die
akustischen Modelle
235 stelle Phoneme dar. Im Fall von
Triphonen stellen die akustischen Modelle
235 jeden Triphonknoten
als eine Überlagerung
von Gauss'schen
Wahrscheinlichkeitsdichtefunktionen („PDFs") dar. Zum Beispiel kann der Knoten „i" eines Triphons „abc" als ab
ic
dargestellt werden:
wobei jedes w
k eine
Gewichtung ist,
μ
k ein
mittlerer Vektor für
die Wahrscheinlichkeitsdichtefunktion („PDF")N
k ist, und
c
k die Kovarianzmatrix für den PDF N
k ist.
Wie die Frames in der Framefolge enthält jeder der Vektoren μ
k 24
Parameter. Die Matrizen c
k sind 24 × 24 Matrizen.
Jeder Triphonknoten kann als eine Überlagerung von beispielsweise
bis zu 16 verschiedenen PDFs symbolisiert werden.
-
Eine
Diktatgrammatik mit großem
Vokabular kann mehrere Diktatthemen (z. B. „Medizin" oder „Recht") enthalten, von denen jedes seine eigene
Vokabulardatei und sein eigenes Sprachmodell aufweist. Ein Diktatthema
enthält
einen Satz von Wörtern,
welche das aktive Vokabular 230 darstellt. In einem typischen
Beispiel kann ein Thema ungefähr
30000 Wörter
enthalten, die für
normale Erkennung betrachtet werden.
-
Ein
vollständiges
Diktatvokabular besteht aus dem aktiven Vokabular 230 plus
ein Backup-Vokabular 245. Das Backup-Vokabular kann Dateien
enthalten, die benut zerspezifische Backup-Vokabeln und systemübergreifende
Backup-Vokabeln enthalten.
-
Benutzerspezifische
Backup-Vokabeln enthalten Wörter,
die ein Benutzer beim Verwenden der Spracherkennungssoftware kreiert
hat. Diese Wörter
werden in Vokabeldateien für
den Benutzer und für
das Diktatthema gespeichert und sind als Teil des Backup-Wörterbuchs
für das
Diktatthema ungeachtet des Benutzers verfügbar, und für den Benutzer ungeachtet des
gerade verwendeten Diktatthemas. Wenn z. B. ein Benutzer ein medizinisches
Thema verwendet und das Wort „Ganglion" dem Diktatvokabular
hinzufügt,
hat jeder andere Benutzer des medizinischen Themas sofort Zugriff
auf das Wort „Ganglion". Außerdem wird
das Wort in das benutzerspezifische Backup-Vokabular eingetragen.
Wenn der Benutzer dann „Ganglion" sagt, während er
ein rechtliches Thema verwendet, wird das Wort „Ganglion" bei der Korrektur aus Backup-Wörterbuch
verfügbar sein.
-
Zusätzlich zu
dem erwähnten
benutzerspezifischen Backup-Vokabular, gibt es ein systemweites
Backup-Vokabular. Das systemweite Backup-Vokabular enthält alle
dem System bekannten Wörter
einschließlich der
Wörter,
die zur Zeit in einem aktiven Vokabular sein können.
-
Der
Erkenner 215 kann parallel zu einer Vorfilter-Prozedur 240 betrieben
werden. Wenn die Verarbeitung einer Äußerung eingeleitet wird, fordert
der Erkenner 215 von der Vorfilter-Prozedur 240 eine
Liste von Wörtern
an, die als erstes Wort der Äußerung gesprochen
worden sein könnten
(d. h., Wörter,
die dem ersten und den folgenden Frames der Äußerung entsprechen). Die Vorfilter-Prozedur 240 führt einen
groben Vergleich der Folge von Frames mit dem aktiven Vokabular 230 durch,
um eine Teilmenge des Vokabulars zu identifizieren, für die ein
ausführlicherer
Vergleich mithilfe des Erkenners gerechtfertigt ist.
-
Das
Steuer-/Schnittstellenmodul 220 steuert den Betrieb der
Spracherkennungssoftware und liefert eine Schnittstelle zur anderen
Software oder zum Benutzer. Das Steuer-/Schnittstellenmodul empfängt die
Liste von Erkennungskandidaten für
jede Äußerung von
dem Erkenner. Erkennungskandidaten können diktiertem Text, Spracherkennungsbefehlen
oder externen Befehlen entsprechen. Wenn der Erkennungskandidat
mit der höchsten
Punktzahl diktiertem Text entspricht, liefert das Steuer-/Schnitt-stellenmodul
den Text an eine aktive Anwendung, z. B. eine Textverarbei tung.
Das Steuer-/Schnittstellenmodul kann den Erkennungskandidaten mit
der höchsten
Punktzahl den Benutzer auch über
eine graphische Benutzerschnittstelle anzeigen. Wenn der Erkennungskandidat
mit der höchsten
Punktzahl ein Befehl ist, führt
das Steuer-/Schnittstellenmodul 220 den Befehl aus. Zum
Beispiel kann das Steuer-/Schnitt-stellenmodul
den Betrieb der Spracherkennungssoftware in Reaktion auf Spracherkennungsbefehle
(z. B. „Wach
auf", „Mach daraus") steuern und kann
externe Befehle an die angesprochene Software weiterleiten.
-
Das
Steuer-/Schnittstellenmodul steuert auch das aktive Vokabular, akustische
Modelle und vom Erkenner benutzte Beschränkungsgrammatiken. Wenn die
Spracherkennungssoftware z. B. in Verbindung mit einer bestimmten
Anwendung (z. B. Microsoft Word) verwendet wird, aktualisiert das
Steuer-/Schnittstellenmodul das aktive Vokabular, um zu dieser Anwendung
gehörige
Befehlswörter
einzuschließen,
und aktiviert zu dieser Anwendung gehörige Beschränkungsgrammatiken.
-
Andere
von dem Steuer-/Schnittstellenmodul 220 bereitgestellte
Funktionen sind ein Vokabular-Indivisualisierer und ein Vokabular-Manager.
Der Vokabular-Indivisualisierer optimiert das Sprachmodell eines
bestimmten Themas, indem er vom Benutzer gelieferten Text einliest.
Der Vokabular-Manager ist ein Entwicklungstool, welches dazu benutzt
wird, Vokabeln, Grammatiken und Makros durchzusehen und zu verändern. Jede
dieser Funktionen des Steuer-/Schnittstellenmoduls 220 kann
als ein ausführbares
Programm eingerichtet sein, welches getrennt von der Haupt-Spracherkennungssoftware
ist. Ebenso kann das Steuer-/Schnittstellenmodul 220 als
ein getrenntes ausführbares
Programm eingerichtet sein.
-
Das
Steuer-/Schnittstellenmodul 220 kann auch ein Trainingsprogramm
bereitstellen, welches einen Trainingstext und eine entsprechende
Trainingsgrammatik verwendet, um die Spracherkennungssoftware an einen
bestimmten Benutzer zu gewöhnen.
Das Trainingsprogramm kann in einem interaktiven Modus betrieben
werden, der den Benutzer durch den Trainingsvorgang leitet, oder
in einem nicht interaktiven Modus, welcher dem Benutzer erlaubt,
das Training unabhängig
vom Computer durchzuführen.
Im interaktiven Modus zeigt das Trainingsprogramm den Trainingstext
dem Benutzer an und der Benutzer liest den angezeigten Text. Während der
Benutzer liest, verwendet der Erkenner 215 die Trainingsgrammatik,
um eine Folge von Äußerungen
des Benutzers mit aufeinanderfolgenden Teilen des Trainingstextes
in Übereinstim mung
zu bringen. Wenn der Erkenner 215 keinen Erfolg hat, fordert
das Trainingsprogramm den Benutzer dazu auf, gewisse Passagen des
Textes zu wiederholen. Der Erkenner benutzt akustische Informationen
aus den Äußerungen des
Benutzers zum Trainieren oder um die akustischen Modelle 235 anzupassen,
die den übereinstimmenden Teilen
des Trainingstextes entsprechen.
-
In
dem nicht interaktiven Modus liest der Benutzer den Text ohne Aufforderungsmeldungen
vom Computer. Dieses bietet den erheblichen Vorteil, dass der Benutzer,
zusätzlich
zum Lesen von durch den Computer angezeigten Text, von einem gedruckten
Text unabhängig
vom Computer lesen kann. Der Benutzer könnte also den Trainingstext
in ein tragbares Aufnahmegerät
einlesen und die aufgenommene Informationen später zur Verarbeitung durch
den Erkenner auf den Computer herunterladen. Außerdem muss der Benutzer nicht jedes
Wort des Trainingstextes lesen und kann Wörter oder Absätze nach
Wunsch auslassen. Der Benutzer kann auch Teile des Textes wiederholen.
Dies gibt dem Trainingsvorgang große Flexibilität.
-
Das
Trainingsprogramm kann eine Liste von Trainingstexten zur Auswahl
des Benutzers bereitstellen, von denen jeder eine entsprechende
Trainingsgrammatik aufweist. Als Alternative kann der Benutzer einen Trainingstext
von einer anderen Quelle eingeben. In diesem Fall kann das Trainingsprogramm
die Trainingsgrammatik von dem Eingabe-Trainingstext erzeugen oder
kann eine vorher erzeugte Trainingsgrammatik verwenden.
-
Das
Steuer-/Schnittstellenmodul 220 führt auch Fehlerkorrektur- und
Cursor-/Positionsveränderungsprozeduren
der Software 160 durch. Die Fehlerkorrekturprozedur schließt einen „Mach daraus"-Befehl und einen „Buchstabiere
das"-Befehl ein.
Cursor-/Positionsveränderungsprozeduren
schließen
den oben erwähnten „Wähle"-Befehl und Variationen desselben (z.
B. „Wähle [Start]
bis [Ende]"), „Einfügen vor/nach"-Befehle und einen „Weitermachen
bei"-Befehl ein.
-
Während der
Fehlerkorrektur beginnen Wortsuchen in den Backup-Vokabularen mit
dem benutzerspezifischen Backup-Wörterbuch und prüfen dann
das systemweite Backup-Wörterbuch.
Die Backup-Wörterbücher werden
auch durchsucht, wenn es in einem Text neue Wörter gibt, den der Benutzer
getippt hat.
-
Wenn
das System einen Erkennungsfehler macht, kann der Benutzer einen
geeigneten Korrekturbefehl aufrufen, um den Fehler zu beheben. 4A bis 4N veran schaulichen eine von dem Steuer-/Schnittstellenmodul 220 in
Reaktion auf eine Folge von Text mit Befehlen dazwischen bereitgestellte
Benutzerschnittstelle. Wie in 4A gezeigt,
erkennt der Erkenner 215 korrekt eine erste Äußerung 1300 („When a
justice needs a friend Absatz")
und das Steuer-/Schnittstellenmodul 220 zeigt die Ergebnisse 1305 („When a
justice needs a friend")
des Erkennens der Äußerung in
einem Diktatfenster 1310 an. Das Modul 220 zeigt
den einem Textteil der Äußerung entsprechenden
Text 1305 („When
a justice needs a friend")
an und führt
den in der Äußerung enthaltenen
Formatierungsbefehl („Absatz") durch.
-
Der
Erkenner 215 erkennt eine zweite Äußerung 1315 („There
are two kinds of legal kibitzers")
falsch, indem er das Wort „kibitzers" falsch als „cancers" erkennt. Das Steuer-/Schnittstellenmodul 220 zeigt
dieses falsche Ergebnis 1316 („There are two kinds of legal
cancers") im Diktatfenster 1310 an.
Das Steuer-/Schnittstellenmodul zeigt auch die Ergebnisse der Erkennung
der aktuellen Äußerung,
die in diesem Fall die zweite Äußerung ist,
in einem Anzeigefeld 1320 am unteren Rand des Fensters 410 an.
-
Wie
in 4B gezeigt, korrigiert
der Benutzer die falsche Erkennung, indem er das Wort „cancers" mit der Maus 110 auswählt und
sagt „Buchstabier
das k i b i". Das
Steuer-/Schnittstellenmodul reagiert auf die Erkennung des „Buchstabier
das"-Befehls, indem
es ein Korrekturdialogfenster 1325 anzeigt, wie in 4B gezeigt. Das Fenster 1325 zeigt
eine nummerierte Liste von Wörtern 1327 an,
die mit den genannten Buchstaben („kibi") beginnt. Anstatt die Maus 110 zu
verwenden, um das Wort „cancer" auszuwählen, hätte der
Benutzer auch das Wort verbal mittels eines „Wähle"-Befehls
auswählen
können,
indem er „Wähle cancer" gesagt hätte. Ebenso
hätte der
Benutzer anstatt „Buchstabier
das k i b i" zu
sagen, die Buchstaben „k
i b i" eintippen
können.
-
Der
Benutzer wählt
das korrekte Wort 1327 („kibitzers"), indem er „Wähle 4" sagt, wobei „kibitzers" das vierte Wort auf der Auswahlliste
ist. Wie in 4C gezeigt,
reagiert das Steuer-/Schnittstellenmodul 220 durch Ersetzen
des falschen Wortes („cancers") mit dem im Diktatfenster 1310 ausgewählten Wort 1327.
-
Nochmal
mit Bezug auf 4B enthält das Korrekturdialogfenster 1325 einen „Train"-Schalter 1328. Wenn
der Benutzer diesen Schalter drückt,
reagiert das Steuer-/Schnittstellenmodul,
indem er den Benutzer durch eine Trainingssitzung leitet, um von
dem Benutzer ein oder mehrere Proben des Wortes oder der Wörter zu
erhalten, die trainiert werden sollen. Der Erkenner verwendet diese
Proben, um die akustischen Modelle für die Wörter an die Sprechmuster des
Benutzers anzupassen.
-
Wie
in 4D gezeigt, erkennt
der Erkenner 215 als nächstes
eine dritte Äußerung 1329 („those
who pronounce amicus")
falsch, und das Steuer-/Schnittstellenmodul 220 reagiert,
indem es den falschen Text 1330 („those who Brown to meet this") in das Diktatfenster 1310 einfügt. Wie
in 4E gezeigt, veranlasst
der Benutzer das Steuer-/Schnittstellenmodul 220 dazu,
das Korrekturdialogfenster 1325 zu erzeugen, indem er den „Korrigiere
das"-Befehl 1331 sagt.
Die Korrekturdialogbox 1310 enthält eine Liste 1332 von
Erkennungskandidaten für
die gesamte Äußerung 1333.
Obwohl das Dialogfenster 1325 nur die Wiedergabe von 10
Erkennungskandidaten gleichzeitig erlaubt, kann die Liste 1332 selbst
mehr als 10 Einträge
enthalten. Auf zusätzliche
Einträge
kann mit Hilfe eines Scroll-Balkens 1333 zugegriffen werden.
-
Wie
in 4F gezeigt, wählt der
Benutzer das Wort „Brown" 1333 mit
der Maus 110 aus. Wie oben angemerkt, könnte der Benutzer das Wort „Brown" auch mit dem Sprechbefehl „Wähle Brown" auswählen. Wie in 4G gezeigt, sagt der Benutzer
dann „p
r o n" 1340,
um anzuzeigen, dass das Wort „Brown" durch ein Wort ersetzt
werden soll, welches mit den Buchstaben „pron" beginnt. Der Benutzer könnte das
gleiche Ergebnis erzielen, indem der die Buchstaben „pron" eintippt. Das Steuer-/Schnittstellenmodul 220 reagiert,
indem es eine aktualisierte Liste 1341 von Erkennungskandidaten
erzeugt, wobei jeder Erkennungskandidat an der Position, die vorher
das Wort „Brown" eingenommen hat,
ein Wort enthält,
das mit „pron" beginnt. Jeder der
Erkennungskandidaten enthält
die korrekt erkannten Wörter,
die vor „Brown" kamen („those
who") und die Worte, die „Brown" folgten („to meet
this").
-
Wie
in 4H gezeigt, wählt der
Benutzer den Erkennungskandidaten 1345, der das Wort „pronounce" enthält, indem
er die Maus benutzt, um den dritten Eintrag auf der Liste auszuwählen. Der
Benutzer könnte
das gleiche Ergebnis erzielen, indem er „Wähle 3" sagt.
-
Wie
in 4I gezeigt, verwendet
der Benutzer dann die Maus, um die Worte „to meet this" 1350 auszuwählen. Wie
in 4J gezeigt, tippt
der Benutzer die Buchstaben „amicu", und das Steuer-/Schnittstellenmodul 220 reagiert,
indem es eine ak tualisierte Liste 1351 von Erkennungskandidaten
erzeugt, die mit den Wörtern „those
who pronounce" beginnen
und ein Wort enthalten, welches mit den Buchstaben „amicu" beginnt. Ein Eintrag 1352 der
Liste enthält
eine Phrase „amicus
curiae", die mit
dem Buchstaben „amicu" beginnt. Da der
erste Eintrag 1353 der korrekte Eintrag ist, klickt der
Benutzer auf einen „OK"-Schalter 1354 am
unteren Rand des Korrekturdialogfensters 1325. Wie in 4K gezeigt, reagiert das
Steuer-/Schnittstellenmodul 220, indem es die korrekte
Version 1355 der Äußerung in
das Diktatfenster 1310 einfügt. Wie oben diskutiert, werden
alle Korrekturschritte für
eine Äußerung innerhalb
des gleichen Korrekturdialogfensters 1325 durchgeführt.
-
Wie
in 4L gezeigt, erkennt
der Erkenner 215 als nächstes
eine Äußerung 1360 („each submits
a brief as an outsider")
falsch, und das Steuer-/Schnittstellenmodul 220 reagiert,
indem es den falschen Text 1361 („Each submits a brief is an
outsider") in das
Diktatfenster 1310 einfügt. 4L zeigt auch ein weiteres Merkmal
der Schnittstelle. Wenn eine Äußerung erkannt
wird, kann das Steuer-/Schnittstellenmodul 220 einen teilweisen
Erkennungskandidaten 1365 für die Äußerung anzeigen. Dieser teilweise
Kandidat stellt die Hypothese für
die Äußerung mit
der besten Punktzahl zu einem Zeitpunkt dar, bevor der Erkenner
mit der Verarbeitung der Äußerung fertig
ist. Eine Anzeige des teilweisen Kandidaten ist für lange Äußerungen
nützlich,
die eine längere
Zeit zur Verarbeitung benötigen.
Wie in 4M gezeigt, veranlasst
der Benutzer das Steuer-/Schnittstellenmodul 220 nochmal,
das Korrekturdialogfenster 1325 zu erzeugen, indem er den „Korrigier das"-Befehl 1331 sagt.
Das Korrekturdialogfenster 1325 enthält eine Liste 1370 von
Erkennungskandidaten für die
gesamte Äußerung 1331.
Da der Text der Äußerung 1360 als
zweiter Eintrag 1372 auf der Liste 1370 erscheint,
wählt der
Benutzer den Text, indem er sagt „Wähle 2". Wie in 4N gezeigt,
reagiert das Steuer-/Schnittstellenmodul 220, indem es
den Text 1372 in das Dialogfenster 1310 einsetzt.
-
Mit
Bezug auf 5A kann das
Steuer-/Schnittstellenmodul 220 Erkennungsergebnisse gemäß einem
Verfahren 1400 verarbeiten. Zuerst empfängt das Steuer-/Schnittstellenmodul 220 von
dem Erkenner 215 Erkennungsergebnisse für eine Äußerung (Schritt 1405).
Wenn die Spracherkennungssoftware nicht im Korrekturmodus arbeitet
(d. h. das Korrekturdialogfenster 1325 ist nicht angezeigt)
(Schritt 1405), bestimmt das Steuer-/Schnittstellenmodul,
ob der Erkennungskandidat mit der höchsten Punktzahl nur Text enthält (1410). Wenn
dem so ist, verarbeitet das Steuer-/Schnittstellenmodul den Text
(Schritt 1415). Z. B. kann das Steuer-/Schnittstellenmodul
den Text in ein Diktatfenster 1310 einfügen.
-
Wenn
der Erkennungskandidat mit der höchsten
Punktzahl etwas anderes als Text enthält (Schritt 1410),
bestimmt das Steuer-/Schnittstellenmodul, ob der Kandidat einen
Korrekturbefehl enthält
(Schritt 1420). Korrekturbefehle aktivieren das Korrekturdialogfenster 1325 und
enthalten die oben erwähnten „Wähle"-, „Buchstabier
das"- und „Korrigier
das"-Befehle und
einen zusätzlichen
Korrekturbefehl, der als „Mach
daraus"-Befehl bezeichnet
wird.
-
Wenn
der Erkennungskandidat mit der höchsten
Punktzahl keinen Korrekturbefehl (Schritt 1420) enthält, verarbeitet
das Steuer-/Schnittstellenmodul jeden anderen in dem Erkennungskandidaten
mit der höchsten
Punktzahl enthaltenen Befehl (Schritt 1425). Wie in 4A gezeigt, verarbeitet
das Steuer-/Schnittstellenmodul z. B., wenn der Erkennungskandidat
mit der höchsten
Punktzahl Text und einen Formatierungsbefehl wie z. B. Absatz enthält, den
Textabschnitt des Kandidaten und führt den Formatierungsbefehl
aus.
-
Wenn
der Erkennungskandidat mit der höchsten
Punktzahl einen Korrekturbefehl (Schritt 1420) enthält, zeigt
das Steuer-/Schnittstellenmodul das Korrekturdialogfenster 1425 an
(Schritt 1430) und geht in den Korrekturmodus (Schritt 1435).
-
Als
nächstes
verarbeitet das Steuer-/Schnittstellenmodul den Erkennungskandidaten
mit der höchsten Punktzahl
als einen Korrekturbefehl (Schritt 1440). Das Steuer-/Schnittstellenmodul
behandelt den Erkennungskandidaten mit der höchsten Punktzahl auch als einen
Korrekturbefehl, wenn die Software bereits im Korrekturmodus arbeitet,
wenn die Erkennungsergebnisse empfangen werden (d. h., wenn das
Korrekturdialogfenster bereits angezeigt wird).
-
Im
allgemeinen reagiert das Steuer-/Schnittstellenmodul auf Korrekturbefehle,
indem es eine Auswahlliste in dem Korrekturdialogfenster 1325 anzeigt.
Bei dem „Korrigier
das"-Befehl enthält die Auswahlliste die
vom Erkenner 215 gelieferten Erkennungskandidaten, wenn
kein Abschnitt des Erkennungskandidaten mit der höchsten Punktzahl
vorher mit der Maus 110, der Tastatur 115 oder
dem „Wähle"-Befehl ausgewählt worden
ist, wobei die Kandidaten entsprechend ihrer Punktzahlen geordnet
sind. Wenn ein Abschnitt des Erkennungskandidaten mit der höchsten Punktzahl
vor her ausgewählt
wurde, enthält
die Auswahlliste Versionen des ursprünglichen Erkennungskandidaten,
bei denen der ausgewählte
Abschnitt jeweils unterschiedlich ist. Diese Versionen des ursprünglichen
Kandidaten können
dadurch erzeugt werden, dass der Erkenner 215 eine Wieder-Erkennung
der Äußerung unter
Verwendung einer Beschränkungsgrammatik
durchführt,
die nur zulässt, dass
sich der ausgewählte
Abschnitt des ursprünglichen
Kandidaten vom ursprünglichen
Kandidaten unterscheidet.
-
Ebenso
enthält
die Auswahlliste beim „Buchstabier
das"-Befehl nur
Einträge,
die mit den Buchstaben beginnen, die auf das „Buchstabier das" in dem „Buchstabier
das"-Befehl folgen,
wenn kein Abschnitt des Erkennungskandidaten vorher ausgewählt wurde.
Wenn ein Abschnitt des ursprünglichen
Kandidaten vorher ausgewählt
wurde, enthält
die Auswahlliste Versionen des ursprünglichen Kandidaten, in welchen
der ausgewählte
Abschnitt mit den im „Buchstabier
das"-Befehl zur
Verfügung
gestellten Buchstaben beginnt.
-
Der „Mach daraus"-Befehl enthält die Worte „Mach daraus", gefolgt von einem
oder mehreren Austauschwörtern.
Wenn kein Abschnitt des ursprünglichen
Kandidaten vorher ausgewählt
worden ist, dann enthält
die Auswahlliste Einträge
entsprechend der Erkennung der Austauschwörter, so dass der gesamte ursprüngliche
Kandidat durch die Austauschwörter
ersetzt wird. Als Alternative könnte
die Software automatisch einen Teil des ursprünglichen Kandidaten identifizieren,
der durch die Austauschwörter
ersetzt werden soll, und Erkennungskandidaten auflisten, die verschiedene
Versionen dieses Abschnitts enthalten. Wenn ein Abschnitt des ursprünglichen
Kandidaten vorher ausgewählt
wurde, dann enthält
die Auswahlliste Versionen des ursprünglichen Kandidaten, in welchem
der ausgewählte
Abschnitt durch verschiedene Erkennungskandidaten für die Austauschwörter ersetzt
worden ist.
-
Nach
der Verarbeitung des Erkennungskandidaten mit der höchsten Punktzahl
(Schritt 1440) bestimmt das Steuer-/Schnittstellenmodul,
ob der in dem Kandidaten enthaltene Befehl die Korrektursitzung
(Schritt 1445) vollendet hat. Wenn dem so ist, beendet
das Steuer-/Schnittstellenmodul den Korrekturmodus und entfernt
das Korrekturdialogfenster (Schritt 1450). In jedem Fall
wartet das Steuer-/Schnittstellenmodul
dann auf den Empfang der nächsten
Reihe von Erkennungskandidaten (Schrit 1400). Das Steuer-/Schnittstellenmodul wartet
auch auf diesen Emp fang, nachdem es einen Nur-Text-Kandidaten (Schritt 1415)
oder einen Kandidaten verarbeitet hat, der keine Korrekturbefehle
enthält
(Schritt 1425).
-
Wie
oben angemerkt, kann der Benutzer dazwischen wählen, ein korrektes Wort oder
korrekte Wörter mittels
des „Mach
daraus"-Befehls
zu sprechen, oder ein korrektes Wort oder einen Wortabschnitt mittels
des „Buchstabier
das"-Befehls verbal
zu buchstabieren. Wenn der Benutzer den „Mach daraus"-Befehl aufruft, führt der
Erkenner 215 Spracherkennung mit der Äußerung durch, die den Befehl
enthält,
und gibt die Ergebnisse in Form einer Liste von geordneten Gruppen
von Phonemen (d. h. Erkennungskandidaten) zurück. Der Erkennungskandidat
für „Mach daraus
Apple" könnte z.
B. die Phoneme enthalten, die „Mach
daraus a pull" entsprechen,
während
der zweite Erkennungskandidat die Phoneme enthalten könnte, die „Mach daraus
apple" entsprechen.
-
Das
Steuer-/Schnittstellenmodul 220 kann die Liste der vom
Erkenner 215 bereitgestellten Erkennungskandidaten erweitern,
indem es Übereinstimmungen
mit „verwechselter
Aussprache" für die dem „Mach daraus" folgenden Phoneme
in jedem der Erkennungskandidaten findet. Verwechselte Aussprache
basiert auf der Beobachtung, dass Phoneme mit ähnlichen Eigenschaften oft
miteinander verwechselt werden. Das Steuer-/Schnittstellemodul 220 erzeugt
dann eine Liste von Wörtern,
die den Ergebnissen mit verwechselter Aussprache entsprechen, und
verwendet diese Wörter,
um die Auswahlliste in dem Korrekturdialogfenster 1325 zu
füllen.
-
Die
Software 160 kann auch so konfiguriert sein, dass der „Mach daraus" Befehl und der „Buchstabier das"-Befehl keine Korrekturdialogfenster
benutzen. Wenn die Software so konfiguriert ist, ersetzt das Steuer-/Schnittstellenmodul
eine Äußerung,
einen ausgewählten
Abschnitt einer Äußerung oder
einen automatisch bestimmten Abschnitt der Äußerung mit dem Textabschnitt
des Ergebnisses mit der höchsten
Punktzahl des „Mach
daraus"- oder „Buchstabier
das"-Befehls. Das
Steuer-/Schnittstellenmodul kann das Ersetzen durchführen, indem
es den Erkenner 215 anweist, eine Wieder-Erkennung der Äußerung mit
einer Beschränkungsgrammatik
durchzuführen,
welche die Bedingung stellt, dass die Ergebnisse der Wieder-Erkennung
einen Eintrag von der Liste enthalten.
-
Wenn
der Benutzer den „Buchstabier
das"-Befehl aufruft,
erkennt der Erkenner 215 die Schreibweise des Worts in
dem Kontext einer Buchstabier-Beschränkungs grammatik, die nur die
Erkennung von Buchstaben erlaubt. Die vom Erkenner gelieferten Erkennungskandidaten
sind in der Form einer Liste von geordneten Gruppen von Buchstaben,
wobei jede Gruppe ein wahrscheinliches Erkennungsergebnis für das/den
vom Benutzer buchstabierte(n) Wort oder Wortabschnitt ist. Das Steuer-/Schnittstellenmodul
kann dann Übereinstimmungen
mit „verwechselter
Schreibeweise" für die Gruppen
von Buchstaben in der Ergebnisliste finden. Die Suche nach Übereinstimmungen
mit verwechselter Schreibweise ist ähnlich wie die Suche nach Übereinstimmungen
mit verwechselter Aussprache und basiert auf der Beobachtung, dass
Buchstaben mit ähnlicher
Aussprache oft miteinander verwechselt werden. Die Ergebnisse der
Suche nach Übereinstimmungen
mit verwechselter Schreibweise werden dann auf die gleiche Weise
verwendet wie die Ergebnisse der Suche nach Übereinstimmungen mit verwechselter
Aussprache, um vorher falsch erkannten Text zu korrigieren.
-
Im
allgemeinen führt
das System die Suche nach Übereinstimmungen
mit verwechselter Aussprache oder Schreibweise durch, indem es ein
Wörterbuch
durchsucht. Wenn das zum Korrigieren des vorher falsch erkannten
Wortes verwendete Wort im aktiven Vokabular nicht vorhanden ist,
hätte der
Erkenner 215 nicht vermeiden können, das Wort bei der ursprünglichen
Erkennung falsch zu erkennen. Um eine Wiederholung der Falscherkennung
zu vermeiden, „aktiviert" das Steuer-/Schnittstellenmodul
das Wort vom Backup-Wörterbuch,
indem es das Wort dem aktiven Vokabular 230 hinzufügt.
-
Mit
Bezug auf 6 implementiert
das Steuer-/Schnittstellenmodul 220 Korrekturbefehle gemäß eines
Verfahrens 1440. Wenn der Befehl dem „Korrigier das"-Befehl entspricht (Schritt 1500),
zeigt das Steuer-/Schnittstellenmodul wie oben beschrieben eine
Auswahlliste an (Schritt 1505).
-
Wenn
der Befehl nicht dem „Korrigier
das"-Befehl entspricht
(Schritt 1500), sondern stattdessen dem „Wähle"-Befehl oder einer
Abwandlung dieses Befehls entspricht (z. B. „Wähle [Anfang] bis [Ende]") (Schritt 1510),
sucht und markiert das Steuer-/Schnittstellenmodul das Wort oder
die Worte, die durch den „Wähle"-Befehl identifiziert
worden sind (Schritt 1515). Beim normalen „Wähle"-Befehl markiert
das Modul das Wort oder die Worte, die auf „Wähle" folgen. Ebenso markiert das Modul bei
dem „Wähle" [Anfang] bis [Ende]"-Befehl den Textblock,
der mit dem Wort be ginnt, das „[Anfang]" entspricht und mit
dem Wort endet, das „[Ende]" entspricht. Diese
Wörter
werden von dem Erkenner 215 durch die Ausführung einer
Beschränkungsgrammatik
identifiziert, die dem erweiterten „Wähle"-Befehl entspricht, der folgendermaßen ausgedrückt werden
kann:
<Erkennungsergebnis> ∷= Wähle
[<Wörter>]¦
[<Wörter> bis <Wörter> {geordnet}]¦
[Von <Wörter> bis <Wörter> {geordnet}]¦
[Von <Wörter> bis <Wörter> {geordnet}]¦
[Das]¦
[Wiederhole],
wobei
<Wörter> ∷= [PRW1[PRW2[PRW3 ... PRWn]]]¦
[PRW2[PRW3 ... PRWn]]¦ ...
[PRWn], und
"PRWi" das vorher erkannte
Wort i ist.
-
Im
allgemeinen zieht der Befehl alle vorher erkannten Wörter in
Erwägung,
die auf der Anzeige 120 angezeigt werden.
-
Die
dargestellte Beschränkungsgrammatik
enthält
einen „Wähle [Wort(Wörter)]"-Befehl, einen „Wähle [Anfang]
bis [Ende]"-Befehl,
einen „Wähle von
[Anfang] bis [Ende]"-Befehl,
einen „Wähle von
[Anfang] bis [Ende]"-Befehl,
einen „Wähle das"-Befehl und einen „Wähle noch
einmal"-Befehl.
Andere Abwandlungen könnten auch
vorgesehen sein.
-
Die
Notation {geordnet} zeigt an, dass die Wörter im ersten Beispiel von <Wörtern> in dem Befehl im Text
vor den Wörtern
im zweiten Beispiel von <Wörtern> erscheinen. Die Verwendung
von {geordnet} in der Beschränkungsgrammatik
bringt erhebliche Einsparungen in der Verarbeitung im Vergleich
zu einer Methode, die verlangt, dass das zweite Beispiel von <Wörtern> sich in Abhängigkeit
von den im ersten Beispiel enthaltenen Wörtern unterscheidet. Der {geordnet}
Operator kann dadurch implementiert werden, dass beide Beispiele
von <Wörtern> irgendwelche Wör ter aus
dem vorher erkannten Text enthalten dürfen, und jegliche Hypothese
verworfen wird, die ungeordnete Ergebnisse enthält (d. h. Ergebnisse, in denen
das „Anfangs"-Wort auf das „End"-Wort des auszuwählenden Blocks folgt). Die
Beschränkungsgrammatik
verwendet also Positionsinformationen, um unsinnige Ergebnisse zu
verwerfen.
-
Der „Wähle das"-Befehl ermöglicht einen
schnellen und effizienten Weg, um die vorhergehende Äußerung des
Benutzers auszuwählen
und zu markieren. Insbesondere markiert das Steuer-/Schnittstellenmodul in
Reaktion auf den „Wähle das"-Befehl die Wörter, die
der vorhergehenden Äußerung entsprechen.
-
Der „Wähle noch
einmal"-Befehl ermöglicht einen
schnellen und effizienten Weg, um ein bestimmtes Auftreten eines
Worts auszuwählen,
wenn ein Wort viele Male in einem Abschnitt vorkommt. Wenn das Wort „Sprache" z. B. dreimal in
dem auf dem Bildschirm angezeigten Text vorgekommen ist, und das
System das erste Auftreten markiert hat (oder einen Abschnitt, der
mit dem ersten Auftreten beginnt oder endet), könnte der Benutzer zum nächsten Auftreten
springen, indem er sagt „Wähle noch
einmal". Benutzerwählbare Parameter
können
dazu verwendet werden, festzulegen, ob der „Wähle"-Befehl nach Auftreten des Wortes vor
oder nach der Cursor-Position sucht.
-
Beim
Erzeugen von Hypothesen, die dem „Wähle"-Befehl entsprechen, kann der Erkenner 215 so
konfiguriert sein, dass er Homophonen die gleiche Punktzahl gibt.
D. h., wenn der angezeigte Text die Wörter „Triphones" und die Phrase „try phones" enthält, würde der
Erkenner die Punktzahl desjenigen der beiden Elemente mit der höchsten Punktzahl
dazu verwenden, Hypothesen zu erzeugen, die jedes der beiden Elemente enthalten.
-
Die
Beschränkungsgrammatik
für <Wörter> kann schrittweise
aktualisiert werden, während
sich der angezeigte Text verändert.
Wenn z. B. Text durch Blättern
am oberen Ende der Anzeige verschwindet und neuer Text am unteren
Ende der Anzeige hinzukommt, kann der verschwundene Text vom Anfang
der Grammatik entfernt werden, während
der neue Text dem Ende der Grammatik hinzugefügt wird.
-
Die
Ergebnisse des „Wähle"-Befehls können auch
durch Verwendung der Maus 110 oder der Tastatur 115 erreicht
werden, um einen gewünschten
Abschnitt der Äußerung auszuwählen.
-
Wenn
der Befehl nicht dem „Korrigier
das"-Befehl (Schritt 1500)
oder dem „Wähle"-Befehl (Schritt 1510)
entspricht, stellt das Steuer-/Schnittstellenmodul fest, ob der
Befehl dem „Mach
daraus"-Befehl (Schrit 1520)
entspricht. Der Erkenner 215 identifiziert den „Mach daraus"-Befehl mittels einer
Beschränkungsgrammatik,
die der Beschränkungsgrammatik
für den „Wähle"-Befehl ähnlich ist.
Insbesondere erfordert die Beschränkungsgrammatik, dass die Wörter „Mach daraus" von einem oder mehreren
Wörtern
aus dem Erkennungsvokabular gefolgt werden. Diese Beschränkungsgrammatik
kann ausgedrückt
werden als:
<Erkennungsergebnis> ∷ Mach daraus <Phoneme>,
wobei
<Phoneme> ∷= <Phoneme> <Phonem>
und
<Phonem> ein beliebiges gültiges Phonem
ist.
-
Wenn
der Benutzer den „Mach
daraus"-Befehl (Schritt 1520)
aufgerufen hat, führt
das Steuer-/Schnittstellenmodul ein MACHDARAUS Korrekturverfahren
durch (Schritt 1525).
-
Wenn
der Befehl nicht dem „Korrigier
das"-Befehl entspricht
(Schritt 1500), dem „Wähle"-Befehl (Schritt 1510)
oder dem „Mach
daraus"-Befehl (Schritt 1520),
stellt das Steuer-/Schnittstellenmodul fest, ob der Befehl dem „Buchstabier
das"-Befehl entspricht
(Schritt 1530). Der Erkenner 215 identifiziert
den „Buchstabier das"-Befehl unter Verwendung der folgenden
Beschränkungsgrammatik:
<Erkennungsergebnis> ∷= Buchstabier das <Buchstaben>,
wobei
<Buchstaben> ∷= <Buchstaben> <Buchstabe>
und
<Buchstabe> jeglicher Buchstabe
des Alphabets ist.
-
Wenn
der Benutzer den „Buchstabier
das"-Befehl (Schritt 1530)
aufgerufen hat, führt
das Steuer-/Schnittstellenmodul die BUCHSTABIERDAS Korrekturprozedur
(Schritt 1535) durch. Von dem Dialogfenster aus kann der
Benutzer auch den „Buchstabier
das"-Befehl aufrufen,
indem er eine Reihe von Buchstaben eintippt oder spricht.
-
Nachdem
das Steuer-/Schnittstellenmodul einen der MACHDARAUS (Schritt 1525)
oder BUCHSTABIERDAS (Schritt 1535) Korrekturprozeduren
durchgeführt
hat, führt
es eine Prozedur namens SUCHE&ERSETZE
(Schritt 1540) durch. Diese Prozedur ersetzt einen Teil
des vorher erkannten Textes mit Text, der von den MACHDARAUS oder
BUCHSTABIERDAS Korrekturprozeduren erzeugt worden ist. Kurz gesagt,
wenn ein Teil einer Äußerung mittels
des „Wähle"-Befehls oder anderer
Mittel ausgewählt
worden ist, weist das Steuer-/Schnittstellenmodul 220 den
Erkenner 215 an, eine Wieder-Erkennung durchzuführen, um
das ausgewählte
Wort oder die ausgewählten
Wörter
zu ersetzen. Wenn keine Auswahl gemacht worden ist, ersetzt das
Steuer-/Schnittstellenmodul entweder die gesamte Äußerung mit
Text, der von den MACHDARAUS oder BUCHSTABIERDAS Korrekturprozeduren
erzeugt worden ist, oder es erkennt Sprach-Frames für die vorher
erkannten Wörter,
um ein Wort oder Wörter
in den vorherigen Erkennungsergebnissen zu ersetzen.
-
Wenn
der Korrekturbefehl der „Wähle N"-Befehl (Schritt 1545)
ist, wählt
das Steuer-/Schnittstellenmodul den Eintrag „N" von der im Korrekturdialogfenster 1325 angezeigten
Liste (Schritt 1550) und zeigt an, dass die Korrektur fertig
ist (Schritt 1555). Wenn der Korrekturbefehl „OK" oder eine andere
bejahende Antwort (Schritt 1560) ist, wählt das Steuer-/Schnittstellenmodul
den obersten Eintrag in der Korrekturdialogbox 1325 aus
(Schritt 1565) und zeigt an, dass die Korrektur fertig
ist (Schritt 1555).
-
5B veranschaulicht eine
vom Steuer-/Schnittstellenmodul verwendete Prozedur zum Durchführen von
Befehlen zur Cursor-/Positionsveränderung und anderen im Erkennungskandidaten
mit der höchsten Punktzahl
enthaltenen Befehlen (Schritt 1425). Besondere in 5B dargestellte Befehle
sind ein „Einfügen vor"-Befehl, ein „Einfügen nach"-Befehl und ein „Weitermachen
bei"-Befehl.
-
Wenn
der Befehl ein „Einfügen vor"-Befehl ist (Schritt 1455),
bewegt das Modul die Cursor-/Aktionsposition auf eine Position,
die vor dem im Befehl identifizier ten Text liegt (Schritt 1460).
Wenn der Befehl ein „Einfügen nach"-Befehl ist (Schritt 1460),
bewegt das Modul die Cursor-/Aktionsposition auf eine Position,
die auf den im Befehl angegebenen Text folgt (Schritt 1470).
-
Die „Einfügen vor/nach"-Befehle liefern
dem Benutzer einen einfachen Weg, sich zu einer gewünschten
Position im Text zu bewegen. Der Erkenner 215 identifiziert
diese Befehle mittels einer „Einfügen" Beschränkungsgrammatik,
die folgendermaßen
ausgedrückt
werden kann:
<Erkennungsergebnis> ∷= Einfügen
[Vor <Wörter>]¦
[Nach <Wörter>]¦
[Davor]¦
[Danach],
wobei
<Wörter> ∷= [PRW1[PRW2[PRW3 ... PRWn]]]¦
[PRW2[PRW3 ... PRWn]]¦ ....
[PRWn], und
„PRWi" das vorher erkannte
Wort i ist.
-
Die „Einfügen davor"- und „Einfügen danach"-Befehle ermöglichen
eine einfache und effiziente Art, sich zum Anfang oder Ende einer
vorherigen Äußerung des
Benutzers oder zu einer vorherigen Auswahl des Benutzers zu bewegen.
Wenn der Benutzer keinen vorher ausgewählten Text hat, reagiert das
Steuer-/Schnittstellenmodul auf diesen Befehl, indem es die Cursor-/Aktionsposition
an einen Ort vor bzw. nach der vorherigen Äußerung bewegt. Wenn ein Benutzer
also vernachlässigt
hat, ein Wort an den Anfang einer Äußerung zu setzen, könnte der
Benutzer sagen: „Einfügen davor", um zum Anfang der Äußerung zu
springen. Nachdem er das fehlende Wort gesprochen hat, könnte der
Benutzer sagen „Einfügen danach", um zurück an das
Ende der Äußerung zu
springen.
-
Wenn
der Benutzer vorher ausgewählten
Text hat, reagiert das Steuer-/Schnittstellenmodul auf den „Einfügen davor/danach"-Befehl, indem es
die Cursor-/Aktions position an eine Position vor oder nach der Auswahl
bewegt. Der Benutzer könnte
also eine Passage auswählen,
indem er z. B. sagt: „Wähle [Anfang]
bis [Ende]" und
könnte
man zum Anfang der Passage springen, indem er sagt „Einfügen davor".
-
Wenn
der Befehl ein „Weitermachen
bei" ist (1475),
sucht das Modul das Wort oder die Wörter im Text, die durch den
Befehl angegeben sind und mit dem Text überlappen (Schritt 1480)
und ersetzt jeglichen folgenden Text mit dem Wort oder den Wörtern, die
im Befehl angegeben sind (Schritt 1485). Wenn der Benutzer also
gesagt hat „Today,
I saw a giraffe at the zoo" gefolgt
von „weitermachen
bei saw an elephant at the circus", würde
das Modul das System dazu veranlassen, anzuzeigen „Today,
I saw an elephant at the circus".
In diesem Beispiel würde „saw" das überlappende
Wort sein.
-
Ebenso
würde,
wenn der Benutzer es gesagt hätte „Today,
I saw a giraffe at the zoo PUNKT" gefolgt von „The giraffe
had a long neck PUNKT" gefolgt
von „Weitermachen
bei saw an elephant at the circus", das Modul das System zu veranlassen,
anzuzeigen „Today,
I saw an elephant at the circus. D. h., der größte Teil des ersten Satzes
und der gesamte zweite Satz des ursprünglichen Diktats würden durch
den Text „Weitermachen
bei"-Befehl überschrieben.
Wie aufgezeigt ist, kann der „Weitermachen
bei"-Befehl dazu
benutzt werden, mehrere Äußerungen
zu überschreiben.
In einigen Implementierungen muss der Benutzer eine kurze Pause machen,
bevor er den „Weitermachen
bei"-Befehl auspricht.
In anderen Implementierungen ist dies nicht erforderlich.
-
Der „Weitermachen
bei"-Befehl ist
nicht auf die Wiedergabe von Informationen auf der Anzeige angewiesen.
Aus diesem Grund ist der Befehl besonders nützlich, wenn der Benutzer Sprache
mittels einer tragbaren Aufnahmeeinrichtung aufnimmt, wie z. B.
einem analogen oder digitalen Recorder, und die aufgenommene Sprache
anschließend
zur Verarbeitung auf das Spracherkennungssystem überträgt. In diesem Kontext stellt der „Weitermachen
bei"-Befehl dem
Benutzer einen einfachen und effizienten Weg zum Umlenken des Diktats und
zum Löschen
von fälschlicherweise
gesprochenen Wörtern
zur Verfügung.
-
Der
Erkenner
215 identifziert den „Weitermachen bei"-Befehl mittels einer „Weitermachen
bei" Beschränkungsgrammatik,
welche folgendermaßen
ausgedrückt
werden kann:
wobei
<Wörter> ∷= [PRW
1[PRW
2[PRW
3 ... PRW
n]]]¦
[PRW
2[PRW
3 ... PRW
n]]¦ ...
[PRW
n],
"PRW
i" ist das vorher erkannte
Wort i, und
<Neuewörter> ∷= jegliches) Wort oder Wortsequenz
aus dem aktiven Vokabular.
-
Wenn
der Befehl nicht ein „Einfügen"-Befehl oder ein „Weitermachen
bei"-Befehl ist,
verarbeitet das Modul den Befehl dementsprechend (Schritt 1490).
-
Andere
Ausführungsformen
sind von den folgenden Ansprüchen
umfasst. Zum Beispiel sind die hier beschriebenen Methoden nicht
auf irgendeine bestimmte Hardware- oder Softwarekonfiguration beschränkt; sie
können
in jeglicher Computer- oder Verarbeitungsumgebung angewendet werden,
die für
Spracherkennung verwendet werden kann. Die Methoden können als
Hardware oder Software, oder als Kombination aus beiden implementiert
sein. Vorzugsweise sind die Methoden in Computerprogrammen implementiert,
die auf programmierbaren Computern ausgeführt werden, die jeweils einen
Prozessor, ein vom Prozessor lesbares Speichermedium (einschließlich flüchtiger
und nicht flüchtiger
Speicherelemente), wenigstens eine Eingabevorrichtung und wenigstens
eine Ausgabevorrichtung enthalten. Auf die mit der Eingabevorrichtung
eingehenden Daten wird Programmcode angewandt, um die beschriebenen
Funktionen durchzuführen
und Ausgabeinformationen zu erzeugen. Die Ausgabeinformationen werden
an eine oder mehrere Ausgabevorrichtungen abgegeben.
-
Jedes
Programm ist vorzugsweise in einer höheren prozessualen oder objektorientierten
Programmiersprache implementiert, um mit einem Computersystem zu
kommunizieren. Die Programme können
jedoch auch in Assembly oder Maschinensprache implementiert sein,
wenn dies gewünscht
wird. In jedem Fall kann die Sprache eine Compiler- oder eine Interpretersprache
sein.
-
Jedes
derartige Computerprogramm wird vorzugsweise auf einem Speichermedium
oder einer Speichervorrichtung (z. B. CD-ROM, Festplatte oder magnetische
Diskette) gespeichert, die von einem allgemeinen oder spezialisierten
programmierbaren Computer lesbar ist, um den Computer zu konfigurieren
und zu betreiben, wenn das Speichermedium oder die Speichervorrichtung
vom Computer gelesen wird, um die in diesem Dokument beschriebenen
Prozeduren durchzuführen.
Das System kann auch als ein computerlesbares Speichermedium implementiert
sein, das mit einem Computerprogramm konfiguriert ist, wobei das
Speichermedium so konfiguriert ist, dass es einen Computer dazu
veranlasst, auf eine besondere und vorbestimmte Art zu arbeiten.