Die vorliegende Erfindung bezieht sich auf Sprachwiederer
kennung und insbesondere auf ein Verfahren zum Speichern
von Rückverfolgungs-Gitterinformation für ein Sprachwie
dererkennungssystem.
Auch die DE 32 15 868 C2 beschäftigt sich mit der Sprach
wiedererkennung und betrifft die Weiterbildung eines aus
der Zeitschrift "IEEE Transactions on Acoustics, Speech,
and Signal Processing", Vol. Assp-29, No. 2, April 1981,
Seiten 284 bis 297 bekannten Verfahrens. Bei diesem Ver
fahren werden die aus dem Sprachsignal gewonnenen Testsig
nale mit den Folgen der Referenzsignale für alle zu erken
nenden Wörter unter Anwendung von nichtlinearer Zeitanpas
sung verglichen und der Weg der besten Übereinstimmung
durch jedes Wort bis zu dessen Ende ermittelt und dieser
Endpunkt jeweils registriert. Nach dem Durchlaufen aller
Wörter werden ausgehend von diesen Endpunkten alle Wörter
nochmals mit wenigstens zum größten Teil denselben Test
signalen durchlaufen und es wird wieder für jeden vorher
gehenden Endpunkt und für jedes Wort der Weg der besten
Übereinstimmung ermittelt. Dieses Verfahren wird fortge
setzt, wobei dieselben Testsignale wiederholt verwendet
werden, bis Wege bester Übereinstimmung beim letzten Test
signal enden. Ein Problem bei der Erkennung der Wörter in
einer zusammenhängenden Wortkette besteht darin, dass zu
nächst die Wortgrenzen in dem Sprachsignal nicht bekannt
sind, so dass zunächst nicht ohne Weiteres bekannt ist,
wann in dem Sprachsignal erneut der Vergleich mit dem An
fang der einzelnen Folgen der Referenzsignale durchgeführt
werden muss. Das aus der genannten Veröffentlichung be
kannte Verfahren ermittelt daher mehrere Wege, die
Kandidaten für den insgesamt optimalen Weg sein könnten.
Am Ende des gesamten Sprachsignals wird ausgehend von der
kleinsten Unterschiedssumme, die sich an diesem Punkt er
geben hat, der optimale Weg zurückverfolgt. Die zunächst
unbekannten Wortgrenzen ergeben sich dann automatisch
durch das Zurückverfolgen. Zur Weiterbildung dieses be
kannten Verfahrens sieht die DE 32 15 868 C2 vor, dass
keine verschiedenen Ebenen gebildet, sondern jedes Test
signal nur einmal mit allen Referenzsignalen aller Folgen
verglichen wird. Weiterhin wird eine mögliche Wortgrenze
automatisch an jeder Stelle angenommen, indem die kleinste
Unterschiedssumme am Ende der einzelnen Folgen von Refe
renzsignalen beim vorhergehenden Testsignal gesucht wird,
denn der optimale Weg der Zeitanpassung kann nur, muss je
doch nicht, durch einen solchen Punkt laufen. Ob tatsäch
lich eine mögliche Wortgrenze vorliegt, wird durch Ver
gleich mit den Anfängen jeweils neuer Folgen von Referenz
signalen bestimmt. Bei jeder solchen möglichen Wortgrenze
wird die Testsignaladresse des Endpunktes der vorhergehen
den Folge von Referenzsignalen gespeichert, damit später
der optimale Weg zurückverfolgt werden kann, wenn dieser
tatsächlich durch die angenommene Wortgrenze verläuft, und
es wird ferner die Ordnungsnummer der vorhergehenden Folge
von Referenzsignalen gespeichert, das heißt die Angabe des
Wortes, für das zuletzt eine gute Übereinstimmung mit dem
Testsignal vorlag. Auf diese Weise ergibt sich zwar eine
Vielzahl von möglichen Wortgrenzen, von denen durch Zu
rückverfolgen nach Verarbeitung des letzten Testsignals
nur wenige ausgewählt werden, nämlich die auf dem optima
len Wege der Zeitanpassung liegenden, jedoch ist der Spei
cherplatz dennoch begrenzt. Es muss lediglich für jedes
Referenzsignal aller Folgen die jeweilige Unterschiedssum
me sowie eine Angabe über den Anfang des Weges der
Zeitanpassung in dieser Folge von Referenzsignalen gespei
chert werden, was mit jedem neuen Testsignal überschrieben
wird, und für jede Testsignaladresse müssen zwei Speicher
plätze vorgesehen werden, nämlich einer für die Angabe des
Wortes, das an dieser Stelle möglicherweise gerade geendet
hat, und die Angabe, wo dieses Wort begonnen hat, damit
das jeweils vorhergehende Wort beim Zurückverfolgen aufge
funden werden kann.
Die EP 0 225 735 A1 betrifft ebenfalls die Spracherken
nung, wobei zu erkennende Wörter durch endliche Zustands
maschinen repräsentiert werden und die Erkennung auf der
Grundlage der Analyse von Zustandsübergängen der Maschinen
erfolgt, wenn eine Äußerung vorliegt. Ein dabei erforder
licher Wert für jeden Zustand jeder Maschine ist der mini
male summierte Abstand, das heißt der kleinste der Werte,
die sich für das Erreichen eines Zustandes von einem
Startpunkt aus unter Berücksichtigung aller möglichen Wege
ergeben. Gemäß der EP 0 225 735 A1 sind dabei Latch-
Schaltungen zum Speichern von Zeigern vorgesehen, um zu
ermöglichen, dass ein RAM-Speicher ausgelesen wird, um,
für einen aktuellen Maschinenzustand, sowohl gespeicherte
summierte Abstände von Zuständen mit Übergängen zu diesem
Zustand und gespeicherte Strafen auszulesen, die den Über
gängen entsprechen. Dabei findet eine Logikschaltung den
summierten Abstand für jeden Pfad bis zum aktuellen Zu
stand, wählt das Minimum aus und addiert eine weitere
Strafe in Abhängigkeit vom aktuellen Zustand. Auf diese
Weise wird ein minimaler summierter Abstand ermittelt, der
gespeichert und zur Spracherkennung verwendet wird.
Allgemein müssen in einem sprecherabhängigen Sprachwieder
erkennungssystem Nutzer die Wörter des Wörterverzeichnisses
registrieren, welche für sie bei der Nutzung des
Systems verfügbar sein sollen. Ein "Wort" eines Wörterver
zeichnisses kann ein einzelnes gesprochenes Wort oder eine
kurze Phrase sein, und die gewählten Wörter des Wörterver
zeichnisses hängen von der speziellen Anwendung ab. Zum
Beispiel kann die Implementierung einer Sprachwiedererken
nung für ein tragbares Funktelefon es erforderlich machen,
dass der Nutzer die Namen und Orte häufig angerufener Per
sonen zur Verfügung stellt (z. B. "Fred's Büro") bzw. Be
fehle häufig verwendeter Eigenschaften, die gewöhnlich in
einer Benutzerschnittstelle verfügbar sind (z. B. "Batte
riemesser", "Nachrichten" oder "Telefonverriegelung").
Während des Registrierungsvorganges spricht das Sprachwie
dererkennungssystem auf die Eingabe des Nutzers an, um ei
ne repräsentative Vorlage für jedes Wort des Wörterver
zeichnisses
abzuleiten. Bei einigen Systemen wird diese Vorlage durch ein
verstecktes Markov-Modell ("hidden Markov model" (HMM)) reprä
sentiert, welches aus einer Serie von Zuständen besteht. Jeder
Zustand repräsentiert einen finiten Abschnitt einer Sprachäu
ßerung; hier wird der Begriff Äußerung so benutzt, dass er
sich auf ein "Wort des Wörterverzeichnisses" bezieht, welches
eines oder mehrere Wörter aufweisen kann. Eine statistische
Repräsentation von jedem Zustand des HMM wird unter Verwendung
von einer oder mehreren Registrierungssprachproben eines spe
ziellen von dem Nutzer geäußerten Wortes des Wörterverzeich
nisses berechnet. Dies wird durch Rahmen-zu-Zustand-
Zuordnungen ("frame-to-state assignments") erreicht.
Derartige Zustandszuordnungen werden sowohl für den Lernbe
triebsmodus als auch für den Sprachwiedererkennungsbetriebsmo
dus verwendet. Insbesondere werden zugeordnete Zustände ver
wendet, um Modelle in einem Lernmodus zu erzeugen, welche als
Vergleichsreferenz während des Sprachwiedererkennungsmodus
verwendet werden. Die Zuordnungen für Eingangsäußerungen in
einem Sprachwiedererkennungsbetriebsmodus können verwendet
werden, um Quellinformation zu erzeugen und die Eingangsäuße
rungen mit den gespeicherten Referenzmodellen zu vergleichen.
Ein Ausrichtalgorithmus, zum Beispiel ein Viterbi-Algorithmus,
wird für die Rahmen-zu-Zustand-Ausrichtung ("frame-to-state
alignment") einer Äußerung verwendet. Dieser Ausrichtalgorith
mus, welcher die beste Übereinstimmung der Sprachäußerung mit
dem Modell zur Verfügung stellt, wird verwendet, um jede Wort
äußerung aus dem Wörterverzeichnis individuellen Zuständen des
Modelles zuzuordnen. Unter Verwendung dieser Zuordnung können
die statistischen Repräsentationen für jeden Zustand
verfeinert werden.
Während der Rahmenausrichtung wird ein "Weg" definiert,
indem die optimale Übereinstimmung der Äußerungsrahmen mit
den Zuständen in dem Modell gefunden werden. Um dies zu
erreichen, wird eine Auswertung für jeden Zustand des HMM
in jedem Rahmen ausgeführt. Ein Abschnitt dieser Auswer
tung bestimmt, wenn die beobachtete Sprache bis hoch zum
Rahmen t gegeben ist, welcher der Zustände, welche zu ei
nem gegebenen Zustand führen, der Beste beim Rahmen t - 1
war. Für HMM's, welche vollständig verbunden sind, kann
jeder Zustand zu jedem anderen Zustand übergehen. Daher
sind N Wege in jeden Zustand möglich, wobei N die Anzahl
der Zustände ist.
Bei dieser Technik ist es erforderlich, während des Aus
richtalgorithmus zu verfolgen, welche Sprachrahmen auf die
jeweiligen Zustände in dem Modell abgebildet werden. Unter
Verwendung herkömmlicher Techniken macht dies einen großen
Speicher erforderlich. Verfahren des Standes der Technik
verwenden ein Datenfeld ("array"), welches Rückverfol
gungsmatrix genannt wird, um Information für jeden Rahmen
zu speichern, die im Detail den besten Weg für jeden Zu
stand enthält. Dies würde normalerweise ein Datenfeld der
Größe N × T erforderlich machen, wobei N die Anzahl der
Zustände in dem Modell und T die maximale Anzahl von Rah
men in einer Äußerung sind. Da es nicht unüblich ist, dass
N gleich 20 ist und T gleich 300 ist, benötigt eine Imple
mentierung 6000 Wörter des Speichers.
Um einen sprecherabhängigen Lernalgorithmus in einer trag
baren Vorrichtung zu implementieren, wie etwa einer draht
losen Kommunikationsvorrichtung, in der nur ein sehr klei
ner Random-Access-Speicher ("random access memory" (RAM))
zur Verfügung steht, muss die für das Speichern von Rück
verfolgungsinformation verwendete Technik den benötigten
Speicher minimieren.
Der Erfindung liegt die Aufgabe
zugrunde, ein Verfahren anzugeben, welches Rückverfol
gungsinformation in einem kleineren Speicher speichern
kann, die für den Lernvorgang eines HMM benötigt wird.
Ein solches Verfahren wird mit den Merkmalen von Anspruch
1 zur Verfügung gestellt.
Die Erfindung wird nun mit Bezug auf die begleitenden
Zeichnungen anhand bevorzugter Ausführungsformen beispiel
haft erläutert.
Fig. 1 ist ein Schaltungsschema in Form eines Blockdia
gramms, welches ein Funktelefon veranschaulicht.
Fig. 2 ist ein Schaltungsschema in Form eines Blockdia
gramms, welches eine Eingabeschaltung für eine Sprachwie
dererkennungsschaltung in einem Funktelefon gemäß Fig. 1
veranschaulicht.
Fig. 3 ist eine Veranschaulichung eines Links-Rechts-
Hidden-Markov-Modell ("left-right Hidden Markov Model")
mit zwei assoziierten Sprachäußerungen, welche in Rahmen
segmentiert sind.
Fig. 4 ist ein Diagramm, welches das Rückverfolgungsgitter
veranschaulicht, dass mit allen möglichen Zustandsüber
gangswegen in einem Links-Rechts-Modell assoziiert ist,
wobei keine Sprungübergänge gestattet sind.
Fig. 5 ist ein Speicherdatenfeld für einen Zustandsübergangs
weg für einen Rückverfolgungspfad, der unter Verwendung
von Zustandsübergangstypen aufgenommen wurde.
Fig. 6 ist ein Flussdiagramm, welches das Speichern von Infor
mation in dem Ausrichtalgorithmus veranschaulicht.
Fig. 7 ist ein Flussdiagramm, welches eine Operation zum Er
zeugen einer Rahmen-zu-Zustand-Ausrichtung für den bes
ten Weg veranschaulicht.
Fig. 8 veranschaulicht ein Links-zu-Rechts-HMM ohne Sprung
entsprechend Fig. 4.
Fig. 9 ist ein Abschnitt eines Flussdiagramms, welcher in dem
Flussdiagramm aus Fig. 6 verwendet werden kann, um ei
nen Zustandssprung unterzubringen.
Fig. 10 ist ein Abschnitt eines Flussdiagramms, welches in dem
Flussdiagramm aus Fig. 7 verwendet werden kann, um ei
nen Zustandssprung unterzubringen.
Es wird ein Verfahren zum Aktualisieren und zum Speichern ei
ner Rückverfolgungsmatrix für eine Sprachwiedererkennung offenbart.
Während eines sprecherabhängigen Registrierungsvor
ganges stellt der Nutzer eine oder mehrere Wiederholungen der
Sprachäußerungen zur Verfügung, welche zu registrieren sind.
Jede dieser Äußerungen wird bezüglich eines existierenden Hid
den Markov Modells unter Verwendung einer Rahmenausrichtvor
gangs angepasst. Wenn dieses Verfahren ausgeführt wird, wird
ein effizientes Verfahren zum Aufnehmen der Zusammengehörig
keit zwischen Kurzzeitanalyserahmen in den Äußerungen und den
Zuständen des Modells dadurch zur Verfügung gestellt, dass ein
Übergangstyp für jeden Zustand und Rahmen gespeichert wird.
Eine Vorrichtung 100, in welcher die Erfindung in vorteilhaf
ter Weise angewendet werden kann, ist in Fig. 1 offenbart. Die
Vorrichtung 100 wird hier zur Veranschaulichung als tragbares
Funktelefon beschrieben; es könnte sich jedoch auch um einen
Computer, einen persönlichen Digitalassistenten ("personal di
gital assistant") oder eine beliebige andere Vorrichtung han
deln, welche in vorteilhafter Weise eine Sprachwiedererkennung
verwenden kann, und insbesondere um eine Vorrichtung, welche
Vorteile aus einem speichereffizienten Sprachwiedererkennungs
system ziehen kann. Das veranschaulichte Funktelefon enthält
einen Sender 102 und einen Empfänger 104, welche mit einer An
tenne 106 verbunden sind. Der Sender 102 und der Empfänger 104
sind mit einem Anrufprozessor 108 verbunden, welcher Anrufver
arbeitungsfunktionen ausführt. Der Anrufprozessor 108 kann un
ter Verwendung eines digitalen Signalprozessors ("digital sig
nal processor" (DSP)), eines Mikroprozessors, eines Mikrocont
rollers, einer programmierbaren Logikeinheit, einer Kombinati
on einer oder mehrerer der obigen Vorrichtungen oder beliebiger
anderer geeigneter Digitalschaltungen implementiert wer
den.
Der Anrufprozessor 108 ist mit einem Speicher 110 verbunden.
Der Speicher 110 enthält einen RAM, einen elektronisch lösch
baren programmierbaren Nur-Lesespeicher ("electronically era
sable programmable read only memory" (EEPROM)), einen Nur-
Lesespeicher ("read only memory" (ROM)), einen Flash-ROM oder
dergleichen oder eine Kombination von zwei oder mehreren die
ser Speichertypen. Der Speicher 110 unterstützt den Betrieb
des Anrufprozessors 108 einschließlich der Sprachwiedererken
nungsoperation, und er muss einen elektronisch änderbaren
Speicher umfassen, um den Zustandsübergangsweg-Speicher zu un
terstützen, welcher weiter unten genauer beschrieben wird. Der
ROM kann vorgesehen sein, um die Betriebsprogramme für die
Vorrichtung zu speichern.
Eine Audioschaltung 112 stellt dem Anrufprozessor 108 digita
lisierte Signale von einem Mikrofon 114 zur Verfügung. Die Au
dioschaltung 112 treibt einen Lautsprecher 116 in Antwort auf
die digitalen Signale von dem Anrufprozessor 108.
Der Anrufprozessor 108 ist mit einem Anzeigeprozessor 120 ver
bunden. Der Anzeigeprozessor ist optional, wenn eine zusätzli
che Prozessorunterstützung für die Vorrichtung 100 erwünscht
ist. Insbesondere stellt der Anzeigeprozessor 120 Anzeigesteu
erungssignale für die Anzeige 126 zur Verfügung, und er emp
fängt Eingaben von Tasten 124. Der Anzeigeprozessor 120 kann
unter Verwendung eines Mikroprozessors, eines Mikrocontrol
lers, eines digitalen Signalprozessors, einer programmierbaren
Logikeinheit, einer Kombination derselben oder dergleichen
implementiert sein. Ein Speicher 122 ist mit dem Anzeigepro
zessor verbunden, um die darin befindliche digitale Logik zu
unterstützen. Der Speicher 122 kann unter Verwendung eines
RAM, eines EEPROM, eines ROM, eines Flash-ROM oder dergleichen
oder einer Kombination eines oder mehrerer dieser Speicherty
pen implementiert sein.
Es wird auf Fig. 2 Bezug genommen; die von dem Mikrofon emp
fangenen Audiosignale werden in digitale Signale in einem Ana
log-Digital-Wandler 202 der Audioschaltung 112 gewandelt. Für
Fachleute ist erkennbar, dass die Audioschaltung 112 eine zu
sätzliche Signalverarbeitung zur Verfügung stellt, wie zum
Beispiel eine Filterung, die hier im Sinne einer kurzen Dar
stellung nicht beschrieben ist. Der Anrufprozessor 108 führt
eine Merkmalsextraktion 204 bezüglich der verarbeiteten digi
talen Signalrepräsentation der analogen Signalausgabe des Mik
rofons 114 aus und erzeugt einen Satz Merkmalsvektoren, welche
für die Benutzeräußerungen repräsentativ sind. Ein Merkmals
vektor wird für jedes Kurzzeitanalysefenster erzeugt. Das
Kurzzeitanalysefenster ist ein Rahmen, welcher in dem hier
veranschaulichten Beispiel 20 ms beträgt. Daher liegt ein
Merkmalsvektor pro Rahmen vor. Der Prozessor 108 nutzt die
Merkmale für die Sprachwiedererkennung 206 oder für den Lern
vorgang 207.
Beim Lernvorgang werden die Merkmalsvektoren der Äußerung ver
wendet, um Vorlagen in Form von HMM's zu erzeugen, welche in
dem Speicher 208 gespeichert werden. Bei der Sprachwiederer
kennung werden die die Eingangsäußerung repräsentierenden
Merkmalsvektoren mit den Vorlagen der gespeicherten Wörter des
Wörterverzeichnisses im Speicher 208 verglichen, um zu bestim
men, was der Benutzer gesagt hat. Das System kann die beste
Übereinstimmung ausgeben, einen Satz der besten Übereinstim
mungen oder optional keine Übereinstimmung. Der Speicher 208
ist vorzugsweise ein nichtflüchtiger Speicherabschnitt des
Speichers 110 (Fig. 1) und kann daher beispielsweise ein
EEPROM oder ein Flash-ROM sein. In der vorliegenden Beschrei
bung kann der Begriff "Wort" mehr als ein Wort, wie etwa "John
Doe" oder ein einzelnes Wort, wie etwa "Anruf", bezeichnen.
Wie oben kurz erwähnt wurde, werden die gespeicherten Wörter
des Wörterverzeichnisses im Speicher 208 in einem Lernmodus
erzeugt. Beispielsweise werden die gespeicherten Wörter des
Wörterverzeichnisses anfänglich alle von zwei Lernsignalen ab
geleitet, den Äußerungen U1 und U2 (Fig. 3), welche aus jewei
ligen Merkmalsvektoren zusammengesetzt sind. Die Äußerung U1
repräsentiert das Signal, welches gespeichert wurde als der
Sprecher ein spezielles Wort das erste Mal während des Lern
vorganges gesagt hat. Die Äußerung U2 repräsentiert das Signal
beim zweiten Mal, wenn ein Sprecher ein bestimmtes Wort wäh
rend des Lernvorgangs sagt. In dem veranschaulichten Beispiel
hat die Äußerung U1 eine andere Länge als die Äußerung U2. Für
Fachleute ist erkennbar, dass mehr oder weniger Äußerungen
verwendet werden können.
Da die Rahmen dieselben Längen aufweisen, während die Äußerun
gen U1 und U2 verschiedene Längen haben, werden die Äußerungen
U1 und U2 mit verschiedenen Längen auch verschiedene Anzahlen
von Rahmen haben, wenn jede Äußerung von Rahmen repräsentiert
wird. Eine Mehrzahl von Rahmen Ft bilden eine Äußerung. Wenn
gleich Äußerungen im Allgemeinen als Ft identifiziert werden,
wobei t zwischen 1 und T liegt, werden in der Notation für
Fig. 3 die Rahmen der Äußerung durch die Notation Fab identi
fiziert, wobei a die Äußerungsnummer ist und b die Rahmennum
mer ist. Insbesondere hat die Äußerung U1 10 Rahmen: nämlich
F11, F12, F13, F14, F15, F16, F17, F18, F19 und F110. Die Äu
ßerung U2 hat 12 Rahmen, nämlich: F21, F22, F23, F24, F25,
F26, F27, F28, F29, F210, F211 und F212. Zum Beispiel enthält
jeder Rahmen Merkmale welche 20 Millisekunden eines Klangs re
präsentieren.
Ein Merkmalsvektor kann in einer beliebigen herkömmlichen Wei
se erzeugt werden. Beispielsweise kann ein Merkmalsvektor
Cepstral- und Delta-Cepstral-Merkmale aufweisen, welche vom
Ausgang des A/D-Wandlers 202 erzeugt werden (Fig. 2).
Es wird auf Fig. 3 Bezug genommen; anfänglich wird der Zustand
1 (S1) aus den Rahmen F11 und F12 der Äußerung U1 und den Rah
men F21 und F22 der Äußerung 2 gebildet. Diese Rahmenwerte
werden verwendet, um anfänglich einige oder alle Parameter zu
berechnen, welche die statistische Repräsentation des Zustan
des 1 bilden. Bei der bevorzugten Ausführungsform ist die sta
tistische Repräsentation ein Mittelwert der Rahmen von Äuße
rung U1 und Äußerung U2. Daher wird der Zustand 1 anfänglich
auf den Mittelwert der Rahmen F11 und F12 der Äußerung U1 und
der Rahmen F21 und F22 der Äußerung U2 gesetzt. Für Fachleute
ist erkennbar, dass in dem Zustand ebenfalls eine Varianz ein
geschlossen sein kann. Statistische Repräsentationen der ande
ren Zustände werden ebenfalls erzeugt. Der zweite Zustand S2
ist der Mittelwert der Werte der Rahmen F13 und F14 der Äuße
rung U1 und der Rahmen F23 und F24 der Äußerung U2. Der Zu
stand S3 ist in ähnlicher Weise der Mittelwert der Werte der
Rahmen F15 und F16 der Äußerung U1 und der Rahmen F25 und F26
der Äußerung U2. Der Zustand S4 ist der Mittelwert der Rahmen
F17 und F18 der Äußerung U1 und der Rahmen F27, F28 und F29
der Äußerung U2.
Wie oben beispielhaft dargestellt ist, werden zusätzliche Rah
men in der Äußerung U2 den letzten beiden Zuständen zugewie
sen. Wenn die zweite Äußerung nur einen zusätzlichen Rahmen
hat, bekommt nur der letzte Zustand einen zusätzlichen Rahmen.
Wenn die zweite Äußerung drei zusätzliche Rahmen hat, wird je
dem der letzten drei Zustände ein zusätzlicher Rahmen zugewie
sen. In ähnlicher Weise, wenn die erste Äußerung zusätzliche
Rahmen hat, wie zum Beispiel vier zusätzliche Rahmen, wird je
der der letzten vier Zustände einen zusätzlichen Rahmen haben.
Wenn eine der Äußerungen fünf Rahmen mehr hat als die andere
Äußerung, so erhält jeder Zustand drei Rahmen von der Äußerung
mit mehr Rahmen und zwei Rahmen von der Äußerung mit weniger
Rahmen.
Die obige Rahmenzuweisung wird als Beispiel dafür angegeben,
wie die Rahmen den Zuständen anfänglich zugewiesen werden kön
nen und wie eine statistische Repräsentation eines Zustandes
gebildet werden könnte. Jedoch ist für Fachleute erkennbar,
dass zahlreiche andere Verfahren sowohl für die anfängliche
Zuweisung der Zustände als auch für das statistische Repräsen
tieren der Zustände existieren, und daher ist es nicht beabsichtigt,
dass die Erfindung auf die obige Umgebung begrenzt
wäre.
In dem Beispiel werden fünf Zustände ohne Berücksichtigung der
Länge der Äußerung verwendet. Für Fachleute ist erkennbar,
dass eine beliebige Anzahl von Zuständen verwendet werden
kann, und es ist vorgesehen, dass mehr als zehn Zustände für
jede Äußerung verwendet werden. Zusätzlich kann die Anzahl der
Zustände festgelegt sein, ohne die Länge der Äußerung zu be
rücksichtigen, oder die Anzahl der Zustände kann von der Länge
der Äußerung abhängen. Die verbleibende Diskussion wird bezüg
lich eines Systems geführt, welches fünf Zustände für eine be
liebige Äußerung unabhängig von ihrer Länge verwendet.
Sobald die Zustände S1 bis S5 von den Statistiken der Rahmen
der Äußerungen U1 und U2 erzeugt sind, wird ein Hidden Markov
Modell (HMM) erzeugt. Der Anrufprozessor 108 verwendet einen
Ausrichtalgorithmus, um jede der Äußerungen die Zustände des
erzeugten HMM durchlaufen zu lassen. Die Ausrichtung kann dann
verwendet werden, um die statistische Repräsentation der Zu
stände neu abzuschätzen. Insbesondere arbeitet der Ausrichtal
gorithmus dafür, den besten Weg zurück von einem beliebigen
Punkt zu bestimmen, basierend auf einer Treffermarke ("score")
für jeden berücksichtigten Weg, was allgemein mit Bezug auf
Fig. 4 beschrieben wird. In der vorliegenden Beschreibung ist
ein Punkt der Ort eines Rahmens und eines Zustands in dem Git
ter 400. Ein Weg erstreckt sich durch die Punkte.
Für Fachleute ist erkennbar, dass das Gitter 400 (Fig. 4) alle
Wege zurück von den Zuständen 1 bis 5 für 8 Rahmen zeigt. Eine
zusätzliche Einschränkung besteht darin, dass die Rahmen zu
entweder demselben Zustand wie ein vorhergehender Rahmen oder
dem Zustand unmittelbar nach dem Zustand des vorhergehenden
Rahmens zugewiesen sein müssen (es können keine Zustände über
sprungen werden). Dies ist konsistent mit der Zuweisung der
Rahmen zu Zuständen in einem Sprachwiedererkennungssystem und
es verringert signifikant die benötigte Menge von Rückverfol
gungsinformation, um einen Datenweg aufzunehmen. Eine solche
Einschränkung der möglichen Wege von Zustand zu Zustand inner
halb des Modells hilft die sequentielle geordnete Natur der
akustischen Ereignisse in einer Sprachäußerung besser zu mo
dellieren. Allgemein sind HMM-Zustandsübergänge darauf be
schränkt, dass sie eine Links-Rechts-Natur aufweisen, wie in
Fig. 4 dargestellt, wobei die gestatteten Wege in einen spe
ziellen Zustand n von entweder diesem Zustand (einer "Selbst
schleife" ("self loop") von Sn zu Sn) oder dem vorhergehenden
Zustand (ein "Einzelschrittübergang" ("single step transiti
on") zu Sn von S(n - 1) kommen. Fig. 8 veranschaulicht das
Links-Rechts-HMM ohne Sprung. Derartige HMM-Architekturen ha
ben sich als effektiv für viele Sprachwiedererkennungsaufgaben
erwiesen. Die vorliegende Erfindung verwendet diese Kenntnis
der eingeschränkten Zustandsübergänge und stellt eine weitere
Verbesserung in der Rückverfolgungsmatrix zur Verfügung, wel
che signifikant die Größe des Speichers reduziert, welcher zur
Aufnahme der Rückverfolgungswege benötigt wird.
In dem Gitter 400 aus Fig. 4 ist ein Zustandsübergangstyp mit
jedem erlaubten Weg zwischen Zuständen assoziiert. Ein Zu
standsübergangstyp 1 ist einer Selbstschleife zugewiesen, und
ein Zustandsübergangstyp 0 ist einer Zustandsänderung zugewiesen.
Ein Sprungzustand kann in diesem Modell repräsentiert
werden, er würde jedoch als Zustandsübergangstypindikator zwei
oder mehr Bits benötigen, da ein einzelnes Bit nicht zwischen
drei oder mehr Übergangstypen unterscheiden kann. In jedem
Fall erzeugt die Verwendung eines Zustandsübergangstyps eine
beträchtliche Reduktion der Speichergröße, welche zum Spei
chern der Wege erforderlich ist, da ein Datenfeld aus n-Bit-
Symbolen verwendet wird, um Weginformation aufzunehmen, welche
unter Verwendung eines Ausrichtalgorithmus berechnet wird, wie
zum Beispiel mit dem Viterbi-Ausrichtalgorithmus. Für Fachleu
te ist erkennbar, dass n klein ist, in der Größenordnung von 1
oder 2 Bits, während 8 bis 16 Bits verwendet werden, um den
vorhergehenden Zustand in einem herkömmlichen Rückverfolgungs-
Matrixspeicherungsschema zu identifizieren.
Zum Beispiel bestimmt der Viterbi-Algorithmus für den Rahmen 5
(Nummer 5 auf der horizontalen Achse in Fig. 4) den besten Weg
zurück von jedem der Zustände (Zustand 1 (S1), Zustand 2 (S2),
Zustand 3 (S3), Zustand 4 (S4) und Zustand 5 (S5)) in dem Rah
men 5 (d. h. den Weg zurück von jedem der Zustände, welcher die
beste Treffermarke erzeugt). Insbesondere berücksichtigt der
Algorithmus eine Treffermarke bzw. eine Wahrscheinlichkeit für
den Weg zurück von dem Punkt A, was die Wahrscheinlichkeit
repräsentiert, dass der Weg durch den Zustand 1 geht, für alle
der ersten fünf Rahmen. Dies ist erforderlich, da die Bedin
gung, dass der aktuelle Rahmen entweder derselbe Zustand wie
der vorhergehende Rahmen ist oder ein Zustand ist, der höher
liegt als der Zustand des vorhergehenden Rahmens.
Der Algorithmus erzeugt für Punkt B die mit dem Rückweg von
Punkt B assoziierte Treffermarke, welcher durch Punkt G geht,
und die Treffermarke für den Rückweg von Punkt B, welcher
durch Punkt H geht. Für Punkt C erzeugt der Viterbi-
Algorithmus die mit dem Weg von Punkt C assoziierte Treffer
marke, welcher durch Punkt H geht und die Treffermarke, welche
mit dem Rückweg von Punkt C assoziiert ist, welcher durch
Punkt I geht. Für Punkt D berücksichtigt der Viterbi-
Algorithmus die Treffermarke, welche mit dem Rückweg von Punkt
D assoziiert ist, welcher durch Punkt I geht, und die Treffer
marke, welche mit dem Rückweg von Punkt D assoziiert ist, wel
cher durch Punkt J geht. Für Punkt E erzeugt der Viterbi-
Algorithmus die Treffermarke, welche mit dem Rückweg von Punkt
E assoziiert ist, welcher durch Punkt J geht, und die Treffer
marke, welche mit dem Rückweg von Punkt E assoziiert ist, wel
cher durch Punkt K geht. Nach der Berechnung der Treffermarken
wird der Wegübergangstyp für jeden Zustand als der Weg in je
den Zustand des Rahmens fünf gesichert, welcher die höchste
Treffermarke erzeugt.
Wenngleich die Erfindung gemäß der veranschaulichten Ausfüh
rungsform für Links-Rechts-Modelle anwendbar ist, welche eine
maximale Anzahl von 2n Übergängen in einen beliebigen Zustand
gestatten, können nur zwei Übergangstypen gestattet werden:
die Selbstschleife und der Einschrittübergang. Hier ist der
Rückverfolgungs-Matrixspeicher ein Datenfeld 500 (Fig. 5) von
binären Flags, welche aufnehmen, welcher der beiden möglichen
Übergänge genommen wurde. Die beiden möglichen Wege sind 1,
wobei eine Selbstschleife repräsentiert wird, und 0, wobei ein
Schritt von einem niedrigeren Zustand zu einem höheren Zustand
repräsentiert wird. Diese Ausführungsform ist insbesondere
vorteilhaft, wenn die Anzahl von möglichen Wegen durch benach
barte Rahmen begrenzt ist, welche nicht in der Lage sind, ei
nen Zustand zu überspringen, sowie durch das Erfordernis, dass
Rahmen, welche bei einem späteren Zeitpunkt liegen, nicht in
einem Zustand sein können, welcher niedriger ist als der Zu
stand des vorhergehenden Rahmens.
Eine Speicher-Datenfeldanordnung 500 gemäß Fig. 5 repräsen
tiert den Weg durch die Matrix für acht Rahmen mit fünf mögli
chen Zuständen. Die Orte mit X repräsentieren eine unbestimmte
Situation ("don't care situation"). Für den Rückweg von Rahmen
8, Zustand S5, zeigt die 0 in der oberen rechten Ecke an, dass
der überlebende Zustand zu Zustand 5 durch Rahmen 7, Zustand
S4, gegangen ist. Die 0 in Zustand 4, Rahmen 7, zeigt an, dass
der Weg durch Rahmen 6, Zustand S3, geht. Die 0 in Rahmen 6,
Zustand 3, zeigt an, dass der Weg zurück durch Rahmen 5, Zu
stand S2 geht. Die 1 in Rahmen 5, Zustand S2, zeigt an, dass
der Weg durch Rahmen 4, Zustand S2, geht. Die 0 im Rahmen 4,
Zustand S2, zeigt an, dass der Weg durch Rahmen 3, Zustand S1,
geht. Der Weg geht ebenfalls durch Zustand S1 für die ersten
beiden Rahmen. Der überlebende Weg zu dem gesamten Rahmen 8,
Zustände S4, S3, S2 und S1, kann in ähnlicher Weise unter Ver
wendung desselben Verfahrens zurückverfolgt werden. Auf diese
Weise ist zu erkennen, dass eine binäre Zahl verwendet werden
kann, die in dem RAM des Speichers 110 gespeichert ist, um ü
berlebende Wege des Ausrichtalgorithmus zu repräsentieren.
Der Betrieb des Speichers von Prozessor 108 im Speicher 110
wird nun mit Bezug auf Fig. 6 beschrieben. Anfänglich werden
die Zustände des ersten Rahmens gesetzt, wie es in Block 602
angezeigt ist. Der erste Zustand wird auf 1 gesetzt, und die
Zustände 2 bis 5 für den Rahmen 1 werden auf X gesetzt, was
eine Unbestimmtheit anzeigt, da sie als nicht mögliche Zustän
de ignoriert werden können. Der Rahmenzähler wird daraufhin
auf 2 gesetzt, und der Zustandszähler auf 1, wie es in Block
604 angezeigt ist.
Für den vorliegenden Rahmen und den vorliegenden Zustand (d. h.
einen Punkt des Gitters 400 in Fig. 4), berechnet der Prozes
sor 108 eine Treffermarke für eine Selbstschleife, welche der
Weg zurück von dem Zustand SN in dem vorliegenden Rahmen durch
den Zustand SN in dem vorhergehenden Rahmen ist, wie es in
Block 606 angezeigt ist. Eine Treffermarke wird ebenfalls für
einen Zustandsübergang abgeleitet, welche der Weg zurück vom
Zustand SN in dem vorliegenden Rahmen durch den Zustand SN-1 in
dem vorhergehenden Rahmen ist, wie es in Block 608 angezeigt
ist.
Der Prozessor 108 bestimmt in Schritt 610, ob die Selbst
schleife oder der Zustandsübergang eine bessere Treffermarke
aufweist. Wenn die Selbstschleife eine bessere Treffermarke
aufweist, wird ein Zustandsübergangstyp 1 im RAM des Speichers
110 für den vorliegenden Zustand und den vorliegenden Rahmen
gespeichert (d. h. den Zustand SN des aktuellen Rahmens), wie es
in Block 612 angezeigt ist. Andernfalls wird eine 0 in dem RAM
des Speichers 110 für einen Zustandsübergang gespeichert, wie
es in Block 614 angezeigt ist.
Der Zustandszähler wird inkrementiert, wie es in Block 616 an
gezeigt ist. Der Prozessor bestimmt in dem Entscheidungsblock
618, ob der Übergangstyp für jeden Zustand in dem vorliegenden
Rahmen berechnet wurde. Wenn der letzte Zustand nicht berech
net wurde, kehrt der Prozessor zu Schritt 608 zurück, um den
Übergangstyp des nächsten Zustands zu berechnen, wobei bei
Block 606 begonnen wird.
Wenn in dem Entscheidungsblock 616 bestimmt wird, dass der
letzte Zustand des aktuellen Rahmens berücksichtigt wurde, in
krementiert der Prozessor 110 den Rahmenzähler und setzt den
Zustandszähler auf 1 zurück, wie es in Block 620 angezeigt
ist. Der Prozessor bestimmt dann, ob der soeben berücksichtig
te Rahmen der letzte Rahmen war. Wenn nicht, kehrt der Prozes
sor zu Schritt 606 zurück, um mit dem Zustandszuweisungspro
zess für den nächsten Rahmen zu beginnen.
Wenn in Block 622 bestimmt wird, dass der soeben berücksich
tigte Rahmen der letzte Rahmen einer Äußerung war, muss der
Prozessor 110 den Weg mit der besten Treffermarke zu einem Zu
standszuweisungsmodell konvertieren, wenn sich ein Modell ak
tuell in einem Lernvorgang befindet. Während der Wiedererken
nung wird nur die Treffermarke verwendet. Die Wegkonvertierung
zu einem HMM wird begonnen, indem von dem letzten Zustand,
letzter Rahmen, rückwärts gearbeitet wird, wobei der Über
gangstyp für diesen Zustand ausgegeben wird, wie es in Block
702 angezeigt ist. Der Prozessor 110 bestimmt in dem Entschei
dungsblock 704, ob der Übergangstyp eine Selbstschleife ist.
Wenn er eine Selbstschleife ist, wird der vorhergehende Rah
menzustand auf denselben Zustand wie der aktuelle Rahmen gesetzt,
wie es in Block 708 angezeigt ist. Andernfalls wird der
vorhergehende Rahmenzustand auf den nächst niedrigeren Zustand
gesetzt, wie es in Block 706 angezeigt ist.
In Schritt 709 kann ein Zähler für eine Zustandsverweilzeit
bzw. eine Dauer inkrementiert werden, wenn erwünscht ist, die
Verweilzeiten zu verfolgen. Wenn dieser optionale Zähler zur
Verfügung gestellt wird, startet der Schritt 706 den Zähler
für die Zustandsverweilzeit bei 1, beim ersten Mal wenn in ei
nen Zustand eingetreten wird, wobei ein Zähler für jeden Zu
stand zur Verfügung gestellt wird.
In Schritt 710 dekrementiert der Prozessor 108 den Rahmenzäh
ler. Der vorhergehende, in den Schritten 704, 706, 708 identi
fizierte Rahmenzustand wird für den vorhergehenden Rahmen ge
speichert, und der mit diesem Punkt, Rahmen und Zustand asso
ziierte Zustandsübergangstyp wird ausgegeben, wie es in Block
712 angezeigt ist. Wenn die Rahmenzustandsausgabe nicht der
erste Rahmen ist, so kehrt der Prozessor zum Entscheidungs
block 704 zurück. Wenn in dem Entscheidungsblock 714 bestimmt
wird, dass der erste Rahmenzustand gespeichert wurde, ist das
Zustandzuweisungsmodell vervollständigt, wie es im Block 716
angezeigt ist. Das Zustandzuweisungsmodell umfasst eine Zuord
nung der Merkmale der Rahmen zu geeigneten Zuständen. Diese
Information kann für einen Lernvorgang gespeichert werden oder
zum Aktualisieren eines gespeicherten Modells verwendet wer
den.
Eine Pseudo-Code-Implementierung wird nun mit Bezug auf ein
zweidimensionales Datenfeld L beschrieben, wobei die erste Dimension
mit dem Zustand S und die zweite Dimension mit dem
Sprachrahmen F indiziert wird, wobei die Größe des Datenfeldes
N × T beträgt. Es wird ebenso ein Symbol 1 definiert, um einen
Übergang im selben Zustand (eine Selbstschleife) zu repräsen
tieren, und das Symbol 0 repräsentiert einen Übergang von dem
vorhergehenden Zustand. Da es nur zwei mögliche Symbole gibt,
können individuelle Bits für deren Speicherung verwendet wer
den. Wenn eine Viterbi-Ausrichtung ausgeführt wird, kann der
folgende Algorithmus verwendet werden, um die Übergänge aufzu
nehmen:
Für ("For") alle Sprachrahmen (t = 1 bis T)
Für ("For") alle Zustände des HMM (s = 1 bis N)
Wenn ("If") der beste Weg zu Zustand s von Zustand s
kommt, dann ("then")
L[s][t] = 1
Sonst ("Else") (bester Weg muss vom vorhergehenden
Zustand kommen)
L[s][t] = 0
Ende wenn ("End If")
Ende für ("End for") alle Zustände
Ende für ("End for") alle Sprachrahmen.
Während des Lernvorgangs besteht das Ziel der Ausrichtung all
gemein darin, die Zustandszuweisung für jeden Rahmen der Äuße
rung zu finden. Wenn gewünscht ist, die Zuordnung von Zustän
den in einem Datenfeld A[t] aufzunehmen, so kann diese Zuord
nung in einfacher Weise von der Übergangsmatrix L wie folgt
zurückgewonnen werden:
Initialisieren des Zustandes s auf den letzten Zustand N
Für ("For") alle Sprachrahmen, beim Ende beginnen
(t = T bis 1)
A[t] = s
Wenn ("If") L[s][t] = 0, dann
s = s - 1
Ende wenn ("End If")
Ende für ("End for") alle Sprachrahmen
Wie vorstehend erwähnt, funktioniert der obige Algorithmus am
Besten in dem vereinfachten Fall, bei dem Zustandssprünge
nicht gestattet sind. Wenn Zustandssprünge gestattet sind, so
muss ein anderes Symbol für das Datenfeld L zugefügt werden,
wodurch die Speicheranforderungen für dieses Datenfeld und die
Anzahl der Berechnungen der Treffermarke von dem Typ 606, 608
vergrößert werden.
Während des Ausrichtprozesses kann es auch nützlich sein, die
Anzahl der Rahmen zu verfolgen, in welchen ein spezieller Zu
stand besetzt wurde. Diese Information kann für die Zuweisung
von Zustandsdauerstrafen ("state duration penalties") verwen
det werden, wie es in einer Patentanmeldung offenbart ist,
welche den Titel METHOD OF SELECTIVELY ASSIGNING A PENALTY TO
A PROBABILITY ASSOCIATED WITH A VOICE RECOGNITION SYSTEM
trägt, die im Namen von Daniel Poppert hinterlegt wurde, wobei
deren Offenbarung in die vorliegende Offenbarung durch Bezug
nahme einbezogen wird. Diese Verweilzeitinformation wird voll
ständig in dem Datenfeld L repräsentiert. Die Anzahl der Rah
men, in welchen der Zustand s zur Zeit t besetzt wurde, wel
cher D[s][t] genannt wird, kann wie folgt ermittelt werden:
Initialisieren von D[s][t] auf 1
Während ("While") (L[s][t - D[s][t]] = 1)
Inkrementiere D[s][t]
Ende während ("End While")
Das offenbarte Wiedererkennungssystem reduziert die benötigte
Speichergröße ("memory footprint") der Rückverfolgungsinforma
tion, wobei ein einfaches Datenfeld von einzelnen Bitflags
verwendet wird. Es zielt hauptsächlich auf den einfachen Fall
eines HMM ab, welches keine Zustandssprünge gestattet, wie es
in Fig. 4 veranschaulicht ist, wenngleich es auch für den all
gemeineren Fall auf Kosten eines vergrößerten Speichers erwei
tert werden kann.
Das Flussdiagramm in Fig. 6 kann zur Aufnahme eines Zustands
sprungs verändert werden, indem die Fig. 9 die Blöcke 608 bis
614 ersetzt. Insbesondere wird eine Sprungtreffermarke Pskip in
Block 609 berechnet. Wenn bestimmt wird, dass eine Selbst
schleife die beste Treffermarke in Block 610 aufweist, wird
eine 11 (zwei binäre Bits) in RAM 208 gespeichert, wie es in
Schritt 614 angezeigt ist. Nach einer "Nein"-Entscheidung in
610 bestimmt der Prozessor 108, ob PD besser ist als Pskip. Wenn
bestimmt wird, dass ein einzelner Schritt mit der besten Tref
fermarke assoziiert ist, wird eine 00 (zwei binäre Bits) in
dem RAM 208 gespeichert, wie es in Schritt 614 angezeigt ist.
Wenn bestimmt wird, dass der Zustandssprung die beste Treffer
marke aufweist, wird eine 10 in dem RAM gespeichert, wie es in
Schritt 613 angezeigt ist. Fig. 7 kann verändert werden, um
einen Sprung aufzunehmen, wobei die Schritte 705 und 707 addiert
werden sowie der Veränderungsschritt 704, wie es in Fig.
10 veranschaulicht ist. Insbesondere wird in Schritt 704 nach
einem Übergangstyp 11 gesucht, welcher eine Selbstschleife
ist. Wenn der Übergangstyp keine Selbstschleife ist, führt der
Prozessor eine Prüfung durch, um zu sehen, ob es sich um eine
00 handelt, was einen Einzelzustandsschritt in Schritt 705 an
zeigt. Wenn nicht, identifiziert der Prozessor 108 den vorher
gehenden Rahmen als zwei Zustände niedriger liegend als der
aktuelle Rahmen, wie es in Schritt 707 angezeigt ist. Andern
falls wird von dem Prozessor eine Behandlung als Einzelschritt
durchgeführt.
Für Fachleute ist erkennbar, dass zusätzliche Zustandssprünge
durch ähnliche Erweiterungen des Prozesses aufgenommen werden
können. Die aktuelle Anzahl von Bits, welche für jeden Zu
stand/Rahmen gespeichert werden, hängt von der Anzahl der er
laubten Sprünge ab.
Wenngleich die Erfindung durch die obige Beschreibung und die
Zeichnungen beschrieben und veranschaulicht wurde, ist dies so
zu verstehen, dass diese Beschreibung nur beispielhaft ist und
dass zahlreiche Änderungen und Modifikationen von Fachleuten
ausgeführt werden können, ohne dass der Erfindungsgedanke und
der Umfang der Erfindung verlassen würden. Wenngleich die vor
liegende Erfindung insbesondere ihre Anwendung in tragbaren
drahtlosen Vorrichtungen, wie zum Beispiel zellulären Funkte
lefonen ("Handys") findet, kann die Erfindung ebenfalls in be
liebigen Vorrichtungen verwendet werden, welche eine Sprach
wiedererkennung verwenden, einschließlich Rufanlagen ("pa
gers"), elektronischen Planern, Computern und Telefonausstattungen.
Die Erfindung soll nur durch die nachfolgenden Ansprü
che begrenzt werden.