DE60109999T2 - Spracherkennung mittels lexikalischer Bäumen - Google Patents

Spracherkennung mittels lexikalischer Bäumen Download PDF

Info

Publication number
DE60109999T2
DE60109999T2 DE60109999T DE60109999T DE60109999T2 DE 60109999 T2 DE60109999 T2 DE 60109999T2 DE 60109999 T DE60109999 T DE 60109999T DE 60109999 T DE60109999 T DE 60109999T DE 60109999 T2 DE60109999 T2 DE 60109999T2
Authority
DE
Germany
Prior art keywords
nodes
active
node
tree
data structure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60109999T
Other languages
English (en)
Other versions
DE60109999D1 (de
Inventor
Luca Santa Barbara Rigazio
Patrick Santa Barbara Nguyen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE60109999D1 publication Critical patent/DE60109999D1/de
Publication of DE60109999T2 publication Critical patent/DE60109999T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/322Trees
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Character Discrimination (AREA)
  • Adornments (AREA)

Description

  • Die vorliegende Erfindung betrifft ein dynamisches Verarbeitungssystem mit einer Baumdatenstruktur, die in einem computerlesbaren Speicher, auf den ein Prozessor zugreifen kann, implementiert ist, wobei die Baumdatenstruktur eine Mehrzahl Knoten hat, die einen Root-Node (Grundknoten) und eine Mehrzahl Eltern-Kind-Generationen topologisch definieren, einschließlich der tiefsten Kindgeneration, die topologisch am weitesten vom Root entfernt ist.
  • Dynamische Programmiertechniken werden heutzutage im Allgemeinen für Probleme in Zusammenhang mit der zeitlichen Verzerrung bei der Erkennung isolierter und kontinuierlicher Sprache und Probleme in Zusammenhang mit der optimalen Wortsequenzsuche bei der Erkennung von kontinuierlicher Sprache (verbundenen Worten) verwendet. Eine hinreichend bekannte Art von auf dynamischer Programmierung basierender Erkennung, die im Kontext des Hidden-Markov-Modells (HHM = verstecktes Markov-Modell) verwendet werden kann, ist der Viterbi-Algorithmus. Dynamische Programmiertechniken können auch mit verschiedenen anderen Arten von Sprachmodellen als HMMs verwendet werden, wie z. B. mit neuronalen Netzwerkmodellen.
  • Der klassische Viterbi-Algorithmus ist ein induktiver Algorithmus, bei dem der Algorithmus in jedem Augenblick (jedem Rahmen) die bestmögliche Zustandssequenz für jeden Endzustand als Zwischenstadium für die gewünschte Beobachtungssequenz O speichert. Auf diese Weise entdeckt der Algorithmus schließlich den besten Pfad für jeden Endzustand als letzten Zustand für die gewünschte Beobachtungssequenz. Unter diesen wählt der Algorithmus denjenigen mit der höchsten Wahrscheinlichkeit aus. Der klassische Viterbi-Algorithmus geht rahmenweise vor, wobei er die beste Übereinstimmung zwischen einer gesprochenen Lautäußerung und den vorher trainierten Modellen zu finden versucht.
  • Im Falle einer Hidden-Markov-Modell-Erkennungseinrichtung beispielsweise ist die Wahrscheinlichkeit, dass die beobachtete Sequenz (die Lautäußerung des Testsprechers) vom Modell (HMM) generiert wird, die Summe der Wahrscheinlichkeiten für jeden möglichen Pfad durch alle möglichen beobachtbaren Sequenzen. Die Wahrscheinlichkeit jedes Pfads wird berechnet und der wahrscheinlichste wird identifiziert. Der Viterbi-Algorithmus berechnet den wahrscheinlichsten Pfad und merkt sich die Zustände, die er durchläuft.
  • Der klassische Viterbi-Algorithmus ist in rechnerischer Hinsicht aufwändig. Er führt umfangreiche verknüpfte Listen oder Hash-Tabellen, um die Liste aller aktiven Hypothesen (oder Token) zu unterhalten. Bei den Buchhaltungsoperationen des Speicherns und Nachschlagens von Einträgen dieser Listen oder Tabellen wird eine große Menge Rechenenergie aufgewendet.
  • Weil der klassische Viterbi-Algorithmus in rechnerischer Hinsicht aufwändig ist, kann er die offensichtliche Geschwindigkeit der Spracherkennungseinrichtung merklich verlangsamen. Besonders problematisch ist dies bei Echtzeitsystemen, bei denen eine prompte Reaktionszeit erforderlich ist. Eine gegenwärtige Lösung besteht darin, einfach leistungsfähigere Prozessoren zu verwenden – eine kostspielige Lösung, die bei manchen eingebetteten Systemen und kleineren Verbraucherprodukten wie Zellulartelefonen und Heimunterhaltungsgeräten unerwünscht sein kann.
  • Ein Verfahren zum automatischen Erkennen von Daten ist in der US 5,983,180 offenbart. Als sequentielle Token dargestellte sequentielle Dateneinheiten werden zu einem oder mehreren Items (Datenwort) gruppiert. Bekannte Items werden als jeweilige finite Zustands-Sequenzmodelle gespeichert. Jeder Zustand entspricht einem Token, und die gemeinsame Präfixzustände aufweisenden Modelle sind so in einer Baumstruktur organisiert, dass Suffixzustände Äste von gemeinsamen Präfixzuständen aufweisen, und es gibt eine Mehrzahl Baumstrukturen, von denen jede einen anderen Präfixzustand hat. Jede sequentielle Dateneinheit wird mit gespeicherten, durch Referenztoken identifizierte Referenzdateneinheiten verglichen, um Bewertungen zu generieren, die die Ähnlichkeit der Dateneinheiten mit Referenzdateneinheiten angeben. Eine akkumulierte Bewertung für den Endzustand in den Modellen wird bestimmt durch Schritte sequentiellen Berechnens der akkumulierten Bewertung für ein Modell, um den ein Blatt im Baum umfassenden Endzustand zu erreichen; Identifizieren des dem Blatt nächstgelegenen Asts entsprechend einem nächsten Modell, für das eine akkumulierte Bewertung für den Endzustand noch nicht berechnet worden ist; und Akkumulieren der Bewertung vom identifizierten nächstgelegenen Ast für das nächste Modell zum Endzustand. Diese Schritte werden für die Äste der Bäume wiederholt. Das Item, das einem Modell mit der höchsten akkumulierten Bewertung entspricht, wird als das mit den Daten am besten übereinstimmende Modell anerkannt.
  • Die Erfindung ist in den Ansprüchen 1 und 15 definiert. Gemäß einem Aspekt der vorliegenden Erfindung wird ein dynamisches Programmiersystem des oben erwähnten Typs bereit gestellt, das gekennzeichnet ist durch einen Traversieralgorithmus, der vom Prozessor implementiert wird, wobei der Algorithmus die Knoten auf Basis einer Menge Traversierregeln traversiert, wodurch Knoten einer gegebenen Generation verarbeitet werden, bevor der Elternknoten der gegebenen Generation verarbeitet wird, die tiefste Kindgeneration zuerst verarbeitet wird und die Traversierung der Knoten jeder Generation in der topologischen Richtung fortschreitet.
  • Die Erfindung wird nunmehr unter Bezugnahme auf die beiliegenden Zeichnungen lediglich beispielhaft beschrieben; es zeigen:
  • 1 ein Blockdiagramm einer Spracherkennungseinrichtung, das veranschaulicht, wie ein in Übereinstimmung mit der vorliegenden Erfindung gebauter Decodierer zum Implementieren einer modellbasierten Erkennungseinrichtung verwendet werden kann;
  • 2 die gegenwärtig bevorzugte Datenstruktur für den von der Erfindung angewendeten lexikalischen Baum;
  • 3 ein zur Darstellung jedes Knotens des lexikalischen Baums verwendetes Datenstrukturdiagramm.
  • 4a ein Zeitliniendiagramm, das die von einem die Erfindung in einer Anwendung für kontinuierliche Sprache nutzenden Decodierer ausgeführte Grundaufgabe veranschaulicht;
  • 4b ein Baumdiagramm, das zeigt, wie die aktive Umhüllende traversiert wird;
  • 5 eine Reihe Baumdiagramme, die zum Verständnis des dynamischen Verhaltens des Algorithmus nützlich sind; und
  • 6 ein Flussdiagramm des Algorithmus.
  • Ein beispielhaftes Spracherkennungssystem ist in 1 dargestellt. Das System arbeitet in zwei Phasen: einer Trainingsphase, in der das System die bevorzugten Muster lernt, die die unterschiedlichen Sprachlaute (z. B. Wortverbindungen, Wörter, Laute) darstellen, die das Vokabular der Anwendung bilden; und einer Erkennungsphase, in der ein unbekanntes Eingangsmuster durch Betrachten des Satzes von Referenzen identifiziert wird. In der Trainingsphase wird jede Referenz anhand gesprochener Beispiele gelernt und entweder in Form von durch ein Mittelungsverfahren (bei Schablonenvergleichssystemen) erhaltenen Schablonen oder von Modellen, die die statistischen Eigenschaften von Mustern charakteri sieren (wie bei stochastischen Systemen), gespeichert. Eines der am weitesten verbreiteten stochastischen Systeme verwendet einen statistischen Modellierungsansatz, der Hidden-Markov-Modelle (HHM) nutzt.
  • Wie in 1 veranschaulicht führt die beispielhafte Spracherkennungseinrichtung den Erkennungsprozess in drei Schritten aus. Wie bei 10 dargestellt werden zuerst eine Sprachanalyse und Merkmalextraktion mit der Eingangssprache durchgeführt. Dieser Schritt konzentriert sich auf das Extrahieren eines mittels Signalanalyse erhaltenen Parametersatzes. Der bei 12 dargestellte nächste Schritt umfasst eine Musterklassifizierung. Bei diesem Schritt würde der klassische Viterbi-Algorithmus ausgeführt. Während dieses Schrittes wird das Ähnlichkeitsmaß zwischen der Eingangssprache und jedem Referenzmuster berechnet. Der Prozess definiert ein lokales Maß der Nähe zwischen Merkmalvektoren und umfasst ferner ein Verfahren zum Ausrichten zweier Sprachmuster, die bezüglich der Dauer und Sprechgeschwindigkeit voneinander abweichen können. Der Musterklassifizierungsschritt verwendet ein Schablonen- oder Modellwörterbuch 14, das die während der Trainingsphase generierten Informationen enthält. Der letzte Schritt ist der Entscheidungsschritt 16. Während dieses Schrittes wird dem unbekannten Muster das Etikett des "nächsten" Referenzmusters zugeordnet. Diese Entscheidung basiert typischerweise auf Regeln, die die Ergebnisse der Ähnlichkeitsmessungen berücksichtigen.
  • Weil viele derzeit allgemein verwendeten Erkennungseinrichtungen Hidden-Markov-Modelle als Sprachmodell nutzen, ist in 1 bei 20 eine einfache Veranschaulichung eines Hidden-Markov-Modells dargestellt. Es versteht sich jedoch, dass die Grundsätze der vorliegenden Erfindung nicht auf Erkennungseinrichtungen beschränkt sind, die Hidden-Markov-Modelle nutzen. In 1 ist ein Hidden-Markov-Modell mit drei Zuständen dargestellt, wobei die Zustände als s1, s2 und s3 bezeichnet sind. Natürlich könnte eine brauchbare Implementierung eine andere Anzahl Zustände nutzen, und die hier gewählte Anzahl Zustände dient lediglich Veranschaulichungszwecken. Obwohl die Erfindung nicht auf LR-(Von-links-nach-rechts-)HMMs beschränkt ist, liefert der Algorithmus mit dieser Klasse von Modellen beste Ergebnisse. Daher ist das in 1 veranschaulichte HMM ein LR-HMM, bei dem Zustandsübergänge nur von links nach rechts ohne Sprungzustände vor sich gehen.
  • Das Hidden-Markov-Modell umfasst eine Sammlung von Wahrscheinlichkeiten, von denen einige den Zuständen selbst zugeordnet sind und andere der Schaffung eines Übergangs von diesem Zustand zu einem anderen Zustand oder zu sich selbst zugeordnet sind. In 1 sind die Zustandsübergänge durch Pfeile veranschaulicht. Es ist zu beachten, dass einige Pfeile einen Übergang von einem Zustand in einen anderen Zustand darstellen, wogegen andere Pfeile einen Übergang von einem Zustand zu sich selbst darstellen.
  • Jede Wortverbindung, jedes Wort oder jeder Laut, die (bzw. das oder der) durch die Sprachmodelle dargestellt werden soll, hat ein eigenes Modell, das aus mit jedem Übergang verbundenen und mit jedem Zustand verbundenen Wahrscheinlichkeitswerten besteht. Demgemäß hat jede Selbstschleife eine bei 22 dargestellte zugeordnete Übergangswahrscheinlichkeit und jede Schleife hat zu einem anderen Zustand ihre zugeordnete Übergangswahrscheinlichkeit 24. Außerdem sind jedem Zustand auch Wahrscheinlichkeitsinformationen zugeordnet.
  • Weil die jedem Zustand zugeordneten Wahrscheinlichkeitswerte komplexer sein können als ein einzelner Wert darstellen könnte, stellen einige Systeme die jedem Zustand zugeordneten Wahrscheinlichkeiten in Form einer Gauß-Verteilung dar. Manchmal wird eine Mischung mehrerer Verteilungen auf eine vermischte Weise verwendet, um Gauß'sche Mischungsdichtedaten zu bilden. Solche Daten sind in Diagrammform bei 26 gezeigt und durch einen Mischungsindexzeiger 28 referenziert. So ist jedem Zustand ein Mischungsindexzeiger zugeordnet, der wiederum die Gauß'schen Mischungsdichteinformationen für diesen Zustand identifiziert. Es ist natürlich zu wiederholen, dass die in 1 veranschaulichte Spracherkennungseinrichtung und Hidden-Markov-Modell-Struktur lediglich ein Beispiel für einen mit der Erfindung verwendbaren Erkennungseinrichtungstyp sein sollen. Im Allgemeinen kann die Erfindung mit jedem System verwendet werden, das bei der Musterklassifizierung eine dynamische Programmierung ausführt. Wie zurvor erwähnt werden beste HMM-Ergebnisse mit einem LR-HMM erzielt. Daher kann die Erfindung z. B. anstelle des klassischen Viterbi-Algorithmus verwendet werden.
  • Für weitere Informationen über die Grundstruktur von Spracherkennungssystemen und die Hidden-Markov-Modellierung siehe Junqua, Jean-Claude und Haton, Jean-Paul, Robustness in Automatic Speech Recognition, Fundamentals and Applications, Kluwer Academic Publishers, 1996.
  • Die bevorzugte Datenstruktur
  • Die vorliegende Erfindung kann zur deutlichen Verbesserung der Ausführungsweise des Musterklassifizierungsschrittes 12 verwendet werden. Die Erfindung verwendet eine spezielle Datenstruktur zum Darstellen des Schablonen- oder Modellwörterbuchs 14 in Verbindung mit einem speziellen Algorithmus, der die Datenstruktur traversiert, um die am besten übereinstimmende Hypothese zu finden. Die bevorzugte Datenstruktur wird in diesem Abschnitt, der bevorzugte Algorithmus im nächsten Abschnitt beschrieben. Die bevorzugte Datenstruktur stellt das Schablonen- oder Modellwörterbuch 14 als einen lexikalischen Baum dar, der zu einer verknüpften Liste abgeflacht wurde. 2 veranschaulicht diese Topologie. 2 zeigt insbesondere ein Beispiel für einen lexikalischen Baum 30, der einzelne aus Buchstaben bestehende Wörter speichert. Der nachstehend beschriebene Algorithmus traversiert diesen lexikalischen Baum auf eine zeitsynchrone Weise und wendet an jedem aktiven Knoten Gleichungen der dynamischen Programmierung an. Der Algorithmus traversiert so den Baum von Knoten zu Knoten, wobei er prüft, ob der Buchstabe an jedem Knoten mit dem im Merkmalextraktionsschritt 10 (1) identifizierten Buchstaben übereinstimmt.
  • Bei der Betrachtung des in 2 dargestellten beispielhaften lexikalischen Baums dürfte klar werden, dass das veranschaulichte Beispiel, das Wörter verwendet, die aus diese Wörter buchstabierenden Buchstaben bestehen, hier lediglich zu Lehrzwecken gewählt ist. Bei einem Spracherkennungssystem könnten die während der Sprachanalyse in Schritt 10 extrahierten Merkmale Merkmale oder ihre entsprechenden Lauteinheiten wie z. B. Phoneme, Silben oder Ähnliches sein. Mit anderen Worten, ist die Erfindung nicht nur auf Anwendungen beschränkt, bei denen einzelne Buchstaben bei jedem Knoten zur Identifizierung des Worts, das diese Buchstaben buchstabieren, geprüft werden. Vielmehr kann jede geeignete Einheit bei jedem Knoten verwendet werden. Bei einer Erkennungseinrichtung für kontinuierliche Sprache könnte das System z. B. ganze Wörter bei jedem Knoten darstellen, und die lexikalischen Bäume würden Zeiger auf ganze aus diesen Wörtern bestehende Wortverbindungen oder Sätze enthalten.
  • In 2 ist der lexikalische Baum 30 als eine abgeflachte verknüpfte Liste 32 dargestellt, die mehrere spezielle Merkmale aufweist, um nicht nur die Topologie der Liste, sondern auch die Route zu identifizieren, auf der die Liste zur Spiegelung einer Traversierung des entsprechenden Baums traversiert werden würde. Insbesondere ist die Liste so aufgebaut, dass alle Knoten auf demselben Abstiegsniveau im Baum als aufeinander folgende Einträge in der Liste dargestellt sind. Demgemäß beginnt die verknüpfte Liste mit einer ersten Struktur oder einem ersten Knoten, um den Root-Node des Baums darzustellen. Unter der Root-Node-Struktur sind die Strukturen für die nächsten unmittelbaren Kindknoten, die bei die sem Beispiel Knoten k und h des Baums entsprechen. Mit der verknüpften Liste fortfahrend, stellen die nächsten zwei Knoten bei diesem Beispiel die Kinder der zweiten Ebene dar, nämlich Knoten aa und aa des Baums. Die nächsten drei Knoten stellen die Enkel der dritten Ebene, Knoten r, r und l, dar. Schließlich stellen die letzten vier Knoten die letzte Ebene des Baums dar, nämlich Knoten d, d, t und t.
  • Die Knoten in der verknüpften Liste speichern mehr als nur den Buchstaben oder die Lauteinheit, der bzw. die jedem Knoten im Baum entspricht. Jeder Knoten enthält auch mindestens einen Vorwärtszeiger zum nächsten Knoten, der traversiert werden würde, wenn der Baum traversiert werden würde. Demgemäß weist der erste Kindknoten k einen Zeiger zum Enkelknoten aa auf, um zu veranschaulichen, wie der Baum von Knoten k zu Knoten aa beim letztlichen Buchstabieren der dem Wort CARD entsprechenden Lauteinheiten traversiert werden würde. Die Struktur jedes Knotens weist auch ein Flag auf, das in 2 als ein kleines Kästchen in der rechten unteren Ecke dargestellt ist. Dieses Flag ist so eingestellt, dass es angibt, ob dieser Knoten das letzte Kind seiner Eltern darstellt. Diese Information dient zur weiteren Beschreibung der Topologie des Baums, wie sie in Form der abgeflachten verknüpften Liste ausgedrückt ist.
  • Die eigentliche Darstellung der verknüpften Liste nimmt die Form einer in 3 gezeigten Datenstruktur an. Die Struktur von 3 veranschaulicht, wie die Knoten der abgeflachten verknüpften Liste für eine Hidden-Markov-Modelle nutzende Erkennungseinrichtung konfiguriert sein könnte. Die Knoten können ohne weiteres so konfiguriert sein, dass sie auch andere Parametertypen speichern. Demgemäß ist die Darstellung in 3 nicht als eine Einschränkung des Anwendungsbereichs der Erfindung zu verstehen. Die Strukturen können zum Speichern von Parametern und/oder Schabloneninformationen verwendet werden, die anderen Erkennungseinrichtungen als auf dem Hidden-Markov-Modell basierenden Erkennungseinrichtungen entsprechen.
  • Wie aus 3 ersichtlich ist, speichert jeder Knoten die topologische Struktur des Baums wie folgt. Er enthält ein Datenelement 50, in dem der Zeiger von diesem Knoten zu seinem nächsten Kindknoten gespeichert ist. Diese Zeiger entsprechen den in 2 dargestellten und werden beim Traversieren des Baums verwendet. Die Knotendatenstruktur enthält auch ein Boole'sches Flag 52, das zum Anzeigen, ob dieser Knoten das letzte Kind seiner Eltern ist, entweder gesetzt ist oder nicht gesetzt ist. Diese Information wurde in 2 durch die kleinen entweder ungefüllten (FALSCH) oder gefüllten (WAHR) Kästchen in Form eines Diagramms dargestellt.
  • Weil das dargestellte Beispiel auf die Darstellung der Hidden-Markov-Modelle ausgelegt ist, weist die Knotendatenstruktur Datenelemente 54 auf, die die der Selbstschleife zugeordneten Übergangswahrscheinlichkeiten und die diesem Knoten zugeordneten Schleife-zu-Kind-Wahrscheinlichkeiten enthalten. Diese wären bei einer typischen Erkennungseinrichtung Gleitpunktwerte entsprechend den bei 22 und 24 in 1 dargestellten Wahrscheinlichkeiten. Die Knotendatenstruktur weist auch ein Datenelement 56 auf, in dem ein Index oder Zeiger zum Identifizieren der entsprechenden Gauß-Mischungsdichten dieses Knotens gespeichert ist. Der Mischungsindexzeiger wurde in 1 bei 28 gezeigt. Wiederum zeigt er auf eine Sammlung von Daten, die die Gauß-Mischungsdichte 26 oder andere Wahrscheinlichkeitswerte darstellen, die von der Erkennungseinrichtung zur Darstellung der Wahrscheinlichkeit, dass ein gegebener Knoten eine bestimmte Lauteinheit ausgeben würde, verwendet werden.
  • Die übrigen Datenelemente in der Knotendatenstruktur werden vom Algorithmus verwendet, der bestimmt, welche Traversierung den besten Pfad oder die beste Übereinstimmung darstellt. Ein Datenelement 58 speichert die diesem Knoten zugeordnete kumulative Wahrscheinlichkeitsbewertung, während der Algorithmus seinen Analyseprozess durchführt. Ein Datenelement 60 speichert einen Zeiger auf einen anderen Knoten im Baum, der als nächster aktiver Knoten bekannt ist. Der Algorithmus verwendet den nächsten aktiven Knoten zur Bestimmung, wie er durch den Baum fortfahren wird. Die Einzelheiten des Algorithmus und wie diese Datenelemente ins Spiel kommen, werden als nächstes beschrieben.
  • Der Algorithmus
  • Der bevorzugte Algorithmus traversiert die oben beschriebene Datenstruktur auf eine zeitsynchrone Weise. Das heißt, der Algorithmus traversiert die Knoten synchron mit den Beobachtungsdaten, die entwickelt werden, während der Merkmalextraktionsprozess (Schritt 10 in 1) vonstatten geht. Bei einer typischen Erkennungseinrichtung wird die Eingangssprache vorübergehend segmentiert oder in Rahmen unterteilt. Der bevorzugte Algorithmus arbeitet demgemäß synchron mit diesen Rahmen.
  • Die Traversierung von Knoten zu Knoten wird durch die topologische Struktur des Baums und auch durch eine zweite Struktur mit der Bezeichnung "aktive Knotenumhüllende" ange zeigt. Aktive Knoten sind die Knoten, die gegenwärtig die wahrscheinlichsten Übereinstimmungshypothesen darstellen. Die aktive Knotenumhüllende ist eine verknüpfte Liste dieser gegenwärtig aktiven Knoten. Die aktive Knotenumhüllende stellt eine dynamische Struktur dar. Knoten kommen zur Liste der aktiven Knoten hinzu oder verlassen sie, während der Algorithmus fortschreitet. Knoten werden zur aktiven Liste hinzugefügt, falls ihre Wahrscheinlichkeitsbewertung über einer Strahlsuchschwelle liegt, und früher aktive Knoten werden von der aktiven Liste abgeschnitten, falls ihre Bewertung unter diese Schwelle fällt. Zur Berechnung der Wahrscheinlichkeitsbewertung eines aktiven Knotens wendet der Algorithmus die folgende Gleichung der dynamischen Programmierung auf jeden aktiven Knoten an: sk(t) = max{sφ(t – 1) + aφ,k} + dk(t)wobei sk(t) die Bewertung zur Zeit t und φ die Eltern des Knotens sind.
  • Um zu verstehen, wie der Algorithmus den lexikalischen Baum traversiert, sollten einige Definitionen vorgenommen werden. Bezüglich des lexikalischen Baums ist die Tiefe des Knotens als die Anzahl Zustände auf der linken Seite dieses Knotens definiert. Siehe 4a. Je größer die Anzahl, um so tiefer ist der Knoten. Eine Spalte des lexikalischen Baums wird als Satz von Knoten mit derselben Tiefe definiert. Für jede Spalte wird eine willkürliche Ordnungsbeziehung für den Knoten definiert. Die aktive Umhüllende oder Liste der aktiven Knoten ist die Liste der Knoten, die aktiv sind und mit einer zugeteilten Beziehung geordnet sind, so dass, falls Knoten n ein Knoten mit Eltern n* ist und Knoten k ein Knoten mit Eltern k* ist, k* < n*, k < n impliziert. Da alle Knoten einer gegebenen Tiefe im lexikalischen Baum in nahezu jeder willkürlichen Reihenfolge verarbeitet werden können, wurde die Traversierreihenfolge gewählt, die die Leistung des Speicher-Cache maximiert. Anders gesagt: Wenn der Prozessor eine gegebenen Adresse aus dem Speicher lädt, lädt sein On-board-Cache-Mechanismus auch einen Block aufeinander folgender Adressen, die unmittelbar auf die aus dem Speicher geladene Adresse folgen. Muss danach auf irgendwelche dieser nachfolgenden Adressen zugegriffen werden, greift der Prozessor von seinem Cache statt vom Speicher aus auf sie zu, wodurch er die verbundene Speicherzugriffszeit eliminiert. Die vorliegende Erfindung traversiert den lexikalischen Baum so, dass sie dieses Merkmal des Cache ausnutzt. Der lexikalische Baum ist so codiert, dass der Algorithmus den Baum in einer Richtung traversiert, die die im Cache gespeicherten Informationen nutzt.
  • Zur weiteren Verdeutlichung sollen die Knoten von 2 in einer aufeinander folgenden Matrix im Speicher geordnet werden. Die bevorzugte Ausführungsform traversiert folglich die Knoten in ansteigender Reihenfolge des Speicher-Heaps. Der bevorzugte Traversierpfad ist in 4b dargestellt. Die Traversierung beginnt beim aktiven Knoten mit größter Tiefe und schreitet dann in steigender Reihenfolge in einer gegebenen Spalte fort. Sobald alle aktiven Knoten in einer Spalte traversiert worden sind, geht der Pfad bei der vorherigen Spalte weiter.
  • Der gegenwärtig bevorzugte Algorithmus durchläuft die folgenden Schritte:
    • 1. Starte bei der tiefsten aktiven Liste im lexikalischen Baum.
    • 2. Lasse B den Knoten mit dem kleinsten Rang in der aktiven Liste der Kinderspalte sein.
    • 3. Traversiere die aktive Liste in steigender Reihenfolge.
    • 4. Für jedes Kind c des aktuellen Knotens k:
    • 5. wenn B < c, dann inkrementiere B, bis diese Bedingung falsch ist.
    • 6. wenn B = c, dann wende die Gleichung der dynamischen Programmierung an.
    • 7. wenn B > c, dann verknüpfe einfach c vor n.
    • 8. Dekrementiere die Tiefe und verarbeite die Elternspalte.
  • Der obige Algorithmus vergleicht den sequentiellen Ausgang des Sprachanalysemoduls mit den Einträgen in seinem lexikalischen Baum und bestimmt bei jedem Knoten, welcher Eintrag die höchste Wahrscheinlichkeit der Übereinstimmung mit der Eingangssprachlautäußerung aufweist. Obwohl es möglich ist, jeden Knoten des Baums erschöpfend zu analysieren, ist dieser Ansatz mit "roher Gewalt" sehr zeitraubend und ineffizient. Der bevorzugte Algorithmus reduziert seinen Suchraum bei jeder folgenden Iteration dynamisch, indem er die Knoten identifiziert, die aktuell die höchste Wahrscheinlichkeit der Übereinstimmung mit der Eingangslautäußerung aufweisen. Der Algorithmus identifiziert diese Knoten als die nächsten aktiven Knoten. Er verwendet diese Knoten, und nur diese Knoten, bei seiner folgenden Iteration.
  • Während der Algorithmus jeden Knoten besucht, berechnet er die Wahrscheinlichkeitsbewertung des jeweiligen Knotens. Werden die Schleife und eingehenden Wahrscheinlichkeiten als lk = ak,k und ik = ak*,k definiert, kann die Bewertung sk(*) zur Zeit t + 1 berechnet werden als: sk(t + 1) = max{sk(t) + lk,sk*(t) + ik} + dk(t).
  • Es ist zu beachten, dass der Algorithmus t und t + 1 statt t und t – 1 verwendet, um eine Vorwärtsrekursion statt einer Rückwärtsrekursion zu kennzeichnen. Das Endziel ist die Berechnung einer Bewertung nur auf der Kenntnis von Kindknoten basierend (d. h. von k* und nicht von k), um die Verwendung von Rückwärtszeigern zu vermeiden (d. h. Kenntnis des Elternknotens).
  • Der Algorithmus definiert die topologische Bewertung rk(t) = sk(t) – dk(t) und die topologische Teilbewertung r^(t) = sk(t) + l. Es ist zu beachten, dass die topologische Teilbewertung gleich der topologischen Bewertung ist, wenn k* nicht zu einer aktiven Liste gehört. Der Algorithmus traversiert eine Zelle in der aktiven Umhüllung, indem er die folgenden Operationen ausführt:
    • 1. Berechne Bewertung sk ← rk + dk (akustische Übereinstimmung);
    • 2. Vererbung: für jedes Kind c, rc ← max{sk + ic, rc}. Es wird angenommen, dass das Bewertungsfeld für das Kind die Teilbewertung r^ enthält.
    • 3. Selbstaktivierung: rk ← r^k = rk + lk. Das Bewertungsfeld enthält nun die topologische Teilbewertung. Findet keine Bewertungsvererbung statt, ist diese auch die topologische Bewertung für t + 1.
  • Wie durch die obigen Schritte angegeben, berechnet jede Zelle k ihre eigene topologische Bewertung und akustischen Bewertungen bei jedem Rahmen. Diese Eigenschaft wird als Selbstaktivierung bezeichnet. Jede Zelle aktiviert sich selbst und dann alle ihre Kinder. Haben sich die Kinder bereits selbst aktiviert, wird die Bewertung der Elternzelle an ihre Kinder vererbt. Vererbung und Selbstaktivierung können umgekehrt werden, wenn der Al gorithmus sk und den nächsten aktiven Knoten in Variablen hält. In diesem Fall können Daten von einem Knoten unmittelbar nach der Selbstaktivierung aus dem Speicher-Cache verworfen werden. Es ist zu beachten, dass ein Knoten während des Vererbungsprozesses direkten Zugriff auf seine Kinder hat. Dies wird durch die Weise sichergestellt, auf die die aktive Umhüllung aufgebaut ist, wie oben beschrieben.
  • Dynamisches Verhalten der Ausbreitung des Algorithmus und der aktiven Knotenumhüllenden
  • Wie oben erwähnt ist die aktive Knotenumhüllende eine dynamische Struktur. Die aktiven Knoten ändern sich mit dem fortschreitenden Algorithmus. Wenn die aktive Knotenumhüllende den lexikalischen Baum überlagert, scheint sich die aktive Knotenumhüllende auszubreiten, während der Algorithmus im Verlauf der Zeit wirkt. Dieses Konzept ist in 4a in Diagrammform gezeigt.
  • 4a zeigt ein Beispiel, bei dem Wörter statt Buchstaben bei jedem Knoten dargestellt sind. Bei den vorhergehenden Beispielen wurde eine Erkennungseinrichtung für einzelne Wörter veranschaulicht. Jeder Knoten des Baums stellte einen Buchstaben oder eine Lauteinheit dar, die im Wörterbuch ein Wort umfasst. Es wird jedoch in Erinnerung sein, dass die Techniken der Erfindung bei Erkennungseinrichtungen für einzelne Wörter und für kontinuierliche Sprache verwendet werden können. Demgemäß zeigt 4a, wie die Baumstruktur bei einer Erkennungseinrichtung für kontinuierliche Sprache, bei der einzelne Wörter an jedem Knoten dargestellt sind und der Ausgang Sätze oder Wortverbindungen wären, aussehen könnte. Durch Untersuchen des Baums 70 in 4a ist zu sehen, wie z. B. die Wortverbindung "the quick brown fox" (der schnelle braune Fuchs) durch entsprechendes Traversieren des Baums aufgebaut werden würde.
  • 4a zeigt, wie die Ausbreitung der aktiven Knotenumhüllenden im Verlauf der Zeit erscheinen wird. Eine Zeitlinie 72 zeigt, wie die nächste aktive Knotenumhüllende für den beispielhaften Baum zu einem ersten Zeitpunkt a und zu einem späteren Zeitpunkt b erscheinen könnte. Zeit a entspricht dem Punkt innerhalb der Lautäußerung "the quick brown fox" unmittelbar nachdem das Wort "the" durch den Sprachanalyseschritt 10 (1) analysiert worden ist. Zeit b entspricht dem Punkt, bei dem das Wort "brown" verarbeitet worden ist. Im Zeitpunkt a entspricht die bei 74 dargestellte aktive Umhüllende denen, die am wahrscheinlichsten der Lautäußerung entsprechen, die bei diesem Punkt teilweise analysiert worden ist. Zu einem späteren Zeitpunkt b hat sich die aktive Umhüllende nach außen ausgebreitet, wie bei 76 dargestellt. Die aktiven Knotenumhüllenden bei 74 und bei 75 stellen die aktiven Knoten zu zwei verschiedenen Zeitpunkten (Zeit a und Zeit b) dar. Der Algorithmus wirkt auf diese aktiven Knoten, wobei er die gegenwärtig aktiven Knoten zum Definieren des Einstiegspunkts in den lexikalischen Baum für die nächste darauf folgende Iteration verwendet.
  • Wie mit diesem Beispiel dargestellt entwickeln oder breiten sich die nächsten aktiven Knoten weitgehend so aus, wie sich eine Wellenfront ausbreiten würde, wenn ein Stein am Root Node in eine Wasserpfütze geworfen werden und im Laufe der Zeit die Ausbreitung einer Welle nach außen verursachen würde. Bei einer Erkennungseinrichtung für Einzelwörter würde sich die Wellenfront des nächsten aktiven Knotens tatsächlich auf eine solche auswärts gerichtete wellenähnliche Weise ausbreiten, denn jeder einzelne Knoten muss nur einmal verwendet werden. Im allgemeineren Fall jedoch, wie z. B. einer Erkennungseinrichtung für kontinuierliche Sprache, können Knoten wieder besucht werden, und daher würde sich die Wellenfront des nächsten aktiven Knotens nicht unbedingt immer vom Root Node aus ausbreiten. Um zu verstehen, warum dies so ist, muss klar sein, dass bei einer Erkennungseinrichtung für kontinuierliche Sprache der Sprecher ein Wort öfter als einmal äußern kann. Daher würde die Äußerung "the quick brown quick brown fox" (der schnelle braune schnelle braune Fuchs) bewirken, dass sich die Wellenfront des nächsten aktiven Knotens vorübergehend zum Root Node hin ausbreiten würde.
  • 5 zeigt das dynamische Verhalten des gegenwärtig bevorzugten Suchalgorithmus. Speziell zeigt 5 eine Untergruppe des lexikalischen Baums zu verschiedenen Zeiten: Zeit = 0, Zeit = 1 ... Zeit = 4. Bei einer rahmenbasierten Erkennungseinrichtung würden diese verschiedenen Zeiten aufeinander folgenden Rahmen entsprechen. Der Algorithmus beginnt beim Root Node zur Zeit = 0, wie durch den Pfeil 100 des aktiven Einstiegspunkts angegeben. Zur Zeit = 0 ist der Root Node der einzige aktive Knoten. Dann fährt der Algorithmus fort, um die Kindknoten des Root Node zu identifizieren, und diese werden zur Zeit = 1 ebenfalls aktive Knoten. Der Algorithmus verwendet den Traversierpfad der aktiven Umhüllenden, um einen aktiven Knoten nach dem anderen zu besuchen. Der Pfad beginnt immer bei den tiefsten Knoten, d. h. denjenigen, die am weitesten vom Root Node entfernt sind.
  • Zur Zeit = 1 ist der aktive Knoteneinstiegspunkt durch den mit 100 bezeichneten Pfeil gekennzeichnet. Dann schreitet der Aktive-Knoten-Traversierpfad fort, wie durch die Pfeile 102 und 104 angezeigt. Zu Veranschaulichungszwecken werden beispielhafte Wahrscheinlich keitsbewertungen verwendet, die zeigen, wie die einzelnen Knoten aktiv werden und dann durch den Strahlsuchprozess beseitigt werden. Es sei angenommen, dass der Root Node zur Zeit = 1 eine Wahrscheinlichkeitsbewertung von 100 hat (alle Bewertungen sind in 5 in eckigen Klammern gezeigt). Ferner sei angenommen, dass die anderen zwei aktiven Knoten Wahrscheinlichkeitsbewertungen 60 bzw. 80 haben. Der Algorithmus nutzt eine Strahlsuchtechnik unter Verwendung einer als die maximale Abweichung von der besten Bewertung bei einem gegebenen Zeitrahmen definierte Strahlgröße. Für Zwecke dieses Beispiels sei angenommen, dass die Strahlgröße 30 ist. Der Strahlsuchalgorithmus bestimmt, dass ein Knoten gelöscht und nicht weiter verarbeitet wird, wenn die Wahrscheinlichkeitsbewertung dieses Knotens um mehr als die Strahlgröße niedriger ist als die Wahrscheinlichkeitsbewertung des Knotens mit der höchsten Wahrscheinlichkeit. Anders gesagt, wenn die Wahrscheinlichkeitsbewertung eines Knotens niedriger ist als die maximale Bewertung minus 30, wird dieser Knoten bei der nachfolgenden Verarbeitung übersprungen.
  • Zur Zeit = 0 ist die maximale Wahrscheinlichkeitsbewertung die dem Root Node zugeordnete, nämlich eine Wahrscheinlichkeit von 100. Der Strahl ist 100 – 30 oder 70. Es ist zu beachten, dass der Knoten mit einer Bewertung von 60 unter den Strahl fällt und daher Gegenstand des Abschneidens durch den Strahlsuchalgorithmus ist. Demgemäß sind zur Zeit = 2 nur zwei aktive Knoten vorhanden, der Root Node und der Knoten, auf den der Aktive-Knoten-Einstiegspfeil 100 zeigt. Weil die Wahrscheinlichkeitsbewertungen bei jedem Zeitintervall neu berechnet werden, werden für jeden aktiven Knoten neue Werte berechnet. Es sei angenommen, dass der Root Node hat eine Wahrscheinlichkeitsbewertung von 160 und der andere aktive Knoten eine Bewertung von 120 hat. Ferner ist auch zu beachten, dass zur Zeit = 2 der Aktive-Knoten-Traversierpfad bei dem mit 100 bezeichneten Pfeil eintritt und weiter verläuft, wie durch den Pfeil 102 angegeben.
  • Den Strahl zur Zeit = 2 berechnend, bestimmt der Algorithmus, dass der Strahl 160 – 30 = 160 ist. Weil der eine Wahrscheinlichkeitsbewertung von 120 aufweisende Knoten unter den Strahlwert fällt, wird er von weiterer Verarbeitung abgeschnitten. Folglich übersteht nur der Root Node den Strahlschnitt.
  • Zur Zeit = 3 bleibt der Root Node aktiv, und dadurch sind seine Kindknoten ebenso aktiviert. Es ist zu beachten, dass in diesem Fall der oberste Kindknoten, der zur Zeit 2 von der Strahlsuche abgeschnitten wurde, zur Zeit t = 3 wieder aktiviert ist, weil er ein Kind des aktiven Root Node ist. Ferner ist zu beachten, dass der Aktive-Knoten-Einstiegspunkt 100 den tiefsten Knoten identifiziert und dass die übrigen Aktive-Knoten-Pfeile 102 und 104 zeigen, wie der Pfad der aktiven Knoten verbunden oder definiert ist. Beim vorliegenden Beispiel sei angenommen, dass der Root Node eine Wahrscheinlichkeitsbewertung von 200, der Einstiegspunktknoten eine Wahrscheinlichkeitsbewertung von 220 und der übrige Knoten eine Wahrscheinlichkeitsbewertung von 240 hat, wie zur Zeit = 3 veranschaulicht. Die Strahlberechnung 240 – 30 = 210 führt nun dazu, dass der Root Node von der weiteren Verarbeitung abgeschnitten wird, weil er unter den Strahlwert fällt. Zur Zeit = 4 ist der Root Node daher nicht mehr aktiv. Die dem untersten Knoten zugeordneten Kindknoten sind jedoch nun aktiviert. Der Einstiegspunkt 100 bewegt sich zum tiefsten Knoten, der zufällig einer der Kindknoten vom vorher tiefsten Knoten ist. Pfeile 102, 104 und 106 zeigen, wie der Pfad der aktiven Knoten traversiert würde. Wie in den vorherigen Fällen ist der Einstiegspunkt immer beim tiefsten Knoten, und die Traversierung verläuft so, dass die tiefsten Knoten zuerst traversiert werden und der Traversierpfad mit dem Elternknoten des tiefsten Knotens endet.
  • Angesichts des obigen Beispiels wird der aktuell bevorzugte Algorithmus nunmehr in Bezug auf das Flussdiagramm von 6 und die in Anhang I aufgeführte detaillierte Pseudocode-Auflistung erklärt. Wie aus 6 ersichtlich ist, beginnt der bevorzugte Algorithmus bei Schritt 200 durch Prüfung, um zu bestimmen, ob der Elternknoten der gegenwärtigen Liste aktiver Knoten entfernt werden muss, um nicht weiter berücksichtigt zu werden, oder mittels einer Bewertung unter der Strahlbewertung "ausgestrahlt" werden muss. Als nächstes wird die Liste aktiver Knoten traversiert, wie bei 202 angegeben. Die akustische Übereinstimmung wird bei Schritt 204 berechnet, und der Strahl wird aktualisiert. Als nächstes führt der Algorithmus bei Schritt 206 eine auf dem dynamischen Programm basierenden Vergleich von Eltern bis zum Kind durch, und bei Schritt 208 werden die Verbindungen aktualisiert, so dass die nächste Liste aktiver Knoten in einer Zeit t + 1 traversiert werden kann. Anschließend wird das Verfahren mit einer Rückkehr zu Schritt 200 wiederholt.
  • Die entsprechenden Schritte aus dem Flussdiagramm von 6 waren als Überschriftenauflistung in den in Anhang I unten gezeigten Pseudocode eingefügt worden. Anhang II stellt eine Pseudocode-Auflistung für den zur Erzeugung des lexikalischen Baums verwendeten Algorithmus bereit.
  • Bei der Erkennung von kontinuierlicher Sprache muss der Prozessor Zeit für die Berechnung der akustischen Übereinstimmung, den Suchalgorithmus selbst und die Sprachmodellierung aufwenden. Aufgrund der späten Anwendung von Sprachmodellstrafen, muss der Suchraum geteilt werden. Folglich ist die Speicherung der im lexikalischen Baum eingebetteten Hypothesen vielleicht nicht mehr möglich. Bei Verwendung wortinterner kontextabhängiger Modelle wird jedoch nur eine einzige Instanz des statischen lexikalischen Baums benötigt. Außerdem können Unigramm-Sprachmodelle (language model, LM) vorfaktorisiert werden. Sie sind für Vorgriff bei Unigramm- oder Bigramm-Sprachmodellen verwendbar. Außerdem teilen sich eine riesige Anzahl Knoten im lexikalischen Baum dieselbe LM-Vorgriffsbewertung.
  • Anhänge Anhang I
    Figure 00160001
  • Figure 00170001
  • Anhang II
  • Der Baum mit dem folgenden Algorithmus wird generiert:
  • Figure 00180001
  • Anhand des Vorstehenden ist ersichtlich, dass die vorliegende Erfindung zur Durchführung von auf dynamischer Programmierung basierenden Vergleichen in Spracherkennungssystemen eine Datenstruktur und einen Algorithmus bereitstellt, die äußerst kompakt und effizient sind. Der Algorithmus und die Datenstruktur können bei verschiedenen dynamischen Programmier- und Erkennungsanwendungen als Ersatz für den klassischen Viterbi-Algorithmus verwendet werden. Die Struktur des lexikalischen Baums und die Technik der Traversierung aktiver Knoten führen zu einem sehr speichereffizienten Prozess, der sehr vorteilhaft bei Erkennungssystemen genutzt werden kann, deren Speicher und/oder Verarbeitungsgeschwindigkeit begrenzt sind. Die Erfindung ist deshalb bei eingebetteten Systemen, Verbraucherprodukten und anderen Erkennungsanwendungen verwendbar, bei denen ein großer Speicher und schnelle Prozessoren vielleicht nicht möglich sind.

Claims (21)

  1. Dynamisches Programmiersystem mit: einer Baumdatenstruktur (30), die in einem computerlesbaren Speicher, auf den ein Prozessor zugreifen kann, implementiert ist, wobei die Baumdatenstruktur eine Mehrzahl Knoten hat, die einen Root-Node (Grundknoten) und eine Mehrzahl Eltern-Kind-Generationen topologisch definieren, einschließlich der tiefsten Kindgeneration, die vom Grund am weitesten entfernt ist; gekennzeichnet durch einen Traversieralgorithmus, der vom Prozessor implementiert wird, wobei der Algorithmus die Knoten auf Basis einer Menge Traversierregeln traversiert, wodurch Knoten einer gegebenen Generation verarbeitet werden, bevor die Elternknoten der gegebenen Generation verarbeitet werden, die tiefste Kindgeneration zuerst verarbeitet wird und die Traversierung der Knoten jeder Generation in der gleichen topologischen Richtung fortschreitet.
  2. System nach Anspruch 1, bei dem die Baumdatenstruktur (30) im Speicher als flache Darstellung codiert ist, bei der Knoten jeder Generation aufeinander folgende Speicherplätze belegen.
  3. System nach Anspruch 1, bei dem die Baumdatenstruktur (30) im Speicher codiert ist, wobei Eltern-Kind-Generationen durch eine verknüpfte Liste dargestellt sind.
  4. System nach Anspruch 1, bei dem die Baumdatenstruktur (30) im Speicher als flache Darstellung codiert ist, in der Knoten jeder Generation aufeinander folgende Speicherplätze belegen und Indixes haben, die die topologische Grenze zwischen Kindern derselben Eltern bezeichnen.
  5. System nach Anspruch 1, das ferner einen Mechanismus zur Kennzeichnung ausgewählter Knoten als aktive Knoten aufweist.
  6. System nach Anspruch 5, bei dem der Mechanismus zur Kennzeichnung ausgewählter Knoten als aktive Knoten eine aktive umhüllende Datenstruktur aufweist, die der Baumstruktur zugeordnet ist.
  7. System nach Anspruch 1, das ferner einen Mechanismus zur Kennzeichnung ausgewählter Knoten als aktive Knoten aufweist und bei dem der Traversieralgorithmus eine Traversierregel enthält, nach der nur aktive Knoten verarbeitet werden.
  8. System nach Anspruch 1, bei dem die Baumdatenstruktur (30) ein lexikalischer Baum ist, der ein Lexikon repräsentiert.
  9. System nach Anspruch 1, bei dem die Baumdatenstruktur (30) ein lexikalischer Baum ist, der das Lexikon einer Spracherkennungseinrichtung repräsentiert.
  10. System nach Anspruch 1, bei dem der Prozessor einen Cache verwendet und bei dem die Baumdatenstruktur (30) im Speicher so codiert ist, dass die Traversierung des Baums in den Cache fortschreitet.
  11. System nach Anspruch 1, das ferner einen Mechanismus zur Kennzeichnung ausgewählter Knoten als aktive Knoten aufweist, bei dem die aktiven Knoten eine Wahrscheinlichkeitsbewertung (58) über einer vorgegebenen Suchschwelle haben, wobei die Wahrscheinlichkeitsbewertung (58) aus Informationen bestimmt wird, die nur aus Knoten der Kindgeneration stammen, wobei der Traversieralgorithmus nur die aktiven Knoten traversiert.
  12. System nach Anspruch 11, bei dem der Traversieralgorithmus die Wahrscheinlichkeitsbewertung (58) für einen Knoten berechnet zu: sk(t + 1) = max{sk(t) + lk,sk*(t) + ik} + dk(t)wobei Schleifen- und Eingangswahrscheinlichkeiten als lk = ak,k und lk = ak*,k definiert sind.
  13. System nach Anspruch 1, das ferner einen Mechanismus zur Kennzeichnung ausgewählter Knoten als aktive Knoten aufweist, indem eine aktive Umhüllende als eine verknüpfte Liste aktuell aktiver Knoten definiert und eine Menge Regeln verwendet wird, um die aktive Umhüllende auszubreiten, indem Knoten, die aktuell eine höchste Wahrscheinlichkeitsbewertung (58) der Übereinstimmung mit einer Eingangslautäußerung haben, als nächste aktive Knoten (60) identifiziert werden, wobei der Mechanismus nur die nächsten aktiven Knoten (60) in einer anschließenden Iteration verwendet, wobei der Traversieralgorithmus einen dynamischen Programmierprozess enthält, der Wahrscheinlichkeits bewertungen (58) Knoten zuordnet, die mittels einer Vorwärtsrekursion traversiert werden, wodurch die Bewertungen (58) nur auf Basis der Kenntnis der Kindknoten berechnet werden.
  14. System nach Anspruch 13, bei dem der Traversieralgorithmus die Wahrscheinlichkeitsbewertung (58) für einen Knoten berechnet zu: sk(t + 1) = max{sk(t) + lk,sk*(t) + ik} + dk(t)wobei Schleifen- und Eingangswahrscheinlichkeiten als lk = ak,k und lk = ak*,k kdefiniert sind.
  15. Dynamisches Programmiersystem mit: einer Baumdatenstruktur (30), die in einem computerlesbaren Speicher, auf den ein Prozessor zugreifen kann, implementiert ist, wobei die Baumdatenstruktur eine Mehrzahl Knoten hat, gekennzeichnet durch einen Mechanismus zur Kennzeichnung ausgewählter Knoten als aktive Knoten, indem eine aktive Umhüllende als eine verknüpfte Liste aktuell aktiver Knoten definiert und eine Menge Regeln verwendet wird, um die aktive Umhüllende auszubreiten, indem Knoten, die aktuell eine höchste Wahrscheinlichkeitsbewertung (58) der Übereinstimmung mit einer Eingangslautäußerung haben, als nächste aktive Knoten (60) identifiziert werden, wobei der Mechanismus nur die nächsten aktiven Knoten (60) in einer anschließenden Iteration verwendet; und einen vom Prozessor implementierten Traversieralgorithmus, wobei der Algorithmus die Knoten auf Basis einer Menge Traversierregeln traversiert, wobei nur die aktiven Knoten traversiert werden, wobei der Traversieralgorithmus einen dynamischen Programmierprozess enthält, der Wahrscheinlichkeitsbewertungen (58) Knoten zuordnet, die mittels einer Vorwärtsrekursion traversiert werden, wodurch die Bewertungen (58) nur auf Basis der Kenntnis der Kindknoten berechnet werden.
  16. System nach Anspruch 15, bei dem eine vorgegebene Schwelle, die die Identifizierung eines Knotens als aktiver Knoten bestimmt, auf Basis einer höchsten Wahrscheinlichkeitsbewertung (58) berechnet wird.
  17. System nach Anspruch 15, bei dem der Mechanismus zur Kennzeichnung ausgewählter Knoten als aktive Knoten eine aktive Umhüllende definiert und eine Menge Regeln verwendet, um die aktive Umhüllende auszubreiten, indem Knoten entfernt werden, die eine Wahrscheinlichkeitsbewertung (58) unter einer vorgegebenen Schwelle haben.
  18. System nach Anspruch 15, bei dem der Mechanismus zur Kennzeichnung ausgewählter Knoten als aktive Knoten eine aktive Umhüllende definiert und eine Menge Regeln verwendet, um die aktive Umhüllende auszubreiten, indem Knoten eingefügt werden, die eine Wahrscheinlichkeitsbewertung (58) über einer vorgegebenen Schwelle haben.
  19. System nach Anspruch 18, bei dem die Menge Regeln zum Einfügen von Knoten garantiert, dass die Knoten in der aktiven Umhüllenden nach ihrem topologischen Index sortiert werden.
  20. System nach Anspruch 15, bei dem der Prozessor einen Cache verwendet und bei dem die Baumdatenstruktur (30) im Speicher so codiert ist, dass die Traversierung des Baums in den Cache fortschreitet.
  21. System nach Anspruch 15, bei dem der Traversieralgorithmus die Wahrscheinlichkeitsbewertung (58) für einen Knoten berechnet zu: sk(t + 1) = max{sk(t) + lk,sk*(t) + ik} + dk(t)wobei Schleifen- und Eingangswahrscheinlichkeiten als lk = ak,k und lk = ak*,k definiert sind.
DE60109999T 2000-07-31 2001-07-31 Spracherkennung mittels lexikalischer Bäumen Expired - Fee Related DE60109999T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/628,828 US7035802B1 (en) 2000-07-31 2000-07-31 Recognition system using lexical trees
US628828 2000-07-31

Publications (2)

Publication Number Publication Date
DE60109999D1 DE60109999D1 (de) 2005-05-19
DE60109999T2 true DE60109999T2 (de) 2005-09-01

Family

ID=24520472

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60109999T Expired - Fee Related DE60109999T2 (de) 2000-07-31 2001-07-31 Spracherkennung mittels lexikalischer Bäumen

Country Status (8)

Country Link
US (1) US7035802B1 (de)
EP (1) EP1178466B1 (de)
JP (1) JP2002082689A (de)
CN (1) CN1156820C (de)
AT (1) ATE293275T1 (de)
DE (1) DE60109999T2 (de)
ES (1) ES2238394T3 (de)
TW (1) TW533403B (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007035B2 (en) * 2001-06-08 2006-02-28 The Regents Of The University Of California Parallel object-oriented decision tree system
GB2384901B (en) 2002-02-04 2004-04-21 Zentian Ltd Speech recognition circuit using parallel processors
JP2004191705A (ja) * 2002-12-12 2004-07-08 Renesas Technology Corp 音声認識装置
FR2857528B1 (fr) * 2003-07-08 2006-01-06 Telisma Reconnaissance vocale pour les larges vocabulaires dynamiques
US7593845B2 (en) * 2003-10-06 2009-09-22 Microsoflt Corporation Method and apparatus for identifying semantic structures from text
KR20050054706A (ko) * 2003-12-05 2005-06-10 엘지전자 주식회사 음성인식을 위한 어휘 트리 구축 방법
GB0420464D0 (en) 2004-09-14 2004-10-20 Zentian Ltd A speech recognition circuit and method
EP1803116B1 (de) * 2004-10-19 2009-01-28 France Télécom Spracherkennungsverfahren mit temporaler markereinfügung und entsprechendes system
US7552106B2 (en) * 2004-11-17 2009-06-23 International Business Machines Corporation Variable length file entry navigation
KR100703697B1 (ko) * 2005-02-02 2007-04-05 삼성전자주식회사 어휘 그룹 트리를 이용한 어휘 인식 방법 및 장치
KR100717385B1 (ko) * 2006-02-09 2007-05-11 삼성전자주식회사 인식 후보의 사전적 거리를 이용한 인식 신뢰도 측정 방법및 인식 신뢰도 측정 시스템
KR100748720B1 (ko) * 2006-02-09 2007-08-13 삼성전자주식회사 다중 계층 중심 어휘 목록에 기초하여 대규모 단어 음성인식 방법 및 그 장치
US9131117B2 (en) * 2006-09-18 2015-09-08 Telcordia Technologies, Inc. Optimal content distribution in video-on-demand tree networks
JP4427530B2 (ja) * 2006-09-21 2010-03-10 株式会社東芝 音声認識装置、プログラムおよび音声認識方法
US10564944B2 (en) * 2010-01-07 2020-02-18 Microsoft Technology Licensing, Llc Efficient immutable syntax representation with incremental change
US9230548B2 (en) * 2012-06-06 2016-01-05 Cypress Semiconductor Corporation Hybrid hashing scheme for active HMMS
US9507877B2 (en) 2014-12-01 2016-11-29 Yandex Europe Ag Method of and system for storing spatial objects
RU2602970C2 (ru) * 2014-12-01 2016-11-20 Общество С Ограниченной Ответственностью "Яндекс" Способ организации множества объектов, содержащихся в дереве квадрантов, в односвязный список и компьютер, используемый в нем
US10540957B2 (en) 2014-12-15 2020-01-21 Baidu Usa Llc Systems and methods for speech transcription
US10332509B2 (en) 2015-11-25 2019-06-25 Baidu USA, LLC End-to-end speech recognition
US10481863B2 (en) * 2016-07-06 2019-11-19 Baidu Usa Llc Systems and methods for improved user interface
US11556775B2 (en) 2017-10-24 2023-01-17 Baidu Usa Llc Systems and methods for trace norm regularization and faster inference for embedded models
US10623557B2 (en) * 2018-05-30 2020-04-14 International Business Machines Corporation Cognitive telephone fraud detection

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884259A (en) * 1997-02-12 1999-03-16 International Business Machines Corporation Method and apparatus for a time-synchronous tree-based search strategy
US5983180A (en) 1997-10-23 1999-11-09 Softsound Limited Recognition of sequential data using finite state sequence models organized in a tree structure
GB9802836D0 (en) * 1998-02-10 1998-04-08 Canon Kk Pattern matching method and apparatus
US6374222B1 (en) * 1998-08-12 2002-04-16 Texas Instruments Incorporated Method of memory management in speech recognition
US6389416B1 (en) * 1999-02-19 2002-05-14 International Business Machines Corporation Depth first method for generating itemsets
US6574595B1 (en) * 2000-07-11 2003-06-03 Lucent Technologies Inc. Method and apparatus for recognition-based barge-in detection in the context of subword-based automatic speech recognition

Also Published As

Publication number Publication date
EP1178466A2 (de) 2002-02-06
CN1156820C (zh) 2004-07-07
US7035802B1 (en) 2006-04-25
ES2238394T3 (es) 2005-09-01
ATE293275T1 (de) 2005-04-15
CN1349211A (zh) 2002-05-15
JP2002082689A (ja) 2002-03-22
EP1178466A3 (de) 2003-04-23
EP1178466B1 (de) 2005-04-13
DE60109999D1 (de) 2005-05-19
TW533403B (en) 2003-05-21

Similar Documents

Publication Publication Date Title
DE60109999T2 (de) Spracherkennung mittels lexikalischer Bäumen
DE69816676T2 (de) System und verfahren zur bestimmung und minimalisierung eines endlichen transducers zur spracherkennung
DE69937176T2 (de) Segmentierungsverfahren zur Erweiterung des aktiven Vokabulars von Spracherkennern
DE60016722T2 (de) Spracherkennung in zwei Durchgängen mit Restriktion des aktiven Vokabulars
DE69827988T2 (de) Sprachmodelle für die Spracherkennung
DE69818796T2 (de) Maschinenorganisiertes verfahren und vorrichtung zum übersetzen einer wortorganisierten textquelle in einen wortorganisierten zieltext
DE69832393T2 (de) Spracherkennungssystem für die erkennung von kontinuierlicher und isolierter sprache
DE69726526T2 (de) Schema und Modelladaption bei Mustererkennung welche auf Taylorausdehnung basiert
EP0925578B1 (de) Sprachverarbeitungssystem und verfahren zur sprachverarbeitung
DE60014743T2 (de) Verfahren und Vorrichtung zur Analyse natürlicher Sprache
DE602004012909T2 (de) Verfahren und Vorrichtung zur Modellierung eines Spracherkennungssystems und zur Schätzung einer Wort-Fehlerrate basierend auf einem Text
DE102017122276A1 (de) Neuronale maschinenübersetzungssysteme
EP1085499B1 (de) Erkennung einer in buchstabierter Form vorliegenden Sprachäusserungseingabe
DE202005022113U1 (de) Training für eine Text-Text-Anwendung, die eine Zeichenketten-Baum-Umwandlung zum Training und Decodieren verwendet
DE602004004310T2 (de) System mit kombiniertem statistischen und regelbasierten Grammatikmodell zur Spracherkennung und zum Sprachverstehen
DE69738116T2 (de) Lokalisierung eines Musters in einem Signal
EP3798922A1 (de) Vorrichtung und verfahren zum maschinenlernen und ansteuern einer maschine
DE102021004562A1 (de) Abwandlung von Szenengraphen auf Grundlage von Befehlen in natürlicher Sprache
EP1058235B1 (de) Wiedergabeverfahren für sprachgesteuerte Systeme mit text-basierter Sprachsynthese
EP1159733B1 (de) Verfahren und anordnung zur bestimmung eines repräsentativen lautes
DE10040063A1 (de) Verfahren zur Zuordnung von Phonemen
DE112014005715T5 (de) Dialogmanager
DE69333762T2 (de) Spracherkennungssystem
DE60026366T2 (de) Spracherkennung mit einem komplementären sprachmodel für typischen fehlern im sprachdialog
DE69919420T2 (de) Verfahren und Vorrichtung zur Mustererkennung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee