DE3750199T2 - System zur Erkennung kontinuierlicher Sprache. - Google Patents

System zur Erkennung kontinuierlicher Sprache.

Info

Publication number
DE3750199T2
DE3750199T2 DE3750199T DE3750199T DE3750199T2 DE 3750199 T2 DE3750199 T2 DE 3750199T2 DE 3750199 T DE3750199 T DE 3750199T DE 3750199 T DE3750199 T DE 3750199T DE 3750199 T2 DE3750199 T2 DE 3750199T2
Authority
DE
Germany
Prior art keywords
node
link
block
arc
similar comparison
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
DE3750199T
Other languages
English (en)
Other versions
DE3750199D1 (de
Inventor
Ira A Gerson
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.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
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
Priority claimed from PCT/US1986/001222 external-priority patent/WO1987007748A1/en
Priority claimed from PCT/US1986/001224 external-priority patent/WO1987007749A1/en
Application filed by Motorola Inc filed Critical Motorola Inc
Application granted granted Critical
Publication of DE3750199D1 publication Critical patent/DE3750199D1/de
Publication of DE3750199T2 publication Critical patent/DE3750199T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/193Formal grammars, e.g. finite state automata, context free grammars or word networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Selective Calling Equipment (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Telephonic Communication Services (AREA)
  • Radio Transmission System (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Exchange Systems With Centralized Control (AREA)

Description

    Hintergrund der Erfindung
  • Die vorliegende Erfindung betrifft eine Spracherkennung und insbesondere eine Spracherkennung, bei der gesprochene Wortendpunkte nicht vorbestimmt sind.
  • Eine Erkennung von isolierten Worten aus einer vorgegebenen Grammatik für einen bekannten Sprecher ist seit einiger Zeit bekannt. Worte der Grammatik werden als einzelne Muster bzw. Lehren vorab gespeichert, wobei jede Lehre die Klangmuster für ein Wort der Grammatik darstellt. Wenn ein isoliertes Wort gesprochen wird, vergleicht das System das Wort mit jeder einzelnen Lehre, die die Grammatik darstellt. Dieses Verfahren wird allgemein als Gesamtwort-Lehranpassung bezeichnet. Viele erfolgreiche Erkennungssysteme verwenden eine Gesamtwort-Lehranpassung mit dynamischer Programmierung, um nichtlinearen Zeitachsenvariationen zwischen dem gesprochenen Wort und der vorab gespeicherten Lehre gewachsen zu sein.
  • Obwohl diese Technik für isolierte Worterkennungsanwendungen bisher wirksam war, erfordern viele praktische Anwendungen eine kontinuierliche Worterkennung. Bei einer kontinuierlichen Worterkennung kann die Anzahl der Worte in einer Redewendung unbegrenzt sein und die Identität der früheren Worte kann vor dem Ende der Redewendung bestimmt werden, wobei in einer isolierten Worterkennung Begrenzungssymbole verwendet werden, um den Beginn und das Ende der Eingabemuster zu identifizieren, und eine Erkennung tritt mit dem Wort zur gleichen Zeit auf. Weiterhin muß ein kontinuierliches Spracherkennungssystem ein Eingabemuster von anderen erkennbaren Mustern, einem Hintergrundgeräusch, einem vom Sprecher hervorgerufenen Geräusch, wie beispielsweise ein Atemgeräusch, unterscheiden, während eine isolierte Erkennung gewöhnlicherweise nicht andere Erkennungsmuster an dem Anfang oder dem Ende des Worts tolerieren kann.
  • In "Network-based connected digit recognition using vector quanization", M.A. Bush, IEEE International Conference on Acoustics, Speech and Signal Processing, Tampa, 26.-29. März 1985, Vol. 3, Seiten 1197-1200, ist ein Verfahren einer zusammenhängenden, digitalen Erkennung beschrieben, bei der Verzweigungen eines Netzwerks Klassen von akustischen-phonetischen Segmenten darstellen.
  • In "Two level DP Matching - A dynamic programming based pattern matching algorithm for connected word recognition", H. Sakoe, IEEE Trans. Acoustics, Speech and Signal Processing, Vol. ASSP-27, Nr. 6, Seiten 588-595, Dezember 1979, wurde das Verfahren der Gesamtwort- Lehr- bzw. Musteranpassung auf die Behandlung von einer zusammenhängenden Worterkennung ausgedehnt. Die Veröffentlichung schlägt einen dynamischen Zweipass-Programmleralgorithmus vor, um eine Abfolge von Wortlehren zu finden, die am besten dem gesamten Eingabemuster entsprechen. In dem ersten Durchgang wird eine Markierung (score) erzeugt, die die Ähnlichkeit zwischen jeder Lehre, die jedem möglichen Bereich des Eingabemusters entspricht, anzeigt. In dem zweiten Durchgang wird die Markierung dazu verwendet, die beste Abfolge von Lehren entsprechend dem gesamten Eingabemuster herauszufinden.
  • Dieses erweiterte Verfahren besitzt bestimmte Nachteile. Ein Nachteil dieser Technik ist die Länge der Berechnungszeit, die sie erfordert. In Abhängigkeit der speziellen Design-Anforderungen kann diese Einschränkung zu einem ungerechtfertigten Erfordernis hinsichtlich eines teueren Hochgeschwindigkeitsprozessors führen.
  • Ein anderer Nachteil dieses Verfahrens ist derjenige, daß die Endpunkte des Eingabemusters vorbestimmt werden müssen und das gesamte Eingabemuster in dem System gespeichert werden muß, bevor irgendeine genaue Lehr- bzw. Musteranpassung auftreten kann. Für ein Eingabemuster von irgendeiner signifikanten Länge würde die Ansprechzeit für die Erkennung wesentlich verschlechtert werden. Auch werden Fehler in der Endpunktermittlung ernsthaft die Erkennungseigenschaft herabsetzen. Weiterhin kann der Speicher, der dazu erforderlich ist, diese Information zu speichern, übermäßig groß werden.
  • In "Partial Traceback and Dynamic Programming", P. Brown, J. Spohrer, P. Hochschild, und J. Baker, IEEE Trans. Acoustics, Speech and Signal Processing, Vol. ASSP-27, Nr. 6, Seiten 588-595, Dez. 1979, wird eine Technik beschrieben, die eine kontinuierliche Spracherkennung von willkürlich langen Eingabemustern ohne Vorbestimmung von Endpunkten ermöglicht. Dies wird unter Verwendung einer Technik durchgeführt, die als Teil-Rückspurung bezeichnet wird. Eine Teil-Rückspurung ermöglicht eine Ausgabe von erkannten Worten vor der Vervollständigung des gesamten Eingabemusters ohne Verlust der Erkennungseigenschaft. Allerdings erscheint die Teil-Rückspurtechnik, die beschrieben ist, vom Prozessor gesehen lästig und beschwerlich durchführbar zu sein.
  • Demgemäß besteht ein Bedürfnis für ein kontinuierliches Spracherkennungssystem, das leicht implementiert werden kann, das trotzdem effektiv und billig im Realzeitmodus betrieben werden kann.
  • Zusammenfassung der Erfindung
  • Gemäß der vorliegenden Erfindung wird ein Spracherkennungssystem zur Erkennen von Gruppen von Eingabe-Blöcken bzw. Blöcken geschaffen, wobei ein grammatikalisches Modell in einem Speicher gespeichert werden kann, wobei das grammatikalische Modell aus Knoten zusammengesetzt ist, die durch Bögen miteinander verbunden sind, wobei die Bögen mindestens eine zugeordnete Lehre, die in einem Speicher gespeichert ist, und entsprechende beginnende und endende Knoten besitzen, und wobei Gruppen von Eingabeblöcken mit den gespeicherten Lehren verglichen werden können, um ähnliche Vergleichsparameter zu erzeugen, das folgende Merkmale aufweist:
  • Einrichtungen zur Strukturierung des grammatikalischen Modells bzw. der grammatikalischen Formung derart, daß ein erster, ausgewählter Bogen- Satz, der aus einem oder mehreren Bögen und deren entsprechenden Knoten zusammengesetzt ist, eine Schleife innerhalb des grammatikalischen Modells aufweist;
  • Einrichtungen zur Bildung einer ersten Parameterspeicherung für einen oder mehrere Knoten, die einen Endknoten für einen ausgewählten Bogen umfaßt;
  • Einrichtungen zur Bestimmung mindestens eines ersten, ähnlichen Vergleichsparametersatzes in der ersten Parameterspeicherung für den Ursprungsknoten des ausgewählten Bogens;
  • wobei das Spracherkennungssystem dadurch gekennzeichnet ist, daß es Einrichtungen zur Bildung einer zweiten Parameterspeicherung für mindestens einen Knoten, der einen Endknoten für einen ausgewählten Bogen umfaßt;
  • Einrichtungen zur Ermittlung mindestens eines zweiten, ähnlichen Vergleichsparametersatzes für einen ausgewählten Bogen, und zwar unter Verwendung einer oder mehrerer Lehren, die dem ausgewählten Bogen und dem ersten ähnlichen Vergleichsparametersatz, der unter dem Ursprungsknoten gespeichert ist, zugeordnet ist;
  • Einrichtungen zur Ermittlung eines dritten, ähnlichen Vergleichsparametersatzes für den ausgewählten Bogen unter Verwendung mindestens eines zweiten, ähnlichen Vergleichsparametersatzes, der für den ausgewählten Bogen bestimmt wird;
  • Einrichtungen zur Speicherung des dritten, ähnlichen Vergleichsparametersatzes, der an dem Endknoten in der ersten Parameterspeichereinrichtung für den Endknoten bestimmt ist;
  • Einrichtungen zur selektiven Übertragung der ersten Parameterspeicherinhalte zu der zweiten Parameterspeichereinrichtung für den Endknoten; und
  • Einrichtungen zur Erkennung von Gruppen von Eingabeblöcken, die die Parameterspeicherinhalte benutzen, die dem Endknoten zugeordnet sind, aufweist.
  • Die Erfindung schafft auch ein Verfahren, wie es in Anspruch 4 definiert ist.
  • Es ist ein Vorteil der Erfindung, daß sie ein effizientes Speichermanagement für einen Spracherkennungsspeicher während des Erkennungsverfahrens ermöglicht. Die Erfindung besitzt auch einen Vorteil bei der Zulassung eines Erkennungsgrammatikmodells, das Schleifen innerhalb des grammatikalischen Modells umfaßt.
  • Kurze Beschreibung der Zeichnungen
  • Die Merkmale der Erfindung, die als neu angesehen werden, sind insbesondere in den beigefügten Ansprüchen angegeben. Die Erfindung wird, zusammen mit ihren weiteren Aufgabenpunkten und Vorteilen, am besten unter Bezugnahme auf die nachfolgende Beschreibung verstanden, die in Verbindung mit den beigefügten Zeichnungen vorgenommen wird, wobei in den verschiedenen Figuren ähnliche Bezugszeichen dieselben Elemente bezeichnen und wobei:
  • Fig. 1 ein Blockdiagramm einer Hardware eines Spracherkennungssystems zeigt, das gemäß der vorliegenden Erfindung aufgebaut ist;
  • Fig. 2 eine graphische Darstellung eines grammatikalischen Erkennungsmodells zeigt, das einen Aspekt eines Spracherkennungssystems darstellt, das gemäß der vorliegenden Erfindung ausgeführt ist;
  • Fig. 3 eine graphische Darstellung eines grammatikalischen Sprachbaums zeigt, der eine Aufzählung aller möglichen Wege durch das Sprachgrammatikmodell der Fig. 1 aufzeigt;
  • Fig. 4 eine graphische Darstellung eines grammatikalischen Modells gemäß der vorliegenden Erfindung zeigt;
  • Fig. 5a, 5b und 5c ein Flußdiagramm zeigen, das einen Satz von Verfahrensschritten angibt, die ausgeführt werden können, um ein Erkennungsverfahren gemäß der vorliegenden Erfindung anzuwenden;
  • Fig. 6 ein Flußdiagramm zeigt, das genauer den Block 72 der Fig. 5c darstellt;
  • Fig. 7a, 7b, 7c und 7d ein Flußdiagramm zeigen, das genauer den Block 44 der Fig. 5a darstellt;
  • Fig. 8 eine Reihe von grammatikalischen Baumdiagrammen zeigt, die ein Beispiel einer "Rückspurung" gemäß der vorliegenden Erfindung darstellen;
  • Fig. 9 ein Baumdiagramm zeigt, das die Einstiege der Verknüpfungstabelle In einem Beispiel darstellt.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform
  • In Fig. 1 ist ein Blockschaltbild eines Spracherkennungssystems dargestellt, das dazu verwendet werden kann, die vorliegende Erfindung durchzuführen. Das Diagramm umfaßt einen Lehr- bzw. Musterspeicher 10, der eine vorab gespeicherte Grammatik enthält. Die Bildung einer typischen, vorab gespeicherten Grammatik ist in "A simplified, robust training procedure for speaker trained, isolated wort recognition systems", L.R. Rabiner und J.G. Wilpon, Journal Acoustic Society of Amer., 68(5), Nov. 1980, beschrieben. Ein akustischer Prozessor 12, der beispielsweise In "On the effects of varying filter bank parameters on isolated word recognition", B.A. Dautrich, L.R. Rabiner und T.B. Martin, IEEE Trans. on Acoustics, Speech and Signal Processing, Seiten 793-806, Vol. ASSP-31, August 1983; beschrieben ist, kann dazu verwendet werden, die eingegebene Sprache in eine Reihe von Sprachsegmenten zu konvertieren, die allgemein als Blöcke ("frames") bezeichnet werden. Jeder Block stellt ein Zeitsegment der Eingabesprache dar, gewöhnlich in form von LPC oder Filterbankdaten. Die Blöcke von dem akustischen Prozessor werden zu einer Erkennungseinrichtung 14 geführt.
  • Die Erkennungseinrichtung 14 greift auf Wortlehren aus der Grammatik, die In dem Lehrspeicher 10 vorab gespeichert ist, zurück und verarbeitet jeden Eingabe-Block von dem akustischen Prozessor 12 mit Segmenten der Wortlehren. Eine solche Technik ist vielen Spracherkennungssystemen eigen und kann als "Lehrverarbeitung" (Musterverarbeitung) bezeichnet werden.
  • Die Erkennungseinrichtung 14 greift bidrektional auf zwei Tabellen zurück, einen Speicher für eine Verknüpfungstabelle 16 und einen Speicher für eine Knotentabelle 19. Der Speicher für die Verknüpfungstabelle 16 wird zur Speicherung von fünf darauf bezogene Gruppierungen bzw. Arrays verwendet. Der Speicher für die Knotentabelle 19 wird zur Speicherung von Parametern verwendet, die sich auf ein Grammatikmodell beziehen. Diese Tabellen zusammen mit dem Grammatikmodell werden nachfolgend weiter besprochen.
  • Die Erkennungseinrichtung 14 kann durch Verwendung von zwei Prozessoren aufgebaut werden, und zwar einen Prozessor 18 und einen Verknüpfungs- und Spurrückführungsprozessor 20. Der Erkennungsprozessor 18 handhabt jede Lehranpassung, Grammatik, Steuerung und Kommunikation mit dem Verknüpfungs- und Rückspurprozessor 20. Der Verknüpfungs- und Rückspurprozessor 20 wird dazu verwendet, den Speicher für Verknüpfungstabellen 16 bereitzustellen. Diese Funktion umfaßt Aufzeichnungspotential-Lehranpassungen, während die fortlaufende Sprache eingegeben wird, indem darauf bezogene Informationen in dem Speicher für die Verknüpfungstabellen 16 gespeichert werden, wobei Raum in einem Speicher für Verknüpfungstabellen 16 für zusätzliche Informationen freigesetzt wird, und Erkennungsergebnisse ausgegeben werden, soweit die Eingabesprache identifiziert worden ist. Die funktionsweisen des Erkennungsprozessors 18 und des Verknüpfungs- und Rückspurprozessors 20 können in einem Prozessor kombiniert werden oder sie können voneinander getrennt werden, wie dies dargestellt ist, wodurch der Erkennungsprozessor 18 so ausgeführt werden kann, wie dies speziell in "An Algorithm for Connected Word Recognition", J. Bridle, M. Brown und R. Chamberlain, Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing, Seiten 899-902, 1982, beschrieben wird. Der Verknüpfungs- und Rückspurprozessor kann mit einem 8 Bit-Prozessor, wie beispielsweise der MC68091 von Motorola, ausgeführt werden, wenn er in Verbindung mit der Erfindung verwendet wird.
  • MODELL DER GRAMMATIK
  • Wie nun Fig. 2 zeigt, ist ein vereinfachtes Erkennungs-Grammatikmodell dargestellt, um alle möglichen Wortsequenzen darzustellen, die durch das System erkannt werden können. Das Modell wird als "vereinfacht" bezeichnet, da die Grammatik, die dargestellt ist, zum Zwecke der Darstellung gegenüber derjenigen, die typischerweise erforderlich sein würde, in hohem Grade vereinfacht ist. In Fig. 2 sind sechs mögliche Strings bzw. Wortfolgen dargestellt, wobei jede zwei Worte umfaßt (wie dies noch weitergehend in Verbindung mit Fig. 3 besprochen wird). In einem typischen Spracherkennungssystem kann das Grammatikmodell viel mehr mögliche Wortfolgen umfassen, von denen jede verschiedene Worte (Bögen) enthalten kann. Die Topologie des Grammatikmodells ist in einem allgemeinen Speicher als Netzwerk von miteinander verbundenen Bögen gespeichert, wobei jeder Bogen einen Ursprungsknoten und einen Endknoten besitzt. Jeder Bogen kann auch eine oder mehrere Markierungsspitzen besitzen, die zu den entsprechenden Lehren in dem Lehrspeicher bzw. Musterspeicher zielen.
  • MODELL DER GRAMMATIKPFADE
  • In Fig. 3 ist jede der sechs möglichen Wortfolgen aus Fig. 2 in einem Baumdiagramm aufgezeigt. Es sind drei mögliche erste Worte "eins", "zwei" und "drei" vorhanden. Jedes mögliche erste Wort kann von zwei möglichen zweiten Worten "vier" und "fünf" gefolgt werden. Während der Lehranpassung, d. h. während die Eingabeblöcke gegen vorab gespeicherte Wortlehren verglichen werden, erkennt der Erkennungsprozessor potentielle "Wortenden". Ein potentielles "Wortende" wird dann aufgefunden, wenn eine Sequenz von Eingangsblöcken potentiell zu einer Wortlehre paßt. Die identifizierte Wortlehre wird dem Baumdiagramm über eine Verknüpfungsinformation, die in der Verknüpfungstabelle gespeichert ist, die zuvor erwähnt wurde, angehängt und es wird ein akkumulierter Abstand, der eine Maßregel einer Ähnlichkeit zwischen der Abfolge der Eingabeblöcke, die verarbeitet werden, und der (den) Lehre(n) angibt, die hoch zu dem Knoten führen, erzeugt. Zum Beispiel wird, unter Vorgabe der Grammatik-Folgemöglichkeiten der Fig. 2 und 3, wenn eine Eingabeblocksequenz als potentielle Anpassung an das Wort "zwei" identifiziert ist, "zwei" zu dem Baumdiagramm von dem anfänglichen Knoten, dem Knoten 24 aus, hinzugefügt. Figur 3 stellt dar, daß, nachdem zusätzliche Blöcke eingegeben und verarbeitet sind, das Wort "eins" eine potentielle Passung geworden ist; demzufolge wird es als nächstes zu dem Baumdiagramm auch an dem Knoten 24 hinzugefügt. Als nächstes wird das Wort "drei" zu den Baumdiagrammen zugefügt, dann "vier" an dem Knoten 26 angehängt, dem "fünf", das an denselben Knoten angehängt wird, usw. folgt. Dies führt mit jeder potentiellen Anpassungslehre fort, die zu dem Baumdiagramm hinzugefügt wird, wie dies zu der jeweiligen Zelt identifiziert wird.
  • Der Ausdruck "Baumknoten" oder die Bezugnahme auf einen Knoten in dem Baumdiagramm wird wechselweise mit dem Ausdruck "Verknüpfungs(verknüpfte) Aufzeichnung" verwendet. Im allgemeinen ist eine verknüpfte Aufzeichnung ein Datensatz, der in einem Speicher gespeichert ist, der eine Verbindung in dem Baumdiagramm festlegt, einschließlich einer Identifizierung des bestimmten Baumknotens und der Beziehung zu dem früheren Knoten in der Baumtopologie.
  • Für jeden potentiellen Wortendblock wird eine neue Eingabe oder eine Verknüpfungsaufzeichnung zu der Verknüpfungstabelle zugefügt, die einer Verknüpfung in dem entsprechenden Baumdiagramm entspricht. Sehr oft wird eine Wortlehre, die typischerweise eine Sequenz von Blöcken (der Zustände) darstellt, in der Form eines Zustandsdiagramms dargestellt, die mehrfache, potentielle Wortenden als Eingabeblöcke haben, die verarbeitet werden. Zu jedem Zeitpunkt, zu dem ein potentielles Wortende ermittelt wird, wird eine entsprechende Lehre zu dem Baum als neue Verknüpfung hinzugefügt. Weiterhin besitzt jeder Zustand jeder Lehre einen akkumulierten Abstand, der durch den vorliegenden Eingabeblock aufgezeichnet wurde, und eine Verknüpfungs-Markierungsspitze zielt auf die Verknüpfungsaufzeichnung, die in der Verknüpfungstabelle entsprechend der Verknüpfung in dem Baum steht, von der aus die Dekodierung für die Lehre begann. Für eine weitere Information einer Lehranpassung wird auf "An Algorithm for Connected Word Recognition", J. Bridle, M. Brown und R. Chamberlain, Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing, Seiten 899-902, 1982, Bezug genommen.
  • Allerdings verursacht, wenn die Grammatik groß ist, ein fortlaufendes Anhängen von Lehren an den Baum Probleme. Zuerst verzögert sie die Erkennungsansprechzeit. Je länger die Eingabeblocksequenz ist, desto länger muß der Benutzer warten, bevor das System eine Erkennung vornimmt und auf die erkannten Wort reagiert.
  • Zweitens erfordert das fortlaufende Anhängen von Lehren umfangreichen Speicherbedarf zum Verknüpfen der Baumdiagramminformation. Für komplexe Grammatikmodellierungen und verschiedene, potentielle Wortendblöcke für jede potentielle Wortanpassung wachsen die Speichererfordernisse für die Verknüpfungstabelle (Baum) mit einer sehr schnellen Rate an. Falls die Anstiegsrate zu groß ist, können die Speichererfordernisse unpraktikabel werden.
  • Ein drittes Problem betrifft das momentane Modell der Grammatik. Bei fortlaufenden Sprachanwendungen ist es erwünscht und manchmal notwendig, eine Erkennung von undefiniert lang verbundenen Wortsequenzen zu ermöglichen. Eine Modellstruktur, die solche Sequenzen besitzt, wird als "infinites Längenmodell" bezeichnet. Wie vorstehend erwähnt ist, ist das Grammatikmodell in Fig. 2 etwas vereinfacht dargestellt. Es sollte für den Fachmann auf dem Gebiet der Spracherkennung deutlich werden, daß ein Versuch, eine infinite Längensequenz als ein Modell in einem Speicher darzustellen, nicht praktikabel ist. Weiterhin würde eine Berechnung bzw. Verarbeitung von Segmenten des Modells nicht in einer Realzeitbearbeitungsanwendung praktikabel sein. Aus diesen Gründen ist die vorliegende Erfindung dazu geeignet, ein infinites- Längenmodell mit minimalen Berechnungs- und Speicheranforderungen durchzuführen.
  • INFINITES LÄNGENMODELL
  • In Fig. 4 ist nun eine graphische Darstellung eines besonderen Grammatikmodells, das infinite Längensequenzen bearbeiten kann, indem ein minimaler Speicher und eine minimale Berechnungszeit verwendet werden, gezeigt. Es sollte durch den Fachmann verständlich werden, daß irgendeine vorgegebene Grammatik spezifische Modellkriterien erfordert. Demzufolge sollte deutlich werden, daß das Beispiel, das in Fig. 4 dargestellt ist, so modifiziert werden kann, daß es praktisch irgendeine erforderliche Grammatik anwenden kann.
  • Die Grammatik ermöglicht eine Erkennung von irgendwelchen Ziffern, 0-9, von denen irgendeine durch eine Ruheperiode separiert werden kann oder nicht. Bei diesem Modell wird eine Eingabe in das Erkennungsverfahren durch das Wort "Stop" beendet. Zum Beispiel könnte die Sequenz "0-1-1-9-8-0-4-Stop" mit irgendeinem der Striche, die optionell irgendeine Ruhepause darstellen, erkannt werden.
  • Zwei Aspekte dieses Typs des Grammatikmodells umfassen das Einsetzen eines Null-Bogens zwischen Knoten und das Einsetzen von Schleifen innerhalb des Grammatikmodells. Ein Null-Bogen ist im wesentlichen eine virtuelle Verbindung zwischen zwei Knoten. Sie ermöglicht Sequenzen oder Worte ohne Nachbildung der Bögen, die diese Worte in dem Grammatikmodell darstellen, zu erkennen. Zum Beispiel muß zuerst an dem Knoten 27, wenn das Wort "Stop" ohne Einsetzen des Null-Bogens erkannt werden mußte, zuerst eine Ruhepause ermittelt werden. Falls eine Ruhepause nicht erforderlich war, mit dem Wort "Stop" voranzugehen, würde das Grammatikmodell derart modifiziert werden, daß ein Bogen, der "Stop" darstellt, auch von dem Knoten 27 eliminiert werden müßte. Demzufolge vermeidet ein Null-Bogen, der besondere Bögen besitzt, die an dem Ursprungsknoten der Null-Bögen enden, daß sie von deren Ursprungsknoten zu dem Endknoten des Null-Bogens hin dupliziert werden.
  • Ein zweiter Vorteil dieses Typs einer Grammatikmodellrealisierung ist die Schleife selbst. Durch Zulassen einer Schleifenbildung können Replikate von Lehrdarstellungen in dem Grammatikmodell vermieden werden. Zum Beispiel würde, falls die Wortsequenz "0-0-0-1-3-9" zu erkennen wäre, das Fortschreiten durch das Wortmodell ohne Wiederholung von "0" dreimal in dem Modell erkannt werden.
  • Um diesen Typ des Wortmodells aufzunehmen, setzt die vorliegende Erfindung spezifische Parameter ein. Diese Parameter umfassen für jeden Knoten den momentan akkumulierten Abstand, die momentane Verknüpfung, von der der akkumulierte Abstand ausgeht, den zuvor akkumulierten Abstand und die frühere Verbindung, von der der frühere, akkumulierte Abstand ausgeht. Diese Parameter werden in einer Knotentabelle gespeichert, die wie folgt aufgebaut sein könnte. KNOTENTABELLE Grammatikmodell Knoten früher akkumulierter Abstand Verknüpfung momentan
  • Die Knotentabelle wird dazu verwendet, temporär Informationen für jeden Knoten zu speichern, während Eingabeblockbögen, die in den Knoten führen, bearbeitet werden. Ein Bogen, der in den Knoten führt, kann ein Null-Bogen oder ein Bogen sein, der eine zugeordnete Lehre besitzt.
  • Jedem Knoten werden zwei Sätze von Einstiegen in die Tabelle zugeordnet. Der erste Satz der Einstiege ist der zuvor akkumulierte Abstand und seine zugeordnete Verbindung. Diese Information wird zeitweilig gespeichert, um zu ermöglichen, daß sie für die Bestimmung des akkumulierten Abstands für den "besten" Bogen in den Knoten verwendet wird.
  • Der zweite Satz der Einstiege ist der momentan akkumulierte Abstand und dessen zugeordnete Verknüpfung. Falls einmal alle der Bögen, die in den Knoten führen, für einen vorgegebenen Eingabeblock bearbeitet worden sind, werden die früheren "Parameter" zu den "momentanen" Parametern kopiert, d. h. die Informationen von den linken zwei Spalten werden zu den rechten zwei Spalten kopiert, wodurch der beste, akkumulierte Abstand, der in den Knoten führt, und die Verbindung für den Bogen, von dem er ausgeht, erhalten werden. Auch werden die akkumulierten Abstände in der früheren Spalte inaktiv gesetzt. Die Knotentabelle wird weiterhin in Verbindung mit dem Erkennungsflußdiagramm in den Fig. 5a und 5b besprochen.
  • DIE VERKNÜPFUNGSTABELLE
  • Die Verknüpfungstabelle stellt alle potentiellen Wortsequenzen unter der Annahme als Anpassung in der Form eines Baumnetzwerks ähnlich der Fig. 2 dar. Die Wortsequenzen sind in Wirklichkeit verkettete Lehren, die potentielle Wortenden besitzen, die während der Lehranpassung ermittelt werden. Eine Einrichtung des Netzwerks in dieser Ausführung ermöglicht eine Analyse von diesen Verbindungen, die eindeutig Teil der gesamten, potentiellen Wortsequenzen sind. Dieses Analyseverfahren wird als Spurrückführung bezeichnet. Die Spurrückführung liefert auch, geeignet eingesetzt, ein effizientes Verfahren zur Freigabe von Verknüpfungsaufzeichnungen, die eindeutig nicht länger Teil irgendeiner Abfolge, die betrachtet wird, sind.
  • Jede Verknüpfung oder Knotenbaumverbindung des Baumdiagramms erfordert, daß verschiedene Typen einer Information gespeichert werden. Diese Information wird in L-ACT, L-FWRD, L-BACK, L-WORD und L-PTR-Gruppierungen bzw. Arrays in dem Speicher für die Verknüpfungstabelle 16 der Fig. 1 gespeichert. In dieser Ausführungsform ist jede Gruppierung 255 Byte lang und ist ein Byte nach einem 256 Byte langen Grenzbereich positioniert, um einen effizienten Zugang zu ermöglichen. Die entsprechenden Elemente für jedes Feld bilden eine "Verknüpfungsaufzeichnung". Die Verknüpfungsaufzeichnungen werden in zwei verknüpften Listen verkettet. Eine Liste enthält freie Verknüpfungsaufzeichnungen, d. h. leere Aufzeichnungsplätze, die für zusätzliche Verknüpfungen zur Verfügung steht. Die zweite Liste ist die eingerichtete Liste und sie enthält Aufzeichnungen für Verknüpfungen, die momentan verwendet werden. Diese Listen werden zusammen durch die L-PTR-Gruppierung verkettet, wobei ein Einstieg in das L-PTR die nächste Verbindung in der Tabelle anzeigt, von der die eingerichtete Liste oder freie Liste beginnt, wobei jede Aufzeichnung ein Byte von jeder der fünf Gruppierungen enthält. Zum Beispiel würde, wenn für eine gegebene Verknüpfungsaufzeichnung in der eingerichteten Liste das entsprechende Byte der L-PTR-Gruppierung die binäre Darstellung der Zahl "zwei" enthält, die nächste Aufzeichnung in der eingerichteten Liste in den zweiten Bytes aller fünf Gruppierungen vorgefunden werden. Ein "Null"-Einstieg in die L-PTR-Gruppierung legt das Ende der verknüpften Liste fest.
  • L-BACK und L-WORD-Gruppierungen enthalten die momentane Verknüpfungsinformation. L-BACK enthält die Markierungsspitze zu der früheren Verbindung in dem Dekodierweg, d. h. den früheren Knoten in dem Baumdiagramm, während L-WORD ein Symbol enthält, das-das Wort darstellt, das dekodiert Ist, das an der vorliegenden Verknüpfung endet. Zum Beispiel würde in Fig. 3 nach Anhängen des Worts "vier" an dem Baumknoten 26 L-WORD ein 8-Bit-Symbol enthalten, das das Wort "vier" darstellt, und L-BACK würde eine Markierungsspitze enthalten, die auf die Verknüpfungsaufzeichnung zielt, die dem Baumknoten 26 entspricht. Die äußeren zwei Felder, L-ACT und L-FWRD, werden dazu verwendet, über die Dekodierwege (potentielle Wortsequenzen) "zurückzuspuren". L-ACT wird dazu verwendet, Dekodierwege noch unter der Annahme einer potentiellen Anpassung anzugeben, während L-FWRD dazu verwendet wird, auf den nachfolgenden Knoten in dem Baumdiagramm zu zielen, die Umkehrung von L-BACK. Danach werden diese Verknüpfungsaufzeichnungen zeichenmäßig markiert, daß sie in Betracht gezogen werden, daß sie Teil eines potentiellen, erkannten Pfads (aktiver Pfad) als aktive Verknüpfungsaufzeichnungen bezeichnet werden.
  • Die Verbindungsaufzeichnungen liefern eine Rückspurinformation, so daß der Bogen, der durch das Wortmodell verwendet ist, um diesen Zustand zu erreichen, bestimmt werden kann. Die Rückspurung ermöglicht auch, daß der Baum als nicht brauchbare Information abgeschnitten wird. Dies ist notwendig, um zu verhindern, daß Informationen übermäßig in dem Speicher angesammelt werden. Die Rückspurung wird auch dazu verwendet, Worte auszugeben, die eindeutig erkannt werden, d. h. im allgemeinen sämtliche aktiven Pfade. Das L-BACK steigt in die Verknüpfungstabelle an früheren Einstiegen in der Tabelle ein, die früheren, verbundenen Knoten in dem Baumdiagramm entsprechen. Demzufolge bezieht sich die Rückspurung auf das Verfahren des Zurückspurens durch das Baumdiagramm zu einem Punkt oder einem Baumknoten, wo alle Wege zusammentreffen. Das Konzept des Spurens zurück zu einer Stelle, wo alle Pfade zusammentreffen, ist für den Fachmann ausreichend bekannt, wobei für eine allgemeine Beschreibung einer "Rückspurung" auf "Partial Traceback and Dynamic Programming" Bezug genommen wird.
  • Die vorstehend angegebenen Gruppierungen sind nachfolgend für eine Bezugnahme während der Besprechung der nachfolgenden Figuren aufgelistet.
  • L-PTR: 255 Byte, wobei jedes Byte für eine Markierungsspitze zugänglich ist, die die frühere Verknüpfungsaufzeichnung anzeigt, die an das Baumdiagramm (Tabelle) als eine Funktion der Zeit für die eingerichtete Liste angehängt wird. Sie wird auch als kettenfreie Verknüpfungsaufzeichnung in der freien Liste verwendet.
  • L-BACK: 255 Byte, wobei jedes Byte für eine Markierungsspitze zugänglich ist, die eine frühere Verknüpfungsaufzeichnung in dem Baumdiagramm anzeigt.
  • L-WORD: 255 Byte, wobei jedes Byte für ein Symbol zugänglich ist, das das potentiell erkannte Wort entsprechend der vorliegenden Verknüpfungsaufzeichnung anzeigt.
  • L-ACT: 255 Byte, wobei jedes Byte zum Anzeigen zugänglich ist, ob oder ob nicht die vorliegende Verknüpfungsaufzeichnung aktiv ist (während der Rückspurung verwendet).
  • L-FWRD: 255 Byte, wobei jedes Byte für eine Markierungsspitze zugänglich Ist, die die darauffolgende, gültige Verknüpfungsaufzeichnung in dem Baumdiagramm angibt (während der Rückspurung verwendet).
  • Zusätzlich zu den vorstehenden Anordnungen werden fünf andere Markierungsspitzen verwendet. Diese sind:
  • HEAD: eine Ein-Byte-Markierungsspitze zum Anzeigen der ersten, d. h. der allerletzten, hinzugefügten Verknüpfungsaufzeichnung in der eingerichteten Liste, wie sie durch die L-PTR-Anordnung verkettet ist.
  • FREE: eine Ein-Byte-Markierungsspitze zum Anzeigen der ersten Verknüpfungsaufzeichnung der freien Liste, wie sie durch die L-PTR-Gruppierung verkettet ist.
  • PTR: eine Eln-Byte-Markierungsspitze unter Bezugnahme darauf, daß der momentane Baumknoten bearbeitet wird.
  • TMP1 und TMP2: jedes ist eine Ein-Byte temporäre Markierungsspitze, die in den Erkennungs-Flußdiagrammen verwendet wird.
  • Strukturell können, unter der Annahme einer Tabelle mit nur 10 Einstiegen in die eingerichtete Liste, diese Gruppierungen wie folgt eingerichtet werden: Erkannt L-BACK L-WORD L-ACT vier eins drei sechs neun null
  • Die Einstiege der obigen Tabelle sind in einem Baumdiagramm in Fig. 9 dargestellt. Es sollte angemerkt werden, daß HEAD-Punkte derart zielen, um # 7 aufzuzeichnen, und die "0" in dem L-PTR-Einstieg zum Aufzeichnen von # 3 die letzte Aufzeichnung in der Liste angibt. FREE ist nicht dargestellt.
  • L-PTR ermöglicht die Aufzeichnungen in der aufgestellten Liste, in die durch einfaches Entfernen der Aufzeichnung von der freien Liste eingestiegen wird und durch Zuordnung der L-PTR-Einstiegs zu dem Punkt der HEAD-Aufzeichnung und dem Aktualisieren von HEAD und FREE. Wenn eine Aufzeichnung aus der eingerichteten Liste der Tabelle während der Rückspurung entfernt wird, wird diese Aufzeichnung durch Reorganisierung der Tabelle durch Verknüpfung des Aufzeichnungseinstiegs mit der freien Liste und Verknüpfung über die entfernte Aufzeichnung für die eingerichtete Liste unter Verwendung der L-PTR-Einstiege verfügbar. Die Einstiege für den L-ACT und den L-FWRD werden nur während der Rückspurung verwendet, und im anderen Fall immer auf Null zurückgesetzt.
  • DAS ERKENNUNGSFLUßDIAGRAMM
  • In den Fig. 5a bis 5c ist ein Erkennungsflußdiagramm gemäß der vorliegenden Erfindung dargestellt. Das Flußdiagramm der Fig. 5a beginnt an einem Block 30 durch Setzen der Verknüpfungstabelle und deren zugeordnete Markierungsspitzen. Das Zurücksetzverfahren schließt das Setzen jedes Bytes von L-FRWD und L-ACT gleich 0 und das Setzen der HEAD-Markierungsspitzen gleich 1, um den Beginn der eingerichteten Liste anzuzeigen, und das Setzen von L-PTR(1) und L-PTR(255) gleich 0 ein, um das Ende der eingerichteten und freien Liste jeweils anzuzeigen. Auch ist der Lehr- bzw. Muster-Zustandsspeicher, der typischerweise in dem allgemeinen Speicher angeordnet ist, inaktiv gesetzt. Demgemäß weist die erste Aufzeichnung die eingerichtete Liste auf und die Aufzeichnungen 2 bis 255 sind verkettet, indem L-PTR-Einstiege verwendet werden, um die freie Liste zu bilden, wo die HEAD-Markierungsspitzen zu dem Anfang der eingerichteten Liste und die FREE-Markierungsspitzen zu dem Beginn der freien Liste führen (Verbindungsaufzeichnung #2).
  • In dem Block 32 der Fig. 5a wird ein Erkennungsgrammatikmodell durch Initialisierung der Knotentabelle initialisiert. Dies kann durch willkürliche Zuordnung des früheren, akkumulierten Abstands des anfänglichen Knotens einer niedrigen, akkumulierten Abstandsmessung erfolgen, um den Startpunkt in der Grammatik anzugeben. Die frühere Verknüpfungs-Markierungsspitze für den anfänglichen Knoten wird auf 1 gesetzt, und zwar entsprechend dem ersten Einstieg in der Verknüpfungstabelle. Alle anderen Knoten in dem Grammatikmodell werden so initialisiert, daß sie inaktiv sind. Ein Grammatikknoten kann inaktiv- gesetzt werden, indem die früheren, akkumulierten Abstände in der Knotentabelle gleich unendlich eingestellt werden, wodurch angegeben wird, daß keine Ähnlichkeit an irgendeinem anderen Knoten zu Beginn der Verarbeitung vorhanden ist.
  • In dem Block 34 wird ein Rückspurzähler auf 10 initialisiert. Der Rückspurzähler wird dazu verwendet, um periodisch anzuzeigen, daß das Rückspurverfahren durchgeführt werden sollte. In dieser Ausführungsform wird die Rückspurung nach jedem 10. Eingabeblock, der verarbeitet wird, durchgeführt.
  • In dem Block 36 wird der nächste Eingabeblock dem System für eine Lehranpassung eingegeben, wie dies zuvor erwähnt ist. Die verbleibenden Verfahrensschritte dieses Flußdiagramms beziehen sich auf die Verarbeitung des vorliegenden Eingabeblocks.
  • Der Rückspurzähler wird in Block 38 schrittweise herabgesetzt, um anzuzeigen, daß ein Block eingegeben wurde.
  • An dem Block 39 wird die Knotentabelle vor der Verarbeitung des Eingabeblocks aktualisiert. Die früheren Knotenparameter ("Parameter" bezieht sich auf den akkumulierten Abstand und die Verknüpfungen, die angeben, von wo aus sie in ihrem Ursprung ausgehen) werden zu den momentanen Knotenparametern in der Knotentabelle kopiert. Auch werden alle früheren, akkumulierten Abstände inaktiv gesetzt.
  • An dem Block 40 wird ein Test durchgeführt um zu bestimmen, ob alle Knoten des Grammatikmodell verarbeitet worden sind oder nicht. Mit anderen Worten, ob oder ob nicht der Eingabeblock für das gesamte Grammatikmodell verarbeitet worden ist. Wenn alle Knoten des Grammatikmodells bearbeitet worden sind, geht der Ablauf zu dem Block 42 über, um zu bestimmen, wann der Rückspurzähler anzeigt, daß eine Rückspurung bei diesem Block ausgeführt werden sollte. Falls dies vorliegt, wird eine Rückspurung durch Aufruf des Rückspur-Unterprogramms 44 durchgeführt, das nachfolgend in Verbindung mit den Fig. 7a bis 7d besprochen wird. Der Rückspurung folgt, nachdem der Rückspurzähler zurückgesetzt ist, Block 46, bevor der nächste Eingabeblock am Block 36 bearbeitet wird.
  • Wenn alle Knoten des Grammatikmodells nicht verarbeitet worden sind, geht der Ablauf von dem Block 40 der Fig. 5a zu dem Block 50 der Fig. 5b über. An dem Block 50 geht die Verarbeitung des Erkennungs-Grammatikmodells zu dem nächsten Knoten über. Falls für diesen Block keine Knoten bearbeitet worden sind, kann "der nächste Knoten" irgendein Knoten sein, der nicht der Endknoten für einen Null-Bogen ist. Insbesondere die Ordnung der Knoten zur Bearbeitung muß so vorgenommen werden, daß ein Knoten, der einen Ursprung für einen Null-Bogen bildet, vor dem Knoten bearbeitet wird, der der Endknoten für den Null-Bogen ist. Dies erfolgt aus dem Grund, um sicherzustellen, daß knotenakkumulierte Abstände und Verknüpfungen für die Ursprungsbildung von Knoten von Lehren aktualisiert worden sind, bevor solche Lehren verarbeitet werden.
  • In dem Block 52 wird ein Test durchgeführt, um zu bestimmen, ob alle Lehren, die an diesem Knoten enden, bearbeitet worden sind, oder nicht. Später wird erkannt werden, daß jede Lehre, die unmittelbar jedem Knoten des Grammatikmodells vorausgeht, verarbeitet wird, bevor zu einem anderen Knoten übergegangen wird. Wenn alle Lehren, die an diesem Knoten enden, bearbeitet worden sind, geht der Ablauf zu dem Block 68 der Figur Sc über, was nachfolgend besprochen wird. Falls alle Lehren bis jetzt noch nicht bearbeitet worden sind, geht der Ablauf zu dem Block 54 über, um zu bestimmen, ob der nächste Bogen, um ihn an diesem Knoten zu bearbeiten, ein Null-Bogen ist. Wenn der nächste Bogen ein Null-Bogen ist, geht der Ablauf zu dem Block 55 über.
  • An dem Block 55 werden der akkumulierte Abstand und die Verknüpfung, die in den Knoten führt, auf den früheren, akkumulierten Abstand und die Verknüpfung für den Ursprungsknoten des Null-Bogens gesetzt, wie dies in der Knotentabelle gespeichert ist.
  • An dieser Stelle kann es hilfreich sein, die Verarbeitung des Erkennungs-Grammatikmodells, die bis jetzt durch das Erkennungs-Flußdiagramm angegeben ist, zusammenzufassen. Wie wiederum Fig. 2 zeigt, wird der Anfangsknoten 22 des Grammatikmodells in einen aktiven Zustand gesetzt und der entsprechende Verknüpfungstabelleneinstieg wird initialisiert, um eine Referenz anzugeben, von der alle potentiellen Grammatikpfade (Baumverzweigungen) ausgehen. Für jeden Eingabeblock, der verarbeitet wird, wird das Grammatikmodell über einen Knoten zu einem Zeitpunkt von dem Anfangsknoten zu dem Endknoten fortgeschrieben. Weiterhin wird für jeden Knoten des Grammatikmodells jede Lehre, die an diesem Knoten endet, mit einer Lehre zu einem Zeitpunkt bearbeitet, wie noch besprochen wird. Demgemäß wird für jeden Eingabeblock jeder Knoten bearbeitet und für jeden Knoten wird jede Lehre, die an dem Knoten endet, bearbeitet. Unabhängig davon, ob eine Rückspurung erforderlich ist oder nicht, wie dies in Block 56 angedeutet ist, wird die Lehre für den nächsten, vorliegenden Bogen, entweder der Block 58 oder der Block 60, bearbeitet. Eine Lehre, die an irgendeinen Block paßt, hat eine Aktualisierung der akkumulierten Abstände und der Verbindungs-Markierungsspitzen für alle die Zustände der Lehre zur folge, die auf dem vorliegenden Eingabeblock basieren, und zwar die Lehre und der momentane, akkumulierte Abstand und die Verknüpfungsspitze für die Bögen, die von den Knoten in der Knotentabelle ausgehen. Infolge einer Bearbeitung eines Blocks wird eine Zeitverzögerung von der Zelt des momentanen, akkumulierten Abstands und der Verknüpfung (früherer Block) berechnet; und es wird die Zeit, die gebraucht wird (momentaner Block), berechnet, wobei diese Information durch die Verarbeitung der Lehre verwendet wird, als wenn sie für den früheren Block verarbeitet worden wäre. Anders ausgedrückt wird die Verarbeitung der Lehre die Verarbeitung des früheren Blocks abschließen, indem der momentane, akkumulierte Abstand und die momentane Verknüpfung verwendet werden, bevor eine Verarbeitung der Lehre für den momentanen Block vorgenommen wird. Falls ein potentielles Wortende für diese Lehre für den vorliegenden Block vorhanden ist, wird ein akkumulierter Abstand und eine Verknüpfungs-Markierungsspitze entsprechend dem potentiellen Wortende erzeugt. Ein "Algorithmus für eine verbundene Worterkennung".
  • Wenn der Ablauf von dem Block 56 zu dem Block 60 übergeht, wodurch angezeigt wird, daß die Rückspurung an diesem Rahmen. Bearbeitet wird, und zwar zusätzlich zu dem Lehrverfahren, das vorstehend beschrieben ist, werden sämtliche L-ACT-Einstiege, die den Verknüpfungsaufzeichnungen entsprechen, auf die durch die Verknüpfungs-Markierungsspitzen gezeigt wird, für jeden aktiven Zustand in der Lehre nicht auf Null gesetzt. Die "aktiven" Lehren-Zustände sind diejenigen, die einen endlichen, akkumulierten Abstand besitzen.
  • Als nächstes geht das Verfahren zu dem Block 62 über, wo ein Test durchgeführt wird, um zu bestimmen, ob oder ob nicht der akkumulierte Abstand, der der momentanen Lehre zugeordnet ist, oder der Bogen, falls ein Null- Bogen vorliegt, besser als der momentane, akkumulierte Abstand ist, der der besten, zuvor bearbeiteten Lehre (Bogen) entspricht, die an dem Knoten für diesen Block endet (dies wird unendlich sein, wenn dies die erste Lehre ist, die für diesen Knoten bearbeitet ist). Das Ergebnis dieses Tests ist nur dann richtig, wenn die Lehren-Anpassung des vorliegenden Eingabeblocks ein potentielles Wortende für die Wort-Lehre vorschlägt. Wie zuvor angemerkt ist, zeigt ein potentielles Wortende an, daß eine Abfolge von Eingabeblöcken einer Wortlehre entsprechen kann oder zu dieser paßt, die zuvor in dem Lehren-Speicher gespeichert ist.
  • Falls die Lehre nicht ein potentielles Wortende-für den vorliegenden Eingabeblock besitzt, wird dessen zugeordneter, akkumulierter Abstand unendlich werden.
  • Der Ablauf geht zurück zu dem Block 52, wenn die zuletzt bearbeitete Lehre (Bogen) nicht einen akkumulierten Abstand ergeben hat, der besser als der momentan akkumulierte Abstand ist, der für diesen Knoten gespeichert ist, wobei zusätzliche Lehren, die an dem Knoten enden, bearbeitet werden.
  • Falls der akkumulierte Abstand für den zuletzt bearbeiteten Bogen als ein solcher herausgefunden wurde, daß er der beste von den jetzt Bearbeiteten für den Knoten ist, geht der Ablauf zu dem Block 64 über, um diese Information aufzuzeichnen. In dem Block 64 wird der akkumulierte Abstand und die Verbindungs-Markierungsspitze entsprechend dem vorstehend bearbeiteten Bogen als momentaner, akkumulierter Abstand und die momentane Verknüpfung für den Knoten für das Grammatik-Modell in der Knotentabelle aufgezeichnet. Zusätzlich wird die Wortzahl oder das -zeichen, das die Lehre darstellt, aufgezeichnet. Die Wortzahl wird für eine darauffolgende Ausgabe des Worts aufgezeichnet, falls später bestimmt wird, daß es erkannt worden ist. Nach dem Block 64 geht der Ablauf zu dem Block 52 über, wie dies vorstehend beschrieben ist.
  • Wenn an dem Block 54 angegeben wird, daß alle Bögen an den Knotenenden bearbeitet worden sind, geht der Ablauf zu dem Block 68 der Fig. 5c über. In Fig. 5c bestimmen die Blöcke 68 bis 74, ob oder ob nicht eine Verknüpfungsaufzeichnung zu dem Baum hinzugefügt werden sollte, und, falls dies der Fall ist, wird die Verknüpfungsaufzeichnung zu dem Baum durch die Verknüpfungs-Reihenfolgen hinzugefügt.
  • In dem Block 68 wird ein Test durchgeführt, um zu bestimmen, wenn der Knoten des Grammatik-Modells aktiv ist. Die einzige Art und Weise, in der der Knoten aktiv werden könnte, ist diejenige, wenn mindestens eine Wortlehre, die für diesen Knoten bearbeitet ist, ein potentielles Wortende für den vorliegenden Eingabeblock besitzt. Falls der Knoten inaktiv ist, geht das Verfahren zu dem Block 40 der Fig. 5a über, um einen anderen Knoten aufzusuchen, um ihn für den vorliegenden Rahmen zu bearbeiten. Andernfalls geht der Ablauf zu dem Block 70 über.
  • In dem Block 70 wird ein Test durchgeführt, um zu bestimmen, ob oder ob nicht der beste Bogen, der an dem Knoten endet, eine entsprechende Wortlehre besitzt. Unter bestimmten Umständen kann es ein anderer Typ einer Lehre gewesen sein, wie beispielsweise eine Ruhe-Lehre, oder sie kann ein Null-Bogen gewesen sein, wobei in diesem Fall der Ablauf zu dem Block 40 der Fig. 5a übergehen würde. Ruhe-Lehren werden nicht zu dem Baum hinzugefügt, da es typischerweise nicht notwendig ist, Pausen, wenn sie erkannt worden sind, auszugeben. Falls der beste Bogen, der an diesem Knoten endet, eine Wort-Lehre darstellt, wird das VERKNUPFÜNGS-Unterprogramm, entsprechend Fig. 6, durchgeführt, um eine Verknüpfungsaufzeichnung zu dem Baumdiagramm hinzuzufügen. Parameter werden zu dem VERKNÜP- FUNGS-Unterprogramm hinzugefügt, die die Verknüpfungs-Markierungsspitze entsprechend der Verknüpfungsaufzeichnung für die Lehre und die Wortzahl, die die Lehre darstellt, angeben.
  • Nachdem die Verknüpfungs-Aufzeichnung hinzugefügt ist, wie dies nachfolgend besprochen wird, wird eine neue Verknüpfungs-Markierungsspitze von der VERKNÜPFUNG zurückgeführt. In dem Block 74 wird die momentane Verknüpfungs-Markierungsspitze für den Knoten des Grammatikmodells auf die Verknüpfungs-Markierungsspitze gesetzt, die von der VERKNÜPFUNG zurückführt.
  • Auf den Block 74 folgend geht der Ablauf zu dem Block 40 der Fig. 5a über, um zu prüfen, ob alle Knoten des Grammatikbaums für den vorliegenden Eingabeblock bearbeitet worden sind.
  • HINZUFÜGEN EINER VERKNÜPFUNG ZU DEM BAUM
  • Wie die Fig. 6 zeigt, fügt, wie zuvor erwähnt ist, dieses Unterprogramm eine Verknüpfungs-Aufzeichnung zu dem Baumdiagramm hinzu, wie dies durch die Verknüpfungs-Anordnungsfolgen definiert ist. Die Parameter, die zu dem Unterprogramm zugeführt werden, sind die Wortzahl und die Verknüpfungs-Markierungsspitze entsprechend den Knoten des Baums, von der aus sie hinzugefügt werden soll.
  • In dem Block 78 wird ein Test durchgeführt, um zu bestimmen, ob oder ob nicht irgendwelche freien Verknüpfungs-Aufzeichnungen vorhanden sind. Dies wird durch Vergleich von FREE gegen 0 durchgeführt. Falls FREE gleich 0 ist, sind keine weiteren, freien Verknüpfungs-Aufzeichnungen vorhanden. Wie vorstehend diskutiert ist, werden die Aufzeichnungen in den Verknüpfungs-Anordnungsfolgen miteinander durch eine L-PTR-Anordnungsfolge verkettet, die freie Verknüpfungs-Aufzeichnungen und eingerichtete Verknüpfungs-Aufzeichnungen aufweist. Freie Verknüpfungs-Aufzeichnungen ermöglichen zusätzliche Verknüpfungs-Aufzeichnungen, die zu dem Baumdiagramm hinzugefügt werden sollen. Demgemäß werden, wenn dort keine freien Verknüpfungs-Aufzeichnungen vorhanden sind, sämtliche der Verknüpfungs-Aufzeichnungen verwendet, und der Ablauf geht zu dem Block 80 über, wo ein Fehler berichtet wird, und das System wird zurückgesetzt. Es sollte angemerkt werden, daß dieser Verfahrensschritt in Block 80 nur als ein Schutz hinsichtlich außergewöhnlicher Zustände verwendet wird, die zu einem Überlaufen der Verknüpfungs-Tabelle führen könnten. Unter normalen Zuständen wird die Erfindung das Nichtvorhandensein von freien Verknüpfungs-Aufzeichnungen durch Verwendung einer Verknüpfungs-Tabelle einer ausreichenden Länge verhindern.
  • Bei gegebener einer oder mehreren freien Verknüpfungs-Aufzeichnungen geht der Ablauf zu dem Block 82 über, wo die nächste verfügbare Verknüpfungs- Aufzeichnung von der freien Liste entfernt wird und an der Spitze der eingerichteten Liste durch Aktualisierung der HEAD- und FREE-Markierungsspitzen eingesetzt. FREE wird auf einen Punkt zu dem Index der nächsten, freien Aufzeichnung gesetzt, und HEAD wird auf einen Punkt zu der Verknüpfungs-Aufzeichnung, die gerade hinzugefügt ist, gesetzt. L-PTR der neuen "HEAD"-Verknüpfungs-Aufzeichnung wird auf einen Punkt zu der früheren "HEAD"-Verknüpfungs-Aufzeichnung gesetzt, um die neue Aufzeichnung an die eingerichtete Liste anzuketten.
  • In dem Block 86 wird, da die HEAD-Punkte zu der Verknüpfungs-Aufzeichnung, die gerade in der eingerichteten Liste hinzugefügt werden, die Wortzahl, die zu diesem Unterprogramm geführt hat, für die neue Aufzeichnung in der L-WORD-Gruppierung aufgezeichnet. Auch wird die Verknüpfungs-Markierungsspitze, die zu dem Unterprogramm zugeführt wurde, für die Verknüpfungs-Aufzeichnung in der L-BACK-Gruppierung aufgezeichnet.
  • An dem Block 88 wird ein Test durchgeführt, ob oder ob nicht eine Rückspurung für den vorliegenden Eingabeblock erforderlich ist. Falls dies der Fall ist, geht der Ablauf zu dem Block 90 über, wo eine neue, hinzugefügte Verknüpfungs-Aufzeichnung als aktiv gekennzeichnet wird. Dies wird durch Setzen der L-ACT-Gruppierung für die Aufzeichnung gleich eins vorgenommen. Falls die Rückspurung für den vorliegenden Eingabeblock nicht erforderlich ist, endet das Unterprogramm, und der Ablauf geht zu dem Block 74 der Fig. 5c zurück.
  • RÜCKSPURUNG DURCH DEN BAUM
  • In den Fig. 7a bis 7d ist das Rückspur-Unterprogramm, d. h. der Block 44 der Fig. 5a, im Detail dargestellt. Das Rückspur-Unterprogramm sucht das Baumdiagramm nach Worten durch, die als potentielle Anpassungen identifiziert worden sind, und bestimmt, ob oder ob nicht dort irgendeine Zweideutigkeit hinsichtlich der Einzigartigkeit der Anpassung vorliegt. Diese Worte, die als einzigartig identifiziert worden sind, werden von dem Erkennungssystem als erkannte Worte ausgegeben. Weiterhin entfernt das Rückspur-Unterprogramm alle toten Verknüpfungs-Aufzeichnungen zu der freien Liste hin, d. h. solche Aufzeichnungen, die nicht länger unter der Betrachtung stehen, daß sie potentielle Anpassungen sind, um den Speicher für zukünftige Verbindungs-Aufzeichnungen verfügbar zu gestalten. Bevor in die RÜCKSPURUNG eingetreten wird, wird L-ACT eingestellt oder zeichenmäßig gesetzt, und zwar für alle aktiven Verbindungs-Aufzeichnungen, wie dies vorstehend beschrieben ist. Mit dem Start der Rückspurung stellen die aktiven Verknüpfungs-Aufzeichnungen die Enden aller Pfade durch den Baum dar, die noch unter der Betrachtung stehen. Das Basiskonzept der Rückspurung ist, eine "Rückspurung" durch den Baum von den Enden aller aktiven Pfade (anfänglich durch eine L-ACT-Gruppierung markiert) durchzuführen, um herauszufinden, wo sich alle aktiven Pfaden vereinigen. Der Teil des Baums, der allen aktiven Wegen gemeinsam ist, stellt den nicht zweideutigen Teil-Durchgangsweg dar, und diese Worte entsprechend diesem unzweideutigen Teil-Durchgangspfad können ausgegeben werden, wenn sie erkannt werden. Während der Rückspurung wird die L-FWRD-Gruppierung dazu verwendet, die Teil-Pfade in der nach vorne gerichteten Richtung (zu den Enden des Baums hin) zu verketten. Wenn diese Teil-Durchgangspfade aufgebaut werden, wird der Basisknoten für jeden Teil-Durchgangspfad über die L-ACT-Gruppierung aktiv gesetzt. Wenn ein Versuch unternommen wird, einen Teil-Durchgangspfad (unter Verwendung einer L-BACK -Information) von einem momentanen Knoten zu einem früheren Knoten aus zu dem, der schon aktiv gesetzt wurde, zu führen, geht mehr als ein möglicher Pfad von diesem früheren Knoten aus und die Teil-Pfade von beiden Knoten werden ausgelöscht (nach vorne gerichtete Markierungsspitzen-Ketten (L-FWRD) werden auf 0 zurückgesetzt). Alle Knoten, die als aktiv markiert sind, werden auf diese Weise bearbeitet. Die Reihenfolge der Knotenverarbeitung erfolgt in der umgekehrten Reihenfolge der Zeitsequenz, mit der die Verknüpfungs-Aufzeichnungen zu den Verknüpfungs-Tabellen hinzugefügt werden. Diese Ordnungsbildung ist der Struktur der eingerichteten Liste eigen. Der letzte Knoten, der verarbeitet werden soll, wird der Fußpunkt des Baums sein. An diesem Punkt wird die nach vorne gerichtete Kette (Teilpfad), die von den Knoten ausgeht, den nicht zweideutigen Teil-Durchgangspfad darstellen, und die entsprechenden, erkannten Wörter werden ausgegeben werden. Das Rückspur-Verfahren "reinigt sich" danach selbst dadurch, daß mit dem Abschluß die L-FWRD und L-ACT -Gruppierung auf Null zurückgesetzt worden ist. Weiterhin werden alle Verknüpfungs-Aufzeichnungen, die sich nicht auf einem aktiven Pfad befinden, ebenso wie die Verknüpfungs-Aufzeichnungen auf dem eindeutigen Teil-Pfad, die ausgegeben worden sind, zu der freien Liste zurückgeführt werden.
  • Bevor das Rückspur-Unterprogramm im Detail beschrieben wird, dürfte es hilfreich sein, schrittweise durch ein dargestelltes Beispiel zu gehen. In Fig. 8 ist ein solches Beispiel als eine Reihe von Baumdiagrammen A-I dargestellt.
  • In dem Diagramm A ist der Baum vor der Rückspurung, aktive Verknüpfungs-Aufzeichnungen, d. h. solche Verknüpfungen, die aktive Wort-Verknüpfungen besitzen, die von denjenigen, die nach rechts der Verknüpfung mit einer unterbrochenen Linie markiert sind, ausgehen, dargestellt. Der erste Verfahrensschritt der Zurückspurung ist derjenige, die allerletzte, aktive Verknüpfungs-Aufzeichnung zu bestimmen, wenn sie rechtzeitig hinzugefügt ist, und zwar in dem Fall des Knotens, der bei 25 markiert ist. Ein Test wird durchgeführt, um zu bestimmen, ob ein aktiver Knoten unmittelbar diesem Knoten in dem Baum vorausgehend vorliegt. Falls dies der Fall ist, liegt eine Zweideutigkeit vor, ob in diesem Fall eine Rückführung über den Knoten 25 oder den Knoten 21 zu dem Knoten 21 erfolgt ist. Wenn eine Zweideutigkeit auftritt, werden die nach vorne gerichteten Markierungsspitzen für die Knoten der Zweideutigkeit deren verketteter, nach vorne gerichteter Markierungsspitzen entfernt, falls sie bestehen. Dies wird durch Einsetzen einer Null in der L-FWRD-Gruppierung für jede aufeinanderfolgende Verknüpfungs-Aufzeichnung durchgeführt. Unter diesem Umstand besitzt ein Knoten eine nach vorne gerichtete Pfeilspitze, d. h. L-FWRD=0.
  • Die nächste, zuletzt hinzugefügte, aktive Verknüpfungs-Aufzeichnung wird dann identifiziert, und zwar Knoten 24. Die dem Knoten 24 vorausgehende Verknüpfung ist auch der Knoten 21 und er wird ähnlich der Verarbeitung für den Knoten 25 verarbeitet, wie dies vorstehend besprochen ist.
  • Der nächste, zuletzt hinzugefügte, aktive Knoten ist der Knoten 23. Da er keinen vorausgehenden Knoten besitzt, der aktiv ist, setzt das Rückspur- Verfahren den vorhergehenden Knoten in einen aktiven Zustand und zeichnet eine nach vorne gerichtete Markierungsspitze (L-FWRD) für den vorhergehenden Knoten, und zwar Knoten 19, gleich dem Knoten, der momentan bearbeitet worden ist, und zwar Knoten 23, auf. Das Diagramm B stellt das Baumdiagramm A nach der Verarbeitung des Knotens 23 dar, und zwar mit der nach vorne gerichteten Markierungsspitze, die zu dem Knoten 19 hinzugefügt ist, was als durchgezogene Linie dargestellt ist. Es sollte angemerkt werden, daß, nachdem jeder Knoten verarbeitet worden ist, sein L-ACT-Einstieg, der anzeigt, daß es sich um einen aktiven Knoten handelt, entfernt wird. Folglich stellt das Baumdiagramm B nicht länger Knoten 23, 24 und 25 als aktiv dar.
  • Der Knoten 22 ist der nächste, zuletzt hinzugefügte Einstieg mit einem aktiven Knoten. Er besitzt keinen aktiven, vorhergehenden Knoten. Deshalb wird, wie dies für den Knoten 23 vorgenommen wurde, die nach vorne gerichtete Markierungsspitze für den Knoten 18 gleich dem Knoten 22 gesetzt und der Knoten 18 wird als aktiv gekennzeichnet. Das Diagramm C stellt den Baum nach der Verarbeitung des Knotens 22 dar.
  • Der Knoten 21 wird ähnlich dem Knoten 22 gehandhabt, da sein vorhergehender Knoten nicht aktiv ist, wie dies in dem Diagramm D dargestellt ist.
  • Der Knoten 20 ist der nächste aktive Knoten, der verarbeitet werden wird. Der Knoten, der dem Knoten 20 vorausgeht, ist aktiv und weist eine Zweideutigkeit auf. Wenn eine Zweideutigkeit auftritt, weist die nach vorne gerichtete Markierungsspitze für die Knoten der Zweideutigkeit, in diesem Fall Knoten 18 und 20, eine entfernte, nach vorne gerichtete Markierungsspitzen-Kette auf. In diesem Fall besitzt nur der Knoten 18 eine nach vorne gerichtete Markierungsspitze. Wie in der durchgezogenen Linie nach dem Knoten 18 dargestellt ist, ist die nach vorne gerichtete Markierungsspitze für den Knoten 13 gleich dem Knoten 22 gesetzt worden. Folglich ist in dem Diagramm E die durchgezogene Linie durch Setzen der nach vorne gerichteten Markierungsspitze für den Knoten 18 gleich 0 entfernt worden.
  • Knoten 19 ist der nächste, zuletzt hinzugefügte Einstieg mit einem aktiven Knoten. Da sein vorhergehender Knoten aktiv ist, erfordert eine Zweideutigkeit, daß die nach vorne gerichtete Markierungsspitzen-Kette für beide Knoten 16 und 19 entfernt werden wird, wie dies in dem Diagramm F dargestellt ist.
  • Knoten 18 wird als nächstes bearbeitet. Da sein vorhergehender Knoten 16 aktiv ist, aber weder Knoten 16 noch Knoten 18 eine nach vorne gerichtete Markierungsspitze besitzt, wird keine Maßnahme ergriffen, mit Ausnahme der Entfernung der durchgezogenen Linie, die die Aktivität des Knotens anzeigt.
  • Der nächste aktive Knoten ist Knoten 16, der einen vorausgehenden Knoten besitzt, der nicht aktiv ist. In diesem Fall setzt das Rückspur-Verfahren den vorhergehenden Knoten 13 In einen aktiven Zustand und zeichnet eine nach vorne gerichtete Markierungsspitze für den vorhergehenden Knoten, und zwar Knoten 13, gleich dem Knoten, der gerade bearbeitet wird, und zwar Knoten 16, auf. Das Diagramm G stellt das Baumdiagramm A nach der Verarbeitung des Knotens 16 dar.
  • Knoten 13 wird ähnlich Knoten 16 behandelt. Demzufolge ist in dem Diagramm H der Baum nur mit dem Knoten 11 als aktiv gekennzeichnet und nur mit den nach vorne gerichteten Markierungsspitzen, die für die Knoten 11 und 13 verbleiben, dargestellt.
  • Wenn das Rückspur-Verfahren an dem Fußknoten in dem Baum (Knoten 11) ankommt, gibt der Knoten, der nicht durch irgendeinen anderen Knoten bearbeitet ist, Worte aus, die über die nach vorne gerichteten Markierungsspitzen miteinander verkettet sind, und zwar als erkannte Worte. Dies wird durch sequentielle Verriegelung auf solche Verknüpfungs-Aufzeichnungen durchgeführt, die verkettete, nach vorne gerichtete Markierungsspitzen besitzen, beginnend an dem Wurzelpunkt, in L-FWRD. Wie in dem Diagramm I dargestellt ist, werden die Verbindungs-Aufzeichnungen, die "acht" und "fünf" in deren jeweiligen L-WORD-Gruppierungen aufzeichnen, ausgegeben. Zusätzlich werden diese Verknüpfungs-Aufzeichnungen, die Verknüpfungen zwischen den Knoten 11 und 16 in dem Diagramm H darstellen, aus der eingerichteten Liste entfernt und in die freie Liste eingebunden, wie dies durch die L-PTR-Gruppierung und der FREE-Markierungsspitze angegeben ist, wobei zu diesem Zeitpunkt der neue Wurzelknoten des Baums Knoten 16 ist. Der verbleibende Baum ist in dem Diagramm I dargestellt, das als zusätzliche Eingabeblöcke, die verarbeitet werden, verwendet wird, d. h. wobei der Ablauf zu Block 46 oder Fig. 5a in dem Erkennungs-Flußdiagramm zurückkehrt.
  • Unter Bezugnahme auf die Fig. 7a-7d wird nun das Rückspur-Flußdiagramm im Detail besprochen. In Fig. 7a wird die Verknüpfungs-Tabelle für die zuletzt hinzugefügte Verknüpfungs-Aufzeichnung, die aktiv ist, abgesucht. In Block 94 wird ein Test durchgeführt, um zu bestimmen, falls die erste Aufzeichnung in der Verknüpfungs-Tabelle nur in der eingerichteten Aufzeichnungsliste aufgezeichnet ist. Dies wird durch Einsehen in den Index der Gruppierungs-L-PTR durchgeführt, die durch HEAD angegeben ist. Wie zuvor erwähnt ist, enthält der HEAD den Index für die zuletzt hinzugefügte Verknüpfungs-Aufzeichnung. Wenn der L-PTR-Einstieg entsprechend dem HEAD gleich Null ist, wird die Kette beendet, und es sind keine zusätzlichen Aufzeichnungen in der Tabelle vorhanden, wobei in diesem Fall der Ablauf zu Block 96 übergeht, wo der entsprechende L-ACT-Einstieg inaktiv gesetzt wird. Von Block 96 kehrt das Unterprogramm zu dem Erkennungs- Flußdiagramm an dem Block 46 in Fig. 5a zurück.
  • In dem Fall, in dem zusätzliche Verknüpfungs-Aufzeichnungen in der Tabelle vorhanden sind, wird ein Test in dem Block 98 durchgeführt, um zu bestimmen, wenn die erste Verknüpfungs-Aufzeichnung aktiv ist. Die Verknüpfungs-Aufzeichnung ist aktiv, wenn deren entsprechender L-ACT-Einstieg nicht gleich Null ist.
  • Wenn die Verknüpfungs-Aufzeichnung aktiv ist, geht der Ablauf zu dem Block 100 über. In dem Block 100 wird, um anzuzeigen, daß die Verknüpfungs-Aufzeichnung in Betracht gezogen worden ist, die Verknüpfungs-Aufzeichnung inaktiv gesetzt. Der Ablauf geht dann zu dem Block 110 über, wo die Aufzeichnung, die zu dem HEAD zugeordnet (gepunktet) ist, in der temporären Markierungsspitze PTR gespeichert. Von dem Block 110 geht der Ablauf zu dem Block 120 über, wie dies nachfolgend besprochen wird.
  • Wenn sich die erste Verknüpfungs-Aufzeichnung auflöst, damit sie inaktiv wird, geht der Ablauf von dem Block 98 zu dem Block 112 über. In dem Block 112 wird die L-PTR stufenweise durchgeführt, bis die erste, aktive Verknüpfungs-Aufzeichnung aufgefunden worden ist, wobei zu diesem Zeitpunkt der Index für diese aktive Aufzeichnung in dem PTR gespeichert wird. In dem Block 114 wird der aktive Indikator freigesetzt, um die Verarbeitung für diese Verknüpfungs-Aufzeichnung anzugeben, und zwar wird dies ähnlich wie in Block 100 vorgenommen.
  • In dem Block 116 werden solche Verknüpfungs-Aufzeichnungen, die inaktiv vorgefunden werden, wie dies zwischen den Markierungsspitzen HEAD und PTR angegeben ist, zurück zu der freien Liste für eine zukünftige Verwendung geführt.
  • In dem Block 118 wird ein Test durchgeführt, um zu bestimmten, ob irgendwelche weiteren Verknüpfungen in der Verknüpfungs-Tabelle vorhanden sind. Dieser Test wird ähnlich wie vorstehend der Test in Block 94 durchgeführt.
  • Wenn dort keine weiteren Verknüpfungs-Aufzeichnungen in der eingerichteten Liste vorhanden sind, geht das Unterprogramm zu dem Erkennungs-Diagramm an dem Block 46 in Fig. 5a zurück.
  • In dem Block 120 wird ein Test durchgeführt, um zu bestimmen, ob oder ob nicht die Verknüpfung (Knoten) durchgeführt ist, und zwar dann, wenn die momentane Verknüpfung inaktiv ist. Dies wird durch Nachsehen zu der Rück- Markierungsspitze für die momentane Verknüpfungs-Aufzeichnung und durch Durchsehen zu dessen entsprechendem L-ACT-Einstieg durchgeführt. Wenn der vorhergehende Knoten aktiv ist, geht der Ablauf zu dem Block 124 der Fig. 7b über, um das Problem der Zweideutigkeit zu bearbeiten, wie dies zuvor besprochen wurde. Falls der vorhergehende Knoten inaktiv ist, geht der Ablauf zu dem Block 142 der Fig. 7c über.
  • Wie nun die Fig. 7b zeigt, bearbeiten die Verfahrensschritte darin die Zweideutigkeit, wenn der vorhergehende Knoten anzeigt, daß dort zwei oder mehr Verknüpfungs-Aufzeichnungen sein können, die von diesem Knoten ausgehen, die noch unter Berücksichtigung für eine Anpassung stehen. Dies tritt dann auf, wenn ein Knoten, der einem aktiven Knoten vorausgeht, auch aktiv ist. Die drei temporären Markierungspfeile (TMP1, TMP2 und PTR) werden in Fig. 7b zur Manipulierung der Verknüpfungs-Aufzeichnungsdaten verwendet. Diese Verfahrensschritte in Block 121 entfernen die vorwärts gerichtete Markierungsspitzenkette von der vorherigen Verknüpfung. Diese Verfahrensschritte umfassen Blöcke 124, 126, 128 und 130. Fig. 7b tritt mit PTR ein, das zu dem Knoten hinzielt, oder einer Verknüpfungs-Aufzeichnung, die momentan bearbeitet wird. Der L-BACK-Einstieg, der der Verknüpfungs-Aufzeichnung entspricht, zielt auf den Knoten, der unmittelbar dem Knoten vorausgeht, der momentan bearbeitet wird, wie dies vorstehend erwähnt ist. Der L-FWRD-Einstieg, der der Verknüpfungs-Aufzeichnung zugeordnet ist, zeigt die einzige, potentielle, absteigende Verknüpfungs-Aufzeichnung an.
  • In dem Block 124 wird eine Markierungsspitze zu dem Knoten, der unmittelbar dem momentanen, aktiven Knoten vorausgeht, in dem TMP1 gespeichert. In dem Block 126 wird die abnehmende Verknüpfungs-Aufzeichnung, die in L-FWRD angegeben ist, von dem vorhergehenden Knoten in dem TMP2 gespeichert.
  • In dem Block 128 wird ein Test durchgeführt, um zu bestimmen, ob der Knoten, auf den durch den TMP2 gezielt wird, einen momentanen L-FWRD-Einstieg besitzt oder ob er auf Null gesetzt ist. Falls der Knoten, auf den durch den TMP2 gezielt wird, eine nach vorne gerichtete Markierungsspitze besitzt (L-FWRD nicht gleich 0), geht der Ablauf zu dem Block 130 über, wo die nach vorne gerichtete Markierungsspitze für diesen Knoten entfernt wird. In dem Block 130 werden die Inhalte des TMP2 zu dem TMP1 bewegt, der zeitweilig eine Referenz des momentanen Knotens zu dem Knoten bewegt, auf den durch den TMP2 gezielt wird, dann werden, beginnend mit dem Block 126, die vorstehenden Verfahrensschritte für die darauffolgenden Knoten wiederholt, bis ein Knoten in der nach vorwärts gerichteten Kette gefunden ist, der keine nach vorwärts gerichtete Markierungsspitze besitzt, wie dies in dem Block 128 angegeben ist, wodurch das Ende der nach vorne gerichteten Kette angegeben wird.
  • Die Verfahrensschritte in dem Block 122 entfernen die nach vorne gerichtete Markierungsspitzenkette von der momentanen Verknüpfung, wie dies durch PTR angegeben ist. In dem Block 132 wird die momentane Verknüpfungs-Aufzeichnungs-Markierungsspitze, PTR, in dem TMP1 gespeichert. In dem Block 134 wird der L-FWRD-Einstieg für diese Verknüpfungs-Aufzeichnung in dem TMP2 gespeichert. In dem Block 136 wird ein Test durchgeführt, um zu bestimmen, ob eine nach vorne gerichtete Markierungsspitze für diese Verknüpfungs-Aufzeichnung besteht, wie dies in dem Block 128 vorstehend durchgeführt wurde. Falls dort eine nach vorne gerichtete Markierungsspitze für diese Verknüpfungs-Aufzeichnung besteht, geht der Ablauf zu dem Block 128 über, wo die nach vorne gerichtete Markierungsspitze entfernt und der absteigende Knoten in dem TMP1 ebenso zur Entfernung dessen nach vorne gerichteter Markierungsspitze gespeichert wird. Beginnend an dem Block 134 werden die vorstehenden Verfahrensschritte wiederholt, bis alle nach vorne gerichteten Markierungsspitzen, die von dem momentanen Knoten aus verkettet sind, entfernt sind. Dann geht von dem Block 136 der Ablauf zu dem Block 144 der Fig. 6c über, um die nächste, aktive Verknüpfungs-Aufzeichnung zu bearbeiten.
  • Wie wiederum der Block 120 der Fig. 7a zeigt, geht, falls der Knoten, der dem momentanen Knoten vorausgeht, inaktiv ist, der Ablauf zu dem Block 142 der Fig. 7c über, was nun besprochen werden wird.
  • In Block 142 der Fig. 7c wird, da der vorhergehende Knoten (Verknüpfungs-Aufzeichnung) inaktiv vorgefunden wurde, er aktiv gesetzt, und seine nach vorne gerichtete Markierungsspitze wird so gesetzt, daß sie auf die momentane Verknüpfungs-Aufzeichnung zeigt. In dem Block 144 wird, beginnend an der momentanen Verknüpfungs-Aufzeichnung, die Tabelle durchsucht, bis die nächste, aktive Verknüpfungs-Aufzeichnung gefunden wurde, und PTR wird so eingestellt, um auf diese Aufzeichnung zu zeigen, wodurch die neue, momentane Verknüpfungs-Aufzeichnung angegeben wird. Im Block 146 werden alle inaktiven Aufzeichnungen, die während des Verfahrensschritts des Blocks 144 aufgefunden wurden, zu der freien Liste durch Modifizierung der geeigneten Einstiege in die L-PTR-Gruppierung zurückgeführt. In dem Block 148 wird der neue Knoten inaktiv gesetzt, um anzuzeigen, daß er in Betracht gezogen worden ist, wie dies ähnlich in den Blöcken 100 und 114 in Fig. 7a vorgenommen wurde.
  • Ein Test wird in Block 152 durchgeführt, um zu bestimmen, ob oder ob nicht diese Verknüpfungs-Aufzeichnung die letzte in der Kette ist. Falls dies der Fall ist, sind alle Verknüpfungs-Aufzeichnungen bearbeitet worden und der Ablauf geht zu dem Block 156 der Fig. 7d über, um die Worte auszugeben, die während des Rückspur-Verfahrens erkannt wurden. Falls diese neue Verknüpfungs-Aufzeichnung nicht die letzte in der Kette ist, geht der Ablauf zu dem Block 120 der Fig. 7a für eine zusätzliche Verarbeitung über.
  • Wie nun die Fig. 7d zeigt, ist im Block 156 der Index für die momentane Verknüpfungs-Aufzeichnung, bei der es sich um den Wurzelpunkt in dem Baum handelt, in TMP1 gespeichert. In dem Block 158 wird der Knoten (Verknüpfungs-Aufzeichnung), der durch die momentane, nach vorne gerichtete Markierungsspitze des Knotens dargestellt wird, in TMP2 gespeichert. Zum Beispiel würde, unter Bezugnahme auf das Diagramm H der Fig. 8, TMP1 11 (Knoten 11) enthalten und TMP2 würde 13 (Knoten 13) enthalten.
  • In dem Block 160 wird ein Test durchgeführt, ob dort irgendwelche nach vorne gerichteten Markierungsspitzen vorliegen, die von dem Knoten, der in TMP1 gespeichert ist, abfallen. Dies wird durch Vergleich der Inhalte des TMP2 gegen Null durchgeführt. Falls solche vorliegen, geht der Ablauf zu dem Block 162 über, wo die nach vorne gerichtete Markierungsspitze für den momentanen Knoten entfernt wird, und der momentane Knoten wird nach oben zu dem nächsten Knoten in der nach vorne gerichteten Kette bewegt, wie dies durch die momentane, nach vorne gerichtete Markierungsspitze, die in TMP2 gespeichert ist, angegeben ist. Im Block 164 wird das Wort, das der momentanen Verknüpfungs-Aufzeichnung zugeordnet ist, als erkanntes Wort ausgegeben. Beginnend mit dem Block 158 werden die vorstehenden Verfahrensschritte wiederholt, bis jede Verknüpfungs-Aufzeichnung in der nach vorne gerichteten Markierungsspitzen-Kette ihr zugeordnetes Wort besitzt, das als ein erkanntes Wort ausgegeben wird. Während des Verfahrensschritts im Block 160 wird eine abfallende Verknüpfungs-Aufzeichnung aufgefunden werden, die keine nach vorne gerichtete Markierungsspitze besitzt, wobei In diesem fall der Ablauf zu Block 168 übergeht, wo alle toten Verknüpfungs-Aufzeichnungen, wie zwischen TMP1 und PTR angegeben ist, zurück zu der freien Liste geführt werden. Zusätzlich wird die L-PTR-Gruppierung im Block 168 durch Einstellen des L-PTR-Einstiegs für den neuen Basisknoten aktualisiert, auf den momentan durch PTR gezeigt ist, und zwar mit Null. Die Null in dieser Aufzeichnung gibt den Wurzelpunkt des Baums und das Ende der eingerichteten Liste der Verknüpfungs- Aufzeichnungen an. Von Block 168 ist die Rückspurung vervollständigt, und der Ablauf geht zu Block 46 der Fig. 5a über.
  • Die vorliegende Erfindung schafft deshalb ein neues und verbessertes System und ein Verfahren für eine fortlaufende Spracherkennung. Die Erfindung kann leicht ausgeführt werden, wie dies in den effektiven, dargestellten, vorstehenden Flußdiagrammen beschrieben ist, um eine Realzeiterkennung in einem einfachen und billigen 8-Bit-Prozessor anzunähern. Die vorliegende Erfindung liefert zusätzlich eine exzellente Speicherausnutzung, so daß nur eine minimale Anzahl an Verknüpfungs-Aufzeichnungen, die als Eingabe-Blöcke gespeichert werden müssen, zu verarbeiten sind.
  • Während die Erfindung insbesondere unter Bezugnahme auf eine bevorzugte Ausführungsform dargestellt und beschrieben worden ist, wird für den Fachmann verständlich werden, daß verschiedene Modifikationen und Änderungen hinsichtlich der vorstehend beschriebenen Erfindung vorgenommen werden können, ohne den allgemeinen Schutzumfang, der in den anhängigen Ansprüchen festgelegt ist, zu verlassen.

Claims (4)

1. Spracherkennungssystem zum Erkennen von Gruppen von Eingabeblöcken, wobei ein grammatikalisches Modell (21) in einem Speicher gespeichert werden kann, wobei das grammatikalische Modell aus Knoten zusammengesetzt ist, die durch Bögen miteinander verbunden sind, wobei die Bögen mindestens eine zugeordnete Lehre, die in einem Speicher (10) gespeichert ist, und entsprechende ausgehende und endende Knoten besitzen, und wobei Gruppen von Eingabeblöcken mit den gespeicherten Lehren verglichen werden können, um ähnliche Vergleichsparameter zu erzeugen, das folgende Merkmale aufweist:
Einrichtungen zur Strukturierung des grammatikalischen Modells (21) derart, daß ein erster, ausgewählter Bogen-Satz, der aus einem oder mehreren Bögen und deren entsprechenden Knoten zusammengesetzt ist, eine Schleife innerhalb des grammatikalischen Modells aufweist;
Einrichtungen (19) zur Bildung einer ersten Parameterspeicherung für einen oder mehrere Knoten, die einen Endknoten für einen ausgewählten Bogen umfaßt;
Einrichtungen (32) zur Bestimmung mindestens eines ersten, ähnlichen Vergleichsparametersatzes in der ersten Parameterspeicherung für den Ursprungsknoten des ausgewählten Bogens;
wobei das Spracherkennungssystem dadurch gekennzeichnet ist, daß es Einrichtungen (19) zur Bildung einer zweiten Parameterspeicherung für mindestens einen Knoten, der einen Endknoten für einen ausgewählten Bogen umfaßt;
Einrichtungen (58, 60) zur Ermittlung mindestens eines zweiten, ähnlichen Vergleichsparametersatzes für einen ausgewählten Bogen, und zwar unter Verwendung einer oder mehrerer Lehren, die dem ausgewählten Bogen und dem ersten, ähnlichen Vergleichsparametersatz, der unter dem Ursprungsknoten gespeichert ist, zugeordnet ist;
Einrichtungen (62) zur Ermittlung eines dritten, ähnlichen Vergleichsparametersatzes für den ausgewählten Bogen unter Verwendung mindestens eines zweiten, ähnlichen Vergleichsparametersatzes, der für den ausgewählten Bogen bestimmt wird;
Einrichtungen (64) zur Speicherung des dritten, ähnlichen Vergleichsparametersatzes, der an dem Endknoten in der ersten Parameterspeichereinrichtung für den Endknoten bestimmt ist;
Einrichtungen (39) zur selektiven Übertragung der ersten Parameterspeicherinhalte zu der zweiten Parameterspeichereinrichtung für den Endknoten; und
Einrichtungen (18, 20) zur Erkennung von Gruppen von Eingabeblöcken, die die Parameterspeicherinhalte benutzen, die dem Endknoten zugeordnet sind, aufweist.
2. Spracherkennungssystem nach Anspruch 1, wobei der Endknoten ein Endknoten für einen der Bögen ist, der die Schleife aufweist.
3. Spracherkennungssystem nach Anspruch 1, das weiterhin einen oder mehrere Null-Bögen in dem grammatikalischen Modell aufweist.
4. Verfahren zum Erkennen von Gruppen von Eingaberahmen in einem Spracherkennungssystem, wobei ein grammatikalisches Modell in einem Speicher gespeichert werden kann, wobei das grammatikalische Modell aus Knoten zusammengesetzt ist, die durch Bögen verbunden sind,
wobei die Bögen mindestens eine zugeordnete Lehre besitzen, die in dem Speicher gespeichert ist, und entsprechende Ursprungs- und End- Knoten, und wobei Gruppen von Eingabeblöcken mit den gespeicherten Lehren verglichen werden können, um ähnliche Vergleichsparametersätze zu erzeugen, das folgende Verfahrensschritte aufweist:
Strukturierung des grammatikalischen Modells derart, daß ein erster, ausgewählter Bogensatz, der aus einem oder mehreren Bögen und deren entsprechenden Knoten zusammengesetzt ist, eine Schleife innerhalb des grammatikalischen Modells aufweist;
Bildung einer ersten Parameterspeicherung für einen oder mehrere Knoten, die einen Endknoten für einen ausgewählten Bogen umfassen;
Bestimmung (32) mindestens eines ersten, ähnlichen Vergleichsparametersatzes zur Speicherung in dem ersten Parameterspeicher für den Ursprungsknoten des ausgewählten Bogens;
wobei das Verfahren dadurch gekennzeichnet ist, daß es den Verfahrensschritt der Bildung einer zweiten Parameterspeicherung für mindestens einen Knoten, der einen Endknoten für einen ausgewählten Bogen umfaßt;
die Ermittlung (58, 60) mindestens eines zweiten, ähnlichen Vergleichsparametersatzes für den ausgewählten Bogen, und zwar unter Verwendung einer oder mehrerer Lehren, die dem ausgewählten Bogen und dem ersten, ähnlichen Vergleichsparametersatz, der an dem Ursprungsknoten gespeichert ist, zugeordnet ist;
die Bestimmung (62) eines dritten, ähnlichen Vergleichsparametersatzes für den ausgewählten Bogen, und zwar unter Verwendung des mindestens einen, zweiten, ähnlichen Vergleichsparametersatzes, der für den ausgewählten Bogen bestimmt ist;
die Speicherung (64) des dritten, ähnlichen Vergleichsparametersatzes, der an den Endknoten in der ersten Parameterspeichereinrichtung für den Endknoten bestimmt ist;
die selektive (39) Übertragung der ersten Parameterspeicherinhalte zu der zweiten Parameterspeichereinrichtung für den Endknoten; und
die Erkennung von Gruppen von Eingaberahmen, und zwar unter Verwendung der Parameterspeicherinhalte, die dem Endknoten zugeordnet ist, umfaßt.
DE3750199T 1986-06-02 1987-06-01 System zur Erkennung kontinuierlicher Sprache. Expired - Fee Related DE3750199T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US1986/001222 WO1987007748A1 (en) 1986-06-02 1986-06-02 Continuous speech recognition system
PCT/US1986/001224 WO1987007749A1 (en) 1986-06-02 1986-06-02 Continuous speech recognition system

Publications (2)

Publication Number Publication Date
DE3750199D1 DE3750199D1 (de) 1994-08-18
DE3750199T2 true DE3750199T2 (de) 1995-01-19

Family

ID=26773715

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3750199T Expired - Fee Related DE3750199T2 (de) 1986-06-02 1987-06-01 System zur Erkennung kontinuierlicher Sprache.

Country Status (4)

Country Link
EP (1) EP0248377B1 (de)
AT (1) ATE108571T1 (de)
DE (1) DE3750199T2 (de)
MY (1) MY103050A (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4977598A (en) * 1989-04-13 1990-12-11 Texas Instruments Incorporated Efficient pruning algorithm for hidden markov model speech recognition
GB2282480B (en) * 1990-07-05 1995-07-26 Olivetti Systems & Networks S Integrated circuit structure analysis
AU6080094A (en) * 1992-12-31 1994-08-15 Apple Computer, Inc. Recursive finite state grammar
JPH08508583A (ja) * 1993-03-31 1996-09-10 ブリテイッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 接続スピーチ認識
NZ263223A (en) * 1993-03-31 1997-11-24 British Telecomm Path link passing speech recognition
US6230128B1 (en) 1993-03-31 2001-05-08 British Telecommunications Public Limited Company Path link passing speech recognition with vocabulary node being capable of simultaneously processing plural path links
GB9602700D0 (en) * 1996-02-09 1996-04-10 Canon Kk Pattern matching method and apparatus
US6456970B1 (en) * 1998-07-31 2002-09-24 Texas Instruments Incorporated Minimization of search network in speech recognition
US6374222B1 (en) 1998-08-12 2002-04-16 Texas Instruments Incorporated Method of memory management in speech recognition
US6275802B1 (en) 1999-01-07 2001-08-14 Lernout & Hauspie Speech Products N.V. Search algorithm for large vocabulary speech recognition
CN111354348B (zh) * 2018-12-21 2024-04-26 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置
CN110473551B (zh) * 2019-09-10 2022-07-08 北京百度网讯科技有限公司 一种语音识别方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
EP0248377A3 (en) 1989-08-16
MY103050A (en) 1993-04-30
EP0248377B1 (de) 1994-07-13
ATE108571T1 (de) 1994-07-15
DE3750199D1 (de) 1994-08-18
EP0248377A2 (de) 1987-12-09

Similar Documents

Publication Publication Date Title
DE3876379T2 (de) Automatische bestimmung von kennzeichen und markov-wortmodellen in einem spracherkennungssystem.
DE69726499T2 (de) Verfahren und Vorrichtung zur Kodierung von Aussprache-Prefix-Bäumen
DE3878541T2 (de) Verfahren und einrichtung, um ein markov-modell-referenzmuster von woertern zu erzeugen.
DE3876207T2 (de) Spracherkennungssystem unter verwendung von markov-modellen.
DE69010941T2 (de) Verfahren und Einrichtung zur automatischen Bestimmung von phonologischen Regeln für ein System zur Erkennung kontinuierlicher Sprache.
DE3783154T2 (de) Spracherkennungssystem.
DE3337353C2 (de) Sprachanalysator auf der Grundlage eines verborgenen Markov-Modells
DE4397100C2 (de) Verfahren zum Erkennen von Sprachsignalen und Spracherkennungssystem mit rekursiver Grammatik mit endlicher Zustandsanzahl
DE3874049T2 (de) Schnelle anpassung eines spracherkenners an einen neuen sprecher auf grund der daten eines referenzsprechers.
DE3750277T2 (de) Verfahren und Vorrichtung zur Rückgewinnung von Symbolketten aus Daten.
DE69914368T2 (de) Netzwerk- und sprachmodelle zur verwendung in einem spracherkennungssystem
DE3750199T2 (de) System zur Erkennung kontinuierlicher Sprache.
EP0862161A2 (de) Verfahren zur Spracherkennung mit Sprachmodellanpassung
EP0836175B1 (de) Verfahren und Anordnung zum Ableiten wenigstens einer Folge von Wörtern aus einem Sprachsignal
DE3236832A1 (de) Verfahren und geraet zur sprachanalyse
DE2650255A1 (de) Schaltungsanordnung zur automatischen erkennung kontinuierlicher sprachsignale, insbesondere eines oder mehrerer kontinuierlich gesprochener worte oder zahlen
EP0797185A2 (de) Verfahren und Vorrichtung zur Spracherkennung
DE4130632A1 (de) Verfahren zum erkennen der gesprochenen woerter in einem sprachsignal
DE19942178C1 (de) Verfahren zum Aufbereiten einer Datenbank für die automatische Sprachverarbeitung
EP0533260A2 (de) Verfahren und Anordnung zum Erkennen der gesprochenen Wörter in einem Sprachsignal
DE69633595T2 (de) Verfahren und Gerät zur Erweiterung und Wiedergewinnung von ähnlichen Zeichenfolgen.
DE2730328A1 (de) Adressierbarer assoziativ-speicher
DE68927625T2 (de) Folgenkollationierungssystem zum Suchen nach einer Charakterfolge willkürlicher Länge innerhalb eines gegebenen Abstands einer Referenzfolge
DE2518588A1 (de) Verfahren zur ueberwachung der folgerichtigkeit von codesignalgruppen in einrichtungen der nachrichtentechnik
DE3786822T2 (de) Spracherkennungssystem.

Legal Events

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