-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft Computer-Spracherkennung. Insbesondere
betrifft die vorliegende Erfindung ein Verfahren zur Erkennung sowohl
ununterbrochener als auch abgetrennter Sprache.
-
Die
erfolgreichsten momentanen Spracherkennungssysteme verwenden probabilistische
Modelle, welche als versteckte Markow-Modelle (hidden Markov models,
HMMs) bekannt sind. Ein verstecktes Markow-Modell weist eine Vielzahl
von Zuständen
auf, wobei eine Übergangswahrscheinlichkeit
für jeden Übergang
von jedem Zustand in jeden anderen Zustand definiert ist, einschließlich Übergängen in denselben
Zustand. Eine Beobachtung steht probabilistisch in Zusammenhang
mit jedem einzigartigen Zustand. Die Übergangswahrscheinlichkeiten
zwischen Zuständen
(die Wahrscheinlichkeiten, dass eine Beobachtung von einem Zustand
in den nächsten übergeht)
sind nicht immer die gleichen. Daher wird eine Suchtechnik, wie
beispielsweise ein Viterbi-Algorithmus, verwendet, um eine wahrscheinlichste
Zustandssequenz zu bestimmen, für
welche die Gesamtwahrscheinlichkeit mit gegebenen Übergangswahr scheinlichkeiten
zwischen Zuständen
und Beobachtungswahrscheinlichkeiten maximal ist.
-
In
momentanen Spracherkennungssystemen wird die Sprache als durch ein
verstecktes Markow-Verfahren erzeugt betrachtet. Folglich werden HMMs
verwendet, um beobachtete Sequenzen von Sprachspektren zu modellieren,
wobei spezifische Spektren probabilistisch mit einem Zustand in
einem HMM in Zusammenhang stehen. Anders gesagt existiert für eine bestimmte
beobachtete Sequenz von Sprachspektren eine wahrscheinlichste Sequenz
von Zuständen
in einem entsprechenden HMM.
-
Dieses
entsprechende HMM wird daher mit der beobachteten Sequenz in Zusammenhang
gebracht. Diese Technik kann ausgeweitet werden, so dass, wenn jede
einzelne Sequenz von Zuständen
in dem HMM mit einer Sub-Worteinheit in Zusammenhang steht, wie
beispielswiese einem Phonem, dann eine wahrscheinlichste Sequenz
von Sub-Worteinheiten gefunden werden kann. Darüber hinaus kann unter Verwendung
von Modellen davon, wie Sub-Worteinheiten kombiniert werden, um
Worte zu formen, und dann Verwendung von Sprachmodellen davon, wie
Worte kombiniert werden, um Sätze
zu formen, eine vollständige
Spracherkennung erzielt werden.
-
Bei
der tatsächlichen
Verarbeitung eines akustischen Signals wird das Signal typischerweise in
sequentiellen Zeitintervallen abgetastet, welche als Rahmen bezeichnet
werden. Die Rahmen weisen typischerweise eine Vielzahl von Mustern
auf und können
sich überlappen
oder zusammenhängend sein.
Jeder Rahmen steht mit einem einmaligen Abschnitt des Sprachsignals
in Verbindung. Der Abschnitt des Sprachsignals, welcher durch jeden
Rahmen dargestellt wird, wird analysiert, um einen entsprechenden
akustischen Vektor zu liefern. Während der
Spracherkennung wird eine Durchsuchung der Spracheinheitsmodelle
durchgeführt,
um die Zustandssequenz zu bestimmen, welche am wahrscheinlichsten
mit der Sequenz akustischer Vektoren in Zusammenhang steht.
-
Um
die wahrscheinlichste Sequenz von Zuständen zu finden, welche einer
Sequenz akustischer Vektoren entspricht, kann der Viterbi-Algorithmus verwendet
werden. Der Viterbi-Algorithmus führt eine Berechnung durch,
welche bei dem ersten Rahmen beginnt und in zeitsynchroner Weise
jedes Mal um einen Rahmen weiterschreitet. Ein Wahrscheinlichkeitstreffer
wird für
jeden Zustand in den Zustandssequenzen (d.h. den HMMs) berechnet,
welche betrachtet werden. Daher wird ein kumulativer Wahrscheinlichkeitstreffer
nach und nach für
jede der möglichen
Zustandssequenzen berechnet, wenn der Viterbi-Algorithmus das akustische
Signal Rahmen für
Rahmen analysiert. Bis zum Ende einer Äußerung liefert die Zustandssequenz
(oder HMM oder HMM-Reihe) mit dem höchsten durch den Viterbi-Algorithmus
berechneten Wahrscheinlichkeitstreffer die wahrscheinlichste Zustandssequenz
für die
gesamte Äußerung.
Die wahrscheinlichste Zustandssequenz wird dann in eine entsprechende
gesprochene Sub-Worteinheit, ein Wort oder eine Wortsequenz umgewandelt.
-
Der
Viterbi-Algorithmus reduziert eine Exponentialberechnung in eine,
welche proportional zu der Anzahl von Zuständen und Übergängen in dem Modell und der
Länge der Äußerung ist.
Für einen großen Wortschatz
wird jedoch die Anzahl von Zuständen
und Übergängen groß, und die
Berechnung, welche den Wahrscheinlichkeitstreffer in jedem Zustand
in jedem Rahmen für
alle möglichen
Zustandssequenzen aktualisieren muss, dauert viel länger als die
Dauer eines Rahmens, die typischerweise eine Dauer von ca. 10 Millisekunden
aufweist.
-
Somit
wurde eine Technik entwickelt, die als Ästung oder Strahlensuche bekannt
ist, um die für
die Bestimmung der wahrscheinlichsten Zustandssequenz benötigte Berechnung
stark zu reduzieren. Diese Art von Technik eliminiert die Notwendigkeit der
Berechnung des Wahrscheinlichkeitstreffers für sehr unwahrscheinliche Zustandssequenzen.
Dies wird typischerweise durch Vergleich des Wahrscheinlichkeitstreffers
für jede
verbleibende Zustandssequenz (oder potentielle Sequenz) an jedem
Rahmen unter Berücksichtigung
des höchsten
mit diesem Rahmen in Zusammenhang stehenden Treffers erzielt. Wenn
die Wahrscheinlichkeitsverteilung eines Zustandes für eine bestimmte
potentielle Sequenz ausreichend niedrig ist (bei Vergleich mit der
maximalen berechneten Wahrscheinlichkeitsverteilung für die anderen
potentiellen Sequenzen zu einem Zeitpunkt), so nimmt der Ästungsalgorithmus
an, dass es unwahrscheinlich ist, dass eine Zustandssequenz mit derart
geringem Treffer ein Teil der vollständigen wahrscheinlichsten Zustandssequenz
sein wird. Der Vergleich wird typischerweise mit Hilfe eines minimalen
Schwellenwertes erreicht. Potentielle Zustandssequenzen mit einem
Treffer, welcher unterhalb dieses minimalen Schwellenwertes liegt,
werden aus dem Suchvorgang entfernt. Der Schwellenwert kann auf
jeden gewünschten
Pegel festgelegt werden, basierend in erster Linie auf erwünschtem
Speicher und Berechnungsspeicherungen, wie auch einem durch den
Speicher und die Berechnungsspeicherung verursachten Anstieg der
erwünschten
Fehlerrate. Die aufbewahrten Zustandssequenzen werden als die aktiven
Hypothesen bezeichnet.
-
Ein
weiteres herkömmliches
Verfahren zur weiteren Reduzierung der Höhe der für die Spracherkennung nötigen Berechnung
schließt
die Verwendung eines Präfixbaumes
ein. Ein Präfixbaum
stellt das Lexikon des Spracherkennungssystems als Baumstruktur
dar, wobei alle Worte, welche wahrscheinlich durch das System angetroffen
werden, in der Baumstruktur dargestellt sind.
-
In
einem derartigen Präfixbaum
wird jede Sub-Worteinheit (wie beispielsweise ein Phonem) typischerweise
durch einen Zweig dargestellt, welcher mit einem bestimmten akustischen
Modell (wie beispielsweise einem HMM) in Zusammenhang steht. Die
Phonemzweige sind an Knotenpunkten mit nachfolgenden Phonemzweigen
verbunden. Alle Worte in dem Lexikon, welche das gleiche erste Phonem
teilen, teilen denselben ersten Zweig. Alle Worte, welche das gleiche
erste und zweite Phonem aufweisen, teilen denselben ersten und zweiten
Zweig. Im Gegensatz dazu teilen Worte, welche ein gemeinsames erstes
Phonem aufweisen, jedoch unterschiedliche zweite Phoneme aufweisen,
denselben ersten Zweig in dem Präfixbau,
weisen jedoch zweite Zweige auf welche am ersten Knoten punkt in
dem Präfixbaum auseinander
gehen, und so weiter. Die Baumstruktur geht auf diese Weise weiter,
so dass alle Worte, auf welche das System wahrscheinlich trifft,
durch die Enknoten des Baumes (d.h. die Blätter an dem Baum) dargestellt
werden.
-
Es
versteht sich, dass durch Verwendung einer Präfixbaumstruktur die Anzahl
von Anfangszweigen weitaus geringer ist als die typische Anzahl
von Worten in dem Lexikon oder Wortschatz des Systems. Tatsächlich kann
die Anzahl von Anfangszweigen die Gesamtanzahl von Phonemen (ca.
40–50) nicht übersteigen,
unabhängig
von der Größe des durchsuchten
Wortschatzes oder Lexikons. Obgleich die Anfangsanzahl von Zweigen
groß sein
könnte, wenn
allophonische Variationen verwendet werden, je nach den verwendeten
Allophonen.
-
Spracherkennungssysteme,
welche die vorstehenden Techniken verwenden, können typischerweise in zwei
Arten klassifiziert werden. Die erste Art ist eine kontinuierliche
Spracherkennung (continuous speech recognition, CSR), welche in
der Lage ist, fließende
Sprache zu erkennen. Das CSR-System wird trainiert (d.h. entwickelt
akustische Modelle) basierend auf ununterbrochenen Sprachdaten,
wobei einer oder mehrere Leser Übungsdaten
in ununterbrochener oder fließender
Weise in das System einlesen. Die während des Trainings entwickelten
akustischen Modelle werden zur Erkennung von Sprache verwendet.
-
Die
zweite Art von System ist eine Einzelspracherkennung (isolated speech
recognition, ISR), welche typischerweise zur Erkennung nur abgetrennter
Sprache (oder einzelner Worte) verwendet wird. Das ISR-System wird
trainiert (d.h. entwickelt akustische Modelle) basierend auf einzelnen
oder getrennten Sprachdaten, wobei einer oder mehrere Leser gebeten
werden, Übungsdaten
auf abgetrennte Weise mit Pausen zwischen den Worten in das System einzulesen.
Ein ISR-System ist typischerweise auch präziser und effizienter als kontinuierliche
Spracherkennungssysteme, da Wortgrenzen bestimmter sind und der
Suchraum folglich enger eingegrenzt ist. Auch wurden Einzelspracherkennungssysteme
als spe zieller Fall der kontinuierlichen Spracherkennung betrachtet,
da kontinuierliche Spracherkennungssysteme im Allgemeinen auch abgetrennte
Sprache akzeptieren können.
Sie laufen einfach nicht so gut, wenn sie versuchen abgetrennte
Sprache zu erkennen.
-
Es
wurde beobachtet, dass Benutzer von CSR-Systemen typischerweise
dazu neigen, flüssig zu
sprechen, bis das System beginnt, Fehler zu machen, oder bis die
Benutzer die Zusammensetzung des Dokuments abwägen. An diesem Punkt kann der Benutzer
langsamer werden, oft bis zu Pausen zwischen den Worten. In beiden
Fällen
glaubt der Benutzer, dass durch langsameres und deutlicheres Sprechen
mit Pausen zwischen den Worten der Benutzer das Erkennungssystem
unterstützen
kann, obgleich der Benutzer das System tatsächlich über dessen Fähigkeiten
hinaus beansprucht.
-
Es
ist jedoch nicht angemessen, einfach zu versuchen, ununterbrochene
Sprache mit einem Einzelspracherkennungssystem zu erkennen. ISR-Systeme
laufen typischerweise viel schlechter als CSR-Systeme, wenn sie
versuchen, ununterbrochene Sprache zu erkennen. Dies ist darauf
zurückzuführen, dass
in den ISR-Übungsdaten
keine Kreuzwort-Koartikulation vorliegt.
-
Die
Druckschrift
EP0202534 offenbart
ein Spracherkennungssystem, welches gespeicherte Referenzmuster
verwendet, um sowohl ununterbrochene als auch einzeln gesprochene
Worte, und insbesondere gesprochene Zahlen, zu erkennen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Die
Erfindung ist definiert durch die unabhängigen Verfahrensansprüche 1 und
16.
-
Spracherkennung
wird durch den Empfang einzelner Sprachübungsdaten durchgeführt, welche eine
Vielzahl von getrennt oder deutlich gesprochenen Übungswörtern anzeigen,
sowie den Empfang von ununterbrochenen Sprachübungsdaten, die eine Vielzahl
von kontinuierlich gesprochenen Übungswörtern anzeigen.
Eine Vielzahl von Spracheinheitsmodellen, welche Ausgangswahrscheinlichkeitsverteilungen
aufweisen, die Spracheinheiten in den ununterbrochenen und einzelnen
Sprachübungsdaten darstellen,
wobei die Modelle basierend auf den abgetrennten Sprachübungsdaten
und den ununterbrochenen Sprachübungsdaten
trainiert werden. Sprache wird basierend auf den trainierten Spracheinheitsmodellen
erkannt.
-
In
einer bevorzugten Ausführungsform
werden Pausen in der zu erkennenden Sprache identifiziert, um eine
Phrasendauer zu bestimmen. Eine Vielzahl von Phrasenhypothesen werden
erzeugt, welche wahrscheinliche Phrasen anzeigen, die durch die
Eingangsdaten zwischen den Pausen dargestellt werden. Eine mit jedem
Wort in jeder Phrasenhypothese in Zusammenhang stehende Wortdauer
wird mit einer erwarteten Wortdauer für eine Phrase mit einer Anzahl
von Worten verglichen, welche der Anzahl von Worten in der Phrasenhypothese
entspricht. Ein Ergebnis wird jeder Phrasenhypothese basierend auf
dem Vergleich der Wortdauer mit der erwarteten Wortdauer zugewiesen.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm einer beispielhaften Umgebung zur Implementierung
eines Spracherkennungssystems in Übereinstimmung mit der vorliegenden
Erfindung;
-
2 ist
ein detaillierteres Blockdiagramm eines Abschnitts des in 1 gezeigten
Systems;
-
3 ist
ein Ablaufdiagramm, welches eine Datensammelprozedur in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung darstellt;
-
4 ist
ein Ablaufdiagramm, welches das Training akustischer Modelle und
Seonenkartierung unter Verwendung zusammengefasster Übungsdaten
in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung darstellt;
-
5 ist
ein Ablaufdiagramm, welches die Schaffung eines Senonenbaumes in Übereinstimmung
mit der vorliegenden Erfindung darstellt;
-
6 ist
eine Darstellung eines Seonenbaumes in Übereinstimmung mit der vorliegenden
Erfindung;
-
7 ist
ein Ablaufdiagramm, welches die Schaffung von Wortdauermodellen
in Übereinstimmung
mit der vorliegenden Erfindung darstellt;
-
8 ist
eine graphische Darstellung einer Vielzahl von Wortdauermodellen,
welche in Übereinstimmung
mit einer in 7 gezeigten Prozedur erzeugt
wurden;
-
9 ist
ein Ablaufdiagramm, welches einen Abschnitt einer Spracherkennungsprozedur
in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung darstellt;
-
10 ist
ein Ablaufdiagramm, welches die Anwendung eines Wortdauermodells
in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung darstellt.
-
AUSFÜHRLICHE
BESCHREIUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
1 und
die damit zusammenhängende Beschreibung
sollen eine kurze, allgemeine Beschreibung einer geeigneten Rechenumgebung
liefern, in welcher. die Erfindung realisiert werden kann. Obgleich
dies nicht erforderlich ist, wird die Erfindung zunächst, zumindest
teilweise, in dem allgemeinen Kontext computer-ausführbarer
Anweisungen, wie beispielsweise Programmmodulen, beschrieben, welche
durch einen Personalcomputer ausgeführt werden. Im Allgemeinen
schließen
Programmmodule Routineprogramme, Objekte, Komponenten, Datenstrukturen
etc. ein, welche bestimmte Aufgaben erfüllen oder bestimmte abstrakte
Datentypen realisieren. Darüber
hinaus wird es sich für
Fachleute verstehen, dass die Erfindung mit anderen Computersystemkonfigurationen
praktiziert werden kann, einschließlich tragbaren Vorrichtungen,
Mehrprozessorsystemen, mikroprozessorbasierter oder programmierbarer
Verbraucherelektronik, Netz-PCs, Minicomputern, Mainframecomputern
und ähnlichem.
Die Erfindung kann auch in verteilten Rechenumgebungen praktiziert
werden, wo Aufgaben durch entfernte Verarbeitungsvorrichtungen erfüllt werden,
welche durch ein Kommunikationsnetzwerk verbunden sind. In einer verteilten
Rechenumgebung können
Programmmodule sowohl in lokalen als auch entfernten Speichervorrichtungen
lokalisiert sein.
-
Mit
Bezug auf 1 weist ein beispielhaftes System
zur Realisierung der Erfindung eine Rechenvorrichtung für allgemeine
Zwecke in Form eines herkömmlichen
Personalcomputers 20 auf, welcher eine Verarbeitungseinheit 21,
einen Systemspeicher 22 und einen Systembus 23 einschließt, der
die unterschiedlichen Systemkomponenten einschließlich des Systemspeichers
mit der Verarbeitungseinheit 21 koppelt. Der Systembus 23 kann
jede beliebige von mehreren Arten von Busstrukturen sein, einschließlich eines
Speicherbusses oder einer Speichersteuerung, eines Peripheriebusses
und eines lokalen Busses, wobei eine beliebige einer Vielzahl von
Busarchitekturen verwendet wird. Der Systemspeicher weist den Nur-Lese-Speicher
(ROM) 24 und einen Direktzugriffspeicher (RAM) 25 auf.
Eine Basis-Ein-/Ausgabe (basic input/output, BIOS) 26 mit der
Basisroutine, welche den Informationstransfer zwischen Elementen
innerhalb des Personalcomputers 20 unterstützt, so
beispielsweise während
des Hochfahrens, ist im ROM 24 gespeichert. Der Personalcomputer 20 weist
weiter ein Festplattenlaufwerk 27 zum Lesen von und Schreiben
auf eine Festplatte (nicht gezeigt) auf, weiter ein Magnetplattenlaufwerk 28 zum
Lesen von oder Schreiben auf eine entnehmbare Magnetplatte 29,
sowie ein optisches Plattenlaufwerk 30 zum Lesen von oder
Schreiben auf eine entnehmbare optische Platte 31, wie
beispielsweise eine CD-ROM oder andere optische Medien. Das Festplattenlaufwerk 27,
das Magnetplattenlaufwerk 28 und das optische Plattenlaufwerk 30 sind
mit dem Systembus 23 durch eine Festplattenlaufwerks-Schnittstelle 32,
eine Magnetplattenlauf werks-Schnittstelle 33 bzw. eine
optische Plattenlaufwerks-Schnittstelle 34 verbunden.
Die Laufwerke und die zugehörigen
computerlesbaren Medien liefern eine nicht-flüchtige Speicherung computerlesbarer
Anweisungen, Datenstrukturen, Programmmodule und anderen Daten für den Personalcomputer 20.
-
Obgleich
die hierin beschriebene beispielhafte Umgebung eine Festplatte,
eine entnehmbare Magnetplatte 29 und eine entnehmbare optische Platte 31 aufweist,
sollte es sich für
Fachleute verstehen, dass andere Arten computerlesbarer Medien, welche
zurch den Computer zugängliche
Daten speichern können,
wie beispielsweise Magnetkassetten, Flash-Memory-Karten, digitale
Videoplatten, Bernoulli-Kassetten, Direktzugiffspeicher (RAMs), Nur-Lese-Speicher
(ROM) und ähnliches,
in der beispielhaften Betriebsumgebung ebenfalls verwendet werden
können.
-
Eine
Reihe von Programmmodulen kann auf der Festplatte, der Magnetplatte 29,
der optischen Platte 31, dem ROM 24 oder dem RAM 25 gespeichert
werden, darunter ein Betriebssystem 35, eines oder mehrere
Anwendungsprogramme 36, andere Programmmodule 37 und
Programmdaten 38. Ein Benutzer kann Befehle und Informationen
in den Personalcompter 20 durch Eingabevorrichtungen, wie beispielsweise
eine Tastatur 40 und eine Zeigevorrichtung 42 eingeben.
Andere Eingabevorrichtungen (nicht gezeigt) können ein Mikrophon, einen Joystick, ein
Gamepad, eine Satellitenschüssel,
einen Scanner oder ähnliches
einschließen.
Diese und andere Eingabevorrichtungen sind häufig mit der Verarbeitungseinheit 21 durch
eine Seriellanschluss-Schnittstelle 46 verbunden, welche
mit dem Systembus gekoppelt ist, können aber durch andere Schnittstellen verbunden
sein, wie beispielsweise einen Parallelanschluss, einen Gameport
oder einen universellen Seriellbus (USB). Ein Monitor 47 oder
eine andere Art von Anzeigevorrichtung ist ebenfalls mit dem Systembus 23 über eine
Schnittstelle, wie beispielsweise einen Videoadapter 48,
gekoppelt. Zusätzlich
zu dem Monitor 47 können
Personalcomputer typischerweise andere periphere Ausgabevorrichtungen
(nicht gezeigt) aufweisen, wie beispielsweise Lautsprecher und Drucker.
-
Der
Personalcomputer 20 kann in einer vernetzten Umgebung unter
Verwendung logischer Verbindungen mit einem oder mehreren entfernten
Computer, wie beispielsweise einem entfernten Computer 49 operieren.
Der entfernte Computer 49 kann ein weiterer Personalcomputer,
ein Server, ein Router, ein Netzwerk-PC, eine gleichwertige Vorrichtung oder
ein anderer Netzwerkknoten sein und weist typischerweise viele oder
alle der vorstehend mit Bezug auf den Personalcomputer 20 beschriebenen
Elemente auf, obgleich nur eine Speichervorrichtung 50 in 1 dargestellt
ist. Die in 1 gezeigten logischen Verbindungen
schließen
ein lokales Netz (local area network, LAN) 51 und ein globales
Netz (wide area network, WAN) ein. Derartige Netzumgebungen sind
in Büros,
unternehmensweiten Computernetzwerk-Intranetzen und dem Internet
allgemein üblich.
-
Wenn
er in einer LAN-Netzwerkumgebung verwendet wird, ist der Personalcomputer 20 mit
dem lokalen Netz 51 durch eine Netzwerkschnittstelle oder
einen Adapter 53 verbunden. Wenn er in einer WAN-Netzwerkumgebung
verwendet wird, weist der Personalcomputer 20 typischerweise
ein Modem 54 oder eine andere Vorrichtung zur Einrichtung
von Kommunikation über
das globale Netz 52, wie beispielsweise das Internet, auf.
Das Modem 54, welches intern oder extern sein kann, ist
mit dem Systembus 23 über
die Seriellanschluss-Schnittstelle 46 verbunden. In einer
Netzwerkumgebung können
Programmmodule, welche relativ zu dem Personalcomputer 20 dargestellt
sind, oder Teile davon in den entfernten Speichervorrichtungen gespeichert
sein. Es versteht sich, dass die gezeigten Netzwerkverbindungen
beispielhaft sind und andere Arten der Einrichtung einer Kommunikationsverbindung
zwischen den Computern verwendet werden können.
-
Weiter
können,
wenn die Umgebung in 1 als ein Spracherkennungssystem
realisiert ist, andere Komponenten ebenfalls erwünscht sein. Derartige Komponenten
können
ein Mikrophon, eine Soundkarte und Lautsprecher einschließen, von
denen manche nachfolgend ausführlicher
beschrieben werden.
-
2 stellt
ein Blockdiagramm eines Spracherkennungssystems 60 in Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung dar. Das Spracherkennungssystem 60 weist
das Mikrophon 62, den Analog-/Digitalwandler (A/D-Wandler) 64, das Übungsmodul 65,
das Merkmals-Extraktionsmodul 66, das Ruhe-Detektionsmodul 68,
das Senonenbaum-Speichermodul 70, das Monophonmodell-Speichermodul 72,
das Triphonkartierungs-Speichermodul 74, das Präfixbaum-Speichermodul 76, das
Wortdauermodell-Speichermodell 78, die Suchmaschine 80 und
die Ausgabevorrichtung 82 auf. Es sollte sich verstehen,
dass das gesamte System 60, oder ein Teil des Systems 60,
in der in 1 dargestellten Umgebung realisiert
sein kann. Beispielsweise kann das Mikrophon 62 bevorzugt
als eine Eingabevorrichtung in den Personalcomputer 20 durch eine
geeignete Schnittstelle und durch den A/D-Wandler 64 bereitgestellt
sein. Das Übungsmodul 65,
das Merkmals-Extraktionsmodul 66 und das Ruhe-Detektionsmodul 68 können entweder
Hardware-Module
im Computer 20 (wie beispielsweise von der Zentraleinheit 21 getrennte
oder in der Zentraleinheit 21 realisierte Prozessoren)
sein, oder aber Softwaremodule, welche in einer beliebigen der in 1 offenbarten
und durch die Zentraleinheit 21 oder einen anderen geeigneten
Prozessor zugängliche
Softwaremodule gespeichert werden. Zusätzlich sind das Senonenbaum-Speichermodul 70,
das Monophonmodell-Speichermodul 72, das Triphonkartierungs-Speichermodul 74,
das Präfixbaum-Speichermodul 76 und
das Wortdauermodell-Speichermodul 78 ebenfalls bevorzugt
in beliebigen geeigneten, in 1 gezeigten
Speichervorrichtungen gespeichert. Weiter ist die Suchmaschine 80 bevorzugt
in der Zentraleinheit 21 realisiert (welche einen oder
mehrere Prozessoren aufweisen kann) oder kann durch einen speziellen,
durch den Personalcomputer 20 verwendeten Spracherkennungsprozessor
durchgeführt werden.
Zusätzlich
kann die Ausgabevorrichtung 82 in einer bevorzugten Ausführungsform
als Monitor 47 oder als ein Drucker oder eine beliebige
andere geeignete Ausgabevorrichtung realisiert sein.
-
In
jedem Fall wird das System 60 zunächst mit Hilfe von Übungsdaten
trainiert. 3 und 4 sind Ablaufdiagramme,
welche die Übungsdatensammlungs-
und Systemtrainingsprozeduren zeigen, die in Übereinstimmung mit einer bevorzugten
Ausführungsform
der vorliegenden Erfindung verwendet werden. Um das System 60 zu
trainieren, werden zunächst Übungsdaten
gesammelt, wie mit Bezug auf 3 beschrieben.
In einer bevorzugten Ausführungsform
weisen die Übungsdaten
sowohl ununterbrochene (oder fließende) Übungsdaten auf, in welchen
die Übungsworte
durch einen Sprecher in ununterbrochener oder fließender Weise
in das System 60 eingelesen werden, als auch getrennte
(oder deutliche) Übungsdaten,
in welchen Übungsworte
durch einen Sprecher in deutlicher oder getrennter Weise mit Pausen
zwischen Worten in das System 60 eingelesen werden.
-
Somit
wird ein erster Sprecher ausgewählt. Dies
wird durch Block 84 angezeigt. Dann wird der Sprecher gebeten, Übungssätze fließend in
das Mikrophon 62 des Systems 60 einzulesen. Dies
wird durch Block 86 angezeigt. Die Übungssätze werden, wie durch Block 88 angezeigt,
aufgenommen. Phonetische Transkriptionen jedes durch das System 60 empfangenen Übungswortes
werden in den Trainer 65 und das System 60 durch
eine Benutzer-Eingabevorrichtung, wie beispielsweise die Tastatur 40 eingegeben.
Dies wird durch Block 90 angezeigt. Dann wird bestimmt,
ob zusätzliche
Sprecher gebeten werden, die Übungssätze ebenfalls
zu lesen. Für
sprecherunabhängige
Systeme wird bevorzugt eine Vielzahl von Sprechern verwendet. Jedoch
ist für
sprecherabhängige
Systeme die Vielzahl von Sprechern optional, und die Übungssätze können nur
durch einen einzigen Sprecher gesprochen werden.
-
In
jedem Fall wird, falls ein weiterer Sprecher Übungssätze in fließender Weise in das System 60 einlesen
soll, der neue Sprecher ausgewählt,
und der Prozess wird durch die Blöcke 86, 88 und 90 wiederholt.
Dies wird durch die Blöcke 92 und 94 angezeigt.
-
Wenn
die ununterbrochenen Übungsdaten
in das System 60 eingelesen sind, wird erneut ein erster Sprecher
gewählt,
wie durch Block 96 angezeigt. Der ausgewählte Sprecher
liest dann eine Gruppe von Übungswörtern in
das System 60 ein, welche in deutlicher oder getrennter
Weise mit Pausen zwischen jedem Wort gelesen werden. Dies wird durch
Block 98 angezeigt. Die getrennten Übungsdaten bilden in einer
bevorzugten Ausführungsform
dieselben Worte wie sie sich in den ununterbrochenen Übungsdaten finden.
Jedoch müssen
die getrennten Übungsdaten nicht
mit den ununterbrochenen Übungsdaten
identisch sein und können
aus einem vollständig
anderen Satz Worte gebildet sein. In jedem Fall wird jedes Wort
durch das System 60 aufgezeichnet, wenn es in das System
eingelesen wird. Dies wird durch Block 100 angezeigt.
-
Wiederum
empfängt
das System 60 eine phonetische Transkription jedes in das
System 60 eingelesenen Wortes von der Benutzereingabevorrichtung,
wie beispielsweise der Tastatur 40. Dies wird durch Block 102 angezeigt.
-
Dann
wird bestimmt, ob zusätzliche
Sprecher die getrennten Sprachübungsdaten
in das System 60 liefern sollen. Ist dies der Fall, so
wird ein neuer Sprecher ausgewählt,
und dieser Sprecher gibt die getrennten Sprachübungsdaten in der gleichen
Weise ein wie der erste. Wird bestimmt, dass keine zusätzlichen
Sprecher getrennte Übungsdaten
in das System 60 eingeben sollen, so ist der Datensammelprozess
abgeschlossen. Dies wird durch die Blöcke 104 und 106 in 3 dargestellt.
-
Es
sollte sich auch verstehen, dass die Übungsdaten, anstelle mit Sprechern
durch ein Mikrophon eingegeben zu werden, in Form von Ausgabeverteilungen
direkt durch eine Eingabevorrichtung, wie beispielsweise ein Diskettenlaufwerk,
in das System 60 geladen werden können.
-
Bei
der Eingabe der Übungsworte
in das System 60 durch das Mikrophon 62 werden
sie durch den A/D-Wandler 64 in digitale Abtastwerte umgewandelt
und dann in Merkmalsvektoren (oder wer den mit Hilfe von Vektorquantisierung
und eines aus Übungsdaten
abgeleiteten Codebuches in Codewörter
quantisiert), was durch das Merkmals-Extraktionsmodul 66 erfolgt.
Die Merkmalsvektoren (oder Codewörter)
werden an das Übungsmodul 65 geliefert.
Das Übungsmodul 65 empfängt ebenfalls
die phonetischen Transkriptionen von der Benutzer-Eingabevorrichtung.
Das Übungsmodul 65 verwendet dann
die Merkmalsvektoren (oder Codewörter)
in den Übungsdaten,
wie auch die phonetischen Transkriptionen, um einen Satz monophoner
Modelle, Senonenbäume,
Triphon-Kartierungsspeicher, einen Präfixbaum und Wortdauermodelle
basierend auf den Übungsdaten
zu bauen. Diese Elemente werden alle durch die Suchmaschine 80 bei
der Durchführung
von Erkennung verwendet.
-
4 ist
ein Ablaufdiagramm, welches den Gesamtprozess darstellt, durch den
das Übungsmodul 65 die
monophonen Modelle, die Senonenbäume und
den Triphon-Kartierungsspeicher berechnet. Zunächst empfängt das Übungsmodul 65 die
gesammelten Übungsdaten.
Gesammelt bedeutet sowohl die ununterbrochenen als auch die getrennten Sprachübungsdaten.
Dies wird durch Block 108 in 4 angezeigt.
Die Übungsdaten
werden durch das Merkmals-Extraktionsmodul 66 in
der vorstehend beschriebenen Weise in Ausgangsverteilungen umgewandelt.
Somit berechnet das Übungsmodul 65 eines
oder mehrere versteckte Markow-Modelle für jedes Wort in den gesammelten Übungsdaten
mit Hilfe der Merkmalsvektoren (oder Codewörter) und der ihm gelieferten
phonetischen Transkriptionen. Die versteckten Markow-Modelle stehen
mit den in den gesammelten Übungsdaten
gefundenen Phonemen in Zusammenhang und werden in bekannter Weise basierend
auf Ausgangs- und Auftretungshäufigkeiten,
welche für
jedes Phonem berechnet werden, berechnet
-
In Übereinstimmung
mit einer bevorzugten erfindungsgemäßen Ausführungsform modelliert das Übungsmodul 65 jedes
in dem Übungsdatensatz
gefundene Phonem als monophones Modell. Das monophone Modell weist
eine Ausgangs-Wahrscheinlichkeitsverteilung für jeden Zustand in dem Modell auf.
Dies wird durch die Blöcke 110 und 112 in 4 angezeigt.
Die monophonen Modelle werden in dem Erkennungsschema verwendet,
um ein am wahrscheinlichsten passendes Phonem für eine Eingangs-Sprachäußerung zu
bestimmen, ehe die Senonen-Evaluation des Phonems beginnt. Die monophonen
Modelle werden dann im Speicher 72 gespeichert, wie durch
Block 113 angezeigt.
-
Dann
erzeugt das Übungsmodul 65 für jeden Zustand
in jedem Phonem einen Senonenbaum. Die Technik, durch die ein Senonenbaum
erzeugt wird, wird ausführlicher
mit Bezug auf 5 beschrieben. Die Erzeugung
eines Senonenbaumes wird durch Block 114 in 4 dargestellt.
Die Senonenbäume werden
dann im Speicher 70 gespeichert, wie durch Block 116 angezeigt.
-
Sind
die Senonenbäume
erzeugt, so kartiert der Trainer 65 alle erwünschten
Triphone (sowohl sichtbar als auch unsichtbar in den Übungsdaten)
in Senonensequenzen, welche durch die im Speicher 70 gespeicherten
Senonenbäume
dargestellt werden. Um dies durchzuführen, wählt der Trainer 65 ein erwünschtes
Triphon (ein Phonem mit entsprechendem linkem und rechtem Kontext)
und überquert
die im Speicher 70 gespeicherten Senonenbäume. Als Ergebnis
der Überquerung
der Senonenbäume
erhält
das Übungsmodul 65 ein
Senon, welches jedem Zustand in dem modellierten Triphon entspricht,
und erhält
somit eine Sequenz von Senonen, die jedes Triphon darstellt. Diese
Sequenz von Senonen wird an das entsprechende Triphon im Triphon-Kartierungsspeicher 74 kartiert.
Dies wird durch Block 118 angezeigt. Die Triphon-Kartierungssequenz
wird ebenfalls ausführlicher
mit Bezug auf 6 beschrieben.
-
Das Übungsmodul 65 konstruiert
dann einen Präfixbaum
und speichert den Präfixbaum
im Speicher 76. Dies wird durch Block 120 angezeigt. Schließlich berechnet
das Übungsmodul 65 ein
Wortdauermodell und speichert das Wortdauermodell im Speicher 78.
Dies wird durch Block 122 in 4 angezeigt.
Die Berechnung des Wortdauermodells wird ausführlicher mit Bezug auf 7 und 8 beschrieben.
-
Nach
der Berechnung der monophonen Modelle, der Senonenbäume, der
Triphon-Kartierung, des Präfixbaumes
und der Wortdauermodelle ist das System 60 konfiguriert,
um Spracherkennung durchzuführen.
Die Spracherkennungsaufgabe wird ausführlicher in 9 und 10 beschrieben.
-
5 ist
ein Ablaufdiagramm, welches ausführlicher
den Prozess darstellt, durch den das Übungsmodul 65 einen
Senonenbaum für
jeden Zustand in jedem Phonem erzeugt, welches in den gesammelten Übungsdaten
enthalten ist. Es wird allgemein erkannt, dass in der englischen
Sprache ca. 50 Phoneme existieren. In der bevorzugten Ausführungsform
steht jedes Phonem mit drei Zuständen
in Zusammenhang. Daher müssen
150 Senonenbäume
durch das Übungsmodul 65 erzeugt
werden. Auch tritt in der bevorzugten Ausführungsform jedes der 50 Phoneme
in den gesammelten Übungsdaten (d.h.
den ununterbrochenen Übungsdaten
und den getrennten Übungsdaten)
in mehreren unterschiedlichen Kontexten auf. Somit können, wenn
das Phonem basierend auf einem versteckten Markow-Modell mit drei Zuständen modelliert
wird, die Ausgangsverteilungen, welche mit jedem Zustand in jedem
der versteckten Markow-Modelle in Zusammenhang stehen, unterschiedlich
sein, je nach dem Kontext des Phonems bei seinem Auftreten in den Übungsdaten.
Basierend auf dieser Information wird ein Senonenbaum aufgebaut,
wie mit Bezug auf 5 beschrieben.
-
Zunächst wird
eines der 50 in den Übungsdaten
repräsentierten
Phoneme ausgewählt.
Dies wird durch Block 124 angezeigt. Dann wird der erste Zustand
in dem ausgewählten
Phonem ausgewählt, wie
durch Block 126 angezeigt wird.
-
Die
mit dem ausgewählten
Zustand in dem ausgewählten
Phonem in Zusammenhang stehenden Ausgangsverteilungen für jedes
Auftreten des Phonems in den gesammelten Übungsdaten werden wieder abgerufen
und zusammen gruppiert. Dies wird durch Block 28 angezeigt.
Dann werden die gruppierten Ausgangsverteilungen für den ausgewählten Zustand
voneinander basierend auf liguistischen, kontextualen Fragen getrennt.
Die Fragen sind Fragen, welche lin guistische Informationen betreffend
den Kontext des einzelnen Phonems suchen, für welches der Senonenbaum erzeugt
wird. Basierend auf der Antwort auf die Fragen für jede der einzelnen Ausgangsverteilungen
werden diese Ausgangsverteilungen von der ersten (Eltern-)Gruppe
in zwei (Kinder-)Gruppen geteilt.
-
Das
Verfahren für
die Auswahl der geeigneten linguistischen Fragen wird nun beschrieben.
Kurz gesagt werden die linguistischen Fragen bevorzugt durch einen
Linguistikexperten erzeugt und sind konstruiert, um linguistische
Klassen kontextualer Effekte aufzunehmen. Beispielsweise findet
sich in dem englischsprachigen Artikel von Hon und Lee mit dem Titel
CMU ROBUST VOCABULARY-INDEPENDENT SPEECH
RECOGNITION SYSTEM, IEEE Int'l
Conf. On Acoustics, Speech and Signal Processing, Toronto, Kanada,
1991, S. 889 bis 892, ein Satz von 89 linguistischen Fragen. Um
die Elterngruppe in Kindergruppen aufzuspalten, bestimmt das Übungsmodul 65,
welche der zahlreichen linguistischen Fragen die beste Frage für die Elterngruppe
ist. In einer bevorzugten Ausführungsform
wird bestimmt, dass die beste Frage die Frage ist, die den größten Entropieabfall
zwischen der Eltergruppe und den Kindergruppen liefert. Alle der
linguistischen Fragen können
mit "Ja" oder "Nein" beantwortet werden,
so dass zwei Kinderknoten aus der Teilung des Elternknotens resultieren.
-
Die
Teilung der Gruppen hält
gemäß einer vorbestimmten
Verzweigungsschwelle an. Eine derartige Schwelle kann beispielsweise
beinhalten, wann die Anzahl an Ausgangsverteilungen in einer Gruppe
unter einen vorbestimmten Wert fällt,
oder wann der aus einer Gruppenteilung resultierende Entropieabfall
unter eine weitere Schwelle fällt.
Wenn die vorbestimmte Verzweigungsschwelle erreicht wird, sind die
resultierenden Endgruppen allesamt Blattgruppen, welche geclusterte
Ausgangsverteilungen, oder Senonen, darstellen. Eine einzelne Ausgangsverteilung
wird basierend auf der geclusterten Ausgangsverteilung ausgewählt, um
das Senon darzustellen. Dies wird durch die Blöcke 130 und 132 dargestellt.
Es sollte sich auch verstehen, dass die Fragen in dem Senonenbaum
kombiniert oder verknüpft
werden können,
um zusammengesetzte Fragen zu bilden. Weiter können zusammengesetzte Fragen
für bessere
zusammengesetzte Fragen auseinandergenommen werden, basierend auf
dem Entropieabfall von der Elterngruppe zu den Kindergruppen.
-
Nach
der Erzeugung eines Senonenbaumes für den ausgewählten Zustand
des ausgewählten Phonems
wird der Senonenbaum im Speicher 70 gespeichert. Dies wird
durch Block 134 angezeigt. Dieser Prozess wird für jeden
Zustand jeden Phonems in dem Vokabular wiederholt, so dass ein Senonenbaum
für jeden
Zustand in jedem Phonem erzeugt wird. Dies wird durch die Blöcke 136 und 138 in 5 angezeigt.
-
Nach
der Erzeugung eines Senonenbaumes für jeden Zustand jeden Phonems
in dem Vokabular muss jedes durch das System 60 zu erkennende
Triphon zu einer bestimmten Senonensequenz kartiert werden. Anders
gesagt muss für
jedes zu erkennende Triphon ein angemessenes Senon für jeden
Zustand in diesem Triphon durch Überqueren
des geeigneten Senonenbaumes, welcher im Speicher 70 gespeichert
ist, identifiziert werden.
-
Zunächst werden
die phonetischen Transkriptionen jedes zu erkennenden Triphons durch
das System 60 von einem Benutzer über eine Transkriptions-Eingabevorrichtung,
wie beispielsweise die Tastatur 40, empfangen. Dann wird
der Senonenbaum, welcher jedem Zustand des zentralen Phonems des
Triphons entspricht, überquert.
Der Senonenbaum wird einfach durch Beantworten der mit den Knoten
des Senonenbaumes in Zusammenhang stehenden linguistischen Fragen überquert.
Nach der Identifizierung eines geeigneten Senons für jeden sukzessiven
Zustand des Triphons werden die identifizierten Senonen kombiniert,
um eine Senonensequenz zu bilden, welche zu diesem Triphon in dem Speicher 74 kartiert
wird.
-
6 stellt
ein Beispiel dar, welches hilfreich beim Verständnis der Art und Weise ist,
wie ein Senonenbaum erzeugt und überquert
wird. 6 stellt einen Senonenbaum für das Phonem /K/ für den gesprochenen
Klang des Buchstabens "c" als Teil des Wortes "Welcome" dar. 6 zeigt
den Senonenbaum für
den ersten Zustand des /K/-Phonems. Es versteht sich, dass viele
der Fragen in dem in 6 gezeigten Senonenbaum zusammengesetzte
Fragen sind, welche gemäß der vorstehend
beschriebenen Techniken gebildet wurden.
-
Zur
Bestimmung der geeigneten Senonensequenz für das Triphon /L, K, UH/, welches
durch die Buchstaben "lco" des Wortes "Welcome" gebildet wird, muss
jeder Senonenbaum des /K/-Phonems überquert werden. Der in 6 gezeigte
Senonenbaum steht in Zusammenhang mit dem ersten Zustand des /K/-Phonems.
Die mit dem Wurzelknoten 140 in Zusammenhang stehende linguistische
Frage ist, ob das linke Phon in dem Triphon ein sonorer oder ein
nasaler Klang ist. Da das /L/ ein sonorer Klang ist, bewegt sich
die Baumüberquerung
zum Kindknoten 142.
-
Der
Kindknoten 142 entspricht einer Antwort mit "Ja" auf die am Knoten 140 gestellte
Frage. Die am Knoten 142 gestellte Frage ist, ob das linke
Phonem (/L/) ein Rückphonem
ist (d.h., ist das linke Phonem ein Phonem; welches mit der Zunge
in einer Position in Richtung nach hinten im Mund gesprochen wird).
Das /L/ ist ein Rückphonem,
also schreitet die Überquerung
zu Knoten 144 fort, welcher einer Antwort mit "Ja" auf die im Knoten 142 gestellte
Frage entspricht. Unter der Voraussetzung, dass das rechte Phonem
(das /UH/-Phonem des Triphons) kein L oder W ist, und das /L/-Phonem
keines der in der durch Knoten 142 gestellten Frage spezifizierten Phoneme
ist, ist die Antwort auf die Frage am Knoten 142 "Nein". Dies führt zu einem
Senon, welches als Senon 2 bezeichnet ist, das als das
geeignete Senon für
den ersten Zustand des /L, K, UH/-Triphons identifiziert wird. Eine ähnliche
Baumüberquerung
fährt für jeden
der anderen Zustände
des /K/-Phonems fort. Für
alle Markow-Zustände
aller Triphonmodelle, welche in das System 60 eingegeben
werden, wird der entsprechende Senonenbaum überquert, bis ein Blatt (oder
Senon) erreicht wird. Die für
jedes Triphon definierten Senonensequenzen werden im Speicher 70 gespeichert.
-
In
der bevorzugten Ausführungsform,
in welcher die Erkennungsvorrichtung auf einer Aussprachepräfix-Baumdecodiervorrichtung
basiert, wird dann ein Präfixbaum
konstruiert, um das Vokabular oder Lexikon darzustellen, welches
durch das System 60 zu erkennen ist. Der Präfixbaum
wird bevorzugt so konstruiert, dass er von einem Wurzelknoten zu
einem Blatt überquert
werden kann, um an dem Wort anzukommen, welches am wahrscheinlichsten die
Eingangsdaten anzeigt. In einer bevorzugten Ausführungsform weist der Präfixbaum
eine Vielzahl kontextabhängiger
Ruhephone auf, welche (auf ähnliche
Weise wie die im Speicher 72 gespeicherten monophonen Modelle)
derart modelliert sind, dass Ruhe als ein Teil der Worte in dem
Lexikon eingebettet ist. Nach der Überquerung des Präfixbaumes
hält das
System 60 bevorzugt aktive Hypothesen aufrecht, welche
die wahrscheinlichsten Worte oder Wortsequenzen darstellen, die
für jede
gegebene erkannte Phrase erkannt werden.
-
Das
System 60 konstruiert dann in einer bevorzugten Ausführungsform
eine Vielzahl von Wortdauermodellen, welche verwendet werden können, um
unter den aktiven Hypothesen, welche aus der Präfixbaum-Decodiervorrichtung
stammen, zu wählen.
Die Wortdauermodelle werden im Speicher 78 gespeichert. 7 ist
ein Ablaufdiagramm, welches die Konstruktion des Wortdauermodells
detaillierter darstellt.
-
Die
in das System 60 eingegebenen Übungsdaten enthalten bevorzugt
einzelne Wörter unterschiedlicher
Dauer sowie Wortsequenzen (oder Phrasen), welche durch Pausen getrennt
sind, wobei die Wortsequenzen eine Vielzahl unterschiedlicher Wortanzahlen
pro Sequenz aufweisen. Das Übungsmodul 65 modelliert
die Durchschnittsdauer von Worten in jeder einzelnen Phrase mit
einer Wortanzahl n. Daher berechnet das Übungsmodul 65 zunächst die Durchschnittsdauer
pro Wort für
Phrasen unterschiedlicher Länge
in den gesammelten Übungsdaten
(dies schließt
auch Phrasen mit einer Länge
von einem Wort ein). Dies wird durch Block 144 in 7 angezeigt.
Als Nächstes
erzeugt das Übungsmodul 65 eine Familie
von Verteilungen von Wortdauern, welche durch die Anzahl von Worten
pro Phrase parameterisiert werden. Dies wird durch Block 146 angezeigt.
Das Übungsmodul 65 speichert
dann die Familie von Verteilungen im Wortdauer-Modellspeicher 78.
Dies wird durch Block 148 angezeigt.
-
8 ist
ein Graph, welcher deutlicher eine Familie von Verteilungen darstellt,
die durch das Übungsmodul 65 berechnet
werden. 8 zeigt drei Verteilungen 150, 152 und 154,
welche auf einem Graphe angezeichnet sind, der die Wortdauer auf
der x-Achse und
die Anzahl des Auftretens von n-Wort-Phrasen auf der y-Achse aufweist.
Die Verteilungen 150, 152 und 154 weisen
im Allgemeinen die Form von Gamma-Verteilungen auf, wobei die Verteilung 150 mit
der durchschnittlichen Dauer von Ein-Wort-Phrasen in Zusammenhang
steht, die Verteilung 152 mit der durchschnittlichen Dauer
jedes Wortes in Zwei-Wort-Phrasen in Zusammenhang steht, und die
Verteilung 154 mit der durchschnittlichen Wortdauer jedes
Wortes in n-Wort-Phrasen in Zusammenhang steht (wobei n eine ganze
Zahl ist, die größer ist
als 2). Somit stellt 8 graphisch dar, dass die durchschnittliche
Dauer jedes Wortes in einer Ein-Wort-Phrase etwas länger ist
als die durchschnittliche Dauer jedes Wortes in einer Zwei-Wort-Phrase.
Auch ist, wenn die Anzahl von Worten in einer Phrase zwei übersteigt,
die durchschnittliche Dauer jedes Wortes in einer derartigen Phrase
etwas kürzer
als die durchschnittliche Dauer der Worte in einer Ein-Wort- oder
Zwei-Wort-Phrase.
-
Während der
Erkennung werden die durchschnittlichen Wortdauern in den aktiven
Hypothesen, welche nach der Überquerung
des Präfixbaumes
gewonnen werden, mit den durch das Übungsmodul 65 berechneten
Wortdauermodellen verglichen. Jeder Hypothese wird dann basierend
darauf, ob die durchschnittliche Dauer pro Wort in dieser bestimmten
Hypothese mit dem geeigneten Wortdauermodell gut übereinstimmt
(oder nicht übereinstimmt),
ein Treffer (oder ein Verfehlen) zugeordnet. Die wird ausführlicher
später
in der Beschreibung ausgeführt.
-
Wenn
das Übungsmodul 65 die
monophonen Modelle, den Senonenbaum, die Triphonkartierung, die
Präfixbäume und
die Wortdauermodelle entwickelt hat, ist das System 60 geeignet
konfiguriert, um Sprache zu erkennen.
-
9 ist
ein Ablaufdiagramm, welches eine bevorzugte Technik zur Spracherkennung
mit dem System 60 darstellt. Sprache wird zunächst in
das System 60 in Form eines hörbaren Stimmsignals eingegeben,
welches durch den Benutzer ins Mikrophon 62 geliefert wird.
Das Mikrophon 62 wandelt das hörbare Sprachsignal in ein analoges
elektronisches Signal um, welches an den A/D-Wandler 64 geliefert wird.
Der A/D-Wandler 64 wandelt das analoge Sprachsignal in
eine Sequenz digitaler Signale um, welche an das Merkmals-Extraktionsmodul 66 geliefert
wird. In einer bevorzugten Ausführungsform
ist das Merkmals-Extraktionsmodul 66 ein herkömmlicher
Feldprozessor, welcher eine Spektralanalyse an den digitalen Signalen
durchführt
und einen Höhenwert
für jedes
Frequenzband eines Frequenzspektrums durchführt. Die Signale werden in
einer bevorzugten Ausführungsform
durch den A/D-Wandler 64 mit einer Abtastrate von ca. 16
Kilohertz an das Merkmals-Extraktionsmodul 66 geliefert,
wobei der A/D-Wandler 64 als ein handelsüblicher
bekannter A/D-Wandler realisiert ist.
-
Das
Merkmals-Extraktionsmodul 66 teilt die von dem A/D-Wandler
64 erhaltenen digitalen Signale in Rahmen, welche eine Vielzahl
digitaler Abtastwerte aufweisen. Jeder Rahmen weist eine Dauer von
ca. 10 Millisekunden auf. Jeder Rahmen wird dann bevorzugt durch
das Merkmals-Extraktionsmodul 66 in einen Merkmalsvektor
umgewandelt, welcher die Spektraleigenschaften für eine Vielzahl von Frequenzbändern reflektiert.
Das Merkmals-Extraktionsmodul 66 könnte weiter den Merkmalsvektor
in Codewörter
basierend auf einer Vektorquantisierungs-Technik und Codebüchern umwandeln,
welche von den Übungsdaten
abgeleitet wurden (nicht einzeln gezeigt). Ausgangsverteilungen
können
gegen versteckte Markow-Modelle
unter Verwendung des Merkmalsvektors (oder der Codewörter) des
einzelnen analysierten Rahmens berechnet werden. Das Merkmals-Extraktionsmodul 66 liefert
bevorzugt die Merkmalsvek toren (Codewörter) mit einer Rate von einem
Satz ca. jede 10 Millisekunden.
-
Während das
Merkmals-Extraktionsmodul 66 die digitalen Abtastwerte
von dem A/D-Wandler 64 verarbeitet, verarbeitet das Ruhe- oder Grenz-)Detektionsmodul 68 ebenfalls
die Abtastwerte. Das Ruhe-Detektionsmodul 68 kann entweder
auf dem gleichen oder einem anderen Prozessor realisiert sein wie
derjenige, der zur Realisierung des Merkmals-Extraktionsmoduls 66 verwendet
wird. Das Ruhe-Detektionsmodul 68 arbeitet auf bekannte Weise.
Kurz gesagt verarbeitet das Ruhe-Detektionsmodul 68 die
durch den A/D-Wandler gelieferten digitalen Abtastwerte, um Ruhe
(oder Pausen) zu erfassen, um Grenzen zwischen Worten und Phrasen
zu erfassen, welche durch den Benutzer geäußert werden. Das Ruhe-Detektionsmodul 68 liefert
dann das Grenzdetektionssignal an die Suchmaschine 80,
welche die Erfassung einer Wort- oder Phrasengrenze anzeigt. Somit
empfängt
die Suchmaschine 80 Sprachdaten in Form von Ausgangsverteilungen, welche
mit zu erkennenden Zielworten in Zusammenhang stehen. Dies wird
durch Block 156 in 9 angezeigt.
-
Die
Suchmaschine 80 vergleicht dann die empfangenen Ausgangsverteilungen
mit den in dem monophonen Speicher 72 gespeicherten monophonen
Modellen. Für
jedes aufeinander folgende Zielphonem des gesprochenen Zielwortes
und für
jeden aufeinander folgenden Zielzustand des Zielphonems vergleicht
die Suchmaschine 80 die Ausgangsverteilung für den Zielzustand
mit einem entsprechenden Zustand jedes in dem Speicher 72 gespeicherten
monophonen Phonemmodells. Die Suchmaschine 80 wählt dann
eine vorgegebene Anzahl monophoner Phonemmodelle, deren Zustände am besten
mit der Ausgangsverteilung der Zielzustände übereinstimmt, um wahrscheinliche
Phoneme zu erhalten, welche durch das Zielphonem dargestellt werden.
Dies wird durch Block 158 in 9 dargestellt.
-
Die
Suchmaschine 80 wählt
dann eines der wahrscheinlichen Phoneme aus und wählt den
ersten Zustand in diesem Phonem aus. Dies wird durch die Blöcke 160 und 162 dargestellt.
Die Suchmaschine 80 ruft dann die durch den Senonenbaum
für den ausgewählten Zustand
erzeugten Senonen ab.
-
Als
Nächstes
vergleicht die Suchmaschine 80 die Ziel-Ausgangsverteilung
des ersten Zielzustandes mit jedem Senon des Senonenbaumes, welcher
dem ersten Zustand des ausgewählten
Phonemmodells entspricht. Die Suchmaschine 80 wählt dann
dasjenige Senon, welches am besten zu der Ausgangsverteilung des
Zielzustandes passt, als das am besten passende Senon aus und berechnet
und speichert einen passenden Wahrscheinlichkeitstreffer für das am
besten passende Senon. Dies wird durch die Blöcke 164 und 166 angezeigt.
-
Wenn
das ausgewählte
Phonem mehr als einen Zustand aufweist, führt die Suchmaschine 80 dieselben
Schritte für
jeden verbleibenden Zustand in dem ausgewählten Phonem durch. Somit wählt die Suchmaschine 80 ein
am besten passendes Senon für
jeden Zustand in dem ausgewählten
Phonem und berechnet und speichert einen passenden Wahrscheinlichkeitstreffer
für das
am besten passende Senon. Dies wird durch Block 168 angezeigt.
Nachdem alle Zustände
in dem ausgewählten
Phonem verglichen wurden, hat die Suchmaschine 80 eine wahrscheinliche
Senonensequenz für
das ausgewählte
Phonem basierend auf den bestimmten Wahrscheinichkeitstreffern ausgewählt. Dies
wird durch Block 170 angezeigt. Die Suchmaschine 80 greift dann
auf die im Speicher 74 gespeicherten Informationen zu und
ruft ein wahrscheinliches Triphon ab, welches zu den bestimmten
wahrscheinlichen Senonensequenzen kartiert wurde. Dies wird durch
Block 172 angezeigt.
-
Die
Suchmaschine 80 bestimmt dann, ob alle der wahrscheinlichen
Phoneme verarbeitet wurden. Ist dies nicht der Fall, so wiederholt
die Suchmaschine 80 den Prozess und gelangt zu einer wahrscheinlichen
Senonensequenz für
jedes wahrscheinliche Phonem (und gelangt somit zu N wahrscheinlichen Triphonen,
die mit dem Zielphonem in Zusammenhang zu bringen sind), basierend
auf den während des
Vergleichs bestimmten Wahrscheinlichkeitstreffern. Dies wird durch
die Blöcke 174 und 176 angezeigt.
-
Wenn
die N wahrscheinlichen Triphone identifiziert sind, greift die Suchmaschine 80 auf
den Präfixbaum
im Speicher 76 zu. Nach der Überquerung des Präfixbaumes
identifiziert die Suchmaschine 80 aktive Hypothesen. In
einer bevorzugten Ausführungsform
greift die Suchmaschine 80 einfach auf ein Lexikon und
ein Sprachmodell zu, beispielsweise ein von dem North American Business
News Corpus abgeleitetes Wort-Trigramm-Sprachmodell mit 60.000 Wörtern, welches
ausführlicher
in einer Veröffentlichung
mit dem Titel CSR – III
Text Language Model, University of Penn., 1994, veröffentlicht
durch das Linguistic Data Consortium, ausgeführt ist. Das Sprachmodell wird
verwendet, um das wahrscheinlichste Wort oder die wahrscheinlichste
Wortsequenz zu identifizieren, welche durch die eingegebenen Daten
dargestellt werden, und diese werden durch die Suchmaschine 80 an
die Ausgabevorrichtung 82 geliefert.
-
In Übereinstimmung
mit einem weiteren Aspekt und einer weiteren bevorzugten Ausführungsform
der vorliegenden Erfindung verwendet die Suchmaschine 80 jedoch
auch die Wortdauermodelle im Speicher 78, um das wahrscheinlichste
Wort oder die wahrscheinlichste Wortsequenz zu präziser zu
identifizieren, welche durch die eingegebenen Daten dargestellt
werden. 10 ist ein Ablaufdiagramm, welches
darstellt, wie die Dauermodelle verwendet werden, um zwischen Mehrwortphrasen
und Einzelwortphrasen zu unterscheiden. Für die Zwecke dieser Beschreibung
ist eine einzelne Phrase mit der Wortanzahl X eine Sequenz von Y
fließend
gesprochenen Worten, welche mit Ruhe beginnt und endet.
-
Die
Anwendung der Dauermodelle wird bevorzugt an den Grenzen der einzelnen
Phrasen durchgeführt.
Phrasen werden erfasst, indem Pausen in den eingegebenen Daten erfasst
werden. Zunächst
wird eine Pause in den eingegebenen Daten durch das Ruhe-Detektionsmodul 68 erfasst.
Dies wird durch Block 180 angezeigt. Als Nächstes bestimmt
die Suchmaschine 80, ob die erfasste Pause eine Dauer d(P)
aufweist, welche geringer ist als eine Schwellendauer d(p). Die
Schwellendauer d(p) wird empirisch bestimmt, basierend auf den Übungsdaten,
um die Erfassung falscher Pausen oder Pausen, welche nicht präzise eine
Grenze zwischen Phrasen reflektieren, zu verhindern. Dies wird durch
Block 182 angezeigt. Wenn d(P) geringer ist als d(p), kehrt
die Verarbeitung zu Block 80 zurück, und eine weitere Pausendetektion
wird abgewartet.
-
Wenn
d(P) jedoch nicht geringer ist als d(p), berechnet die Suchmaschine 80 die
Phrasendauer (oder Segmentdauer) d(S), welche die Dauer zwischen
der momentanen Pause und der letzten vorherigen Pause, welche die
Schwellendauer d(p) überschritten
hat, anzeigt. Dies wird durch Block 184 angezeigt. Die
Suchmaschine 80 bestimmt dann, ob die Segmentdauer d(S)
größer ist
als eine Schwellen-Segmentdauer d(s). Wie bei d(p) wird d(s) empirisch
basierend auf den Übungsdaten
bestimmt, um sicherzustellen, dass die Segmentdauer d(S) nicht so lang
ist, dass die Heuristik nicht angewendet werden sollte. Anders gesagt
wird angenommen, dass das Wortdauermodell am effektivsten sein kann,
wenn es auf Phrasen mit kürzerer
Dauer angewendet wird, anstelle auf Phrasen mit relativ langer Dauer.
Wenn die Segmentdauer d(S) größer ist
als die Segmentschwelle d(s), kehrt die Verarbeitung zu Block 180 zurück, wo eine
weitere Pausendetektion abgewartet wird.
-
Wenn
d(S) jedoch geringer ist als die Schwellen-Segmentdauer d(s), wählt die
Suchmaschine 80 eine momentane Phrasenhypothese H aus,
welche eines der n-wahrscheinlichsten Worte oder eine der n-wahrscheinlichsten
Wortphrasen darstellt, die durch die eingegebenen Daten dargestellt werden.
Dies wird durch Block 188 angezeigt. Die Suchmaschine 80 bestimmt
dann die Wortanzahl in H (wc(H)) und berechnet die durchschnittliche
Dauer jedes Worts in H basierend auf wc(H) und d(S) und vergleicht
diese mit der im Speicher 78 gespeicherten Wortdauerverteilung,
welche einer Phrase mit einer Wortanzahl entspricht, die gleich
wc(H) ist. Dies wird durch Block 190 angezeigt.
-
Basierend
auf dem Vergleich weist die Suchmaschine 80 dann einen
Treffer derjenigen Hypothese H (oder eine Verfehlung) gemäß einer
Funktion ip(wc(H), d(S)) zu, welche anzeigt, wie genau die durchschnittliche
Wortdauer in H zu dem entsprechenden Wortdauermodell passt. In einer
bevorzugten Ausführungsform
ist ip(wc(H), d(s)) eine absteigende Gradientenfunktion welche empirisch
basierend auf den in das System 60 eingegebenen Übungsdaten
herausgefunden wird. Dies wird durch Block 192 angezeigt.
Die Suchmaschine 60 wiederholt diesen Prozess für jede der
aktiven Hypothesen, wie durch Block 194 angezeigt, und
verwendet diese Information bei der Auswahl der wahrscheinlichsten Hypothese.
Die Suchmaschine 80 liefert dann die wahrscheinlichste
Hypothese an die Ausgabevorrichtung 82 als wahrscheinlichste
durch die eingegebenen Daten dargestellte Phrase. Dies wird durch
die Blöcke 194 und 196 angezeigt.
-
Daher
ist ersichtlich, dass die vorliegende Erfindung signifikante Vorteile über bisherige
Systeme bietet. Die vorliegende Erfindung nutzt ein Datensammelverfahren,
welches sowohl getrennte Sprachdaten als auch ununterbrochene Sprachdaten als Übungsdatensatz
sammelt. Durch Erhöhung
des normalen Datensammelverfahrens, so dass der Leser zwischen Worten
Pausen einlegen muss sowie fließend
sprechen muss, werden mit getrennter Sprache zusammenhängende Ruhekontexte
ebenso beim Training der akustischen Modelle in dem System verwendet
wie Nicht-Ruhe im Zusammenhang mit fließender Sprache. Es sollte sich
verstehen, dass die Übungsdaten
für die
ununterbrochenen Sprachübungsdaten
und die getrennten Sprachübungsdaten
entweder die gleichen oder unterschiedliche Worte enthalten können. Dieser
Satz gesammelter Übungsdaten
wird beim Training der Phonemmodelle, der Erzeugung der Senonenbäume und dem
Training der Senonen, wie auch bei der Kartierung von Triphone an
die geeigneten Senonensequenzen verwendet.
-
Es
sollte sich auch verstehen, dass die Auswirkung der unterschiedlichen
Arten von Übungsdaten
(ununterbrochene und getrennte) gemäß der Art von Sprache, welche
während
der Erkennung erwartet wird, unterschiedlich gewichtet werden können. Die
Gewichtung kann entweder durch Zuordnung eines Gewichtungskoeffizienten
oder einfach durch die Menge jedes Datentyps, welcher an das System
in dem Übungsdatensatz
geliefert wird, erzielt werden. In einer bevorzugten Ausführungsform
werden beide Arten von Übungsdaten
gleich gewichtet.
-
Weiter
in einer bevorzugten Ausführungsform
verwendet die vorliegende Erfindung Wortdauermodelle. Die Wortdauermodelle
werden bevorzugt während
des Trainings entwickelt und werden an Phrasengrenzen angewendet,
um die Präzision
des Erkennungssystems noch weiter zu steigern.
-
Die
vorliegenden Techniken können
auch verwendet werden, um andere Arten von Übungsdaten ebenfalls in das
System einzuführen.
Beispielsweise kann der Benutzer nicht nur zur Eingabe der Übungsdaten
als getrennte oder ununterbrochene Sprache geleitet werden, sondern
der Benutzer kann auch zur Eingabe der Übungsdaten laut, leise, langsamer
oder schneller oder mit anderen Variationen geleitet werden. Alle
diese Übungsdaten
können dann
auf ähnliche
Weise wie vorstehend beschrieben verwendet werden, um die akustischen
Modelle, welche in dem System verwendet werden, zu trainieren, um
ein noch robusteres Erkennungssystem zu erhalten.