-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf Spracherkennung (speech recognition).
Insbesondere bezieht sich die vorliegende Erfindung auf die Verbesserung
der Neu-Wortaussprache
durch Kombinieren von sprach- (speech) und textbasierten phonetischen
Beschreibungen, um eine Aussprache zu generieren.
-
In
der Spracherkennung wird menschliche Sprache zu Text konvertiert.
Das Spracherkennungssystem identifiziert eine höchst wahrscheinliche Sequenz
von akustischen Einheiten, die das Sprachsignal erzeugt haben könnten, um
diese Konvertierung durchzuführen.
Die meisten Systeme beschränken
diese Suche auf Sequenzen von akustischen Einheiten, die Worte in
der Sprache (language) von Interesse repräsentieren, um die Anzahl der
Berechnungen zu minimieren, die durchgeführt werden müssen.
-
Das
Mapping (die Abbildung) zwischen den Sequenzen der akustischen Einheiten
und der Worte wird in wenigstens einem Lexikon (manchmal als Wörterbuch
bezeichnet) gespeichert. Unabhängig
von der Größe des Lexikons
werden manche Worte im Sprachsignal außerhalb des Lexikons sein.
Diese nicht im Vokabular (out-of-vocabulary, OOV) befindlichen Worte
können
vom Spracherkennungssystem nicht erkannt werden, weil das System
nicht weiß,
dass sie existieren. Beispielsweise wird ein Benutzer manchmal während eines Diktats
beobachten, dass ein diktiertes Wort vom System nicht erkannt wird.
Dies kann auftreten, weil das System für ein bestimmtes Wort eine
andere Aussprache definiert hat als die Benutzeraussprache, d.h.
der Benutzer kann das Wort mit einem ausländischen Akzent aussprechen.
Manchmal ist das Wort überhaupt
nicht im Vokabular. Stattdessen wird das Erkennungssystem gezwungen,
andere Worte anstelle des nicht im Vokabular befindlichen Wortes
zu erkennen, was zu Erkennungsfehlern führt.
-
In
einem früheren
Spracherkennungssystem kann ein Benutzer ein Wort, das vom Spracherkennungssystem
nicht erkannt wurde, durch Bereitstellen der Schreibweise des Wortes
und einer akustischen Probe oder Aussprache des Wortes mit der Stimme
des Benutzers hinzufügen.
-
Die
Schreibweise des Wortes wird in eine Menge phonetischer Beschreibungen
unter Verwendung von Buchstabe zu Laut Regeln konvertiert. Das Eingabewort
wird als der einzige Eintrag einer kontextfreien Grammatik (Context
Free Grammar, CFG) gespeichert. Es wird dann durch die Anwendung
der akustischen Probe auf akustische Modelle der Phone in den phonetischen
Beschreibungen bepunktet. Die Gesamtpunktzahl (total score) für jede der
phonetischen Beschreibungen beinhaltet eine Sprachmodellpunktzahl
(language model score). In einer CFG ist die Sprachmodellwahrscheinlichkeit
gleich 1 über
die Anzahl der Abzweigungen an jedem Knoten in der CFG. Da das Eingabewort
jedoch der einzige Eintrag in der CFG ist, gibt es nur eine Abzweigung
vom Startknoten (und der einzige andere Knoten in der CFG ist der
Endknoten). Als Ergebnis hat jegliche phonetische Beschreibung aus
den Buchstabe zu Laut Regeln immer eine Sprachmodellwahrscheinlichkeit
von 1.
-
Die
akustische Probe wird in einem gesonderten Dekodierpfad durch das
Identifizieren einer Sequenz von silbenartigen Einheiten, die die
beste kombinierte akustische und Sprachmodellpunktzahl bereitstellen
basierend auf den akustischen Modellen für die Phone in den silbenartigen
Einheiten und einem „silbenartigen Einheit" n-Gramm-Sprachmodell, in
eine phonetische Beschreibung konvertiert.
-
Die
Punktzahl für
die phonetische Sequenz, die durch die Buchstabe zu Laut CFG identifiziert
wird und die Punktzahl für
die höchst
wahrscheinliche Sequenz von silbenartigen Einheiten, die durch die „silbenartige Einheit" n-Gramm-Dekodierung
identifiziert wird, werden dann verglichen. Die phonetische Sequenz
mit der höchsten
Punktzahl wird dann als die phonetische Sequenz für das Wort
ausgewählt.
-
Also
werden nach diesem „Stand
der Technik"-System
die Buchstabe zu Laut Dekodierung und die „silbenartige Einheit"-Dekodierung in zwei
getrennten parallelen Pfaden durchgeführt. Dies ist aus etlichen Gründen alles
andere als ideal gewesen.
-
Da
erstens die beiden Pfade kein gemeinsames Sprachmodell benutzen,
können
die Punktzahlen zwischen den beiden Pfaden nicht immer sinnvoll
verglichen werden. Da das Sprachmodell für die CFG insbesondere immer
eine Wahrscheinlichkeit von 1 liefert, wird die Punktzahl für die Buchstabe
zu Laut phonetische Beschreibung gewöhnlich höher sein als die „silbenartige
Einheit"-Beschreibung,
die auf einem n-Gramm-Sprachmodell
beruht, das für
gewöhnlich
signifikant kleiner als 1 ist. (Die Sprachmodellwahrscheinlichkeit
für die
silbenartigen Einheiten ist von der Ordnung 10 – 4).
-
Deswegen
tendiert das „Stand
der Technik"-System
dazu, die phonetische Sequenz aus den Buchstabe zu Laut Regeln zu
favorisieren, selbst wenn die akustische Probe besser zu der phonetischen
Beschreibung aus dem „silbenartigen
Einheit"-Pfad passt.
-
Das
zweite Genauigkeitsproblem tritt mit dem Generieren der Aussprachen
für Kombinationsworte, wie
etwa „voicexml", auf. Es ist wichtig
anzumerken, dass der CFG-Pfad und der n-Gramm-Silbenpfad im „Stand
der Technik"-System
unabhängig
voneinander sind. Also kann ein Kombinationswort wie „voicexml" zu Aussprachefehlern
führen,
da die ausgewählte
Aussprache entweder die CFG-Aussprache oder die „n-Gramm-Silben"-Aussprache sein muss. Buchstabe zu Laut
(letter-to-sound, LTS) Regeln jedoch, die mit einer CFG-Maschine
benutzt werden, tendieren dazu, gut an relativ vorhersehbaren Worten,
wie „voice" zu arbeiten, aber
schlecht für
unvorhersehbare Worte, wie „xml", wo die korrekte
Aussprache fast ohne Bezug zur Buchstabierung ist.
-
Demgegenüber funktioniert
das „n-Gramm-Silben"-Modell im Allgemeinen
angemessen gut in der Generierung einer Aussprache für Worte
wie "xml", da es unabhängig von
der Schreibweise versucht, jegliche Sequenz von Lauten oder Silben
in der akustischen Probe zu erfassen. Es funktioniert jedoch nicht
so gut wie eine CFG-Maschine für
ein vorhersehbares Wort wie „voice" (Stimme).
-
Aus
diesen Gründen
können
Aussprachefehler aus Kombinationsworten resultieren, die z.B. ein
vorhersehbares Wort mit einem Acronym kombinieren, wie etwa „voicexml", wenn die phonetischen
Beschreibungen aus zwei Dekodiersystemen in zwei separaten Pfaden
evaluiert werden.
-
Ein
Spracherkennungssystem zur Verbesserung der Aussprache von Kombinationsworten,
wie etwa „voicexml", würde bedeutsamen
Nutzen haben.
-
Westendorf,
C.M., et al, „Automatische
Generierung von Aussprachewörterbüchern aus
Signaldaten", Proceedings
of the 4th Conference on Natural Language Processing – KONVENS-98,
5. – 7.
Oktober 1998, bezieht sich auf das Lernen von Aussprachewörterbüchern direkt
aus einem Sprachsignal und dessen jeweilige orthografische Repräsentierung.
Ein „Phonem-Erkenner" generiert ein „Phonem-Hypothesengitter" (was ein Graph ist)
aus dem Sprachsignal. Jede Ecke des „Phonem-Hypothesengitters" wird eine Hypothese über das
Auftreten einer Phonemklasse k vom Zeitpunkt t1 zum Zeitpunkt t2
mit einer gewissen Gewichtung g zugewiesen. Zwei Hypothesen sind
durch eine Kante verbunden, wenn gewisse Zeitbedingungen erfüllt sind.
Ein „Wörterbuch-Kompilierer" konvertiert eine
Tabellenrepräsentation
des Wörterbuchs
in eine Graph-Repräsentation
und umgekehrt. In der Graph-Repräsentation
werden den Phonemen Ecken zugewiesen und mögliche Phonem-Verbindungen
entsprechen den Kanten des Graphs. Ein „Graph-Wörterbuch-Prozessor" kann Ecken und Kanten
zum Graph hinzufügen.
Dies wird mittels einer „Aktualisierungssequenz" realisiert. Die „Aktualisierungssequenz" wird mittels der
besten gemeinsamen Sequenz von Ecken des „Phonem-Hypothesengitters" und des Graphs,
der aus dem Wörterbuch
gebildet wird, das der Äußerung entspricht,
generiert. Dies wird durch eine Suche im „Graph-Produkt" beider Graphen realisiert.
Jede Ecke des Graph-Produkts ist eine Kombination aus einer Ecke
des „Phonem-Hypothesengitters" und einer Ecke der „Graph-Repräsentation" des Satzes (was
der Graph, der vom Wörterbuch
gebildet wird, ist). Zwei Ecken werden verbunden, wenn die jeweiligen
Originalecken verbunden sind.
-
Übersicht über die
Erfindung
-
Es
ist die Aufgabe der Erfindung, ein verbessertes Verfahren und ein
computerlesbares Medium, das Instruktionen enthält, die von einem Computer
lesbar sind, die, wenn implementiert, ein verbessertes Verfahren
zum Hinzufügen
einer akustischen Beschreibung eines Wortes zu einem Spracherkennungslexikon
durchführen,
zur Verfügung
zu stellen.
-
Diese
Aufgabe wird von der Erfindung wie in den unabhängigen Ansprüchen beansprucht
gelöst.
-
Bevorzugte
Ausführungsformen
werden von den abhängigen
Ansprüchen
definiert.
-
Ein
Verfahren und ein computerlesbares Medium konvertieren den Text
eines Wortes und eine Benutzeraussprache des Wortes in eine phonetische
Beschreibung, die zu einem Spracherkennungslexikon hinzugefügt werden
soll. Anfangs werden eine Vielzahl von wenigstens zwei möglichen
phonetischen Beschreibungen generiert. Eine phonetische Beschreibung
wird gebildet durch das Dekodieren eines Sprachsignals, das eine
Benutzeraussprache des Wortes repräsentiert. Wenigstens eine andere
phonetische Beschreibung wird aus dem Text des Wortes generiert.
Die Vielzahl von möglichen
Sequenzen, die die sprachbasierten und textbasierten phonetischen
Beschreibungen umfassen, werden abgeglichen, um einen Aussprachegraph
zu generieren. Der Aussprachegraph wird dann neu bepunktet (re-scored)
durch die Wiederbenutzung (re-using) der Aussprachesprechweise des
Benutzers. Die phonetische Beschreibung mit der höchsten Punktzahl (score)
wird dann als Eintrag im Spracherkennungslexikon ausgewählt.
-
Ein
Aspekt der Erfindung ist die Benutzung von silbenartigen Einheiten
(SLUs), um die akustische Aussprache in eine phonetische Beschreibung
zu dekodieren. Die silbenartigen Einheiten sind im Allgemeinen größer als
ein einzelnes Phonem, aber kleiner als ein Wort. Die vorliegende
Erfindung stellt Mittel zur Definierung dieser silbenartigen Einheiten
zur Verfügung
mittels eines auf beidseitiger Information (mutual information,
Transinformation) basierenden Daten-getriebenen Ansatzes, der keine
sprachspezifischen, linguistischen Regeln benötigt. Ein Sprachmodell basierend
auf diesen silbenartigen Einheiten kann im Sprachdekodierungsprozess
konstruiert und benutzt werden.
-
Ein
anderer Aspekt der vorliegenden Erfindung ermöglicht es Benutzern, eine hörbare Aussprache
eines Wortes einzugeben, die sehr verschieden zu einer typischen
Aussprache ist, die mit der Schreibweise übereinstimmt. Beispielsweise
kann ein Fremdwort hörbar
ausgesprochen werden, während
der Text eines englischen Wortes eingegeben wird. Nach diesem Aspekt
der Erfindung kann eine phonetische Beschreibung eines „Neu-Wortes", das zum Lexikon
hinzugefügt
wird, aus dem Lexikon abgefragt werden und in ein hörbares Signal
konvertiert werden, das beispielsweise eine Fremdwortübersetzung
des englischen Wortes umfasst.
-
Kurze Beschreibung
der Zeichnungen
-
1 ist
ein Blockdiagramm einer allgemeinen Computerumgebung, in welcher
die vorliegende Erfindung praktiziert werden kann.
-
2 ist
ein Blockdiagramm einer allgemeinen mobilen Computerumgebung, in
welcher die vorliegende Erfindung praktiziert werden kann.
-
3 ist
ein Blockdiagramm eines Spracherkennungssystems gemäß der vorliegende
Erfindung.
-
4 ist
ein Blockdiagram von Lexikonaktualisierungskomponenten einer Ausführungsform
der vorliegenden Erfindung.
-
5 ist
ein Flussdiagramm eines Verfahrens zum Hinzufügen eines Wortes zum Spracherkennungslexikon
gemäß der vorliegenden
Erfindung.
-
6 ist
ein Flußdiagramm,
das die Implementierung der vorliegenden Erfindung bezüglich eines
bestimmten Wortes illustriert.
-
7 ist
ein Flussdiagramm zum Konstruieren einer Menge von silbenartigen
Einheiten.
-
Detaillierte
Beschreibung von erläuternden
Ausführungsformen
-
1 illustriert
ein Beispiel einer geeigneten Computersystemumgebung 100,
auf welcher die Erfindung implementiert werden kann. Die Computersystemumgebung 100 ist
nur ein Beispiel einer geeigneten Computerumgebung und sie beabsichtigt
nicht, irgendeine Limitierung bezüglich des Umfangs der Benutzung oder
Funktionalität
der Erfindung vorzuschlagen. Die Computerumgebung 100 sollte
auch nicht dahingehend interpretiert werden als dass sie irgendeine
Abhängigkeit
oder Anforderung bezüglich
irgendeiner oder einer Kombination von Komponenten, die in der exemplarischen
Operationsumgebung 100 illustriert sind, hat.
-
Die
Erfindung ist betriebsfähig
mit zahlreichen anderen Mehrzweck- oder Sonderzweck-Computersystemumgebungen
oder Konfigurationen. Beispiele wohlbekannter Computersysteme, Umgebungen
und/oder Konfigurationen, die geeignet für die Benutzung mit der Erfindung
sein können,
beinhalten, aber sind nicht limitiert auf Personalcomputer, Servercomputer,
tragbare (hand-held) oder Laptop-Geräte, Mulitprozessorsysteme,
microprozessorbasierende Systeme, Settop-Boxen, programmierbare
Unterhaltungselektronik (consumer electronics), Netzwerk-PCs, Minicomputer,
Mainframe-Computer, Telefoniersysteme, verteilte Computerumgebungen,
die irgendwelche der oberen Systeme oder Geräte beinhalten, und dergleichen.
-
Die
Erfindung kann im allgemeinen Zusammenhang von computerausführbaren
Instruktionen, wie etwa Programmmodulen, die von einem Computer
ausgeführt
werden, beschrieben werden. Im Allgemeinen beinhalten Programmmodule
Routinen, Programme, Objekte, Komponenten, Datenstrukturen, etc.,
die bestimmte Aufgaben durchführen
oder bestimmte abstrakte Datentypen implementieren. Die Erfindung
kann auch in verteilten Computerumgebungen praktiziert werden, wo
Aufgaben von Fernvearbeitungsgeräten durchgeführt werden,
die durch ein Kommunikationsnetzwerk verbunden sind. In einer verteilten
Computerumgebung können
Programmmodule sowohl in lokalen als auch in entfernten Computerspeichermedien,
die Datenspeichergeräte
beinhalten, sich befinden.
-
Ein
exemplarisches System zur Implementierung der Erfindung beinhaltet
unter Bezugnahme auf 1 ein Mehrzweckcomputergerät in Form
eines Computers 110. Die Komponenten des Computers 110 können beinhalten,
sind aber nicht limitiert auf eine Prozessoreinheit 120,
ein Systemspeicher 130 und ein Systembus 121,
der verschiedene Systemkomponenten, einschließlich des Systemspeichers zur
Prozessoreinheit 120, verbindet. Der Systembus 121 kann
irgendeiner der verschiedenen Typen von Busstrukturen sein, einschließlich eines
Speicherbusses oder Speichercontrollers, eines peripheren Busses
und eines lokalen Busses, der irgendeine aus der Vielfalt von Busarchitekturen
verwendet. Solche Architekturen beinhalten als Beispiel und nicht
als Limitierung, den Industriestandard-Architektur (Industry Standard
Architecture, ISA) Bus, den Mikro-Kanal-Architektur (Micro Channel Architecture,
MCA) Bus, den erweiterten ISA (Enhanced ISA, EISA) Bus, den Video-Elektronik-Standard-Gemeinschaft
(Video Electronic Standards Association, VESA) lokalen Bus, und
den peripheren Komponenten-Zusammenschaltungs
(Peripheral Component Interconnect, PCI) Bus, der auch als Mezzanine-Bus
bekannt ist.
-
Der
Computer 110 beinhaltet typischerweise eine Vielzahl von
computerlesbaren Medien. Computerlesbare Medien können irgendwelche
verfügbaren
Medien sein, auf die der Computer 110 zugreifen kann und sie
beinhalten sowohl flüchtige
als auch nichtflüchtige
Medien und entfernbare als auch nicht entfernbare Medien. Computerlesbare
Medien können
als Beispiel und nicht als Limitierung Computerspeichermedien und Kommunikationsmedien
umfassen. Computerspeichermedien beinhalten sowohl flüchtige als
auch nichtflüchtige
und entfernbare als auch nicht entfernbare Medien, die nach irgendeinem
Verfahren oder irgendeiner Technologie zur Speicherung von Informationen,
wie etwa computerlesbaren Instruktionen, Datenstrukturen, Programmmodulen
oder anderen Daten implementiert sind. Computerspeichermedien beinhalten,
sind aber nicht limitiert auf RAM, ROM, EEPROM, Flash-Speicher oder
eine andere Speichertechnologie, CD-ROM, Digital Versatile Disks
(DVD) oder einen anderen optischen Scheibenspeicher, magnetische
Kassetten, ein magnetisches Band, ein magnetischer Diskettenspeicher
oder andere magnetische Speichergeräte, oder irgendein anderes
Medium, das zum Speichern der gewünschten Information benutzt
werden kann und auf das der Computer 110 zugreifen kann.
Kommunikationsmedien enthalten typischerweise computerlesbare Instruktionen,
Datenstrukturen, Programmmodule oder andere Daten in einem modulierten
Datensignal, wie etwa einer Trägerwelle
oder einem anderen Transportmechanismus und beinhalten jegliche
Informationslieferungsmedien. Der Ausdruck "moduliertes Datensignal" meint ein Signal,
das eine oder mehrere seiner Charakteristiken in solch einer Weise
eingestellt oder verändert
hat, um Information in dem Signal zu kodieren. Kommunikationsmedien
beinhalten als Beispiel und nicht als Limitierung kabelgebundene
Medien, wie etwa ein kabelgebundenes Netzwerk oder eine direkt verkabelte
Verbindung, und kabellose Medien, wie etwa akustische, RF, Infrarot
oder andere kabellose Medien. Jegliche Kombinationen von dem oberen
sollte auch im Umfang der computerlesbaren Medien enthalten sein.
-
Der
Systemspeicher 130 beinhaltet Computerspeichermedien in
der Form von flüchtigen
und/oder nichtflüchtigen
Speicher, wie etwa Lesespeicher (read only memory, ROM) 131 und
Schreiblesespeicher (random access memory, RAM) 132. Ein
Basisdaten-Austauschsystem (basic input/output system, BIOS) 133,
das die grundlegenden Routinen enthält, die helfen, Information
zwischen den Elementen innerhalb des Computers 110 zu transferieren,
wie etwa während
der Inbetriebsetzung (start-up), ist typischerweise im ROM 131 gespeichert.
Der RAM 132 enthält
typischerweise Daten und/oder Programmmodule, die sofort zugänglich und/oder
gerade von einer Prozesseinheit 120 angewandt werden. 1 illustriert
als Beispiel und nicht als Limitierung ein Betriebssystem 134,
Anwendungsprogramme 135, andere Programmmodule 136 und
Programmdaten 137.
-
Der
Computer 110 kann auch andere entfernbare/nicht entfernbare,
flüchtige/nichtflüchtige Computerspeichermedien
enthalten. 1 illustriert nur als Beispiel
ein Festplattenlaufwerk 141, das von nicht entfernbaren,
nichtflüchtigen,
magnetischen Medien liest oder auf diese schreibt, ein magnetisches
Diskettenlaufwerk 151, das von einer entfernbaren, nichtflüchtigen,
magnetischen Diskette 152 liest oder auf diese schreibt,
und ein optisches Scheibenlaufwerk 155, das von einer entfernbaren,
nichtflüchtigen,
optischen Scheibe 156 liest oder auf diese schreibt, wie
etwa eine CD-ROM oder andere optische Medien. Andere entfernbare/nicht
entfernbare, flüchtige/nichtflüchtige Computerspeichermedien,
die in der exemplarischen Betriebsumgebung verwendet werden können, beinhalten,
aber sind nicht limitiert auf magnetische Bandkassetten, Flash-Speicherkarten,
Digital Versatile Disks (DVDs), ein digitales Videoband, ein Festkörper-RAM,
ein Festkörper-ROM
und dergleichen. Das Festplattenlaufwerk 141 ist typischerweise
mit dem Systembus 121 durch eine Schnittstelle für nicht
entfernbaren Speicher, wie etwa Schnittstelle 140 verbunden,
und das magnetische Dis kettenlaufwerk 151 und das optische
Scheibenlaufwerk 155 sind typischerweise mit dem Systembus 121 durch
eine Schnittstelle für
entfernbaren Speicher, wie etwa Schnittstelle 150, verbunden.
-
Die
Laufwerke und ihre zugehörigen
Computerspeichermedien, die oben diskutiert sind und in 1 illustriert
sind, stellen Speicher für
computerlesbare Instruktionen, Datenstrukturen, Programmmodule und
andere Daten für
den Computer 110 zur Verfügung. In 1 ist
beispielsweise das Festplattenlaufwerk 141 dargestellt
als das das Betriebssystem 144, Anwendungsprogramme 145,
andere Programmmodule 146 und andere Programmdaten 147 speichernde
Laufwerk. Es ist anzumerken, dass diese Komponenten entweder gleich
oder verschieden vom Betriebssystem 134, den Anwendungsprogrammen 135,
den anderen Programmmodulen 136 und den Programmdaten 137 sein
können.
Dem Betriebssystem 144, den Anwendungsprogramme 145,
den anderen Programmmodule 146 und den Programmdaten 147 sind
hier verschiedene Nummern gegeben worden, um zu illustrieren, dass
sie zumindest verschiedene Kopien sind.
-
Ein
Benutzer kann Kommandos und Information in den Computer 110 durch
Eingabegeräte,
wie etwa einer Tastatur 162, einem Mikrofon 163 und
einem Zeigegerät 161,
wie etwa einer Maus, einem Trackball oder einem Touchpad, eingeben.
Andere Eingabegeräte
(nicht gezeigt) können
einen Joystick, ein Gamepad, eine Satellitenschüssel, einen Scanner oder dergleichen
beinhalten. Diese und andere Eingabegeräte sind oft mit der Verarbeitungseinheit 120 durch
eine Schnittstelle 160 für die Benutzereingabe verbunden,
die mit dem Systembus verbunden ist, können aber auch durch eine andere
Schnittstelle und Bus-Strukturen, wie etwa einem parallelen Port,
einem Spiel-Port oder einem Universal Serial Bus (USB) verbunden
sein. Ein Monitor 191 oder eine andere Art von Anzeigegerät ist ebenso
mit dem Systembus 121 mittels einer Schnittstelle, wie
etwa einer Videoschnittstelle 190, verbunden. Zusätzlich zu
dem Monitor können
die Computer auch andere periphere Ausgabegeräte, wie etwa Lautsprecher 197 und
einen Drucker 196 beinhalten, die durch eine Schnittstelle
zur peripheren Ausgabe 195 verbunden sein können.
-
Der
Computer 110 kann in einer vernetzten Umgebung unter Verwendung
von logischen Verbindungen zu einem oder mehreren entfernten Computern,
wie etwa einem entfernten Computer 180, arbeiten. Der entfernte
Computer 180 kann ein Personalcomputer, ein tragbares Gerät, ein Server,
ein Router, ein Netzwerk-PC, ein Peer-Gerät oder ein anderer gemeinsamer
Netzwerkknoten sein und beinhaltet typischerweise viele oder alle der
oben, unter Bezug auf Computer 110, beschriebenen Elemente.
Die logischen Verbindungen, die in 1 beschrieben
sind, beinhalten ein Nahbereichsnetzwerk (local area network, LAN) 171 und ein
Weitbereichsnetzwerk (wide area network, WAN) 173, können aber
auch andere Netzwerke beinhalten. Solche netzwerkbetriebenen Umgebungen
sind in Büros,
unternehmensweiten Computernetzwerken, Intranets und dem Internet
alltäglich.
-
Der
Computer 110 ist mit dem LAN 171 durch eine Netzwerkschnittstelle
oder einem Adapter 170 verbunden, wenn er in einer LAN-netzwerkbetriebenen
Umgebung benutzt wird. Der Computer 110 beinhaltet typischerweise
ein Modem 172 oder andere Mittel zur Herstellung von Kommunikationen über das
WAN 173, wie etwa das Internet, wenn er in einer WAN-netzwerkbetriebenen
Umgebung benutzt wird. Das Modem 172, welches intern oder
extern sein kann, kann mit dem Systembus 121 über die
Schnittstelle 160 für
die Benutzereingabe oder einem anderen geeigneten Mechanismus verbunden
sein. In einer netzwerkbetriebenen Umgebung können Programmmodule, die im
Zusammenhang mit Computer 110 dargestellt sind, oder Teile
davon, in einem entfernten Datenspeichergerät gespeichert sein. Als Beispiel
und nicht als Beschränkung
illustriert 1 entfernte Anwendungsprogramme 185 als
im entfernten Computer 180 angesiedelt. Es wird anerkannt
werden, dass die dargestellten Netzwerkverbindungen exemplarisch
sind und andere Mittel zur Herstellung einer Kommunikationsverbindung
zwischen den Computern benutzt werden können.
-
2 ist
ein Blockdiagramm eines mobilen Geräts 200, das eine alternative,
exemplarische Computerumgebung ist. Das mobile Gerät 200 beinhaltet
einen Mikroprozessor 202, einen Speicher 204,
Eingabe/Ausgabe (I/O) Komponenten 206 und eine Kommunikationsschnittstelle 208 zur
Kommunikation mit entfernten Computern oder anderen mobilen Geräten. In
einer Ausführungsform
sind die zuvor erwähnten
Komponenten zur Kommunikation über
einen geeigneten Bus 210 aneinander gekoppelt.
-
Der
Speicher 204 ist als nichtflüchtiger, elektronischer Speicher,
wie etwa ein Schreib-Lese-Speicher (random
access memory, RAM), mit einem Batterie-Backup-Modul (nicht gezeigt)
implementiert, so dass Information, die im Speicher 204 gespeichert
ist, nicht verloren wird, wenn der allgemeine Strom für das mobile Gerät 200 heruntergefahren
wird. Ein Teil des Speichers 204 wird vorzugsweise als
adressierbarer Speicher für
die Programmausführung
bereitgestellt, während
ein anderer Teil des Speichers 204 vor zugsweise zur Speicherung
genutzt wird, wie etwa zum Simulieren von Speicher auf einem Diskettenlaufwerk.
-
Der
Speicher 204 beinhaltet sowohl ein Betriebssystem 212,
Anwendungsprogramme 214 als auch einen Objektspeicher 216.
Das Betriebssystem 212 wird vorzugsweise vom Prozessor 202 aus
dem Speicher 204 während
des Betriebs ausgeführt.
In einer bevorzugten Ausführungsform
ist das Betriebssystem 212 ein Betriebssystem der Marke
WINDOWS® CE,
welches kommerziell von der Microsoft Corporation erhältlich ist. Das
Betriebssystem 212 ist vorzugsweise für mobile Geräte ausgelegt
und implementiert Datenbankfeature, die von Anwendung 214 durch
eine Reihe von exponierten Programmierschnittstellen (application
programming interfaces) und Verfahren genutzt werden können. Die
Objekte im Objektspeicher 216 werden von den Anwendern 214 und
dem Betriebssystem 212 wenigstens teilweise in Antwort
auf Aufrufe an die exponierten Programmierschnittstellen und Verfahren
gepflegt.
-
Die
Schnittstelle zur Kommunikation 208 repräsentiert
zahlreiche Geräte
und Technologien, die es dem mobilen Gerät 200 erlauben, Information
zu senden und zu empfangen. Die Geräte beinhalten kabelgebundene
und kabellose Modems, Satellitenempfänger und Rundfunktuner, um
nur einige zu nennen. Das mobile Gerät 200 kann auch direkt
mit einem Computer verbunden werden, um mit diesem Daten auszutauschen. In
solchen Fällen
kann die Schnittstelle zur Kommunikation 208 ein Infrarotsender/-empfänger oder
eine serielle oder parallele Kommunikationsverbindung sein, wobei
alle Streaming-Information übertragen
können.
-
Die
Eingabe-/Ausgabekomponenten 206 beinhalten sowohl eine
Vielzahl von Eingabegeräten,
wie etwa einen berührungsempfindlichen
Bildschirm, Knöpfe,
Rollen und ein Mikrofon als auch eine Vielzahl von Ausgabegeräten, beinhaltend
einen Audiogenerator, ein Vibrationsgerät und eine Anzeige. Die oben
aufgeführten
Geräte
sind Beispiele und müssen
nicht alle auf dem mobilen Gerät 200 zugegen
sein. Zusätzlich
können
andere Eingabe-/Ausgabegeräte
innerhalb des Umfangs der vorliegenden Erfindung am mobilen Gerät 200 angeschlossen
sein oder am mobilen Gerät 200 vorgefunden
werden.
-
3 stellt
ein detailliertes Blockdiagramm der Spracherkennungsmodule zur Verfügung, die
im Speziellen für
die vorliegende Erfindung relevant sind. In 3 wird ein
Eingabesprachsignal in ein elektrisches Signal, wenn nötig von
einem Mikrofon 300, umgewandelt. Das elektrische Signal
wird dann von einem analog zu digital oder A/D-Wandler 302 in eine Serie von
digitalen Werten umgewandelt. In einigen Ausführungs formen tastet der A/D-Wandler 302 das
analoge Signal bei 16 kHz und 16 bits pro Abtastung (sample) ab
und erstellt dadurch 32 Kilobytes Sprachdaten pro Sekunde.
-
Die
digitalen Daten werden einer Frame-Kontruktionseinheit 304 zur
Verfügung
gestellt, die digitalen Werte in Frames (Rahmen) von Werten gruppiert.
In einer Ausführungsform
ist jeder Frame 25 Millisekunden lang und beginnt 10 Millisekunden
nach dem Beginn des vorigen Frames.
-
Die
Frames von digitalen Daten werden einem Feature-Extraktor (Eigenschaftsextraktor) 304 zur
Verfügung
gestellt, der ein Feature aus dem digitalen Signal extrahiert. Beispiele
von Feature-Extraktionsmodulen beinhalten Module zur Durchführung der
linear voraussagenden Kodierung (Linear Predicitve Coding, LPC), des
LPC-abgeleiteten Cepstrum, der wahrnehmenden linearen Voraussage
(Perceptive Linear Prediciton, PLP), der Feature-Extraktion nach
einem auditiven Modell (Auditory model feature extraction) und der
Mel-Frequenz Cepstrum Koeffizienten (Mel-Frequency Cepstrum Coefficients,
MFCC) Feature-Extraktion. Es ist anzumerken, dass die Erfindung
nicht auf diese Feature-Extraktionsmodule
beschränkt
ist und dass andere Module innerhalb des Kontext der vorliegenden
Erfindung benutzt werden können.
-
Der
Feature-Extraktor 306 kann einen einzelnen, vieldimensionalen
Feature-Vektor pro Frame produzieren. Die Anzahl der Dimensionen
oder Werte im Feature-Vektor ist abhängig vom Typ der Feature-Extraktion,
die benutzt wird. Beispielsweise haben Mel-Frequenz-Cepstrum-Koeffizienten-Vektoren
im Allgemein zwölf
Koeffizienten plus einen Koeffizienten, der die Leistung (power)
repräsentiert,
für insgesamt
13 Dimensionen. In einer Ausführungsform
wird ein Feature-Vektor aus den Mel-Koeffizienten berechnet, indem
die erste und zweite Ableitung der Mel-Frequenz-Koeffizienten plus
Leistung bezüglich
der Zeit genommen wird. Jeder Frame steht also für solche Feature-Vektoren in
Zusammenhang mit 39 Werten, die den Feature-Vektor bilden.
-
Während der
Spracherkennung wird der Strom von Feature-Vektoren, der vom Feature-Extraktor 306 produziert
wird, dem Decoder 308 zur Verfügung gestellt, der die höchst wahrscheinliche
oder wahrscheinliche Sequenz von Worten, basierend auf dem Strom
von Feature-Vektoren, dem Systemlexikon 310, gegebenenfalls
dem Anwendungslexikon 312, dem Benutzerlexikon 314,
dem Sprachmodell 316 und dem akustischen Modell 318 identifiziert.
-
In
den meisten Ausführungsformen
ist das akustische Modell 318 ein verborgenes Markov-Modell
(Hidden Markov Modell), das aus einer Menge von verborgenen Zuständen mit
einem Zustand pro Frame des Eingangssignals besteht. Jeder Zustand
hat eine dazugehörige
Menge von Wahrscheinlichkeitsverteilungen, die die Wahrscheinlichkeit
beschreiben, dass ein Eingangsfeature-Vektor einem bestimmten Zustand
entspricht. In einigen Ausführungsformen
steht ein Gemisch von Wahrscheinlichkeiten (typischerweise 10 Gaußsche Wahrscheinlichkeiten)
in Zusammenhang mit jedem Zustand. Das verborgene Markov-Modell
beinhaltet also Wahrscheinlichkeiten sowohl für den Übergang zwischen zwei benachbarten
Modellzuständen
als auch für
erlaubte Übergänge zwischen
Zustände
für bestimmende
linguistische Einheiten. Die Größe der linguistischen
Einheiten kann für
verschiedene Ausführungsformen
der vorliegenden Erfindung verschieden sein. Die linguistischen
Einheiten können
zum Beispiel Senone, Phoneme, Diphone (diphones), Triphone (triphones), Silben
oder sogar ganze Worte sein.
-
Das
Systemlexikon 310 besteht aus einer Liste von linguistischen
Einheiten (typischerweise Worte oder Silben), die für eine bestimmende
Sprache gültig
sind. Der Decoder 308 benutzt das Systemlexikon 310, um
seine Suche für
mögliche
linguistische Einheiten auf solche zu begrenzen, die tatsächlich Teil
der Sprache sind. Das Systemlexikon 310 beinhaltet auch
Ausspracheinformation (das heißt
Mappings von jeder linguistischen Einheit zu einer Sequenz von akustischen
Einheiten, die vom akustischen Modell 318 benutzt werden). Das
optionale Anwendungslexikon 312 ist ähnlich zum Systemlexikon 310 außer dass
das Anwendungslexikon 312 linguistische Einheiten enthält, die
von einer bestimmten Anwendung hinzugefügt werden und dass das Systemlexikon 310 linguistische
Einheiten enthält,
die mit dem Spracherkennungssystem zur Verfügung gestellt wurden. Das Benutzerlexikon 314 ist
ebenso ähnlich
zum Systemlexikon 310, außer dass das Benutzerlexikon 314 linguistische
Einheiten enthält,
die vom Benutzer hinzugefügt
worden sind. Gemäß der vorliegenden
Erfindung wird ein Verfahren und eine Vorrichtung zum Hinzufügen neuer
linguistischen Einheiten, insbesondere zum Benutzerlexikon 314,
zur Verfügung
gestellt.
-
Das
Sprachmodell 316 stellt eine Menge von Wahrscheinlichkeiten
oder Probabiltäten
zur Verfügung, dass
eine bestimmende Sequenz von linguistischen Einheiten in einer bestimmten
Sprache auftreten wird. In vielen Ausführungsformen basiert das Sprachmodell 316 auf
einer Textdatenbank, wie etwa den nordamerikanischen Wirtschaftsnachrichten
(North American Business News, NAB), die in größerer Einzelheit in einer Publikation
mit dem Titel „CSR-III
Text Language Model",
University of Penn., 1994 be schrieben wird. Das Sprachmodell 316 kann
eine kontextfreie Grammatik, ein statistisches n-Gramm-Modell, wie
etwa ein Trigramm, oder eine Kombination von beiden sein. In einer
Ausführungsform
ist das Sprachmodell 316 ein kompaktes Trigramm-Modell,
das die Wahrscheinlichkeit einer Sequenz von Worten basierend auf
den kombinierten Wahrscheinlichkeiten von Dreiwort-Segmenten der
Sequenz bestimmt.
-
Der
Decoder 308 identifiziert eine höchst wahrscheinliche Sequenz
von linguistischen Einheiten aus allen möglichen „linguistischen Einheit"-Sequenzen basierend
auf dem akustischen Modell 318, dem Sprachmodell 316 und
den Lexika 310, 312 und 314. Diese Sequenz
von linguistischen Einheiten repräsentiert eine Transkription
des Sprachsignals.
-
Die
Transkription wird einem Ausgabemodul 320 zur Verfügung gestellt,
das den Overhead abarbeitet, der mit der Übertragung der Transkription
zu einer oder mehreren Anwendungen im Zusammenhang steht. In einer
Ausführungsform
kommuniziert das Ausgabemodul 320 mit einer mittleren Schicht,
die zwischen der Spracherkennungsmaschine von 3 und
einer oder gegebenenfalls mehreren Anwendungen existiert.
-
Gemäß der vorliegenden
Erfindung können
neue Worte zu einem Benutzerlexikon 314 durch Eingabe des
Textes des Wortes an der Benutzerschnittstelle 321 und
durch Aussprechen des Wortes in das Mikrofon 300 hinzugefügt werden.
Das ausgesprochene Wort wird vom A/D-Wandler 302, von der
Frame-Konstruktion 304 und vom Feature-Extraktor 306 in Feature-Vektoren
umgewandelt. Während
des Prozesses des Hinzufügens
eines Wortes werden diese Feature-Vektoren einer Lexikonaktualisierungseinheit 322 anstatt
dem Decoder 308 zur Verfügung gestellt. Die Aktualisierungseinheit 322 empfängt auch
den Text des neuen Wortes von der Benutzerschnittstelle 321.
Die Lexikonaktualisierungseinheit 322 aktualisiert das
Benutzerlexikon 314 und das Sprachmodell 316 durch
einen Prozess, der weiter unter beschrieben wird, basierend auf
den Feature-Vektoren und dem Text des neuen Wortes
-
4 stellt
ein Blockdiagramm der Komponenten in der Lexikonaktualisierungseinheit 322 zur
Verfügung,
die benutzt werden, um das Benutzerlexikon 314 und das
Sprachmodell 316 zu aktualisieren. 5 stellt
ein Flussdiagramm eines Verfahrens zur Aktualisierung des Benutzerlexikons
zur Verfügung,
das von den Komponenten der 4 implementiert
ist.
-
Beim
Schritt 502 gibt der Benutzer das neue Wort durch Aussprechen
des Wortes in das Mikrofon 300 ein, um eine, vom Benutzer
bereitgestellte, akustische Probe 401 zur Verfügung zu
stellen. Die, vom Benutzer bereitgestellte, akustische Probe 401 wird
zu Feature-Vektoren 403, wie oben beschrieben, umgewandelt,
die der Lexikonaktualisierungseinheit 322 zur Verfügung gestellt
werden. Im Besonderen werden die Feature-Vektoren 403 der „silbenartigen
Einheit" (syllabel-like
unit, SLU) Maschine 405 zur Verfügung gestellt, um eine höchst wahrscheinliche
Sequenz von silbenartigen Einheiten zu generieren, die von den Feature-Vektoren 403 beim
Schritt 504 der 5 repräsentiert werden können. Die
SLU-Maschine 405 umfasst oder greift zu auf ein SLU-Wörterbuch 409 und
ein akustisches Modell 318, um die höchst wahrscheinliche Sequenz
von SLUs zu generieren, typischerweise basierend auf einer höchsten Wahrscheinlichkeitspunktzahl.
Die SLU-Maschine 403 wandelt dann die höchst wahrscheinliche Sequenz
von silbenartigen Einheiten in eine Sequenz von phonetischen Einheiten
um, die einem Abgleichmodul 414 (alignment module) zur
Verfügung
gestellt wird. Das SLU-Wörterbuch 409 wird
im größeren Detail
in der Beschreibung entsprechend zu 7 unten
beschrieben.
-
Es
ist wichtig anzumerken, dass in einigen Fällen, die Benutzeraussprache
eines neuen Wortes von einer typischen Aussprache sehr verschieden
sein kann. Beispielsweise könnte
ein Sprecher ein englisches Wort durch die Substitution einer ausländischen Übersetzung
des englischen Wortes aussprechen. Diese Eigenschaft würde beispielsweise
einem Spracherkennungslexikon erlauben, den Text oder die Schreibweise
eines Wortes in einer Sprache und die akustische Beschreibung in
einer zweiten Sprache verschieden von der ersten Sprache zu speichern.
-
Beim
Schritt 506 gibt der Benutzer den Text eines neuen Wortes
ein, um die, vom Benutzer bereitgestellte, Textprobe 402 zu
produzieren. Es ist zu beachten, dass der Schritt 506 vor,
nach oder gleichzeitig mit dem Schritt 502 durchgeführt werden
kann. Die, vom Benutzer bereitgestellte, Textprobe 402 wird
dem Grammatikmodul 404 zur Verfügung gestellt, das beim Schritt 508 den
Text in eine Liste von möglichen
textbasierten phonetischen Sequenzen umwandelt. Das Grammatikmodul 404 konstruiert
im Speziellen eine Grammatik, wie etwa eine kontextfreie Grammatik,
für die,
vom Benutzer bereitgestellte, Textprobe 402. Das Grammatikmodul 404 umfasst
oder greift zu auf das Lexikon 406 und die Buchstabe zu
Laut (letter to sound, LTS) Maschine 408. Das Grammatikmodul 404 durchsucht
zuerst Lexikon 406, das das Systemlexikon 310,
das optionale Anwendungslexikon 312 und das Benutzerlexikon 314 umfasst,
um mögliche phonetische
Beschreibungen, Aussprachen oder Sequenzen für irgendwelche, vom Benutzer
bereitgestellten, Textproben 402 abzufragen.
-
Die
LTS-Maschine 408 wandelt die, vom Benutzer bereitgestellte,
Textprobe 402 in eine oder mehrere mögliche phonetische Sequenzen
um, insbesondere wenn das Wort nicht im Lexikon 406 gefunden
wird. Diese Umwandlung wird durch die Ausnutzung einer Ansammlung
von Ausspracheregeln 410 durchgeführt, die für eine bestimmende Sprache
des Interesses geeignet sind. In den meisten Ausführungsformen
werden die phonetischen Sequenzen aus einer Serie von Phonemen konstruiert.
In anderen Ausführungsformen
ist die phonetische Sequenz eine Sequenz von Triphonen. Das Grammatikmodul 404 generiert
also eine oder mehrere mögliche
textbasierte phonetische Sequenzen 412 aus dem Lexikon 406 und
der LTS-Maschine 408.
-
Die
beste phonetische Sequenz 407 von der SLU-Maschine 405 und
eine Liste möglicher
phonetischer Sequenzen 412 vom Grammatikmodul 404 werden
einem Abgleichmodul 414 zur Verfügung gestellt, wieder Bezug
nehmend auf 4. Beim Schritt 510 gleicht
das Abgleichmodul 414 die phonetischen Sequenzen 407 und 412 in
einer ähnlichen
Weise wie wohlbekannte Abgleichmodule und/oder Verfahren zur Berechnung
von Spracherkennungsfehlerraten, die beispielsweise von Substitutionsfehlern,
Löschungsfehlern
und Einfügungsfehlern
herrühren,
ab. In einigen Ausführungsformen
kann der Abgleich mittels einer minimalen Distanz zwischen zwei
Sequenzstrings (z.B. einer korrekten Referenz und einer Erkennungshypothese)
durchgeführt
werden. Das Abgleichmodul 414 generiert eine Liste, einen
Graph oder eine Tabelle von abgeglichenen phonetischen Sequenzen.
-
Beim
Schritt 511 platziert das Abgleichmodul 414 die
abgeglichenen phonetischen Sequenzen in einen einzelnen Graph. Während dieses
Prozesses werden identische phonetische Einheiten, die miteinander abgeglichen
werden, auf einen einzelnen Pfad kombiniert. Sich unterscheidende
phonetische Einheiten, die miteinander abgeglichen werden, werden
auf parallele, alternative Pfade im Graph platziert.
-
Der
einzelne Graph wird dem Neubepunktungsmodul (rescoring module) 416 zur
Verfügung
gestellt. Beim Schritt 512 werden die Feature-Vektoren 403 wieder
benutzt, um mögliche
Kombinationen von phonetischen Einheiten, die von Pfaden durch den
einzelnen Graph repräsentiert
werden, neu zu bepunkten. Gemäß einer
Ausführungsform
führt das
Neubepunktungsmodul 416 eine Viterbi-Suche durch, um den
besten Pfad durch den Graph mit Hilfe „akustischer Modell"-Punktzahlen zu identifizieren,
die durch das Vergleichen der Feature-Vektoren 403, die
durch die Benutzeraussprache des Wortes produziert werden, mit den
Modellparametern, die im akustischen Modell 318 für jede phonetische
Einheit entlang eines Pfades gespeichert sind, generiert werden.
Diese Bepunktung ist ähnlich
zu der Bepunktung, die vom Decoder 308 während der
Spracherkennung durchgeführt
wird.
-
Das
Punktzahlauswahl- und Aktualisierungsmodul 418 wählt die
phonetische Sequenz oder den Pfad durch den einzelnen Graph aus,
die/der die höchste
Bepunktung liefert. Die ausgewählte
Sequenz wird zur Verfügung
gestellt, um das Benutzerlexikon 314 beim Schritt 514 und
das Sprachmodell 316 beim Schritt 516 zu aktualisieren.
-
6 illustriert
ein Beispiel, wie die vorliegende Erfindung eine Aussprache für ein Wort
abarbeitet oder lernt. Block 602 illustriert die Benutzeraussprache
des Wortes "voicexml" und Block 603 repräsentiert
den eingegebenen Text für "voicexml". Das Wort "voicexml" ist illustrativ
für Vorteile
der vorliegenden Erfindung bei der Generierung einer Aussprache
eines Kombinationswortes wie oben beschrieben. Ein erster Teil des
Wortes "voicexml" oder "voice" ist ein relativ
vorhersehbares Wort oder Wortsegment, das LTS-Maschinen, wie etwa LTS-Maschine 408 in 4,
typischerweise genau abarbeiten können. Der zweite Teil des Wortes,
nämlich "xml", ist jedoch ein
unvorhersehbares oder atypisches Wort oder Abkürzung, mit welchem/welcher LTS-Maschinen
Genauigkeitsprobleme bei der Abarbeitung haben können. Typische SLU-Maschinen
jedoch, wie etwa die SLU-Maschine 405, können im
Allgemeinen Worte oder Wortsegmente, wie etwa "xml",
gut abarbeiten, da SLU-Maschinen auf die akustische Aussprache des
Benutzers angewiesen sind.
-
Block 604 illustriert
eine höchst
wahrscheinliche phonetische Sequenz, die etwa von der SLU-Maschine 405 in 4 und
Schritt 504 in 5 generiert wird. Die beste
Aussprache für
die akustische oder gesprochene Version des Wortes "voicexml" ist also wie folgt:
ow-s-eh-k-s-eh-m-eh-l.
-
In
diesem Fall hat der Benutzer entweder die phonetische Einheit "v" nicht ausgesprochen oder das SLU-Modell
hat die phonetische Einheit "v" nicht gut vorhergesagt.
Als Ergebnis wurde die phonetische Einheit "v",
die erwartet worden wäre,
vom Anfang der phonetischen Sequenz fallengelassen.
-
Beim
Block 609 wird eine Liste von möglichen phonetischen Sequenzen 606 und 608 für die Schreibweise
oder die Textversion des Wortes "voicexml" von der LTS-Maschine 408 generiert,
was die folgenden Sequenzen von phonetischen Einheiten beinhaltet:
v-oy-s-eh-k-s-m-ax-l.
v-ow-s-g-z-m-ax-l
-
Die
phonetischen Einheiten aus den Blocks 604 und 609 werden
vom Abgleichmodul 414 in einer Abgleichstruktur kombiniert,
die im Block 610 gezeigt ist. Dieses Abgleichen wird typischerweise
mit Hilfe dynamischer Programmierung und einer Kostenfunktion durchgeführt, die
auf den Differenzen zwischen den phonetischen Sequenzen in Anbetracht
verschiedener Abgleiche basiert. Im Block 610 treten die
abgeglichenen phonetischen Einheiten in der gleichen vertikalen
Spalte auf. Es ist anzumerken, dass einige Spalten ein "–" haben, was einen leeren Pfad repräsentiert,
mit dem keine phonetische Einheit in Zusammenhang steht, das heißt, dass
die Spalte optional oder auslassbar ist.
-
Block 612 illustriert
einen einzelnen Graph, der aus der abgeglichenen Struktur 610 konstruiert
ist, umfassend mögliche
phonetische Sequenzen, die aus der abgeglichenen Struktur gebildet
werden können.
Block 612 repräsentiert
eine Suchstruktur in welcher phonetische Einheiten auf Pfaden zwischen
Knoten platziert sind. Innerhalb der Struktur sind Übergänge zwischen
phonetischen Einheiten, die von der SLU-Maschine identifiziert werden,
sprachbasierte phonetische Einheiten, und phonetische Einheiten,
die von der LTS-Maschine identifiziert werden, textbasierte phonetische
Einheiten, erlaubt. Block 612 illustriert auch, dass ein
ausgewählter
Pfad "Sprünge" (skips) enthalten
kann, wo keine phonetische Einheit aus einer bestimmten Spalte im
Pfad enthalten ist.
-
Wie
oben beschrieben wird die phonetische Sequenz oder der Pfad mit
Hilfe der Benutzeraussprache des Wortes und dem akustischen Modell
ausgewählt.
Block 614 illustriert die ausgewählte phonetische Sequenz oder
den Pfad in Übereinstimmung
mit der vorliegenden Erfindung und ist unten zur Verfügung gestellt:
v-oy-s-eh-k-s-eh-m-eh-l.
-
Es
ist zu beachten, dass der endgültige
Pfad mit einer phonetischen Sequenz beginnt, die von der LTS-Maschine
vorhergesagt ist, aber mit einer phonetischen Sequenz endet, die
von der SLU-Maschine vorhergesagt ist. Gemäß dem Stand der Technik würde dies
nicht möglich
sein. Die vorliegende Erfindung wählt also eine phonetische Sequenz
aus einem einzelnen Graph aus, der sowohl mögliche Sequenzen aus einer sprachbasierten SLU-Maschine
als auch einer textbasierten LTS-Maschine mit einbezieht, um eine
exaktere Aussprache des Wortes zu generieren.
-
„Silbenähnliche Einheit" (Syllable-like-unit,
SLU) Menge
-
7 illustriert
ein Verfahren zur Konstruktion einer Menge oder eines Wörterbuchs
von silbenartigen Einheiten (SLUs) 409, die in einigen
Ausführungsformen
der vorliegenden Erfindung verwendet werden können. Das Verfahren von 7 kann
im Allgemeinen vorteilhaft sein, da es ein datenbasierter Ansatz
ist, der nicht auf sprachspezifische, linguistische Regeln angewiesen
ist. Der Ansatz, der in 7 illustriert ist, kann also
in jeglicher Sprache benutzt werden und ist relativ kostengünstig zu
implementieren, da er keine ausgebildeten Linguisten benötigt, die
für andere
Ansätze
notwendig sein können,
insbesondere bei auf „linguistischer
Regel" basierenden
Ansätzen.
-
Das
Verfahren von 7 setzt beidseitige Information
(mutual information, MI) ein, um eine SLU-Menge zu konstruieren
und benutzt einen Algorithmus ähnlich
zu dem Algorithmus, der in der Doktorarbeit mit dem Titel "Modeling Out-of-vocabulary
Words For Robust Speech Recognition" von Issam Bazzi, 2000, beschrieben
wird, der in einem anderen Zusammenhang benutzt wurde. In der vorliegenden
Erfindung wird eine Menge von silbenartigen Einheiten einer vorbestimmten
oder begrenzten Größe, z.B.
10000 Einheiten, in Anbetracht eines großen phonetischen Wörterbuchs,
z.B. eines Trainingswörterbuchs
von vielleicht 50.000 oder mehr Worten mit phonetischen Beschreibungen,
konstruiert.
-
Beim
Block 702 ist die anfängliche
SLU-Menge So gleich der Menge der Phone P = {p1,
p2, ...pn}, was typischerweise
die 40 Phone, die im englischen Spracherkennungssystem gefunden
werden, sind, so dass So = {s1, s2, ...sm} = {p1, p2, ...pn}, wobei m und n die Anzahl von SLUs bzw.
Phone ist und anfänglich
m = n gilt.
-
Sei
(u
1, u
2) irgendein
Paar von SLUs in einer aktuellen Iteration. Beim Block
704 wird
die beidseitige Information von Paaren von linguistischen Einheiten
(u
1, u
2), die in
Einträgen
im Wörterbuch
gefunden werden, mit der folgenden Gleichung berechnet.
wobei
MI(u
1,u
2) die beidseitige
Information des „silbenartigen
Einheit"-Paars (u
1,u
2) ist, Pr(u
1,u
2) die gemeinsame
Wahrscheinlichkeit von (u
1,u
2)
ist und Pr(u
1) und Pr(u
2)
die Unigrammwahrscheinlichkeiten von u
1 bzw.
u
2 sind.
-
Die
Unigrammwahrscheinlichkeiten Pr(u
1) und
Pr(u
2) werden mit Hilfe der folgenden Gleichungen
berechnet:
wobei Count(u
1)
und Count(u
2) angeben, wie oft die silbenartigen
Einheiten u
1 bzw. u
2 im
Trainingswörterbuch gefunden
werden, und Count(*) ist die Gesamtzahl der „silbenartigen Einheit"-Instanzen im Trainingswörterbuch.
Die gemeinsame Wahrscheinlichkeit von (u
1,u
2) kann durch die folgende Gleichung berechnet
werden:
wobei Count(u
1,u
2) angibt, wie oft das Paar (u
1,u
2) zusammen (d.h. angrenzend) im Trainingswörterbuch
auftritt.
-
Beim
Block 706 wird das Paar (u1,u2), das die maximale beidseitige Information
hat, ausgewählt
oder identifiziert. Beim Block 708 wird das Paar (u1,u2) mit der maximalen
beidseitigen Information zu einer neuen und längeren silbenartigen Einheit
u3 gemischt. Die neue silbenartige Einheit
u3 ersetzt oder substituiert das Paar (u1,u2) in den Worten
im Trainingswörterbuch.
-
Beim
Block 710 wird eine Entscheidung getroffen, ob die Iterationen
abgebrochen werden. In einigen Ausführungsformen können die
Parameter, die die maximale Länge
einer SLU kontrollieren, benutzt werden. Die maximale „silbenartige
Einheit"-Länge kann
beispielsweise auf vier Phone gesetzt werden. Falls die ausgewählte Länge erreicht
wird, dann bricht das Mischen des ausgewählten Paares ab und das nächste Paar
mit der höchsten
beidseitigen Information wird stattdessen überprüft. Falls kein weiteres Paar
verfügbar
ist oder falls die Anzahl der SLUs (m) die gewünschte Anzahl erreicht, oder
die maximale beidseitige Information unterhalb eines gewissen Schwellwertes
fällt,
schreitet das Verfahren der 7 zu Block 712 fort,
wo die SLU-Menge S ausgegeben wird. Andernfalls kehrt das Verfahren
zu Block 704 zurück,
wo die beidseitige Information von silbenartigen Einheiten, nachdem
die neue Einheit u3 generiert ist, neu berechnet
wird und die Unigramm- und Bigramm-Zählungen (counts) der Betroffenen
neu berechnet werden. In einer Ausführungsform wird nur ein Paar
von silbenartigen Einheiten bei jeder Iteration gemischt. In anderen
Ausführungsformen jedoch
kann eine ausgewählte
Anzahl von Paaren (z.B. 50 Paare) bei jeder Iteration gemischt werden,
falls Geschwindigkeit eine Rolle spielt, wie etwa in der Arbeit
von Bazzi.
-
Wenn
der Algorithmus von 7 abbricht, wird die Eingabe
oder das Trainingswörterbuch
in die endgültige
Menge von SLUs segmentiert. Ein „silbenartiges Einheit"-n-Gramm kann dann aus
dem segmentierten Wörterbuch
trainiert und mit der vorliegenden Erfindung implementiert werden.
Es ist herausgefunden worden, dass dieser datengetriebene Ansatz
leicht bessere Genauigkeit als die regelbasierten Silbifizierungsansätze liefert.
Es ist jedoch viel wichtiger, dass dieser Ansatz in jeglicher Sprache
ohne Code-Änderungen
verwendet werden kann, da sprachspezifische, linguistische Regeln
nicht benötigt
werden.
-
Obwohl
die vorliegende Erfindung mit Bezug zu bestimmten Ausführungsformen
beschrieben worden ist, werden Fachleute erkennen, dass Änderungen
in Form und Detail gemacht werden können, ohne vom Umfang der Erfindung
abzuweichen.