-
Die vorliegende Erfindung betrifft
die Erkennung von Mustern.
-
Eine der klassischen Aufgaben der
Mustererkennung ist Spracherkennung. Spracherkennung wird durch
die Tatsache verkompliziert, dass keine zwei Personen ein Wort auf
die gleiche Weise sagen, und sogar dieselbe Person die Art und Weise
variieren kann, auf die sie dasselbe Wort ausspricht. Um diese Aufgabe
zu lösen,
sind Modelle entwickelt worden, die diese Veränderlichkeit berücksichtigen.
-
Eine Form von Modellen stellt ein
Wort, Phonem oder ein anderes Sprachelement als endlichen Automaten
dar. Zum Zwecke der Erkennung wird Sprache durch eine Vektorfolge
dargestellt. Jeder Vektor umfasst eine Vielzahl von Parametern des akustischen
Signals während
einer bestimmten Periode. Diese Parameter enthalten typischerweise Energiepegel
verschiedener Frequenzbänder
und zeitlich abgeleitete Energiepegel in den Frequenzbändern.
-
Um das Modell zu bilden, werden Vektorfolgen
analysiert, die darstellen, wie viele Leute dasselbe Wort, Phonem
usw. sagen, und, im Falle von versteckten Markov-Modellen, einen
Satz von Wahrscheinlichkeitsdichtefunktionen erzeugt. Die Wahrscheinlichkeitsdichtefunktionen
zeigen die Wahrscheinlichkeit davon an, dass ein eingegebener Vektor
einem bekannten Zustand entspricht. Jeder Zustand wird mit dem folgenden
Zustand, wenn es einen gibt, und rekursiv mit sich selbst verbunden.
Mit diesen Verbindungen sind Kosten oder Wahrscheinlichkeiten verbunden,
die die Wahrscheinlichkeit eines bestimmten Überganges zwischen Zuständen oder
bestimmter nicht vorkommender Übergänge darstellen,
die in einer Vektorfolge für
die Sprechweise einer Person auftreten, die das modellierte Wort sagt.
-
Der endliche Automat kann als Netz
dargestellt werden, von dem jeder Knoten eine einzigartige Kombination
von Zustand und Zeit darstellt. Während der Erkennung werden
der Ähnlichkeit
zwischen einem eingegebenen Vektor und den Knoten des Netzes in
Abhängigkeit
des verwendeten Verfahrens Kosten oder Wahrscheinlichkeiten zugewiesen.
Den Übergängen zwischen
Knoten werden während
der Erzeugung des Modells Kosten oder Wahrscheinlichkeiten zugewiesen.
Die Anwendung einer eingegebenen Vektorfolge auf ein Modell kann
als Erzeugung eines Satzes von Tokens angesehen werden, die durch
das Netz laufen, wobei das beste Token als Überlebendes an jedem Knoten
ankommt. Schließlich
verlassen die Tokens das Netz, und dann können ihre Werte mit denen von
anderen, die das gleiche Netz verlassen, und mit denen, die Netze
von anderen Modellen verlassen, verglichen werden, um das eingegebene
gesprochene Wort zu identifizieren.
-
Eine detailliertere Beschreibung
des Durchlaufs von Tokens findet sich in S. J. Young et al., „Token
Passing: a Simple Conceptual Model for Connected Speech Recognition
Systems", Cambridge University Engineering Department, Technical
Report CUED/F-INFENG/TR38, 31 July 1989.
-
Es wird zur Kenntnis genommen, dass
kontinuierliches Sprechen erkannt werden kann, indem Tokens, die
aus einem ersten Satz von Modellen ausgegeben werden, und eingegebene
Sprachvektoren auf einen zweiten Satz von Modellen angewendet werden.
Ein Problem entsteht jedoch dadurch, dass der zweite Satz von Modellen
von jedem Token, das den ersten Satz von Modellen verlässt, durchlaufen werden
muss.
-
Betrachtet man z. B. Ein System zur
Erkennung einer siebenstelligen Telefonnummer, dann muss der Satz
der Modelle für „eins", „zwei", „drei" usw.
enthalten und (im englischen) drei Varianten für 0, z. B. „zero", „nought" und „oh". Folglich
enthält
jeder Satz zwölf
Modelle und die Anzahl der durchlaufenen Modelle würde sich
auf 39.071.244 belaufen. Mit derartig vielen Modelle zu arbeiten,
ist eindeutig eine enorme Aufgabe.
-
Unsere frühere Anmeldung WO96/27872 veröffentlicht
ein Spracherkennungssystem, das einen Ansatz für den Durchlauf von Tokens
verwendet, bei dem das gesamte Netzwerk aus Modellen (Netzwerkknoten)
durchlaufen wird, bevor der Erkennungsprozess begonnen wird. Der
Erkenner setzt „ Herausstreichen"
von Modellen während
des Erkennungsprozesses ein, jedoch nicht, bevor das gesamte Netzwerk
durchlaufen wurde. Dies hat den oben erwähnten Nachteil, dass in einem
Netzwerk, das eine große
Anzahl von Wörtern
oder Folgen von Wörtern
erkennen muss, die Anzahl der Knoten, die durchlaufen werden müssen, groß ist, und
daher sehr viel Speicher verfügbar
sein muss, damit ein solcher Durchlauf möglich ist.
-
Die Modelle brauchen keine ganzen
Wörter darzustellen
und können
Phoneme oder andere Unterworteinheiten repräsentieren. In diesem Fall,
ist die Unterscheidung zwischen Wörtern, die mit den gleichen
Lauten beginnen, analog zur Unterscheidung zwischen Folgen von Wörtern, die
alle mit dem gleichen Wort beginnen.
-
Ein Ziel der vorliegenden Erfindung
ist es, das oben erwähnte Problem
zu verringern, sowohl wenn ein Ansatz mit Durchlauf von Tokens gewählt wird,
als auch allgemeiner.
-
Nach der vorliegenden Erfindung wird
ein Verfahren zur Erkennung von Mustern mit einer Folge von Untermustern
vorgeschlagen, wobei das Verfahren folgendes umfasst:
Erzeugung
einer Datenfolge, die eine physische Einheit darstellt,
Anwendung
(S2) der Datenfolge auf einen Satz aktiver Modelle in einem Netzwerk
von Modellen, der wenigstens ein Modell enthält und
Auswahl (S51) einer
Untermenge der Ausgaben der Mitglieder des Satzes nach einem vorgegebenen
Kriterium,
Hinzufügen
(S52) weiterer Modelle zu dem Satz in Abhängigkeit der Elemente der Untermenge,
wobei jedes Modell ein Untermuster darstellt und bei der Verwendung
eine Anzeige des Grades der Übereinstimmung
zwischen einer eingegebenen Unterfolge von Daten und dem dargestellten
Untermuster ausgibt und wobei die weiteren Modelle die zugehörigen Elemente
der Untermenge als Eingabe empfangen.
-
Nach der vorliegenden Erfindung wird
ebenso eine Vorrichtung zur Mustererkennung zur Erkennung eines
Musters mit einer Folge von Untermustern vorgeschlagen, wobei die
Vorrichtung folgendes umfasst:
eine Einrichtung (9)
zur Erzeugung einer Datenfolge, die eine physische Einheit darstellt,
eine
Einrichtung (10) zur Anwendung der Datenfolge auf einen
Satz aktiver Modelle in einem Netzwerk von Modellen, der wenigstens
ein Modell enthält
und
eine Einrichtung (10) zur Auswahl einer Untermenge der
Ausgaben der Mitglieder des Satzes nach einem festgelegten Kriterium,
eine Einrichtung (10) zum Hinzufügen weiterer Modelle zum Satz
in Abhängigkeit
der Mitglieder des Satzes,
wobei jedes Modell ein Untermuster
darstellt und bei der Verwendung eine Anzeige des Grades der Übereinstimmung
zwischen einer eingegebenen Unterfolge von Daten und dem dargestellten
Untermuster ausgibt und die weiteren Modelle die zugehörigen Elemente
der Untergruppe als Eingabe empfangen.
-
Folglich führt die vorliegende Erfindung
praxisnah automatische Mustererkennung mit weniger hoch entwickelter
Hardware durch, als nach dem Stand der Technik erforderlich ist,
und steigert die Fähigkeiten
der Hardware nach dem Stand der Technik.
-
Bevorzugt werden neue Modelle als
Instanzen nur hinzugenommen, wenn der Satz die erforderlichen Modelle
nicht schon enthält.
-
Bevorzugt wird im Fall einer Ausführung mit Durchlauf
von Tokens das Herausstreichen von Ausgaben der Modelle zusätzlich zum
Wettbewerb zwischen Tokens am Ausgang durchgeführt, wie in S. J. Young et
al. „Token
Passing: a Simple Conceptual Model for Connected Speech Recognition
Systems" beschrieben ist.
-
Die Art der Modelle selbst ist nicht
von kritischer Bedeutung. Sie können
zum Beispiel neuronale Netze sein. Wenn jedoch endliche Automaten
benutzt werden, wird das Herausstreichen bevorzugt zwischen der
Anwendung aufeinanderfolgender Datenelemente der Folge auf das Netzwerk
ausgeführt. In
diesem Fall ist der Satz von Modellen bevorzugt dynamisch und des
Herausstreichen entfernt Modelle, wenn alle ihrer Zustände deaktiviert
worden sind.
-
Bevorzugt ist das Kriterium, das
auf die Ausgaben der Modelle angewendet wird, strikter als das Kriterium,
das auf Zustände
innerhalb eines Modells angewendet wird.
-
Bevorzugt umfasst die Anwendung des
Kriteriums, das auf die Ausgaben der Modelle angewendet wird, die
Erzeugung eines Histogramms der ausgegebenen Zustände auf
Basis ihrer Werte und die Auswahl der Zustände in den Fächern des
Histogramms, die die Zustände
mit den m besten Werten enthalten, wobei m eine ganze Zahl ist.
Bevorzugt umfasst die Anwendung des Kriteriums, das auf alle Modellzustände angewendet
wird, ebenso die Erzeugung eines Histogramms von Zuständen auf
der Basis ihrer Werte und die Auswahl der Zustände in den Fächern des
Histogramms zu deren Deaktivierung, die die Zustände mit den n besten Werten
enthalten, wobei n eine ganze Zahl ist. Auf diese Weise kann das
Wachstum der Anzahl der durchlaufenen Modelle vorhergesagt werden
und es wird verhindert, dass die für die Verarbeitung benötigte Zeit übermäßig lang
wird.
-
Die vorliegende Erfindung kann insbesondere
für die
Spracherkennung angewendet werden. In einer Vorrichtung zur Spracherkennung
nach der vorliegenden Erfindung umfasst die Einrichtung zur Datenerzeugung
bevorzugt eine Einrichtung zur Gewinnung von Merkmalen, die charakteristische
Merkmale aus einem Audiosignal extrahiert.
-
Vorteilhafterweise gibt es im allgemeinen weniger
Modelle für
die Vokalaussprache als für
ganze Wörter.
Auf diese Weise kann die An zahl der erforderlichen verschiedenen
Modelle reduziert werden, wenn ein großes Vokabular erkannt werden
soll.
-
Eine Vorrichtung zur Spracherkennung
nach der vorliegenden Erfindung kann verwendet werden, um eine Vorrichtung
mit Ansprechbarkeit durch Sprache auszustatten. Vorzugsweise enthält eine
solche Vorrichtung einen Spracherzeuger und eine Verarbeitungseinrichtung,
wobei die Verarbeitungseinrichtung auf die Ausgabe der Vorrichtung
zur Spracherkennung reagiert, um Nachrichtendaten auszuwählen und
den Spracherzeuger gemäß den ausgewählten Nachrichtendaten
zu treiben, um eine hörbare Nachricht
zu erzeugen. Mit einer Vorrichtung dieser Art kann die Vorrichtung
in einen Dialog mit einem Benutzer eintreten. Ein Beispiel einer
solchen Anwendung wäre
die Steuerung einer Telefonschaltzentrale. Mit dieser Einrichtung
könnte
ein Benutzer eine Telefonnummer verbal wählen.
-
Nach der vorliegenden Erfindung wird
ferner ein Verfahren zum Betrieb eines Rechners vorgeschlagen, um
ein Muster mit einer Folge von Untermustern zu erkennen, wobei das
Verfahren folgendes umfasst:
Erzeugung einer Datenfolge, die
eine physische Einheit darstellt,
Anwendung (S2) der Datenfolge
auf einen Satz aktiver Modelle in einem Netzwerk von Modellen, der
wenigstens ein Modell enthält
und
Auswahl (S51) einer Untermenge der Ausgaben der Mitglieder
des Satzes nach einem vorgegebenen Kriterium,
Hinzufügen (S52)
weiterer Modelle zu dem Satz in Abhängigkeit der Elemente der Untermenge,
um dadurch die Zeit zu reduzieren, die zur Erkennung des Musters
erforderlich ist, wobei jedes Modell ein Untermuster darstellt und
bei der Verwendung eine Anzeige des Grades der Übereinstimmung zwischen einer
eingegebenen Unterfolge von Daten und dem dargestellten Untermuster
ausgibt und wobei die weiteren Modelle die zugehörigen Elemente der Untermenge
als Eingabe empfangen. Solch ein Verfahren hat eindeutig den technischen
Effekt, dass die Erkennung schneller ausgeführt wird, als es sonst der
Fall wäre.
Die Alternative wäre,
die Taktfrequenz des Rechners zu erhöhen. Dies würde jedoch nur eine begrenzte
Verringerung der Zeit für
die Verarbeitung bei der Erkennung bringen und der Grad, um den
die Taktfrequenz erhöht
werden kann, variiert von Rechner zu Rechner. Die Erhöhung der
Taktfrequenz hat auch den Nachteil, potenziell die nutzbare Lebensdauer
des Rechners zu verringern, weil der Rechner dazu tendiert, zu überhitzten.
-
Nun werden Ausführungen der vorliegenden Erfindung
beispielhaft mit Bezug auf die Zeichnungen im Anhang beschrieben,
in denen:
-
1 ein
Netzwerk zur Unterscheidung der englischen Wörter „cat", „card" und can't" zeigt;
-
2 ein
verstecktes Markov-Modell mit drei Zuständen darstellt;
-
3 das
Modell der 2 im Zustands/Zeit-Raum
zeigt;
-
4 die
Beziehung zwischen einer ersten Modellinstanz und den davon abhängigen Modellinstanzen
zeigt;
-
die 5 bis 8 Flussdiagramme sind, die
ein Verfahren nach der vorliegenden Erfindung darstellen;
-
9 ein
Blockdiagramm einer Vorrichtung ist, in der die vorliegende Erfindung
verwendet wird;
-
10 ein
Netzwerk zur Erkennung der englischen Worte für die Ziffern 0 bis 9 zeigt;
und
-
11 ein
Flussdiagramm ist, das ein anderes Verfahren nach der vorliegenden
Erfindung darstellt.
-
In der folgenden Beschreibung wird
das internationale phonetische Alphabet verwendet, sodass die Mehrdeutigkeiten
englischer Rechtschreibung vermieden werden können. Die Buchstaben des internationalen
phonetischen Alphabetes werden zur Klarheit kursiv geschrieben.
Die Aussprache ist die normale Sprechweise von gebildetem Britischem Englisch.
-
In 1 beginnt
jedes der Worte „cat",
card" und „can't"
mit k. Nach dem k kann man sehen, dass das Netzwerk sich verzweigt,
weil „cat"
den Vokal ae enthält,
wogegen „card"
und „can't"
den vokalen Laut a: enthalten. Das Netzwerk verzweigt sich nach
a: noch einmal, um die verschiedenen abschließenden Konsonanten von „card"
und „can't"
wiederzugeben, d. h. d und n + t.
-
Jeder der Laute k, ae, a:, d, n und
t werden mit versteckten Markov-Modellen
mit drei Zuständen in
der in 2 gezeigten Form
modelliert. Die versteckten Markov-Modelle können auch als Netze angesehen
werden, von denen jeder Knoten eine verschiedene Zustands/Zeit-Kombination
darstellt, wie in 3 gezeigt
ist. Jedem der Übergänge zwischen Zustands/Zeit-Knoten
des Netzes wird während
des Trainings des Netzwerks eine Wahrscheinlichkeit zugeordnet.
Dieser Trainingsprozess ist nach dem Stand der Technik gut bekannt.
-
Jedes der Modelle ist als ein Exemplar
eines geeigneten Softwaremodellobjekts implementiert. Bevorzugt
sind die Modelle für
verschiedene Laute polymorphe Abkömmlinge derselben Basisklasse.
-
Jeder der Zustände wird ebenso als ein Exemplar
eines Softwaremodellobjekts implementiert. Die Eigenschaften der
Zustände
umfassen die Parameter der Wahrscheinlichkeitsdichtefunktionen,
die für
die Auswertung der Übereinstimmung
eines eingegebenen Vektors mit dem Zustandsvektor zu verschiedenen
Zeiten verwendet wird, sowie die Identität von Zuständen, von denen aus Übergänge auftreten
können,
die Parameter der Wahrscheinlichkeitsdichtefunktionen, die mit jedem
dieser Übergänge und
dem Fall eines Nicht-Überganges
assoziiert sind, und neue und alte Tokeneigenschaften. Die Bedeutung
der neuen und alten Tokeneigenschaften wird durch die folgende Beschreibung
klar.
-
In einem Modellobjekt werden die
Zustandsobjekte in einem eindimensionalen Feld gespeichert.
-
Wenn das Modell durchlaufen wird,
werden die neuen und alten Tokeneigenschaften aller Zustände auf –∞ gesetzt.
In der Praxis wird den neuen und alten Tokeneigenschaften von jedem
Knoten des Netzes die negativste Zahl, die vom Rechner gehandhabt
werden kann, zugeordnet.
-
Wenn das Modell einmal durchlaufen
wurde, wird eine Folge von Vektoren V0,...,
V5 nacheinander jeweils zu Zeiten t0,..., t5 auf das
Modell angewendet. Wenn ein Vektor auf das Modell angewendet wird, wird
er mit der Wahrscheinlichkeitsdichtefunktion für die aktuell zulässigen Zustände, die
für die
aktuelle Zeit t0 anwendbar ist, und die
von den Zustandsobjekten definiert wird, multipliziert, und das
Ergebnis wird in den neuen Tokeneigenschaften der Zustände gespeichert.
Aus 2 kann entnommen
werden, dass die Zustände
S2 und S3 zur Zeit
t0 nicht zulässig sind und dass Zustand
S3 zur Zeit t1 nicht
zulässig
ist.
-
Als Nächstes werden die Werte der
ankommenden Tokens für
jeden Zustand bestimmt, dessen neue Tokeneigenschaften nicht gleich –∞ sind.
Das heißt,
dass für
jeden Zustand links vom aktuellen Zustand und für den aktuellen Zustand, für den das
Modell einen Übergang
zum aktuellen Zustand zulässt (2), die alte Tokeneigenschaft
(wenn sie nicht –∞ ist) mit
der Wahrscheinlichkeitsdichtefunktionen des Übergangs multipliziert wird,
die im Modell des Zustandes angegeben ist. Davon wird die größte bestimmt
und mit der neuen Tokeneigenschaft für den betreffenden Zustand
multipliziert, und das Ergebnis in der neuen Tokeneigenschaft gespeichert.
-
Wenn alle neuen Werte des Tokens
bestimmt worden sind, werden die neuen Tokeneigenschaften in die
alten Tokeneigenschaften kopiert. Ein Histogramm der alten Tokeneigenschaften
wird dann aufgebaut und die Zustände
in den Fächern,
die die n größten Werte
größer als –∞ enthalten,
werden identifiziert, wobei n eine empirisch gewählte ganze Zahl ist, Dabei
wird berücksichtigt,
dass es anfangs weniger als n Zustände mit Tokeneigenschaften
größer als –∞ gibt.
Für alle
Zustände,
außer
denen in den identifizierten Fächern,
werden die alten Tokeneigenschaften auf –∞ gesetzt. Folglich beeinflussen
zu jeder Zeit nur die besten Zustände den Modellzustand bei der
erfolgreichen Iteration; die anderen sind herausgestrichen worden.
Auf andere Weise gesagt überleben
nur die besten Tokens um, um zur nächsten Spalte des Netzes überzugehen.
-
Wenn die Zeit nicht größer als
t5 ist, wird eine weitere Iteration durchgeführt. Eine Übereinstimmung
zwischen dem modellierten Wort und der eingegebenen Sprache wird
auf Basis der Werte der Tokens bestimmt, die den Zustand S3 des Modells verlassen.
-
Nun wird die Erweiterung des obigen
Verfahrens auf das Netzwerk in 1 beschrieben.
-
Ab der Zeit t3 beginnt
das k-Modell, Tokens auszugeben. Ein ae und ein a:-Modell können für jeden
vom k-Modell ausgegebenen Token durchlaufen werden. Dies führt jedoch
zu einem schnellen Anstieg der Anzahl aktiver Modelle. Dies wird
zu einem gewissen Grad verbessert, indem Modellinstanzen zu einer
Liste hinzugefügt
werden, und das Histogramm, auf das sich oben gezogen wurde, mit
den alten Eigenschaften für
alle Zustände
in den aktiven Modellen des Tokens aufgebaut wird. Wenn die Liste folglich
einmal mehr als eine Modellinstanz enthält, kann auf den Schritt des
Herausstreichens, der oben beschrieben wurde, das Entfernen jeglicher
Modellinstanzen folgen, deren alte Eigenschaften zu dieser Zeit
alle –∞ sind.
-
Diese Problematik wird weiter verbessert,
indem ein weiteres Histogramm unmittelbar nach dem vorher erwähnten Schritt
des Herausstreichens aufgebaut wird. Dieses zweite Histogramm wird
nur mit den ausgegebenen Tokens aufgebaut, das heißt den alten
Tokeneigenschaften des Zustands S3 des aktiven
Modells. Aus diesem Histogramm werden die Tokens in den Fächern, die
die m größten ausgegebenen
Tokens enthalten, die nicht –∞ sind,
identifiziert und neue Modellinstanzen werden nur unter Berücksichtigung
der identifizierten ausgegebenen Tokens erzeugt, wobei angenommen
wird, dass das erforderliche Modell noch nicht durchlaufen worden
ist. m ist eine empirisch gewählte
ganze Zahl, und ist kleiner als n.
-
4 illustriert
das Durchlaufen von Modellen als Reaktion auf ausgegebene Tokens,
die aus dem k-Modell herauskommen.
-
Auf diese Weise umfasst das beispielhafte Verfahren
mit Bezug auf 5 die
Initialisierung eines Netzwerks (Schritt s1), einschließlich dem Durchlaufen
von einem oder mehreren Modellen am Anfang und der Erzeugung einer
Liste von Modellinstanzen. Dann wird wiederholt ein eingegebener Vektor
auf das Netzwerk angewendet (Schritt s2), das Token durchläuft das
oder jedes Modell (Schritt s3), Zustände des Modells werden herausgestrichen (Schritt
s4) und neue Modelle werden als Reaktion auf die ausgegebenen Tokens
durchlaufen (Schritt s5), bis der letzte Vektor eingegeben wurde
(Schritt s6). Schritt s2 umfasst für jede Modellinstanz die Multiplikation
der zugehörigen
Wahrscheinlichkeitsdichtefunktionen für die zulässigen Zustände mit dem eingegebenen Vektor
und das Speichern des Ergebnisses in den neuen Eigenschaften der
relevanten Zustandsinstanzen des Tokens.
-
Bezugnehmend auf 6 umfasst Schritt s3 für jeden
Zustand jeder Modellinstanz das Kopieren der alten Tokeneigenschaften
in die neuen Tokeneigenschaften (Schritt s30), wobei die Zustände identifiziert
werden, die Verbindungen zum aktuellen Zustand (einschließlich sich
selbst und möglicherweise dem
Zustand S3 in irgend einem vorhergehenden Modell)
und alte Tokeneigenschaften größer – ∞ haben
(Schritt s31), das Multiplizieren der alten Tokeneigenschaften der
identifizierten Zustände
mit der Wahrscheinlichkeitsdichtefunktionen der Verbindung (Schritt
s32), die Auswahl des größten Produkts
aus Übergangswahrscheinlichkeit
und Token (Schritt s33) und die Multiplikation der neuen Tokeneigenschaft
mit dem ausgewählten
Produkt und das Speichern des Ergebnisses in der neuen Tokeneigenschaft
(Schritt s34).
-
In 7 umfasst
Schritt s4 den Aufbau eines Histogramms aus den neuen Tokeneigenschaften von
allen Zuständen
im Netzwerk, in denen die neue Tokeneigenschaft größer als –∞ ist (Schritt
s40), die Identifizierung der Fächer
des Histogramms, die die besten fünf Knoten enthalten (Schritt
s41), das Setzen des neuen Wertes des Tokens aller Knoten außer denen
in den Fächern,
die im Schritt s41 identifiziert wurden, auf –∞ (Schritt s43) und Kopieren
der neuen Tokeneigenschaften in die alten Tokeneigenschaften für alle Zustände im Netzwerk
(Schritt s44).
-
Bezugnehmend auf 8 umfasst Schritt s5 den Aufbau eines
Histogramms der neuen Tokeneigenschaften aller Zustände Sa (Schritt
s50), die Identifizierung der Fächer
des Histogramms, die die besten drei Tokens des Zustands S3 (s51) enthalten, das Durchlaufen eines
hinsichtlich der Zustände
S3 erfolgreichen Modells in den identifizierten
Fächern und
das Hinzufügen
dessen zu der Liste, wenn das erforderliche Modell nicht schon in
der Liste ist (Schritt s52). Es ist erforderlich, dass Modelle durchlaufen
werden, wenn sie nicht schon durchlaufen wurden oder wenn sie durchlaufen
wurden und dann in Schritt s43 zerstört wurden. Es sollte beachtet
werden, dass die Identität
eines Modells seine Position im Netzwerk einschließt. Folglich
sind die zwei t-Modelle in 1 nicht
gleichwertig. Das heißt,
dass das t-Modell, das dem n-Modell folgt, auch dann durchlaufen
wird, wenn eine Instanz des t-Modells existiert, die dem ae-Modell
folgt.
-
Die Anwendung des oben erklärten Verfahrens
in einer nutzbringenden Vorrichtung wird nun beschrieben.
-
Bezugnehmend auf 9 umfasst eine Vorrichtung zur sprachgesteuerten
Weiterleitung von Anrufen zu Endanschlüssen einer Nebenstellenanlage (PABX,
private branch exchange) 1, die mit einer Leitung des Teilnehmers 2 mit
einer Schaltzentrale 3 im Telefonnetzwerk mit öffentlicher
Vermittlung 4 verbunden ist. Die Nebenstellenanlage 1 kann
die Leitung 3 des Teilnehmers mit irgendeinem der Vielzahl der
Telefone 5a, 5b oder 5c über die
jeweiligen Leitungen der Endanschlüsse 6a, 6b oder 6c verbinden. Der
Betrieb der Nebenstellenanlage 1 wird von einer Steuereinheit 7 gesteuert.
Die Steuereinheit 7 umfasst einen Analog-Digital-Wandler
(ADC) 8 für
die Digitalisierung analoger Sprachsignale, die über die Leitung 2 des
Teilnehmers und die Nebenstellenanlage 1 empfangen werden,
einen digitalen Signalprozessor 9 zur Verarbeitung der
Ausgabe des ADC 8, einen Spracherkenner 10 zur
Erkennung von Sprache aus den Signalen, die von dem digitalen Signalprozessor 9 ausgegeben
werden, eine Dialogsteuerung 11 zur Steuerung des Spracherkenners 10 und der
Nebenstellenanlage 1 und ein Spracherzeuger 12,
der auf Signale der Dialogsteuerung 11 anspricht, um analoge
Sprachsignale zu erzeugen und sie der Nebenstellenanlage 1 zur Übertragung über die
Leitung 2 des Teilnehmers zu liefern.
-
Der digitale Signalprozessor 9 wird
betrieben, um eine Folge von Merkmalsvektoren oder Fenstern zu erzeugen.
In dem digitalen Signalprozessor 9 werden die Sprachsignaldaten
aus dem ADC 8 zuerst zusammengesetzt und mit überlappenden
Fenstern gefenstert. Die Zeitdauer der Überlappung wird üblicherweise
im Bereich von 10 bis 20 ms gewählt,
während
der angenommen wird, dass Sprache quasi-stationär ist. Eine Fast-Fourier-Transformation
(FFT) wird verwendet, um das Leistungsspektrum zu berechnen.
-
Das Leistungsspektrum wird dann nach
einer Reihe von Mel-Skala-Filtern
in Frequenzbänder eingeteilt.
Diese Filter haben bis 1 kHz einen linearen Abstand voneinander
und dann logarithmische Abstände
bis zur Maximalfrequenz. Die Abstände dieser Bänder basieren
auf Messungen der Empfindlichkeit des menschlichen Ohres auf Frequenzänderungen.
Auf diese Weise kann das Leistungsspektrum durch die Ausgaben von
ungefähr
20 Mel-Skala-Filtern dargestellt werden.
-
Der dynamische Bereich des Leistungsspektrums
ist ziemlich groß und
folglich wird der Logarithmus der Ausgaben der Mel-Filter verwendet.
Dies entspricht der menschlichen Wahrnehmung der Lautstärke, von
der angenommen wird, dass sie mit dem Logarithmus des Schallpegels
variiert. Schließlich wird
eine diskrete Kosinustransformation (DCT) mit den Logarithmen der
Ausgaben der Mel-Filter durchgeführt.
Diese wird folgendermaßen
angegeben:
wobei C(k) die k-te Ausgabe
der DCT und f(i) die i-te Ausgabe von N logarithmischen Ausgaben
aus dem Filter ist. Von dieser Transformation werden zwei wichtige
Funktionen geliefert. Erstens arbeitet sie als eine Verringerungsstufe
für die
Datenmenge. Die Umhüllende
des Leistungsspektrums variiert langsam über den Frequenzbereich und
deshalb ist M üblicherweise
viel kleiner als N. Zweitens sind die Ausgaben der DCT relativ unkorreliert,
sodass von jedem ausgegebenen Wert angenommen werden kann, dass
er unabhängig
von jedem anderen Wert ist.
-
Jeder Merkmalsvektor enthält eine
Untermenge von Koeffizienten. Außerdem ist oft die zeitliche
Ableitung der Koeffizienten enthalten, die über aufeinander folgende, nicht überlappende
Fenster berechnet wird. Ebenso ist in ähnlicher Weise der differenzielle
Logarithmus der Energie des Fensters enthalten.
-
Folglich besteht der endgültige Merkmalsvektor
aus:
-
Der Spracherkenner 10 ist
mit Modellen programmiert, damit er gesprochene Nummern von Telefonanschlüssen erkennen
kann. 10 zeigt ein Netzwerk
von Modellen für
englische Ziffern.
-
Der Betrieb der Vorrichtung in 9 wird nun beschrieben.
Wenn eine Partei einen Anruf tätigt,
der an eines der Telefone 5a, 5b oder 5c gerichtet
ist, der detektiert die Nebenstellenanlage 1 das Signal
auf der Leitung 2 des Teilnehmers und teilt der Dialogsteuerung
mit, dass es einen ankommenden Anruf gibt. Die Dialogsteuerung 11 gibt
einen Befehl zum Abnehmen an die Nebenstellenanlage 1,
die dann die Leitung des Teilnehmers in den abgenommenen Zustand
versetzt. Unmittelbar danach gibt die Dialogsteuerung 11 Befehle
zum Spracherzeuger 12 aus, die ihn veranlassen, die Nachricht „Bitte
geben Sie die Nummer des gewünschten
Anschlusses an" zu erzeugen. Das Signal der Nachricht vom Spracherzeuger 12 wird
dann von der Nebenstellenanlage 1 auf die Leitung 2 des
Teilnehmers gelegt.
-
Der ADC 8 digitalisiert
wiederholt das Signal, das an der Nebenstellenanlage 1 über die
Leitung 2 des Teilnehmers ankommt, und gibt ein Digitalsignal an
den digitalen Signalprozessor 9 aus. Der digitale Signalprozessor
verarbeitet das Digitalsignal und gibt wie oben beschrieben Vektoren
aus.
-
Nach dem Senden des Steuersignals
zum Spracherzeuger 12 initialisiert die Dialogsteuerung 11 den
Spracherkenner 10, und veranlasst ihn, Instanzen eines
Anfangssatzes von Modellen (w, t, θ, f, s, e, n, z, e auf dem
Kopf) zu durchlaufen. Jedes dieser Modelle wird zu einer Liste aktiver
Modelle hinzugefügt.
-
Wenn die Nachricht einmal übertragen
wurde, weist die Dialogsteuerung 11 den Spracherkenner 10 an,
die Ausgaben aus dem digitalen Signalprozessor 9 zu überwachen.
Der Spracherkenner 10 tritt nicht in Aktion, bevor die
von dem digitalen Signalprozessor 9 ausgegebenen Vektoren
anzeigen, dass Sprache empfangen wird. Wenn innerhalb einer vorgegebenen
Zeitdauer keine Sprache empfangen wird, wird die Dialogsteuerung 11 von
dem Spracherkenner 10 benachrichtigt und die Nachricht
zur Anforderung einer Anschlussnummer wird noch einmal gesendet.
-
In dem Fall, dass Vektoren empfangen
werden, die den Empfang von Sprache vermuten lassen, wendet der
Spracherkenner 10 die Vektoren auf den ersten Satz von
Modellinstanzen an, im wesentlichen wie es oben mit Bezug auf die 1 bis 8 beschrieben wurde. Wenn jedoch eine
Vielzahl von Modellen anfänglich
aktiv sind, wird das erste Histogramm hinsichtlich der Zustände aller
Modellinstanzen in dem Anfangssatz aufgebaut. Als ein Ergebnis wird
die Anzahl der aktiven Modellinstanzen, d. h. die in der Liste,
schnell reduziert. Auf ähnliche
Weise wird das zweite Histogramm für die aktuell ausgegebenen
Tokens für
alle aktiven Modellinstanzen aufgebaut.
-
Der Effekt des Herausstreichens ist,
dass der Anfangssatz von Modellinstanzen entfernt wird, sobald sie
nicht länger
eine signifikante Rolle beim Erkennungsprozess spielen. Außerdem werden
die nachfolgenden Modellinstanzen grundsätzlich nur durchlaufen, wenn
der Wert eines ausgegebenen Tokens es lohnend erscheinen lässt.
-
Der Spracherkenner 10 überwacht
die aus den Instanzen der Modelle auf der rechten Seite jedes Pfades
durch das Netzwerk, das in 10 gezeigt
ist, ausgegebenen Tokens und wenn es keine eingegebenen Sprachvektoren
mehr gibt, identifiziert er das eingegebene gesprochene Wort als
das Wort, das von dem Pfad durch das Netzwerk dargestellt wird,
der die besten Werte der ausgegebenen Tokens erzeugt hat. Alternativ
kann jedem Pfad durch das Netzwerk ein Schwellwert zugeordnet werden,
der der Pfadlänge
angemessen ist, und der Spracherkenner identifiziert das eingegebene
gesprochene Wort durch den Pfad durchs Netzwerk, der ein ausgegebenes
Token mit der größten prozentualen Spanne über seiner
Schwelle erzeugt.
-
Wenn alle der Modelle aus der Liste
entfernt werden, bevor ein ausreichend großes Token die rechte Seite
des Netzwerkes verlässt,
wird vermutet, dass das gesprochene Wort nicht erkennbar ist. Wenn
dies auftritt, benachrichtigt der Spracherkenner 10 die
Dialogsteuerung
11, und die Dialogsteuerung 11 weist
den Spracherzeuger 12 an, einer Nachricht auszugeben, die
den Anrufer auffordert, die gewünschte
Anschlussnummer noch einmal anzugeben.
-
Wenn eine positive Erkennung des
eingegebenen gesprochenen Wortes gemacht wird, benachrichtigt der
Spracherkenner 10 die Dialogsteuerung 11 von der
Nummer, die, wie er bestimmt hat, der Anrufer gesagt hat, und die
Dialogsteuerung 11 sendet ein Steuersignal an die Nebenstellenanlage 1,
um die Nebenstellenanlage 1 zu veranlassen, den ankommenden
Anruf an den richtigen Telefonapparat 5a, 5b oder 5c weiter zu verbinden.
-
Die oben beschriebene Vorrichtung
kann auf verschiedene Weisen modifiziert werden. Zum Beispiel kann
das Weiterverbinden von Signalen durch einen Schalter 3 statt
durch eine Nebenstellenanlage 1 mit einer Spracherkennungsvorrichtung
gesteuert werden, die im wesentlichen die oben beschriebene Form
hat. Wenn außerdem
die Nummer des Anschlusses aus mehr als einer Ziffer besteht, können Netzwerke,
wie in Figur neun gezeigt, kaskadiert werden, oder die anrufende
Partei kann Ziffer für
Ziffer nach der Anschlussnummer gefragt werden. In dem Fall, dass
die gesprochene Nummer erkannt wird, kann die Dialogsteuerung 11 dazu
eingerichtet sein, den Spracherzeuger 12 zu veranlassen,
der anrufenden Partei die Ziffer zur Bestätigung wiederzugeben. Um die
Bestätigung
zu detektieren, rekonfiguriert die Dialogsteuerung 11 den
Spracherkenner 10 so, dass er ein Netzwerk einsetzt, das
die Worte „ ja"
und „nein"
darstellt. In dem Fall, dass ein zu erkennendes Wort ein anfänglicher
Anteil eines anderen zu erkennenden Wortes ist, z. B. „fünf" und „fünfzehn",
kann der Pfad durch das Netzwerk 4 eine Anzahl von Instanzen
eines Modells der Geräusche
enthalten, die auf einer stillen Telefonleitung erwartet werden.
-
Eine alternative Implementierung
des Netzwerks in 1 wird
nun bezugnehmend auf 11 beschrieben.
-
Wie oben beschrieben wird jedes der
Modelle als eine Instanz eines Softwaremodellobjekts implementiert,
das ein eindimensionales Feld von Zustandobjekten enthält.
-
Auf die Initialisierung hin wird
eine Instanz des k-Modells durchlaufen und zu einer Liste der Modellinstanzen
hinzugefügt.
Dann wird eine Schleife ausgeführt,
in der zuerst der nächste
eingegebene Vektor genommen wird (Schritt s100). Während der ersten
Iteration ist der nächste
eingegebene Vektor natürlich
der erste eingegebene Vektor V0. Als nächstes werden
die neuen Tokeneigenschaften aller Zustände S3 betrachtet
und für
jeden Zustand S3 wird ein neues Modell durchlaufen,
dessen neue Tokeneigenschaft nicht –∞ ist, wenn das erforderliche
Modell nicht schon auf der Liste ist (Schritt s101). Die neuen Modelle
werden zu der Liste der Modellinstanzen hinzugefügt. Wenn zum Beispiel die neue
Tokeneigenschaft für
den Zustand 5s des k-Modells größer als – ∞ ist und die Liste nicht die
ae- und a:-Modelle enthält, werden
neue ae- und a:-Modelle durchlaufen. Während ersten zwei Iterationen
werden natürlich
keine Tokens den Zustand S3 erreicht haben
und zu diesem Zeitpunkt werden keine neuen Modelle durchlaufen.
-
Dann wird ein Histogramm der alten
Tokeneigenschaften für
alle Zustände
erzeugt (Schritt s102). Die Fächer
des Histogramms, die die besten fünf Eigenschaften von Tokens
enthalten, die nicht –∞ sind, werden
identifiziert und die alten Tokeneigenschaften in den anderen Fächern werden
auf –∞ gesetzt (Schritt
s103). Wenn es weniger als sechs alte Tokeneigenschaften gibt, die
nicht –∞ sind,
werden keine alten Tokeneigenschaften auf –∞ gesetzt. Eine absolute Schwelle
kann jedoch in Verbindung mit den Histogramm angewendet werden,
sodass alte Tokeneigenschaften unterhalb der Schwelle auf –∞ gesetzt werden.
-
Alle Modelle, in denen die alten
Tokeneigenschaften aller Zustände –∞ sind,
außer
neu durchlaufene Modelle, werden dann zerstört und von der Liste aktiver
Modelle entfernt (Schritt s104). Zerstörte Modelle können, wenn
erforderlich, später
im Schritt s101 erneut durchlaufen werden.
-
Der aktuelle eingegebene Vektor wird
auf die Modelle in der Liste angewendet und die Tokens durchgereicht
(Schritt s105). Dies umfasst für
jeden Zustand S1 bis S3 jedes
Modells die Identifizierung der Zustände, die Verbindungen zu den
aktuellen Zuständen
haben (einschließlich
zu sich selbst und möglicherweise
zu einem Zustand S3 eines vorhergehenden
Modells), die alte Tokeneigenschaften größer als –∞ haben, die Multiplikation
der alten Eigenschaften des Tokens der identifizierten Zustände mit
der Wahrscheinlichkeitsdichtefunktionen der entsprechenden Verbindung,
die Auswahl der größten Produkte
aus Tokens und Übergangswahrscheinlichkeit und
die Speicherung des Ergebnisses der Multiplikation des aktuelle
eingegebenen Vektor so und der passenden Wahrscheinlichkeitsdichtefunktion
für den
Zustand in der neuen Tokeneigenschaft.
-
Wenn alle neuen Tokeneigenschaften
einmal berechnet worden sind, werden die entsprechenden alten Tokeneigenschaften
mit den neuen Tokeneigenschaften überschrieben (Schritt s106).
Ein Histogramm der Zustände
S3 der neuen Tokeneigenschaften wird dann
erzeugt (Schritt s107). Die Fächer
des Histogramms, die die besten drei Zustände S3 enthalten,
werden identifiziert und die neuen Tokeneigenschaften bezüglich des
Zustands S3 in den anderen Fächern werden
auf –∞ gesetzt
(Schritt s108). Wenn es weniger als vier neue Tokeneigenschaften
bezüglich
des Zustandes S3 gibt, werden keine neue
Eigenschaften von Zuständen
auf –∞ gesetzt.
In Verbindung mit dem Histogramm kann jedoch eine absolute Schwelle
angewendet werden, sodass alle neuen Eigenschaften des Tokens bezüglich dem
Zustand S3, die unterhalb der Schwelle liegen,
auf –∞ gesetzt
werden, sogar dann, wenn sie in den Fächern sind, die die besten
neuen Eigenschaften von Tokens bezüglich dem Zustand S3 enthalten.
-
Tokens, die die t- und d-Modelleinstanzen verlassen,
werden analysiert, um zu bestimmen, ob die eingegebenen Vektorfolge „cat", „card"
oder „can't"
darstellt (Schritt s109).
-
In einer anderen Ausführung einer
sprachgesteuerten Vorrichtung zum Weiterleiten von Anrufen an Endanschlüsse, auf
die 9 ebenso anwendbar ist,
verarbeitet der Spracherkenner 10 das Modell, das in 10 gezeigt ist, auf die
mit Bezug auf 11 beschriebene
Weise.
-
Es sollte verständlich sein, dass das Kriterium,
durch das die Tokeneigenschaften auf –∞ gesetzt werden und das Durchlaufen
von Modellen verhindert wird, generell empirisch eingestellt werden
muss und dass die oben angegebenen Beispiele ausschließlich dazu
da sind, das Verständnis
der Erfindung zu unterstützen.
Der Fachmann, der mit der vorliegenden Erfindung arbeitet, sollte
seine Wahl des Kriteriums nicht auf die hier beschriebenen Kriterien
beschränken,
sondern Kriterien herausfinden, die ein Gleichgewicht zwischen der
Genauigkeit der Spracherkennung und den Anforderungen an die Berechnung,
die seinen Umständen
entsprechen, erzeugen.
-
Obwohl die vorliegende Erfindung
mit Bezug auf Ausführungen
beschrieben wurde, in denen Unterworteinheiten modelliert sind,
wird zur Kenntnis genommen, dass ganze Worte durch ein einzelnes verstecktes
Markov-Modell modelliert werden können. Die Verwendung von Modellen
von Unterworteinheiten ist jedoch besonders vorteilhaft, wenn ein
umfangreiches Vokabular erkannt werden soll, weil sie die Anzahl
der Modelle begrenzt, die anfänglich
durchlaufen werden müssen.