DE69738116T2 - Lokalisierung eines Musters in einem Signal - Google Patents

Lokalisierung eines Musters in einem Signal Download PDF

Info

Publication number
DE69738116T2
DE69738116T2 DE69738116T DE69738116T DE69738116T2 DE 69738116 T2 DE69738116 T2 DE 69738116T2 DE 69738116 T DE69738116 T DE 69738116T DE 69738116 T DE69738116 T DE 69738116T DE 69738116 T2 DE69738116 T2 DE 69738116T2
Authority
DE
Germany
Prior art keywords
word
spoken
sentence
words
signals
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 - Lifetime
Application number
DE69738116T
Other languages
English (en)
Other versions
DE69738116D1 (de
Inventor
Eli Canon Res. C Bracknell Tzirkel-Hancock
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.)
Canon Inc
Original Assignee
Canon 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
Application filed by Canon Inc filed Critical Canon Inc
Publication of DE69738116D1 publication Critical patent/DE69738116D1/de
Application granted granted Critical
Publication of DE69738116T2 publication Critical patent/DE69738116T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training

Landscapes

  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Machine Translation (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Description

  • Die Erfindung bezieht sich auf ein Verfahren und ein Gerät zum Identifizieren des Orts eines Musters innerhalb eines repräsentativen Signals. Die Erfindung hat insbesondere, obwohl nicht ausschließlich Relevanz zum Bestimmen von Wortmodellen zur Verwendung in einem kontinuierlichen Spracherkennungssystem.
  • Die Spracherkennung ist ein Prozeß, durch den eine unbekannte Sprachäußerung identifiziert wird. Es gibt verschiedene Arten von Spracherkennungssystemen, die aktuell verfügbar sind und sich auf verschiedene Weise kategorisieren lassen. Beispielsweise sind einige Systeme lautsprecherabhängig, wohingegen andere lautsprecherunabhängig sind. Einige Systeme arbeiten mit einem großen Vokabular an Wörtern (> 10.000 Wörter), während andere nur mit einem beschränkten Vokabular (< 1.000 Wörter) arbeiten. Einige Systeme können isolierte Wörter erkennen, wohingegen andere Sätze erkennen, die aus einer Serie verbundener Wörter bestehen.
  • Um die eingegebene Sprachäußerung zu erkennen, vergleicht das Spracherkennungssystem die eingegebene Äußerung mit bekannten Sprachmerkmalen. Die bekannten Merkmale werden während einer Übungssitzung bestimmt, in der bekannte Sprachabtastungen zum Erzeugen von Bezugsmustern (Merkmalen) bereitgestellt werden.
  • In stetigen Spracherkennungssystemen repräsentieren die Bezugsmuster üblicherweise die Phoneme einer gegebenen Sprache. IBM erzeugt ein Entwicklungssystem zu Erstellen derartiger stetiger Spracherkennungssysteme, die IBM-kontinuierliche Sprachserie (ICSS) genannt werden. Das Entwicklungssystem umfaßt ein großes Wörterbuch von phonetisch buchstabierten Wörtern, akustischen Bezugsmodellen von nordamerikanischen englischen Phonemen und ein Werkzeug zum Erstellen eines Sprachmodells zur Verwendung im sich ergebenden Spracherkennungssystem. Das IBM-System gestattet einem Anwendungsentwickler, ein Spracherkennungssystem zur Verwendung einer speziellen Anwendung zu erstellen, beispielsweise zur Verwendung auf einem PC in einem Fernsprechsystem. Der Entwickler kann das geeignete Sprachmodell bauen durch zunächst Typisieren der Sätze, die zur Verwendung im sich ergebenden Spracherkennungssystem in einer Datei zugelassen sind, dann Bereitstellen des phonetischen Buchstabierens für beliebige Wörter, die nicht bereits im IBM-Wörterbuch sind, und letztlich Übersetzen der Satzdatei. Das resultierende Spracherkennungssystem wird dann an den Endverbraucher verkauft zur Verwendung in geeigneter Anwendung.
  • Ein Problem bei der Art des stetigen Spracherkennungssystems besteht darin, daß die Bezugsmodelle phonetisch sind, und folglich ist das System sprach- und akzentabhängig. Das System leidet darüber hinaus an dem Nachteil, daß das Sprachmodell, das dem Endverbraucher bereitgestellt wird, feststehend ist und sich nicht aktualisieren läßt, um neue Sätze zu beinhalten.
  • Nicht alle stetigen Spracherkennungssysteme verwenden Bezugsmodelle, die Phonemen entsprechen. Das Dokument US 4 783 808 (Texas Instruments Incorporated) schlägt ein stetiges Spracherkennungssystem vor, das Bezugsmodelle verwendet, die ganzen Wörtern entsprechen. Folglich wird dieses System nicht an sprach- und akzentabhängigen Problemen von Systemen leiden, die auf Phonemen basieren. Wortbasierende stetige Spracherkennungssysteme leiden jedoch an dem Problem, daß es schwierig ist, gute Wortmodelle zu erzeugen, die Wörter identifizieren können, wenn fortlaufend gesprochen wird. Es ist relativ gerade ausgerichtet, gute Wortmodelle zum Identifizieren von Wörtern zu erzeugen, wenn sie isoliert gesprochen werden. Da jedoch Wörter, die in zusammenhängender Sprache gesprochen werden, sich signifikant von denselben Wörtern unterscheiden, wenn diese einzeln gesprochen werden, können die isolierten Wortmodelle nicht gut genug sein, die entsprechenden Wörter zu identifizieren, wenn sie in verbundener Sprache gesprochen sind. Ein Grund für die Unterschiede besteht darin, daß die in verbundener Sprache gesprochenen Wörter typischerweise schneller gesprochen werden als dieselben Wörter, wenn diese einzeln gesprochen werden. Ein anderer Grund für die Unterschiede besteht darin, daß verbunden gesprochene Wörter in ihrer Sprache unter Koartikulationseffekten leiden, das heißt, das Verschmelzen mit benachbarten Wörtern.
  • Im Dokument US 4 783 808 werden verbundene Wortmodelle zunächst erzeugt durch Erzeugen eines Einzelwortmodells aus einer isolierten Äußerung des Wortes, dann Komprimieren des isolierten Wortmodells, das heißt, des Einzelwortmodells, um der unterschiedlichen Sprechgeschwindigkeit Rechnung zu tragen, dann Lokalisieren des Wortes in verbundener Sprache durch Anpassen des isolierten Wortmodells mit der verbundenen Sprache und dann Bestimmen des Modells für verbundene Wörter durch Auslesen der Sprachmerkmale aus dem lokalisierten Wort.
  • Ein Problem des Systems, das im Dokument US 4 783 808 offenbart ist, besteht darin, daß Wortmodelle nicht automatisch erzeugt werden. Es erfordert die Mitarbeit des Anwenders in Form von Bestätigungen, daß das isolierte Wortmodell und dann das stetige Wortmodell gut genug sind, basierend auf der Ausgabe von Sprachsignalen, die von Wortmodellen erzeugt werden. Ein anderes Problem mit dem System, das im Dokument US 4 783 808 offenbart ist, besteht darin, daß eine konstante Kompression bezüglich der isolierten Wortmodelle erfolgt. Eine derartige konstante Kompression ist unrealistisch und führt in einigen Fällen zu einer schlechten Anpassung zwischen dem isolierten Wortmodell und der verbundenen Sprache, die das Wort enthält.
  • Gemäß einem Aspekt stellt die vorliegende Erfindung, wie es in den beigefügten Ansprüchen beansprucht ist, ein Gerät bzw. eine Vorrichtung zur Erzeugung kontinuierlicher Wortmodelle zur Verwendung bei einem Erkennungssystem kontinuierlicher Sprache zur Verfügung, mit
    einer Einrichtung zum Empfang von Text entsprechend einem Eingabesatz und Signalen, die eine gesprochene kontinuierliche Wiedergabe des Eingabesatzes repräsentieren,
    einem Speicher zur Speicherung von Text entsprechend vorhergehenden Eingabesätzen zusammen mit Signalen, die ihre gesprochenen kontinuierlichen Wiedergaben repräsentieren,
    einer Einrichtung zum Vergleich des Textes des Eingabesatzes mit dem gespeicherten Text,
    einer Einrichtung zur Aufforderung eines Benutzers, abhängig von dem Vergleichsergebnis eine Anzahl von Wörtern zu sprechen,
    einer Einrichtung zum Empfang von Signalen, die die gesprochenen Wiedergaben der Wörter repräsentieren, und
    einer Einrichtung zur Erzeugung kontinuierlicher Wortmodelle aus den empfangenen Signalen.
  • Gemäß diesem Aspekt stellt die vorliegende Erfindung auch ein Verfahren des Erzeugens von kontinuierlichen Wortmodellen zur Verfügung, mit den Schritten des
    Empfangens von Text entsprechend einem Eingabesatz und Signalen, die eine gesprochene kontinuierliche Wiedergabe des Eingabesatzes repräsentieren,
    Speicherns von Text entsprechend vorhergehenden Eingabesätzen zusammen mit Signalen, die ihre gesprochenen kontinuierlichen Wiedergaben repräsentieren,
    Vergleichens des Textes des Eingabesatzes mit gespeichertem Text von vorhergehenden Eingabesätzen,
    Aufforderns des Benutzers, abhängig von dem Vergleichsergebnis, eine Anzahl von Wörtern zu sprechen,
    Empfangens von Signalen, die die gesprochenen isolierten Wiedergaben der Wörter repräsentieren, und
    Erzeugens von kontinuierlichen Wortmodellen aus den empfangenen Signalen.
  • Gemäß einem weiteren Aspekt stellt die vorliegende Erfindung ein Verfahren des Erzeugens von einem oder mehr kontinuierlichen Wortmodellen zur Verwendung bei einem Spracherkennungssystem zur Verfügung, mit den Schritten des
    Empfangens von Text entsprechend einem neuen Satz und Signalen, die den neuen Satz repräsentieren,
    Aufforderns eines Benutzers, ein unbekanntes Wort in dem neuen Satz zu sprechen, und
    Erzeugens eines kontinuierlichen Wortmodells für das unbekannte Wort auf der Grundlage der den neuen Satz repräsentierenden Signale und der das gesprochene Wort repräsentierenden Signale.
  • Verschiedene Ausführungsbeispiele der Erfindung sind nachstehend in Form von Beispielen beschrieben, die sich auf die beiliegende Zeichnung beziehen.
  • KURZE BESCHREIBUNG DER ZEICHNUNG
  • 1 ist eine schematische Ansicht eines Computers, der sich programmieren lässt, um ein Ausführungsbeispiel der vorliegenden Erfindung bilden zu können;
  • 2 ist eine schematische Übersicht eines Spracherkennungssystems;
  • 3 ist ein Blockdiagramm vom Vorprozessor, der einen Teil des in 2 gezeigten Systems bildet, mit welcher die Verarbeitungsschritte dargestellt sind, die bezüglich des eingegebenen Sprachsignals zur Ausführung kommen;
  • 4 ist eine diagrammartige Darstellung der Teilung des eingegebenen Sprachsignals S(t) in eine Serie von Zeitrahmen;
  • 5 ist eine diagrammartige Darstellung eines typischen Sprachsignals für einen einzelnen Zeitrahmen;
  • 6 ist eine diagrammartige Darstellung der Größenentsprechung diskreter Fourier-Transformation des in 5 gezeigten Sprachsignals;
  • 7 ist eine diagrammartige Darstellung der durchschnittlichen Größenentsprechung, Ausgabe einer Filterbank im mel-Maßstab;
  • 8 ist eine diagrammartige Darstellung des log-Stärkenspektrums von Ausgangssignal aus der Filterbank mit mel-Maßstab;
  • 9 ist eine diagrammartige Darstellung des Cepstrum des in 8 gezeigten registrierten Stärkespektrums;
  • 10 ist ein schematisches Diagramm des Bezugsmodellbauers, das während des Lernprozesses verwendet wird;
  • 11 ist ein Ablaufdiagramm, das die Schritte darstellt, die während des Lernprozesses zum Erzeugen von Wortmodellen zur Verwendung im Spracherkennungssystem herangezogen werden;
  • 12 ist ein schematisches Diagramm, das die Art und Weise darstellt, in der Übungsphrasen und -wörter während des Lernprozesses gespeichert werden;
  • 13 ist eine schematische Darstellung einer Anzahl eingegebener Phrasen und Wörter sowie ihrer zugehörigen Parameterrahmensequenzen;
  • 14 ist ein Ablaufdiagramm, das die Schritte darstellt beim Bestimmen der Wortmodelle aus den eingegebenen Äußerungen während der Lernphase;
  • 15 ist eine schematische Darstellung von Übungswörtern und ihre entsprechenden Sequenzen von Parameterrahmen, deren Enden ausrangiert sind;
  • 16 ist eine schematische Darstellung einer Ausrichtung zwischen Parameterrahmen des in 15 gezeigten Wortes und Parameterrahmen gemäß den eingegebenen Phrasen, in denen dieses Wort auftritt;
  • 17a ist eine schematische Darstellung eines Sprachmodells, das während des Lernprozesses für eine Anzahl von eingegebenen Beispielphrasen erzeugt wird;
  • 17b ist ein Ablaufdiagramm, das die Art und Weise veranschaulicht, in der das System eine neue Phrase dem Sprachmodell hinzufügt;
  • 18 ist eine schematische Darstellung der Verarbeitung, die zur Ausführung kommt, wenn ein eingegebenes Wort mit einem Sprachmodell unter Verwendung einer dynamischen Verarbeitungstechnik ausgerichtet wird;
  • 19 ist eine schematische Darstellung einer zulässigen Zustandsübergangssequenz von einem eingegebenen Rahmen zum nächsten;
  • 20 ist eine abwechselnde Darstellung der zugelassenen Zustandsübergangssequenz, wie sie in 19 gezeigt ist;
  • 21 ist ein Ablaufdiagramm, das das Implementieren der dynamischen Programmierausrichttechnik darstellt, verwendet im ersten Ausführungsbeispiel;
  • 22 ist eine schematische Darstellung eines Wortmodells und einer laufenden Aktivliste und einer neuen Aktivliste, die einander zugehörig sind;
  • 23 ist ein schematisches Diagramm, das eine Anzahl von dynamischen Programmierbeispielwegen darstellt, die sich in einem Bezugsmodell ausbreiten;
  • 24 ist ein Ablaufdiagramm, das die Schritte darstellt, die zum in 21 gezeigten Schritt 47 gehören;
  • 25 ist ein schematisches Diagramm, das die Art und Weise veranschaulicht, in der zwei der dynamischen Programmierwege, gezeigt in 23, sich vom laufenden eingegebenen Rahmen zum nächsten ausbreiten;
  • 26a ist ein schematisches Diagramm, das die Inhalte einer in 22 gezeigten neuen Aktivliste veranschaulicht, nachdem der erste Zustand in der laufenden Aktivliste für das in 22 gezeigte Wortmodell verarbeitet ist;
  • 26b ist ein schematisches Diagramm, das die Inhalte der in 22 gezeigten neuen Aktivliste darstellt, nachdem der zweite Zustand in der laufenden Aktivliste für das in 22 gezeigte Wortmodell verarbeitet ist;
  • 27a ist ein Ablaufdiagramm, das einen Teil der Verarbeitung darstellt, die im in 24 gezeigten Schritt S77 zur Ausführung kommen;
  • 27b ist ein Ablaufdiagramm, das die restlichen Schritte darstellt, die im Schritt S77 von 24 enthalten sind;
  • 28 ist ein Ablaufdiagramm, das die in Schritt S51 gezeigte Verarbeitung darstellt, der in 21 gezeigt ist;
  • 29 ist eine schematische Darstellung der bezüglich eines exemplarischen Knotens N ausgeführten Verarbeitung während der in 28 dargestellten Verarbeitung;
  • 30 ist ein Ablaufdiagramm, das die Schritte darstellt, die im in 21 gezeigten Schritt enthalten sind;
  • 31 ist ein schematisches Diagramm, das die Eingabezustände des in 32 gezeigten Wortmodells darstellt;
  • 32 ist ein Ablaufdiagramm, das die in Schritt S65 ausgeführten Schritte darstellt, die in 21 gezeigt sind;
  • 33 ist eine schematische Darstellung der Sequenz von Parameterrahmen für die eingegebene Phrase gemeinsam mit den Sequenzen von Parameterrahmen für die Wörter, die in der eingegebenen Phrase enthalten sind, wenn die Wörtern einzeln gesprochen werden;
  • 34 ist ein Ablaufdiagramm, das die Schritte darstellt, die beim Anpassen der Wortmodelle eines anderen Anwenders enthalten sind, unter Verwendung einer ersten Substitutionstechnik; und
  • 35 ist ein Ablaufdiagramm, das die Schritte darstellt, die enthalten sind beim Anpassen der Wortmodelle an einen anderen Anwender unter Verwendung einer zweiten Substitutionstechnik.
  • Ausführungsbeispiele der vorliegenden Erfindung lassen sich realisieren in Computerhardware, aber das Ausführungsbeispiel, das hier zu beschreiben ist, ist in Software realisiert, die in Verbindung mit Verarbeitungshardware läuft, wie einem Personal Computer, einem Arbeitsplatzrechner, einem Fotokopierer, einem Faxgerät oder dergleichen.
  • 1 zeigt einen Personal Computer (PC) 1, der sich programmieren läßt, um ein Ausführungsbeispiel nach der vorliegenden Erfindung zu realisieren. Eine Tastatur 3, eine Zeigereinrichtung 5, ein Mikrofon 7 und eine Fernsprechleitung 9 sind mit dem PC 1 über eine Schnittstelle 11 verbunden. Die Tastatur 3 und die Zeigereinrichtung 5 ermöglichen dem System, von einem Anwender gesteuert zu werden. Das Mikrofon 7 setzt das akustische Sprachsignal vom Anwender um in ein äquivalentes elektrisches Signal und liefert dieses an den PC 1 zur Verarbeitung. In diesem Ausführungsbeispiel sind die Anfangs- und Endpunkte der zu verarbeitenden eingegebenen Sprache identifiziert durch Halten der Leertaste auf der Tastatur 3 während der Dauer der Äußerungseingabe. Auf diese Weise erhält das System nur Prozesse der eingegebenen Äußerung, die zu identifizieren ist. Ein internes Modem und eine Sprachempfangsschaltung (nicht dargestellt) können mit der Fernsprechleitung 9 verbunden sein, so daß der PC 1 beispielsweise kommunizieren kann mit einem fernen Computer oder mit einem fernen Anwender.
  • Die Programmbefehle, die den PC 1 gemäß der vorliegenden Erfindung arbeiten lassen, können angeliefert werden zur Verwendung mit einem vorhandenen PC 1 auf einer Speichereinrichtung, wie einer Magnetplatte 13 oder durch einen externen Modem, der mit einem fernen Computer über die Fernsprechleitung 9 kommuniziert.
  • Die Arbeitsweise des kontinuierlichen Spracherkennungssystems mit beschränktem Vokabular von diesem Ausführungsbeispiel ist nachstehend anhand 2 beschrieben. Elektrische Signale, die repräsentativ sind für die eingegebene Sprache beispielsweise aus einem Mikrofon 7 werden an einen Vorprozessor 15 geliefert, der das eingegebene Sprachsignal umsetzt in eine Sequenz von Parameterrahmen, die jeweils einen zugehörigen Zeitrahmen des eingegebenen Sprachsignals darstellen. Die Sequenz der Parameterrahmen wird geliefert an einen Erkennungsblock, bei dem die Sprache erkannt wird durch Vergleichen der eingegebenen Sequenz von Parameterrahmen mit Bezugsmodellen oder Wortmodellen 19, die jeweils über eine Sequenz von Parameterrahmen verfügen, die ausgedrückt sind in derselben Art von Parametern wie jene der zu erkennenden eingegebenen Sprache.
  • Ein Sprachmodell 21 und ein Störgeräuschmodell 23 sind ebenfalls vorgesehen als Eingaben für den Erkennungsblock zur Hilfe im Erkennungsprozeß. Das Geräuschmodell ist repräsentativ für Ruhe oder Hintergrundgeräusch und enthält in diesem Ausführungsbeispiel einen einzelnen Parameterrahmen derselben Art wie jener des eingegebenen Sprachsignals, das zu erkennen ist. Das Sprachmodell 21 wird verwendet zum Erzwingen der zugelassenen Sequenz von Wörtern, die aus dem Erkennungsblock 17 kommen, um so übereinzustimmen mit den Sequenzen von Wörtern, die dem System bekannt sind. Die Wortsequenzausgabe aus dem Erkennungsblock 17 kann dann umgeschrieben werden zur Verwendung beispielsweise in einer Wortprozessorpackung und sich verwenden lassen als Bedienpersonbefehle zum Initialisieren des Stopps oder des Modifizierens des Betriebs auf dem PC 1.
  • Eine detailliertere Erläuterung ist nachstehend für das Gerät beschrieben.
  • Vorprozessor
  • Nachstehend anhand der 3 bis 10 beschrieben ist der Vorprozessor.
  • Die Funktionen des Vorprozessors 15 sind Auslesen der aus der Sprache erforderlichen Information und der Reduzierung der Datenmenge, die zu verarbeiten ist. Es gibt verschiedene bekannte Verfahren des Vorverarbeitens von Sprache im Gebiet der Sprachanalyse, und das nachstehende Verfahren wird als Beispiel lediglich gegeben und sollte nicht als Beschränkung in irgendeiner Weise angesehen werden. In diesem Ausführungsbeispiel ist der Prozessor 15 vorgesehen zum Auslesen von "formant"-bezogenen Informationen. Formanten sind definiert als Resonanzfrequenzen des Sprachtraktes vom Anwender, der die Form des Sprachtraktes ändert.
  • 3 zeigt ein Blockdiagramm der Vorverarbeitung, die bezüglich des eingegebenen Sprachsignals zur Ausführung kommt. Eingegebene Sprache S(t) aus dem Mikrofon 7 oder der Fernsprechleitung 9 wird an Filterblock 61 geliefert, der Frequenzen innerhalb des eingegebenen Sprachsignals beseitigt, die Informationen geringer Bedeutung beinhalten. In Sprachsignalen werden die höchstbedeutungsvollen Informationen unterhalb 4 kHz erhalten. Der Filterblock 61 beseitigt folglich alle Frequenzen oberhalb 4 kHz. Das gefilterte Sprachsignal wird dann umgesetzt in digitale Abtastwerte vom Analog-zu-digital-Umsetzer (ADC) 63. Um das Nyquist-Abtastkriterium zu erfüllen, tastet der ADC 63 das gefilterte Signal mit einer Rate von 8 000 pro Sekunde ab. In diesem Ausführungsbeispiel wird die gesamte eingegebene Sprachäußerung umgesetzt in digitale Abtastwerte und in einem Puffer (nicht dargestellt) gespeichert, vor den nachfolgenden Verarbeitungsschritten bezüglich der Sprachsignale.
  • Nachdem die eingegebene Sprache abgetastet ist, wird sie eingeteilt in sich überlappende gleich lange Rahmen in Block 65. Der Grund hierfür, nämlich für die Teilung der eingegebenen Sprache in Rahmen, ist nachstehend in mehr Einzelheiten beschrieben. Wie zuvor erwähnt, ändert sich während der kontinuierlichen Sprache der Formant bezüglich Informationen stetig, die Änderungsrate ist direkt bezogen auf die Bewegungsrate des Sprechers, der beschränkt ist durch physiologische Einschränkungen. Um die Spur der Änderungsformantfrequenzen zu verfolgen, muß folglich das Sprachsignal analysiert werden über kurze Zeitdauer oder Rahmen, wobei dieses Verfahren in der Technik der Sprachanalyse bekannt ist als "Kurzzeitanalyse" von Sprache. Es gibt zwei Dinge zu berücksichtigen, die angesprochen werden, wenn es sich um eine Kurzzeitanalyse handelt: (i) welche Rate sollten die auszulesenden Rahmen von Sprachsignal haben und (ii) wie groß sollte ein zu verwendender Rahmen sein.
  • Die erste Überlegung hängt ab von der Bewegungsgeschwindigkeit des Sprechers, das heißt, die Rahmen sollten hinreichend eng liegen, um sicherzustellen, daß wichtige Ereignisse nicht übersehen werden, und um sicherzustellen, daß es eine vernünftige Kontinuität gibt. In diesem Ausführungsbeispiel wird ein Rahmen alle 20 Millisekunden ausgelesen. Die zweite Berücksichtigung ist bestimmt durch einen Kompromiß zwischen dem Rahmen, der kurz genug ist, so daß die Sprachsignaleigenschaften während des Rahmens konstant bleiben, und daß der Rahmen lang genug, um hinreichend Frequenzeinzelheiten zu geben, so daß die Formate unterschieden werden können. Im vorliegenden Ausführungsbeispiel sind die Rahmen 20 Millisekunden lang, die bei der obigen Abtastrate gemäß 160 Abtastwerten pro Rahmen liegt.
  • Wenn diese Rahmen erzeugt werden durch Auslesen dieser direkt aus den Sprachabtastwerten, führt dies zu beträchtlichen Frequenzverzerrungen. Um derartige Verzerrungen zu reduzieren, sollte eine Glättungsfensterfunktion verwendet werden. Es gibt viele solcher Fenster, die verfügbar sind und enthalten Hamming, Hanning, Blackman, Bartlett und Kaiser, die alle dem Fachmann der Sprachanalyse bekannt sind. Im vorliegenden Ausführungsbeispiel wird ein Hamming-Fenster verwendet, und dies läßt sich darstellen durch die folgende Gleichung: W(n) = 0,54 – 0,46 cos[2πn/(NS – 1)] (1)
  • Wobei NS die Anzahl von Abtastungen im Fenster ist, das heißt, 160 Abtastungen hier.
  • 4 zeigt die Kurzzeitanalyseoperation in mehr Einzelheiten, die im vorliegenden Ausführungsbeispiel zur Anwendung kommt. Sprachsignale im Rahmen 1, das heißt, zwischen dem Zeitpunkt "a" und dem Zeitpunkt "b" wird multipliziert mit der Fensterfunktion, die in Gleichung (1) angegeben ist. Aufgrund der Wahl der Rahmenfrequenz und der Rahmenlänge startet der nächste Rahmen, Rahmen 2 zwischen Rahmen 1 zum Zeitpunkt "c" und des weiteren so weiter.
  • Ist einmal der Rahmen des eingegebenen Sprachsignals ausgelesen, wird die Stärke der diskreten Fourier-Transformation (DFT) des Rahmens in Block 67 errechnet, das heißt, |SK(f)|, wobei f die variable diskrete Frequenz ist. Nur die Stärkeinformation ist erforderlich, da verschiedene Aspekte dieses Prozessors ausgelegt sind, die Arbeitsweise des menschlichen Hörsystems zu simulieren, das relativ stark auf die Phase des eingegebenen Sprachsignals reagiert. 5 zeigt ein typisches Sprachsignal für einen einzelnen Rahmen Sk(r) mit 160 Abtastwerten, das heißt, r = 0, 1, ..., 159. Um einen effizienten Algorithmus für die schnelle Fourier-Transformation (FFT) zu ermöglichen, der zu verwenden ist bei der Rechnung von DFT, muß die Anzahl von Abtastwerten innerhalb des Rahmens Sk(r) erhöht werden auf die Potenz von 2. Ein Verfahren zum Erzielen dieses ist das Hinzufügen von 96 Nullen an das Ende der 160 Abtastwerte, um 256 Abtastwerte zu erhalten. Diese Technik ist bekannt unter dem Namen "Füllen mit Nullen" und ist eine bekannte Technik bei der Sprachanalyse, die hier nicht weiter zu beschreiben ist.
  • Beim Errechnen von DFT von Sk(r) müssen nur die ersten 128 Abtastwerte des Spektrums errechnet werden, da die Sprache ein echtes Signal ist und so die 128 Abtastwerte ein Spiegelbild der ersten 128 Abtastungen sind. 6 zeigt die ersten 128 Abtastungen der Stärke von DFT |Sk(f)| des Sprachsignals im Rahmen Sk(r) der in 5 gezeigt ist, wobei der letzte Abtastwert, der mit einer halben Abtastfrequenz auftritt, das heißt, mit 4 kHz.
  • Wie schon zuvor erwähnt, dient der Prozessor 15 dem Verringern der Datenrate und der Betonung spezieller Komponenten des eingegebenen Sprachsignals. Die Datenrate ist geringfügig vom DFT reduziert worden, da es hier nur noch 128 Abtastungen pro Rahmen gibt. Ein Verfahren des Reduzierens der Datenrate in größerem Umfang ist das Aufspalten des Spektrums in eine Anzahl gleicher Frequenzbänder und der Durchschnittsbildung der Abtastwerte innerhalb eines jeden Bandes, das heißt, man läßt die Abtastwerte gemäß 6 durch eine Filterbank laufen.
  • Untersuchungen bezüglichen des menschlichen Hörsystems haben gezeigt, daß die Ohrfrequenzauflösung absinkt mit höher werdender Frequenz. Folglich ist eine logarithmisch geteilte Filterbank, das heißt eine, bei der es mehr Frequenzbänder im niederfrequenten Bereich gibt, verglichen mit dem hochfrequenten Bereich, eine linear eingeteilte Filterbank vorzuziehen, da eine logarithmisch geteilte Filterbank mehr wahrnehmbare bedeutungsvolle Informationen enthält.
  • Im vorliegenden Ausführungsbeispiel wird eine mel-geteilte Filterbank 69 verwendet, die über 19 Bänder verfügt. Das mel-Maß ist allgemein bekannt in der Sprachanalysetechnik, und ist ein logarithmisches Maß, das die empfundene Frequenz eines Tones in einer linearen Skala unterzubringen versucht. 7 zeigt das Ausgangssignal |S ~k(f')| einer Filterbank 69 in mel-Teilung, wenn die in 6 gezeigten Abtastwerte die Filterbank 69 durchlaufen. Die sich ergebende Hüllkurve 100 vom Stärkespektrum ist beträchtlich glatter aufgrund der Durchschnittsbildungswirkung der Filterbank 69, obwohl weniger Glätte bei den unteren Frequenzen vorhanden ist aufgrund der logarithmischen Teilung der Filterbank.
  • Der Formant bezüglich Information wird dann ausgelesen aus der Sprache unter Verwendung von Blöcken 71, 73 und 75 von 3 durch einen Prozeß, der nachstehend erläutert ist.
  • Es ist möglich, das Sprachsignal S(t) eines Anwenders in Gliedern eines Erregersignals E(t) und eines a-Filters V(t) zu bilden, wobei das Erregersignal E(t) einen Luftfluß darstellt, der in den Sprachtrakt eintritt, und das Filter V(t) stellt die Filtrierwirkung des Sprachtraktes dar. Die Stärke des Frequenzspektrums |S(f)| des Sprachsignals wird folglich gewonnen durch Multiplikation der Stärke des Frequenzspektrums |E(f)| des Erregersignals mit der Stärke des Spektrums |V(f)| des Sprachtraktfilters, das heißt, |S(f)| = |E(f)|·|V(f)| (2)
  • Ein anderes Verfahren, das unter dem Namen Cepstral-Verfahren bekannt ist, des Auslesens der Sprachtraktinformation aus der eingegebenen Sprache ist nachstehend beschrieben. Dieses Verfahren umfaßt das Separieren der Stärkeantwort |V(f)| vom Sprachtraktfilter aus der Stärkeantwort |E(f)| der Erregung, in dem man den Logarithmus der Sprachstärkeantwort |S(f)| heranzieht, was zu der Erregung führt, und die Sprachtraktfiltereigenschaften werden additiv, das heißt, log|S(f)| = log|E(f)| + log|V(f)| (3)
  • 8 zeigt die Hüllkurve des registrierten Ausgangssignals aus der mel-Filterbank 69, das heißt, log|S ~k(f')|, welches graphisch die additive Natur der beiden Komponenten 101 und 103 zeigt. Die Komponente 101 ist repräsentativ für die Sprachtrakteigenschaften, das heißt, log|V(f)|, und die Komponente 103 ist repräsentativ für die Erregungseigenschaften, das heißt, log|E(f)|. Die Spitzen in Komponente 101 treten bei Formantfrequenzen im Sprachtrakt auf, und die gleich beabstandeten Spitzen in Komponente 103 treten bei den Harmonischen der Tonlage des Sprechers auf.
  • Die Sprachtrakteigenschaften 101 können ausgelesen werden aus den Erregereigenschaften 103 durch Ausführen einer diskreten Kosinustransformation (DCT) auf die Abtastwerte aus dem Block 71 und dann durch Filtern des Ergebnisses.
  • 9 zeigt das Ausgangssignal vom DCT-Block 73, welches bekannt ist als Cepstrum Ck(m). Die unabhängige Variable (x-Achse von 9) des Cepstrums hat Dimensionen per Zeit und wird angegeben mit dem Namen "Quefrency". Die starke periodische Komponente 103, die in 8 gezeigt ist, wird Spitze 105 im Cepstrum an der Stelle, die der Tonlagenperiode T vom Sprecher äquivalent ist. Die langsam variierende Komponente 101, gezeigt in 8, wird transformiert in eine Anzahl kleiner Spitzen 107 nahe dem Ursprung vom Cepstrum, der Lage und der Amplitude, die unabhängig sind von den Formanten.
  • Da die Sprachtrakteigenschaften und die Erregereigenschaften von Sprache in getrennten Teilen der Frequenzskala auftreten, können diese voneinander getrennt werden durch eine Filterprozeß, oder können in Cepstral Terminologie durch einen sogenannten "Liftering"-Prozeß getrennt werden. Das in 9 gezeigte Cepstrum Ck(m) ist aufgebaut aus einem Satz diskreter Cepstral-Koeffizienten (C0, C1, ... C18), und folglich sollte das Liftering erzielt werden mittels einen einfachen rechteckigen Fensters. Um die Betonung von Teilen des Spektrums aufzuheben, die als weniger zuverlässig angesehen werden, wird eine feinere Fensterfunktion bevorzugt. Im vorliegenden Ausführungsbeispiel wird die folgende Fensterfunktion im Liftering-Block 75 verwendet:
    Figure 00160001
    wobei Nc die gewünschte Anzahl von Cepstral-Koeffizienten ist, die pro Rahmen aus dem Liftering-Block 75 abgegeben werden, der als zwölf im Ausführungsbeispiel präsent ist.
  • Zusätzlich zu den 12 Cepstral-Koeffizienten, die zuvor erwähnt wurden, wird die Leistung des Sprachsignals innerhalb eines jeden Rahmens ebenfalls errechnet, das heißt, die "Rahmenleistung". Dies ist ein wichtiges Merkmal, da es sich unter anderen Dingen verwenden läßt zum Aufzeigen, ob das Eingangssprachsignal während des Rahmens einem betonten Sprachsignal entspricht. Die Rahmenleistung wird errechnet im Rahmenleistungsblock 81, der in 3 gezeigt ist, unter Verwendung eines herkömmlichen Verfahrens, das in der Sprachanalysetechnik allgemein bekannt ist. Um Unabhängigkeit der variablen Aufzeichnungsbedingungen zu erzielen, wird die variable Lautstärke usw., die in Block 81 bestimmte Leistung normiert im Leistungsnormierblock 83, um einen Leistungskoeffizienten Pk anzugeben, der kombiniert ist mit den Cepstral-Koeffizienten, die aus dem Liftering-Block 75 kommen. Die Leistung wird in Block 83 normiert durch Bestimmen der Maximalleistung (dB) über die Äußerung, die im Puffer (nicht dargestellt) gespeichert ist, durch Subtrahieren dieser von der Leistung eines jeden Rahmens und durch Multiplizieren des Ergebnisses mit einer Normierungskonstanten.
  • Wenn auch im vorliegenden Ausführungsbeispiel die Leistung des eingegebenen Sprachsignals während eines jeden Rahmens bestimmt wird, könnten auch andere Werte verwendet werden, die das eingegebene Sprachsignal während eines jeden Rahmens aufzeigen. Beispielsweise könnte eine Messung der durchschnittlichen Stärke des eingegebenen Sprachsignal während eines Rahmens bestimmt und normiert werden.
  • Der Vorprozessor 15 gibt für jeden Rahmen insgesamt einen Satz von Koeffizienten – 12 Cepstralkoeffizienten und einen Leistungskoeffizienten ab. Zur besseren Übersichtlichkeit werden die Koeffizienten, die den Rahmen k repräsentieren, als Parameterrahmen fk bezeichnet, und die Koeffizienten, die den nachfolgenden Rahmen repräsentieren, werden als Parameterrahmen fk+1 bezeichnet, usw.
  • Puffer
  • Die Parameterrahmen fk, die der Prozessor 15 abgibt, beaufschlagen den in 2 gezeigten Puffer 16. Im vorliegenden Ausführungsbeispiel ist der Puffer 16 groß genug, um alle Parameterrahmen zu speichern, für die im Puffer (nicht dargestellt) erzeugte Sprache erzeugt sind, wobei der Puffer die digitalen Abtastwerte aus ADC 63 für die eingegebene Sprache speichert. Nachdem die gesamte eingegebene Äußerung vom Vorprozessor 15 verarbeitet worden ist, werden die im Puffer 16 gespeicherten Rahmen dem Erkennungsblock 17 zugeführt, in der Reihenfolge, in der sie empfangen wurden, wobei die eingegebene Äußerung erkannt wird.
  • Bezugsmodelle
  • Wie zuvor erwähnt, werden zum Bestimmen der Wörter, die durch die Ausgangssignale aus dem Vorprozessor 15 dargestellt sind, diese Signale mit den gespeicherten Bezugsmodellen verglichen, wie zuvor beschrieben, welches Modell der dem System bereits bekannten Wörter und die akustische Umgebung, die das System umgibt. Jedes Modell, das einem speziellen Wort zugehörig ist, enthält eine Sequenz von Parameterrahmen derselben Art von Parameterrahmen, wie sie vom Prozessor 15 kommen, wie zuvor beschrieben. Um zwischen den Rahmen der Wortmodelle und den Rahmen der eingegebenen Äußerung, die zu erkennen ist, unterscheiden zu können, werden die Rahmen in Wortmodellen als Zustände bezeichnet.
  • Ein Merkmal des Spracherkennungssystems nach diesem Ausführungsbeispiel besteht darin, daß es an den Endanwender ohne Wortmodelle geliefert werden kann, Umgebungsmodell (oder Störmodell) oder Sprachmodell, das dort vorgespeichert ist. Dies gibt dem Anwender die Freiheit, das System zum Erkennen der Phrasen zu ziehen, was er wünscht, ohne daß das System überlastet wird mit vorgespeicherten Wörtern, die nützlich sein können für Zwecke des Anwenders. Wie aus der nachstehenden Beschreibung hervorgeht, ist das spezielle beschriebene Lernverfahren besonders angepaßt an die Situation, weil es neue zu lernende Phrasen durch das System zuläßt, ohne daß es einer zeitaufwendigen Lernsitzung bedarf. Da darüber hinaus Bezugsmodelle, die gesamten Wörtern und nicht Phonemen entsprechen, wird das System für eine beliebige Sprache arbeiten, selbst beliebige Mischungen von Sprache. Der Lernprozeß ist nachstehend anhand der 10 bis 17 in mehr Einzelheiten beschrieben.
  • Lernen
  • 10 ist ein schematisches Diagramm, das das Bau-/Aktualisierungsmodul 91 zeigt, das im Lernprozeß verwendet wird. Insbesondere empfängt das Bau-/Aktualisierungsmodul 91 Sequenzen von Parameterrahmen fk, die ein Wort oder zu lernende Wörter durch das System repräsentieren, sowie Anwenderinformationen, die durch Pfeil 92 dargestellt sind, die Text gemäß dem eingegebenen Wort oder den Wörtern aufzeigen. Wenn hinreichende Informationen in das Bau/Aktualisierungsmodul 91 eingegeben sind, dann erzeugt es Wortmodelle entsprechend den eingegebenen Wörtern und aktualisiert das Sprachmodell 21. In diesem Ausführungsbeispiel werden sowohl die Wortmodelle als auch das Sprachmodell in einer großvolumigen Datenspeichereinheit gespeichert, wie auf einer Festplatte 93.
  • Die Art und Weise, in der das Störmodell 23 in diesem Ausführungsbeispiel bestimmt wird, ist nachstehend beschrieben. Zuerst zeigt der Anwender auf, daß er das vorhandene Störmodell 23 neu aufbauen oder ändern will. Als Reaktion veranlaßt das System den Anwender, einen Ruheton einzugeben. Dies wird erreicht, indem der Anwender die Leertaste der Tastatur niederdrückt und ruhig bleibt. Am Ende dieser Ruheperiode muß der Anwender dann ein Wort äußern, so daß das System den Leistungskoeffizienten der erzeugten Parameterrahmen zu normieren, die die Ruhe repräsentieren. Wenn der Anwender kein Wort am Ende der Ruheperiode äußert, dann wird der Leistungskoeffizient für das Störmodell 23 unrealistisch hoch, und Fehlerkennungsfehler können das Ergebnis sein. Um das Störmodell 23 zu bestimmen, bildet das System letztlich Durchschnittswerte der Parameterrahmen, erzeugt für die Ruheperiode, um einen einzelnen Parameterrahmen zu erzeugen, der als das Störmodell 23 verwendet wird.
  • Das Sprachsystem dieses Ausführungsbeispiels ist ausgelegt zum Erkennen stetig gesprochener Wörter, das heißt, Wörter, die in Phrasen eingebettet sind. Um gute Erkennungsergebnisse zu erzielen, sollten die Bezugsmodelle (oder die kontinuierlichen Wortmodelle) hergeleitet werden aus Beispielphrasen, die Gegenstandswörter enthalten. Unglücklicherweise ist es keine leichte Aufgabe, den Anfangs- und Endpunkt eines Wortes innerhalb einer kontinuierlich gesprochenen Phrase zu identifizieren. Eine Übersicht der Art, in der das vorliegende Ausführungsbeispiel ein kontinuierliches Wortmodell erzeugt, wird nun gegeben. Zuerst bestimmt das System ein Modell für das Wort aus einer Einzeläußerung dieses Wortes. Dieses Modell wird bezeichnet als "Einzelwortmodell", obwohl der Fachmann der Spracherkennung aus der folgenden Beschreibung erkennt, daß diese Einzelwortmodelle nicht den herkömmlichen Einzelwortmodellen entsprechen, die zum Stand der Technik gehören. Das System verwendet dann die Einzelwortmodelle zum Erzeugen kontinuierlicher Wortmodelle durch Vergleichen der Einzelwortmodelle mit Beispielphrasen, die die zugehörigen Wörter enthalten.
  • Um das Einzelwortmodell zu erzeugen, muß das Wort in das System über das Mikrofon 7 oder die Fernsprechleitung getrennt eingegeben werden. Wie zuvor beschrieben, wird die Leertaste verwendet zum Identifizieren einer jeden ankommenden Äußerung. Die Sequenz von Parameterrahmen, die repräsentativ sind für die isolierte Äußerung des Wortes, wird folglich Parameterrahmen am Anfang und Ende enthalten, die der Ruhe entsprechen. Das System vergleicht dann die Äußerung des Einzelwortes mit Beispielphrasen, die das Wort enthalten. Dieser Vergleich identifiziert ungefähr Anfangs- und Endpunkte des Wortes innerhalb der isolierten Äußerung. Diese Anfangs- und Endpunkte werden dann der Durchschnittsbildung unterzogen, und das Einzelwortmodell für das Wort wird bestimmt durch Auslesen der Sequenz von Parameterrahmen, die zwischen den durchschnittlich gebildeten Anfangs- und Endpunkten liegen. Durch Bestimmen des Einzelwortmodells auf diese Weise sollten nicht nur die Ruhe am Anfang und Ende des Wortes beseitigt werden, sondern auch Teile des Wortes, die nicht während des kontinuierlichen Sprechens betont werden. Folglich kann das Einzelwortmodell nicht einem herkömmlichen Einzelwortmodell entsprechen, was bestimmt ist durch Beseitigen der Ruhe am Anfang und Ende der eingegebenen Äußerung und wird repräsentativer sein für ein Wort, wenn es in kontinuierlicher Sprache gesprochen wird.
  • Ist einmal ein Einzelwortmodell bestimmt, wird es ausgerichtet mit den Beispielphrasen, die dieses Wort enthalten, um den Ort des Wortes innerhalb der Phrase zu identifizieren. Letztlich wird der Bezug oder das kontinuierliche Wortmodell bestimmt durch Auslesen und Kombinieren der Sprache in den phrasenidentifizierten Stellen. Die Art und Weise, in der das System die Wortmodelle erzeugt, ist nachstehend in mehr Einzelheiten beschrieben.
  • Wünscht der Anwender dem System eine oder mehrere neue Phrasen beizubringen, initiiert der Anwender die in 11 gezeigte Unterroutine. In Schritt S1 gibt der Anwender den Text des neuen Wortes oder die Phrase in das System ein über die Tastatur 3. Das System überprüft dann, ob das Wort oder die Phrase bereits bekannt ist, und wenn nicht bekannt, dann wird der Anwender in Schritt S3 aufgefordert, dasselbe Wort oder dieselbe Phrase über das Mikrofon 7 einzugeben und ordnet die Äußerung dem zugehörigen Text zu, der in Schritt S1 eingegeben wurde. Als nächstes verwendet in Schritt S5 der PC 1 den gesamten Text, der zuvor eingegeben wurde, um zu überprüfen, ob irgendeines der Wörter in der Phrase bereits eingegeben worden ist (in Isolation) und fordert den Anwender auf zur Eingabe jener Wörter in Isolation über das Mikrofon 7, die bereits zuvor eingegeben worden sind.
  • Nach Schritt S5 entscheidet der Anwender, ob das andere neue Wort oder die Phrase in Schritt S7 einzugeben sind und kehrt zu Schritt S1 zurück, wenn dies der Fall ist. Wenn andererseits der Anwender entscheidet, keine weiteren Phrasen einzugeben, dann geht die Verarbeitung zu Schritt S9, in dem Bezugsmodelle erzeugt werden für unbekannte Wörter, die in wenigstens 2 Phrasen enthalten und in das System eingegeben sind. Wenn beispielsweise keine Lernphrasen eingegeben wurden, hat das System keine vorgespeicherten Bezugsmodelle, und der Anwender entscheidet, die Phrasen "get an image" und "get the earth" einzugeben, und dann wird in Schritt S7 entschieden, daß er keinerlei weitere Phrasen einzugeben wünscht, dann wird das System nur in der Lage sein, ein Wortmodell für das Wort "get" zu erzeugen, da es das einzige Wort ist, das in beiden eingegebenen Phrasen enthalten ist. Wenn andererseits der Anwender die Phrase "get an image" zweimal eingibt, dann wird das System in der Lage sein, ein Bezugsmodell für jedes Wort in der Phrase zu erzeugen. Sieht man das erste zuvor erwähnte Beispiel an, dann wird das System den Anwender nicht auffordern, wenn der Anwender die Eingabe der Phrase "get the earth" in einer zweiten Lernsitzung nach Eingabe der ersten beiden Phrasen entscheidet, die Wörter "get" oder "the" in Schritt S5 einzugeben, da diese Wörter bereits einzeln eingegeben worden sind. Das System wird nun in der Lage sein, ein Bezugsmodell für das Wort "the" zu erzeugen, da es nun in zwei Phrasen auftritt, die in das System eingegeben worden sind. Auf diese Weise ist das Lernen inkrementell und kann zu Belieben vom Anwender geübt werden.
  • Unter Bezug auf 12 wird jeder in der obigen Weise eingegebenen Phrase eine Phrasennummer P zugeordnet und in einer Phrasenanordnung 115 auf einer Festplatte 93 gespeichert. Gleichermaßen wird jedes Einzelwort, das eingegeben ist, eine Wortnummer W erhalten und in einer Wortanordnung 117 auf der Festplatte 93 gespeichert. Wie in 12 gezeigt, hat jede Phrase P in der Phrasenanordnung 115 eine zugehörige Sequenz von Parameterrahmen 123, die Sequenz von Wörtern 125, die die Phrase bilden, und ein Statuskennzeichen 127. Jedes Wort in der Sequenz von Wörtern 125 hat einen zugehörigen Text 129 des Wortes, die Phrasennummer P, die Wortnummer 131 (das heißt, die Position vom Wort in der Phrase), die Zeitgrenzen 133 vom Wort innerhalb der Phrase und ein Wortindex 135, der auf das zugehörige Einzelwort W in der Wortanordnung 117 zeigt. Jedes isolierte Wort in der Wortanordnung 117 hat eine zugehörige Sequenz von Parameterrahmen 137, einen Phrasenindex 139, der zurück auf jene Phrasen zeigt, in denen das Wort und ein Statuskennzeichen 141 gefunden werden kann.
  • Werden anfänglich einzelne Wörter und Phrasen in das System eingegeben, dann werden die Statuskennzeichen 127 und 121, die einem jeden Wort oder einer jeden Phrase zugeordnet sind, mit FLEXI gekennzeichnet, um aufzuzeigen, daß sie noch nicht verarbeitet worden sind, und die Zeitgrenzen 133, die einem jeden Wort innerhalb der Sequenz von Wörtern in der Phrase zugehörig sind, werden auf UNKNOWN gesetzt.
  • Das Erzeugen der Wortmodelle für unbekannte Wörter, das in Schritt S9 von 11 ausgeführt wird, ist nachstehend kurz anhand der 12 bis 16 beschrieben, wobei als Beispiel die Übungsphasen Phrasen "get an image" verwendet werden, die zweimal eingegeben werden, und "get the earth", das einmal eingegeben wird. Folglich gibt es drei Elemente P1, P2 und P3 in der Phrasenanordnung 115, von denen eine für jede Äußerung der Phrase "get an image" und eine für die Äußerung der Phrase "get the earth" gilt. Darüber hinaus gibt es fünf Elemente W1, W2, W3, W4 und W5 in der Wortanordnung 117, von denen jedes der unterschiedlichen Wörter diese beiden Phrasen ausmachen. Wie zuvor beschrieben, wird eine Sequenz von Parameterrahmen gemäß einer jeden Phrase und gemäß einem jeden der unterschiedlichen Wörter in den zugehörigen Elementen der Phrasenanordnung 115 und der Wortanordnung 117 gespeichert.
  • 13 zeigt Sprachsignale 151 und 153, die zwei Äußerungen der Phrase "get an image" darstellen, und Sprachsignal 155, das die Äußerung der Phrase "get an earth" darstellt. 13 zeigt ebenfalls die Sprachsignale 157, 159 und 161, die die isolierten Äußerungen der Wörter "get", "an" beziehungsweise "image" darstellen. 13 zeigt auch zwei Sequenzen von Parameterrahmen 152 und 154, die den Äußerungen der Phrase "get an image" entsprechen, der Sequenz von Parameterrahmen 156 gemäß der Äußerung der Phrase "get the earth" und den Sequenzen von Parameterrahmen 158, 160 und 162 gemäß den Äußerungen der Einzelwörter "get", "an" beziehungsweise "image". Darstellungen der Wörter "the" und "earth" sind nicht in 13 dargestellt, da Wortmodelle für diese Wörter nicht erzeugt werden, wenn sie nicht in zwei oder mehr Phrasen auftauchen.
  • 14 zeigt die Schritte in mehr Einzelheiten, die erforderlich sind zum Erzeugen eines Wortmodells für jedes der unbekannten Wörter. In Schritt S21 der Sequenzen von Parameterrahmen gemäß den eingegebenen Phrasen, die die unbekannten Wörter enthalten, sind insbesondere ausgerichtet mit den Sequenzen von Parameterrahmen gemäß den unbekannten Wörtern, wenn diese einzeln gesprochen werden unter Verwendung eines flexiblen dynamischen Programmierungsausrichtungsprozesses, der die Anfangslücke an Kenntnis vom Start- und Endpunkt der unbekannten Wörter unterbringt. Insbesondere wird ein dynamischer Programmierausrichtungsprozeß verwendet, der nicht beschränkend ist, wobei der optimale Ausrichtungsweg eines jeden Wortes beginnen oder enden muß. Dieser flexible dynamische die Programmierung ausrichtende Prozeß ist nachstehend in mehr Einzelheiten beschrieben, nachdem die dynamische Programmierausrichtung abgehandelt ist.
  • Das Ergebnis der flexiblen dynamischen Programmierungsausrichtung ist die Identifikation des ungefähren Start- und Endpunktes eines jeden unbekannten Wortes innerhalb der Sequenz von Parameterrahmen für dieses unbekannte Wort. Wenn beispielsweise die Sequenz von Parameterrahmen 152 gemäß der ersten Äußerung der Phrase "get an image" ausgerichtet ist mit der Sequenz von Parameterrahmen 158 gemäß der Äußerung des unbekannten Wortes "get", wird ein Start- und Endpunkt aus den Ausrichtungsergebnissen identifiziert von dem Wort innerhalb der Sequenz der Parameterrahmen 158. Wie zuvor erwähnt, entsprechen die Parameterrahmen vor dem Startpunkt und nach dem Endpunkt dem Hintergrundgeräusch, oder Teile des Wortes, die nicht betont sind in den Beispielphrasen können folglich nicht beseitigt werden.
  • Die in Schritt S21 ausgeführte Ausrichtung für die Beispiellernphasen wird drei Sätze von Start- und Endpunkten für das Wort "get" identifizieren (da das Wort "get" in drei Phrasen auftritt) und zwei Sätzen von Start-Endpunkten für die Wörter "an" und "image" (weil die Wörter "an" und "image" in zwei Phrasen auftreten). In Schritt S23 wird ein durchschnittlicher Start- und Endpunkt für ein unbekanntes Wort bestimmt, und die Rahmen vor dem Durchschnittsstartrahmen und nach dem Durchschnittsendrahmen werden ausrangiert. Wenn beispielsweise nach Schritt S21 für das Wort "get" die Startpunkte, identifiziert unter Verwendung dreier Phrasen 151, 153 und 154, Rahmen f8 W1, Rahmen f9 W1 und Rahmen f13 W1 sind, dann wird der Durchschnittsrahmen f10 W1([8 + 9 + 13]/3), und alle Rahmen in der Sequenz von Parameterrahmen 158 vor Rahmen f10 W1 werden ausrangiert. Eine gleiche Prozedur wird verwendet für die Endpunkte, mit der Ausnahme, daß es der Rahmen hinter dem Endrahmen ist, der ausrangiert wird. Die sich ergebende Sequenz von Parameterrahmen für jedes Wort sind das isolierte Wortmodell, das zuvor für dieses Wort erwähnt wurde.
  • 15 zeigt die Sprachsignale 157', 159' und 161' und die zugehörigen Sequenzen der Parameterrahmen der isolierten Wortmodelle 158', 160' und 162' für die Wörter "get", "an" beziehungsweise "image". Bei dieser Stufe der Verarbeitung wird das Statuskennzeichen 141, das in 12 gezeigt ist, für jedes verarbeitete Wort geändert aus FLEXI zu CHOPPED, um zu kennzeichnen, daß die unbekannten Wörter dieselben Rahmen vom beseitigten Anfang und Ende hatten.
  • Als nächstes in Schritt S25, der in 14 gezeigt ist, werden die Sequenzen von Parameterrahmen gemäß den eingegebenen Phrasen ausgerichtet mit den Sequenzen von Parameterrahmen der isolierten Wortmodelle für das Wort in jenen Phrasen. Die Sequenzen von Parameterrahmen 152, 154 und 156 gemäß den Äußerungen von Phrasen, in denen das Wort "get" erscheint, werden beispielsweise ausgerichtet mit der Sequenz von Parameterrahmen des isolierten Wortmodells 158' für das Wort "get". 16 zeigt die sich ergebende Ausrichtung, die erzielt wird zwischen den Sequenzen 152, 154 und 156 und der Sequenz 158', wobei die gestrichelten Linien die Ausrichtung zwischen den Rahmen darstellen. Eingerichtet ist, daß die Rahmen f2 P1 und f3 P1 ausgerichtet sind mit Rahmen f10 W1, und Rahmen f4 P1 und f5 P1 sind mit Rahmen f11 W1 ausgerichtet, wie dargestellt.
  • Als nächstes wird in Schritt S27, gezeigt in 14, ein Bezugsmodell für das unbekannte Wort erzeugt durch Ersetzen der individuellen Rahmen für das isolierte Wortmodell mit dem Durchschnitt der ausgerichteten Rahmen für die Sequenzen der Parameterrahmen gemäß den Phrasen. Für die Sequenz von Parameterrahmen des isolierten Wortmodells 158', gezeigt in 16, wird beispielsweise Rahmen f10 W1 ersetzt durch den Durchschnitt der Rahmen f2 P1, f3 P1, f1 P2 und f2 P3, wohingegen Rahmen f11 W1 ersetzt wird durch den Durchschnitt der Rahmen f4 P1, f3 P1, f2 P2, f3 P2 und f3 P3. Wenn es keine Rahmen oder eine Phrase gibt, die ausgerichtet ist mit einem der Rahmen vom isolierten Wortmodell, dann wird dieser spezielle Rahmen ersetzt durch einen solchen, der hergeleitet ist durch Interpolieren zwischen oder Extrapolieren aus benachbarten ersetzten Rahmen. Für die Sequenz von Parameterrahmen 158', gezeigt in 16, wird folglich Rahmen f12 W1 nicht mit irgendeinem der Rahmen in den Sequenzen von Parameterrahmen 152, 154 oder 156 ausgerichtet, sondern ersetzt durch Interpolation zwischen den substituierten Rahmen für f11 W1 und f13 W1 hergeleiteten Rahmen. Alternativ werden die Rahmen des isolierten Wortmodells, die nicht ausgerichtet sind mit irgendeinem der Rahmen von der Phrase ausrangiert.
  • Die in Schritt S27 erzeugten Bezugswortmodelle sind bereit zur Verwendung im Spracherkennungsteil des Systems, was weiter unten beschrieben wird. Das Statuskennzeichen 141 eines jeden Wortes, das verarbeitet wurde, kann folglich von CHOPPED in IN-USE geändert werden.
  • Ist einmal ein Bezugswortmodell für alle Wörter in einer Phrase erstellt, dann kann diese Phrase dem Sprachmodell 21 hinzugefügt werden, das in 2 gezeigt ist. Das Sprachmodel 21 in diesem Ausführungsbeispiel gleicht einem Bigram-Modell und enthält eine Masche untereinander verbundener Knoten, wobei die Zwischenverbindungen die Wörter darstellen, die dem System bekannt sind. Sicherlich gibt es keine grammatikalische Regelung beispielsweise betreffend korrekter englischer Sprachanwendung. Nur beschränkt ist, welche Wörter unter andere fallen, die auf bekannten Phrasen beruhen. 17a stellt das Sprachmodell 21 dar, das aus folgenden Phrasen hergeleitet wird, die das System lernt:
    get an image – Phrase 1
    get the earth – Phrase 2
    get the fjord – Phrase 3
    get the map – Phrase 4
    get the coin – Phrase 5
    save an image – Phrase 6
    load an image – Phrase 7
    make it smaller – Phrase 8
    make it larger – Phrase 9
    make it brighter – Phrase 10
    make it more red – Phrase 11
    make it more yellow – Phrase 12
    make it more green – Phrase 13
    make it more cyan – Phrase 14
    make it more blue – Phrase 15
    make it more magenta – Phrase 16
    quit – Phrase 17
  • Wie in 17a gezeigt, gibt es einen Startknoten N0, einen Endknoten Nn und acht Zwischenknoten N1 bis N8. Für eine eingegebene Phrase, die zu erkennen ist, muß das System einen Weg vom Startknoten N0 bis zum Endknoten Nn finden. Das System ist jedoch einigermaßen flexibel darin, daß es einmal lernt, und der Anwender gibt die Phrase "make smaller" anstelle von "make it smaller" ein, und das System erkennt immer noch die Phrase. Das System wird jedoch eine Phrase nicht erkennen, die eingegeben wird, wenn diese Phrase dem System unbekannt ist, selbst wenn die individuellen Wörter der Phrase bekannt sind, das heißt, für das zuvor gegebene Sprachmodell, wenn der Nutzer sagt "save the image", wird das System dies nicht erkennen, obwohl es die Wörter "save" und "the" und "image" kennt.
  • Das Sprachmodell 21 wird geschaffen durch Auslesen der erforderlichen Wortsequenz, die aus dem in Schritt S3 in 11 eingegebenen Text kommt, und wird aktualisiert, nachdem jede neue Phrase eingegeben wurde, vorausgesetzt, daß es ein Wortmodell für jedes der Wörter in der Phrase gibt. Dieser Weg, in dem das Sprachmodell 21 aktualisiert wird, ist nachstehend anhand 17b beschrieben.
  • Wenn eine neue Phrase eingegeben ist und ein Wortmodell für jedes Wort in der Phrase bestimmt ist, identifiziert das System in Schritt S30, ob das erste Wort in der Phrase bereits mit dem Ausgangssignal des Startknotens N0 verbunden ist. Ist dies der Fall, dann schreitet die Verarbeitung fort zu Schritt S32. Wenn andererseits das erste Wort nicht bereits verbunden ist mit dem Ausgang des Startknotens N0, dann wird ein neuer Ausgang für den Startknoten N0 in Schritt S31 für dieses Wort hinzugefügt.
  • Die Verarbeitung schreitet dann fort zu Schritt S32, in dem das System einen Wortschleifenzähler w initialisiert, der verwendet wird zum Zählen durch alle Wörter in der Phrase. Die Verarbeitung schreitet dann fort zu Schritt S33, bei dem das System bestimmt, ob Wort w das letzte Wort in der Phrase ist. Ist es das letzte Wort nicht, dann schreitet die Verarbeitung fort zu Schritt S34, bei dem das System bestimmt, ob Wort w mit dem Eingangssignal eines Knotens (mit Ausnahme des Endknotens Nn) verbunden ist. Ist dies der Fall, dann schreitet die Verarbeitung fort zu Schritt S36, bei dem das System überprüft, ob das nächste Wort w + 1 mit dem Ausgangssignal des Knotens verbunden ist, den das Wort w als Eingang hat. Wenn andererseits in Schritt S34 das System bestimmt, daß das Wort w nicht mit dem Eingang irgendeines Knotens verbunden ist, dann schreitet die Verarbeitung fort zu Schritt S35, bei dem ein neuer Knoten erstellt wird, und das Wort w wird verbunden mit dem Eingang dieses neuen Knotens. Dann schreitet die Verarbeitung fort zu Schritt S36, der zuvor beschrieben wurde.
  • Wenn das System in Schritt S36 bestimmt, daß das nächste Wort w + 1 nicht mit dem Ausgang des Knotens verbunden ist, der das Wort w als Eingang hat, dann schreitet die Verarbeitung fort zu Schritt S37, bei dem das nächste Wort w + 1 einem Ausgang dieses Knotens hinzugefügt wird. Wenn andererseits das System in Schritt S36 bestimmt, daß das nächste Wort w + 1 bereits mit dem Ausgang des Knotens verbunden ist, der das Wort w als Eingang hat, dann ereignet sich nichts, und die Verarbeitung schreitet fort zu Schritt S38, in dem der Wortzähler w inkrementiert wird. Die Verarbeitung kehrt dann zurück zu Schritt S33, und eine gleiche Prozedur wird für das nächste Wort in der Phrase ausgeführt. Wenn das System in Schritt S33 bestimmt, daß das Wort w das letzte Wort in der Phrase ist, dann schreitet die Verarbeitung fort zu Schritt S39, bei dem das System bestimmt, ob das letzte Wort bereits mit dem Eingang des Endknotens Nn verbunden ist. Ist es nicht mit dem Eingang des Endknotens Nn verbunden, dann schreitet die Verarbeitung fort zu Schritt S40, bei dem System das letzte Wort in der Phrase mit dem Eingang des Endknotens Nn verbindet. Ist das letzte Wort bereits mit dem letzten Knoten Nn verbunden oder das letzte Wort ist einmal mit dem letzten Knoten Nn in Schritt S40 verbunden gewesen, dann ist die Verarbeitung abgeschlossen, und die Phrase bildet nun Teil des Sprachmodells 21.
  • Ein Merkmal des Lernprozesses besteht darin, daß dem System die Phrase individuell gelehrt werden kann, oder eine Anzahl von Phrasen können auf einmal gelehrt werden. Wenn des weiteren eine neue Phrase in das System eingegeben wird, die bereits Wortmodelle für einige Wörter in dieser Phrase besitzt, dann müssen nur Wortmodelle für unbekannte Wörter erzeugt werden, bevor das Sprachmodell 21 aktualisiert werden kann.
  • Dynamische Programmierung (DP)
  • In der in den Schritten S21 und S25 von 14 ausgeführten Verarbeitung wurde eine Ausrichtprozedur verwendet, um die Parameterrahmen der Phrasen mit den Parameterrahmen der Wörter auszurichten. Um zwei Sequenzen von Parameterrahmen in effektiver Weise ausrichten zu können, muß der Ausrichtprozeß in der Lage sein, unterschiedliche Geschwindigkeiten, mit der das Wort gesprochen wird, zu kompensieren, beispielsweise wenn das Wort einzeln gesprochen wird und wenn das Wort eingebettet ist in die fortlaufend gesprochene Phrase. Der dynamische Programmierausrichtprozeß (DP-Ausrichtprozeß), der zuvor erwähnt wurde, ist ein Weg, mit dem ein Wort auf ein anderes in einer Weise angepaßt werden kann, die die optimale nicht lineare Zeitmaßstabsverzerrung anwendet, um die beste Anpassung bei allen Punkten zu erreichen.
  • Nachstehend anhand der 1820 beschrieben ist eine Übersicht über den DP-Anpaßprozeß. 18 zeigt längs der Abszisse eine Sequenz von Parameterrahmen, die jeweils ein eingegebenes Wort repräsentieren, und entlang der Ordinate eine Sequenz von Parameterrahmen, die ein Wortmodell darstellen. Vergleicht man dieses Beispiel mit der in Schritt S25 in 14 ausgeführten Verarbeitung, so kann die Sequenz der Parameterrahmen, die das eingegebene Wort darstellen, einen Teil der Sequenz der Parameterdaten repräsentieren gemäß einer der eingegebenen Phrasen, und die Sequenz der Parameterrahmen, die das Wortmodell darstellen, kann die Sequenz von Rahmen repräsentieren, die eine der zerhackten Wörter darstellt.
  • Um die Gesamtdifferenz zwischen dem Wortmodell und dem eingegebenen Wort zu finden, ist es erforderlich, die Summe aller Abstände zwischen den individuellen Paaren von Rahmen zu bilden, längs des Weges zwischen den Ecken links unten und rechts oben in 18, die den kleinsten kumulativen Abstand angeben. Diese Definition stellt sicher, daß zugehörige Rahmen gleicher Wörter korrekt ausgerichtet werden. Eine Art des Ausrechnens dieser Gesamtentfernung ist es, alle möglichen Wege zu berücksichtigen und den Wert von d (k, j) (den Abstand zwischen Rahmen k und Rahmen j) für jeden Punkt entlang einander zu addieren. Der zwischen den Wörtern gemessene Abstand wird dann als kleinster Wert genommen, der für den kumulativen Abstand gewonnen ist. Obwohl dieses Verfahren die korrekte Antwort gibt, wird die Anzahl gültiger Wege so groß, daß die Errechnung unmöglich wird für irgendein praktisches Spracherkennungssystem.
  • Dynamische Programmierung ist eine mathematische Technik, die den kumulativen Abstand entlang des optimalen Weges findet, ohne den Abstand entlang aller möglichen Wege errechnen zu müssen. Die Anzahl von Wegen, längs denen der kumulative Abstand bestimmt wird, kann weiter verringert werden durch Plazieren gewisser Einschränkungen des DP-Prozesses. Beispielsweise kann angenommen werden, daß der optimale Weg immer vorwärts geht mit einer nicht negativen Steigung, anderenfalls wird eines der Wörter eine Zeitumkehrversion des Anderen sein. Eine andere Beschränkung, die bezüglich des DP-Prozesses angewandt werden kann, ist das Beschränken des Maximalumfangs an Zeitkompression/Dehnung des eingegebenen Wortes bezüglich des Bezugswortes. In diesem Ausführungsbeispiel wird die Zwangsbedingung realisiert durch Begrenzen der Anzahl von Rahmen, die übersprungen oder im Anpaßprozeß wiederholt werden können. Beispielsweise wird in 19 die Rahmensequenz zwangsweise eingeschränkt, so daß beim Anpassen des Rahmens fk zum Rahmen fj m und dann fk+1 die Anpassung mit dem Rahmen fj m, fj+1 m, fj+2 m oder fj+3 m erfolgen. Wenn folglich Parameterrahmen fk des eingegebenen Wortes und Parameterrahmen fj m vom Wortmodell auf dem optimalen Weg liegt, dann erfordert die obige Zwangsbedingung, daß der unmittelbar vorangehende Punkt auf dem optimalen Weg entweder (k – 1, j), (k – 1, j – 1), (k – 1, j – 2) oder (k – 1, j – 3) sein, wie in 20 dargestellt.
  • 18 zeigt die "gültigen Wege", die sich ausbreiten bis zum Rahmen fk-1, der mögliche Anpassungen zwischen dem eingegebenen Wort und dem Wortmodell darstellt. Wenn Rahmen fk der Erkennungseinheit 17 eingegeben ist, hat jeder gültige Weg den Lokalabstand zwischen dem laufenden Rahmen fk und dem Rahmen des Wortmodells, der am Ende dieses gültigen Weges ist, der dem kumulativen Abstand hinzugefügt wird. Wenn eine Anzahl gültiger Wege übereinstimmt mit demselben Punkt, dann wird der gültige Weg mit dem kleinsten kumulativen Abstand fortgesetzt, und die anderen werden ausrangiert. In 18 werden beispielsweise Wege A, B und C am Punkt (k, j) übereinstimmen, und der Weg (A, B oder C) mit dem geringsten kumulativen Abstand wird fortgesetzt, wohingegen die anderen ausrangiert werden.
  • 71A Wenn D (k, j) der kumulative Abstand längs des gültigen Weges vom Anfang des Wortes zum Punkt (k, j) ist, dann gilt:
    Figure 00320001
  • Dann folgt mit den obigen Zwangsbedingungen D(k, j) = d(k, j) + min(D(k – 1, j), D(k – 1, j – 1), D(k – 1, j – 2), D(k – 1, j – 3)] (6)
  • Mit den obigen Zwangsbedingungen muß der Wert von D(0, 0) gleich d(0, 0), d(1, 0), d(2, 0) oder d(3, 0) sein, da alle möglichen Wege an einem dieser Punkte beginnen müssen. Beginnt man von einem der Startpunkte, dann kann folglich der Wert von D(k, j) über eine rekursive Verarbeitungsroutine bestimmt werden. Wenn die Routine das Ende der anzupassenden Worte erreicht hat, stellt der minimale kumulative Abstand, errechnet durch den DP-Prozeß, die Bewertung für den besten Weg der Anpassung der beiden Wörter dar. Wenn die eingegebene Äußerung, die zu erkennen ist, eine Sequenz von Wörtern enthält, dann müssen Rückwärtszeiger verwendet werden, und um die Richtung aufzuzeigen, die zu nehmen ist, so daß es möglich ist, nachdem der DP-Prozeß das Ende des optimalen Weges identifiziert hat, die eingegebene Äußerung zu erkennen durch Rückverfolgen gemäß den Rückwärtszeigern.
  • Obwohl der zuvor beschriebene DP-Prozeß eine große Rechenleistungseinsparung bereitstellt, verglichen mit der erschöpfenden Suche aller möglichen Wege, kann das restliche Rechnen wesentlich sein, insbesondere wenn jedes ankommende Wort mit einer großen Anzahl von Wortmodellen zur Anpassung zu vergleichen ist. Eine mögliche Einsparung des Rechnens, das die Genauigkeit nicht bedeutsam beeinträchtigt beim Erkennungsergebnis, ist folglich wünschenswert. Eine mögliche Recheneinsparung ist die Vermeidung von Wegen, die schlecht von der vorherigen Ausbreitung bewertet sind. Dies ist manchmal bekannt als Vermindern der Zweige eines Suchraums, weil die wachsende Wege gleich wie ein Baum verzweigt sind. Durch Vermindern der Zweige eines Suchraums in dieser Weise wird nur ein enges Band möglicherweise berücksichtigt, das auf der Seite des besten Weges liegt. Es ist anzuerkennen, daß bei der Anwendung des Verminderns der Zweige eines Suchraums nicht garantiert werden kann, daß der dynamische Programmierungsprozeß den optimalen Weg findet. Mit einem Schwellwert für das Vermindern der Zweige eines Suchraums, der den durchschnittlichen Umfang des Errechnens reduziert, beispielsweise um den Faktor 5 oder 10, werden richtige Wege fast immer erzielt, bei denen die Wörter fast gleich sind.
  • In diesem Ausführungsbeispiel verwendet der in 2 gezeigte Erkennungsblock einen dynamischen Programmierungsanpassungsprozeß, der dem zuvor beschriebenen gleicht, um die Sequenz der Parameterrahmen zur Äußerung anzupassen, die mit den Wortmodellen 19 und dem Störmodell 23 zu erkennen ist.
  • Wiedererkennungssuche
  • Ein Merkmal des Spracherkennungssystems gemäß diesem Ausführungsbeispiel ist die Art und Weise, in der dynamische Programmierungsprozeß implementiert wird. Dieses Ausführungsbeispiel macht insbesondere Verwendung von der Tatsache, daß die in der obigen Gleichung (6) ausgeführte minimale Rechnung, das heißt, min[D(k – 1, j), D(k – 1, j – 1), D(k – 1, j – 2), D(k – 2, j – 3)] (7)nicht abhängig ist vom laufenden Rahmen fk, der in Verarbeitung ist. Dieser Teil der Gleichung (6) kann folglich errechnet werden, wenn der vorherige Rahmen fk-1 verarbeitet wird.
  • Die Art und Weise, in der der dynamische Programmierungsprozeß implementiert wird, ist nachstehend anhand der 21 bis 31 beschrieben.
  • 21 ist ein Ablaufdiagramm, das die im Erkennungsblock 17 ausgeführte Verarbeitung darstellt, wenn eine eingegebene Äußerung zu erkennen ist. Das System verarbeitet die Parameterrahmen der eingegebenen Äußerung in der Sequenz, in der der Prozessor 15 diese erzeugt. Zu diesem Zwecke ist eine Rahmenzählervariable k vorgesehen, die in Schritt S41 auf null initialisiert wird und danach nach jedem in Schritt S61 verarbeiteten Rahmen inkrementiert wird. Jeder Rahmen, der in Verarbeitung ist, wird in Schritt S47 verwendet zum Aktualisieren der kumulativen Abstände der restlichen gültigen Wege innerhalb eines jeden Wortmodells. Zu diesem Zwecke ist ein Wortzähler w vorgesehen, der in Schritt S43 initialisiert wird und nach Schritt S47 in Schritt S49 inkrementiert wird. In Schritt S45 überprüft das System, um herauszufinden, ob alle Wortmodelle unter Verwendung des laufenden Rahmens verarbeitet worden sind, das heißt, die Überprüfung gilt dem Herausfinden, ob der Wortzähler w kleiner in seinem Stand als die Anzahl dem System nw bekannten Wörter ist.
  • Ist einmal ein jedes Wortmodell unter Verwendung des laufenden Rahmens fk verarbeitet worden, durchläuft die Verarbeitung Schritt S51, bei dem die Knoten des Sprachmodells 21, die gezeigt sind in 17a, verarbeitet werden unter Verwendung des laufenden Rahmens. Die in Schritt S51 ausgeführte Verarbeitung nimmt Rücksicht auf die Situation, bei der der laufende Parameterrahmen Ruhe am Beginn und am Ende der eingegebenen Sprache entspricht oder zwischen zulässigen Sequenzen von Wörtern in der eingegebenen Sprache. Diese Verarbeitung stellt auch sicher, daß die gültigen Wege durch zulässige Wortsequenzen ausbreiten können.
  • Nachdem in Schritt S51 die Knoten verarbeitet sind, werden die kumulativen Entfernungen für die gültigen Wege, die entweder am Beginn oder in "Eingabezuständen" eines jeden Wortmodells enden, in Schritt S57 aktualisiert. Diese Verarbeitung dient dazu, mit der Situation zu Rande zu kommen, bei der der nächste Parameterrahmen fk+1 angepaßt wird an den Anfang eines Wortmodells, wenn der laufende Parameterrahmen fk mit dem Ende eines anderen Wortmodells angepaßt ist. Um dies zu erreichen, wird der Wortzähler w neu auf null in Schritt S53 initialisiert, und das System überprüft in Schritt S55, ob alle Wortmodelle verarbeitet worden sind. Das System aktualisiert dann in Schritt S57 die kumulativen Entfernungen für die Eingabezustände des laufenden Wortmodells, und die Wortzählung w wird in Schritt S59 inkrementiert. Die Verarbeitung kehrt dann zu Schritt S55 zurück.
  • Nachdem alle Wortmodelle für den laufenden Parameterrahmen fk verarbeitet sind, wird die Parameterrahmenzählervariable k in Schritt S61 inkrementiert. Das System bestimmt dann in Schritt S63, ob es weitere Parameterrahmen in der zu verarbeitenden eingegebenen Äußerung gibt. Dies geschieht durch Vergleichen von k mit der Systemgrenze (LIMIT) und mit dem Ende des Sprachidentifizierers (EOS) in Schritt S63. Die Systemgrenze ist festgelegt durch die Größe des Puffers, der zum Speichern der Sprachabtastwerte dient, die aus ADC 63 kommen, gezeigt in 3.
  • Wenn alle Parameterrahmen der eintreffenden Äußerung verarbeitet sind, dann wird der DP-Prozeß abgeschlossen und ein Rückziehalgorithmus wird verwendet zum Bestimmen des optimalen Weges und von daher des Erkennungsergebnisses. Wenn andererseits das System in Schritt S63 bestimmt, daß es weitere zu verarbeitende Parameterrahmen gibt, dann justiert das System den Schwellwert für das Vermindern der Zweige eines Suchraums in Schritt S65, und die Verarbeitung kehrt zurück zu Schritt S43. Der Schwellwert für das Vermindern der Zweige eines Suchraums Th wird in Schritt S67 auf die Grenze der Anzahl gültiger Wege justiert, die in den Schritten S47, S51 und S57 verarbeitet werden, wenn der nächste eingegebene Rahmen in Verarbeitung ist.
  • Die in Schritt S47 von 21 ausgeführte Verarbeitung ist nachstehend in mehr Einzelheiten anhand der 22 bis 26 für ein spezielles Beispiel eines Wortmodells beschrieben. Insbesondere ist in 22 ein Beispielwortmodell 201 gezeigt, das über eine Sequenz von Zuständen S0 bis S9 verfügt die während der Lernsitzung hergeleitet werden, und ein Ausgangszustand SD am Ende des Wortmodells 201, dessen Zweck nachstehend beschrieben ist.
  • Jeder Zustand vom Wortmodell 201 ist zugehörig mit einem kumulativen Abstandsspeicher D[S], der den kumulativen Abstand eines gültigen Weges speichert, der an diesem Zustand endet. Das Wortmodell 201 in diesem Ausführungsbeispiel gehört auch zu einer Liste 203 laufender Aktiver für den laufenden Rahmen fk, der in absteigender Reihenfolge die Zustände im Wortmodell auflistet, die am Ende eines gültigen Weges für den laufenden Rahmen fk gegeben sind. Jeder Zustand der laufenden Aktivliste 203 speichert den kumulativen Abstand des gültigen Weges, der bei diesem Zustand endet. In diesem speziellen Beispiel listet die laufende Aktivliste 203 für den laufenden Rahmen fk die Zustände S7, S5, S4, S3, S2, S1 und S0 ab. Diese Zustände der laufenden Aktivliste 203 werden als Aktivzustände bezeichnet. In diesem Ausführungsbeispiel hat das Wortmodell 201 auch eine Zugehörigkeit mit einer neuen Aktivliste 205, die vervollständigt wird während der Verarbeitung, die der Schritt S47 ausführt, und der die Zustände des Wortmodells 201 auflistet, die am Ende eines gültigen Weges für den nächsten Rahmen fk+1 liegen.
  • Die Bedeutung der laufenden Aktivliste 203 und der neuen Aktivliste 205 ist nachstehend anhand 23 erläutert. Insbesondere gezeigt sind in 23 sieben gültige Wege p1 bis p7, die sieben mögliche Anpassungen zwischen ankommendem Wort und dem Wortmodell 201 bis zum laufenden Rahmen fk darstellen. Wie gezeigt, enden die sieben gültigen Wege p1 bis p7 beim Wortmodell 201 der Zustände S7, S5, S4, S3, S2, S1 beziehungsweise S0, und es sind diese Endzustände der gültigen Wege, die in absteigender Reihenfolge aufgelistet werden in der laufenden Aktivliste 203. Zur Bestimmung der Zustände, die in der neuen Aktivliste 205 sein sollen, das heißt, zum Bestimmen des Restes für den nächsten eingegebenen Rahmen fk+1 müssen die Zustandsübergänge berücksichtigt werden, die zulässig sind von einem eingegebenen Parameterrahmen zum nächsten.
  • Der Maximalumfang der Zeitkompression der Bezugsmodelle bezüglich der ankommenden Äußerung ist bestimmt durch die Maximalzahl an Zuständen, die zwischen benachbarten Rahmen der ankommenden Äußerung übersprungen werden können. In diesem Ausführungsbeispiel ist die Anzahl auf zwei gesetzt, das heißt der DP-Prozeß folgt dem Zustandübergangsdiagramm, das in 19 gezeigt ist. Der Maximalumfang der Zeitdehnung der Bezugsmodelle bezüglich der ankommenden Äußerung ist bestimmt durch die Maximalzahl aufeinanderfolgender eintreffender Rahmen, die zum selben Zustand angepaßt werden können. In diesem Ausführungsbeispiel können nur drei aufeinanderfolgende Rahmen zum selben Zustand angepaßt werden. Um diese Situation zu überwachen, ist jedem Zustand S ein Selbstwiederholzähler zugeordnet, SELF, der inkrementiert wird, wann immer der gültige Weg an diesem Zustand vom eingegebenen Rahmen fk bis zum nächsten fk+1 endet. Beispielsweise kann folglich Weg p5 sich ausbreiten längs aller gestrichelter Wege 207, wie in 23 gezeigt. Die anderen Wege p1 bis p4 und p6 bis p7, gezeigt in 23, breiten sich in gleicher Weise aus. Wenn zwei oder mehr Wege am selben Punkt gleich sind, dann wird der Weg mit der geringsten kumulativen Entfernung beibehalten, und die anderen werden aussortiert. Wenn des weiteren der kumulative Abstand eines Weges größer als der Verminderungsschwellwert für zwei eines Suchraums ist, dann wird auch dieser Weg ausrangiert. Auf diese Weise werden neue Wege fortlaufend erstellt, wohingegen andere ausrangiert werden. Das Ziel des Verminderns der Zweige eines Suchraumschwellwertes gilt der Begrenzung der Anzahl gültiger Wege, die für jeden eingegebenen Parameterrahmen verarbeitet werden, wodurch eine Grenze dem Zeitumfang und dem Speicher gesetzt wird, der für den Algorithmus erforderlich ist.
  • 24 zeigt in mehr Einzelheiten die Verarbeitungsschritte, die Schritt S47 von 21 ausführen. In Schritt S71 wird insbesondere ein Zeiger LA initialisiert und der kumulative Abstand, der im Ausgangszustand gespeichert wird, das heißt, D[SD] vom Wortmodell 201 wird auf einen sehr großen Wert HUGE gesetzt. Der Zeiger LA wird verwendet zum Zeigen auf den letzten Aktivzustand, der in die neue Aktivliste 205 gesetzt wurde. Anfänglich gibt es keine Aktivzustände in der neuen Aktivliste 205, und so wird der Zeiger LA eingestellt, auf den Ausgangszustand SD zu zeigen. In Schritt S73 überprüft das System, um herauszufinden, ob es irgendwelche Aktivzustände in der laufenden Aktivliste 203 gibt. Mit anderen Worten, es wird überprüft, ob es irgendwelche gültigen Wege gibt, die im laufenden Wort für den laufenden Rahmen fk enden. Im vorliegenden Beispiel gibt es sieben Aktivzustände in der laufenden Aktivliste 203, und das System verarbeitet jeden der Reihe nach. Eine Zählvariable i steht bereit, die verwendet wird zum Durchzählen der Aktivzustände auf der laufenden Aktivliste 203, und die in Schritt S75 auf null gesetzt und in Schritt S79 inkrementiert wird, bis alle Aktivzustände in der laufenden Aktivliste 203 verarbeitet sind. Das System bestimmt, ob alle Aktivzustände durch Vergleich verarbeitet sind, und zwar zum Vergleich in Schritt S81 des Wertes der Zählvariablen I mit der Anzahl na von Aktivzuständen in der laufenden Aktivliste 203.
  • Sind einmal alle Aktivzustände der laufenden Aktivliste 203 verarbeitet worden, wird die neue Aktivliste 205 während der Verarbeitung in Schritt S77 erzeugt und in Schritt S83 geändert, um die laufende Aktivliste 203 für den nächsten Rahmen fk+1 in der zu verarbeitenden eingegebenen Äußerung zu sein. In der Praxis wird dies erreicht durch Umsortieren der Zeiger, die Verwendung finden zur Anzeige der beiden Aktivlisten. Die alte laufende Aktivliste wird dann während der Verarbeitung des nächsten eingegebenen Rahmens fk+1 überschrieben. Letztlich wurde in Schritt S85 der letzte Zustand, der aktiviert und auf die neue Aktivliste 205 gegeben wurde, vom Zeiger LA aufgezeigt und gespeichert zur Verwendung in Schritt S57, wie in 21 gezeigt.
  • Eine Übersicht der in Schritt S77 ausgeführten Verarbeitung ist nachstehend unter Hinzuziehung von Beispielen, aktiver Zustände S7 und S5 beschrieben, die die Enden der Wege p1 beziehungsweise p2 sind, wie in 23 gezeigt. 25 zeigt einen Teil der beiden gültigen Wege p1 und p2, die bei Zuständen S7 beziehungsweise S5 enden beim laufenden Rahmen fk. Die gestrichelten Linien in 25 zeigen die Wege, in denen jeder der beiden Wege p1 und p2 sich beim nächsten Rahmen fk+1 ausbreiten kann. Wie durch die gestrichelte Linie 213 aufgezeigt, ist es für den Weg p1 möglich, sich in ein anderes Wort bei Rahmen fk+1 zu hineinzuerstrecken. Der kumulative Abstand vom Weg p1 (ist gespeichert im aktiven Zustand S7) wird folglich kopiert in den Ausgangszustand Sd. Wie durch die gestrichelten Linien 215, 217 und 219 aufgezeigt, kann sich der Weg p1 auch zum Zustand S9 ausbreiten, zum Zustand S8 beziehungsweise zum Zustand S7. Der kumulative Abstand vom Weg p1 wird ebenfalls in diese Zustände kopiert. Die Zustände S9, S8 und S7 werden dann der neuen Aktivliste 205 hinzugefügt (aber der Ausgangszustand nicht, der niemals aktuell mit den einkommenden Rahmen verglichen wird, und wird lediglich verwendet zum Speichern des minimalen kumulativen Abstands aller Wege, die das Wort verlassen), und der letzte Aktivzeiger LA wird eingestellt zum Anzeigen des letzten hinzugekommenen Zustands (das heißt, Zustand S7).
  • Unter Bezug auf 26a ist die neue Aktivliste 205 nach dem ersten Zustand S7 auf der laufenden Aktivliste 203 gezeigt, die verarbeitet worden ist. Wie gezeigt, sind Zustand S9, Zustand S8 und Zustand S7 in den ersten drei Elementen der neuen Aktivliste 205 jeweils vorgesehen, und der letzte Aktivzähler LA zeigt auf Zustand S7.
  • Unter Rückbezug auf 25, wie aufgezeigt durch gestrichelte Linien 221, 223, 225 und 227, kann Weg p2 sich ausbreiten zum Zustand S8, zum Zustand S7, zum Zustand S6 beziehungsweise zum Zustand S5. Jedoch ist der kumulative Abstand zum Weg p2 nicht einfach in diese Zustände kopiert, da zwei der Zustände S8 und S7 bereits ein kumulativer Abstand sind, der gespeichert ist für den nächsten Rahmen fk+1. Hinsichtlich dieser beiden Zustände wird ein Vergleich zwischen den kumulativen Zuständen durchgeführt, bereits gespeichert, und die kumulativen Abstände, die dem Weg p2 zugehörig sind, und der kleinste wird in diese beiden Zustände kopiert. Mit anderen Worten, der in S8 und S7 gespeicherte kumulative Abstand für die in 23 gezeigten Wege und nach Verarbeitung des Aktivzustand S5 wird angegeben mit min (D[S7], D[S5]). Andererseits kann der im aktiven Zustand S5 gespeicherte kumulative Abstand direkt kopiert werden in den S6, da ein kumulativer Abstand für den nächsten Rahmen fk+1 dort nicht zuvor gespeichert wurde. Die beiden Zustande S6 und S5 werden dann der neuen Aktivliste 205 hinzugegeben (da Zustand S5 nicht zweimal wiederholt wurde), und der letzte Aktivzeiger LA wird eingestellt, auf den Zustand S5 zu zeigen.
  • Unter Bezug auf 26b wird die neue Aktivliste 205, die dargestellt ist, nachdem Aktivzustand S5 auf der Aktivliste 203 verarbeitet worden ist. Wie gezeigt, sind Zustände S9, S8, S7, S6 und S5 die ersten fünf Elemente jeweils in der neuen Aktivliste 205, und der letzte Aktivzeiger LA zeigt auf Zustand S5. Die restlichen Aktivzustände auf der laufenden Aktivliste 203 werden in identischer Weise verarbeitet, und die Verarbeitung schreitet dann voran zu Schritt S49, der in 21 gezeigt ist, wobei der Wortzähler inkrementiert wird.
  • Der letzte Aktivzähler LA steht so bereit, daß das System keinen Einblick in die neue Aktivliste 205 hat, um jene Zustände zu identifizieren, die einen Vergleich erfordern, und jene, die ihn nicht erfordern. Wenn der Zustand gleich oder hinter dem Zustand ist, der durch den letzten Aktivzeiger LA aufgezeigt ist, dann ist ein Vergleich erforderlich. Anderenfalls kann der kumulative Abstand einfach in den Zustand kopiert werden.
  • Die in Schritt S77, gezeigt in 24, ausgeführte Verarbeitung ist nun in mehr Einzelheiten anhand der 27a und 27b beschrieben für das Beispiel des in 22 gezeigten Wortmodels 201. Der erste Aktivzustand S, der zu verarbeiten ist gemäß i = 0 in Schritt S77 ist der Zustand S7. In Schritt S91 von 27a überprüft das System folglich, um herauszufinden, ob der kumulative Abstand für den gültigen Weg, der bei Zustand S7 endet, kleiner ist als der Schwellwert Th zum Vermindern der Zweige eines Suchraums, das heißt, D[S7] wird mit Th verglichen. Ist D[S7] größer als der Schwellwert Th zum Vermindern der Zweige eines Suchraums, dann wird dieser Weg ausrangiert, und die Verarbeitung kehrt zurück zu Schritt S79, der in 24 gezeigt ist. Ist D[S7] kleiner als der Schwellwert Th zum Vermindern der Zweige eines Suchraums, dann schreitet die Verarbeitung fort zu Schritt S92, in dem die variable ACOUNT, die verwendet wird zum Halten der Zählung der Gesamtzahl aktiver verarbeiteter Zustände für den laufenden Rahmen fk inkrementiert. Dann errechnet das System in Schritt S93 den lokalen Abstand zwischen dem laufenden Aktivzustand S7, der in Verarbeitung ist, und dem laufenden Rahmen fk, der in Verarbeitung ist, und addiert diese kumulativen Abstände D[S7].
  • Im vorliegenden Ausführungsbeispiel wird die nachstehende Euklid'sche Abstandsgleichung verwendet, um ein Maß dessen lokalen Abstand zwischen dem laufenden Rahmen fk und dem laufenden Aktivzustand S herzuleiten: d(S, fk) = ||S – fk||2 (8)
  • Nachdem der kumulative Abstand D[S7] in Schritt S93 aktualisiert wurde, überprüft das System in Schritt S95, ob der gültige Weg, der beim laufenden Aktivzustand S7 endet, das laufende Wort beim nächsten eingegebenen Rahmen fk+1 verlassen kann. Mit den obigen DP-Zwangsbedingungen impliziert dies das Bestimmen, ob der Zustand drei Zustände vor dem laufenden Aktivzustand S verarbeitet wird und dies vor dem letzten Zustand im Wortmodell 201 geschieht. Da der Zustand bei drei Zuständen vor dem laufenden Aktivzustand S7 im letzten Zustand S9 vergangen ist, wird ein Zeiger j gesetzt, um den vorhandenen Zustand SD am Ende des Wortmodells 201 in Schritt S97 einzusetzen. In Schritt S101 wird der vom Zeiger j aufgezeigte Zustand verglichen mit dem vom letzten Aktivzeiger LA aufgezeigten Zustand. Da dies der erste Aktivzustand in der laufenden Aktivliste 201 ist, die zu verarbeiten ist, wird der letzte Aktivzeiger LA auf den Ausgangszustand SD zeigen (siehe Schritt S71 in 24). Folglich schreitet die Verarbeitung fort zu Schritt S103, bei dem der im Zustand gespeicherte kumulative Abstand vom Zeiger j gezeigt wird, das heißt, der Ausgangszustand SD wird verglichen mit dem kumulativen Abstand für den gültigen Weg p1, der am laufenden Aktivzustand endet S7 endet, der gerade verarbeitet wird.
  • Der kumulative, im Ausgangszustand gespeicherte Abstand, das heißt, D[SD], ist auf einen großen Wert HUGE in Schritt S71 eingestellt, wie in 24 gezeigt, und wird folglich größer als der kumulative Abstand, der im laufenden Aktivzustand S7 verarbeitet wird. Die Verarbeitung schreitet folglich fort zu Schritt S105, bei dem D[S7] kopiert wird in D[SD]. Als nächstes wird in Schritt S107 der Selbstwiederholzähler für den Zustand, aufgezeigt durch Zeiger j, das heißt der Ausgangszustand SD auf Null eingestellt. Dann wird der Zeiger j in Schritt S109 dekrementviert und nun zu Punkten zu Zustand S9, und die Verarbeitung kehrt zurück zu Schritt S101.
  • Zu dieser Zeit ist der vom Zeiger j (Zustand S9) aufgezeigte Zustand vor dem Zustand durch den letzten Aktivzeiger LA (Zustand SD) aufgezeigt, und folglich schreitet die Verarbeitung fort zu Schritt S111, der in 27b gezeigt ist. In Schritt S111 überprüft das System, ob der vom Zeiger j aufgezeigte Zustand, das heißt der Zustand S9, gleich dem laufenden Aktivzustand S7 ist, der gerade verarbeitet wird. Ist dies nicht so, dann schreitet folglich die Verarbeitung fort zu Schritt S113, bei dem der im Zustand S9 gespeicherte kumulative Zustand gleich dem kumulativen Abstand gemacht wird, der im laufenden Aktivzustand S7 gespeichert ist. Mit anderen Worten, der kumulative Abstand des Weges p1 wird kopiert in den Zustand S9. Dann wird in Schritt S115 der Zustand S9 der neuen Aktivliste 205 zugeführt, die in 22 gezeigt ist. In Schritt S117 wird der Selbstwiederholzähler, der dem Zustand S9 geordnet ist, auf 0 zurückgesetzt, und in Schritt S119 wird der Zeiger j dekrementviert und zeigt nun zum Zustand S8. Die Verarbeitung kehrt dann zurück zu Schritt S111, und Zustand S8 wird in derselben Weise verarbeitet. Nachdem der Zustand S8 in den Schritten S113, S115 und S117 verarbeitet ist, wird j in Schritt S119 dekrementviert und zeigt nun auf den Zustand S7, der ebenfalls der laufende Aktivzustand ist, der in Verarbeitung ist. An dieser Stelle schreitet folglich die Verarbeitung fort zu Schritt S121, indem der Selbstwiederholzähler, der dem Zustand S7 zugehörig ist, überprüft, ob der gültige Weg bei Zustand S7 endet und auch dort geendet ist für die Vergangenheit vor zwei Rahmen der eingegebenen Äußerung. Wenn der Selbstwiederholzähler, der dem Zustand S7 zugeordnet ist, gleich zwei ist, dann wird der Zustand S7 der neuen Aktivliste 205 nicht zugefügt, und die Verarbeitung schreitet fort zu Schritt S123, bei dem der letzte aktive Zeiger LA eingestellt wird, auf den laufenden Aktivzustand plus eins zu zeigen, das heißt, auf den Zustand S8. Die Routine stellt sicher, daß, wenn der Selbstwiederholzähler, der dem laufenden Aktivzustand zugeordnet ist, gleich zwei ist, daß dann der gültige Weg, der am laufenden Zustand endet, daran gehindert wird, sich zum selben Zustand beim nächsten Rahmen fk1 auszubreiten. Im Beispiel des in 23 gezeigten Weges kam der Weg p1, der bei Zustand S7 für den laufenden Rahmen fk endet, von Zustand S6, und folglich wird der Selbstwiederholzähler auf null stehen. Folglich wird Zustand S7 der neuen Aktivliste 205 in Schritt S125 hinzugefügt. Der Selbstwiederholzähler für Zustand S7 wird dann in Schritt S127 inkrementviert, und der letzte Aktivzeiger LA wird eingestellt, auf den laufenden Aktivzustand zu zeigen, das heißt, auf Zustand S7, und zwar in Schritt S129.
  • Nach Schritt S129 oder nach Schritt S123 schreitet die Verarbeitung fort zu Schritt S131, bei dem der kumulative Abstand, gespeichert im laufenden Aktivzustand S7, verglichen wird mit dem minimalen kumulativen Abstand MINSCORE für alle gültigen Wege in allen Worten, die für den laufenden Rahmen fk verarbeitet worden sind. Wenn der im Zustand S7 gespeicherte kumulative Abstand geringer als MINSCORE ist, dann wird MINSCORE ersetzt durch im Zustand S7 in Schritt S133 gespeicherten kumulativen Abstand, und die Verarbeitung kehrt zurück zu Schritt S79, der in 24 gezeigt ist. Wenn der in MINSCORE gespeicherte kumulative Abstand kleiner als der kumulative Abstand ist, der dem laufenden Zustand S7 zugehörig ist, dann kehrt die Verarbeitung zurück zu Schritt S79, der in 24 gezeigt ist. Nach Rückkehr auf Schritt S79 wird die Zählvariable i inkrementviert, und der nächste Aktivzustand in der laufenden Aktivliste 203, das heißt, Zustand S5, wird in Schritt S77 verarbeitet.
  • Der Aktivzustand S5 wird in gleicher Weise wie der zuvor beschriebene Aktivzustand S7 verarbeitet. Vorausgesetzt, daß insbesondere der kumulative Abstand des gültigen Weges, der bei Zustand S5 endet, geringer als der Schwellwert für Vermindern der Zweige eines Suchraums Th ist, dann errechnet das System in Schritt S93 den Ortsabstand zwischen dem laufenden Aktivzustand S5 und dem laufendem Rahmen fk, der in Verarbeitung ist, und fügt diesen dem kumulativen Abstand hinzu, der im laufenden Aktivzustand S5 gespeichert ist. Dann bestimmt das System in Schritt S95, daß der Weg p2, der am laufenden Aktivzustand S5 endet, sich nicht in ein anderes Wort beim nächsten Rahmen fk+1 erstrecken kann, aufgrund der obigen DP Zwangsbedingungen. Mit anderen Worten, drei Zustände vor Zustand S5 sind nicht gleich oder vor Zustand SD, und folglich schreitet die Verarbeitung fort zu Schritt S99, bei dem der Zeiger j eingestellt wird, auf den Zustand S5 plus drei zu zeigen, das heißt, auf Zustand S8. Der vom Zeiger j aufgezeigte Zustand wird dann verglichen mit dem Zustand, den der letzte Aktivzeiger LA in Schritt S101 zeigt.
  • Der letzte Aktivzeiger LA zeigt auf Zustand S7, und Zeiger j zeigt auf Zustand S8. Folglich schreitet die Verarbeitung fort zu Schritt S103, bei dem der bereits in Zustand S8 (als Ergebnis der Verarbeitung vom Aktivzustand S7), bereits gespeicherte kumulative Abstand verglichen wird mit dem kumulativen Abstand, der im Aktivzustand S5 gespeichert ist. Wenn der in S8 gespeicherte kumulative Abstand größer als der kumulative Abstand ist, der im Aktivzustand S5 gespeichert ist, dann wird dieser ersetzt durch den kumulativen Abstand, der im Aktivzustand S5 gespeichert ist. Dann wird der Selbstwiederholzähler, der dem Zustand S8 geordnet ist, in Schritt S107 auf Null zurückgesetzt, und der Zeiger j wird in Schritt S109 dekrementviert, so daß er nun auf Zustand S7 zeigt. Die Verarbeitung kehrt dann zurück zu Schritt S101, bei dem eine gleiche Verarbeitung zur Ausführung kommt.
  • Diese rekursive Verarbeitungsroutine wird ausgeführt bezüglich aller laufenden Aktivzustände in allen Bezugswörtern, die dem System bekannt sind.
  • Nach Verarbeitung eines jeden Wortes in der obigen Weise für den laufenden Rahmen fk wird jeder Knoten im Sprachmodell 21 der Reihe nach verarbeitet. Wie zuvor beschrieben, bestimmt das Sprachmodell 21 die Sequenzen von Wörtern, die zulässig sind. Diese Information wird definiert durch die Knoten und insbesondere durch die Wörter, die mit dem Eingang und Ausgang verbunden sind. Die Verarbeitung der Knoten in Schritt S51 von 21 stellt sicher, daß gültige Wege sich nur durch zulässige Sequenzen von Wörtern ausbreiten. Die in Schritt S51 ausgeführte Verarbeitung ist nachstehend anhand 28 in mehr Einzelheiten beschrieben.
  • Ursprünglich wird vor der Verarbeitung irgendeiner der Knoten der Ortsabstand zwischen dem Rahmen in Schritt S151 errechnet, der den Geräuschhintergrund des laufenden Rahmens fk (das heißt, d(Geräusch, fk)) darstellt. Dann wird in Schritt S153 ein Knotenzeiger v initialisiert, um auf den Startknoten N0 zu weisen. Dann wird in Schritt S155 der kumulative Abstand im Knoten gespeichert, der vom Knotenzeiger v, das heißt D[v] auf diesen zeigte, verglichen mit dem Schwellwert Th zum Vermindern der Zweige eines Suchraums. Wenn D[v] geringer ist als der Schwellwert Th zum Vermindern der Zweige eines Suchraums, dann schreitet die Verarbeitung fort zu Schritt S157, bei dem d (Geräusch, fk) dem kumulativen Abstand hinzugefügt, der im laufenden Knoten v gespeichert wird, der in Verarbeitung ist. Dann vergleicht in Schritt S159 das System D[v] mit dem im Minimalwertspeicher MINSCORE gespeicherten Wert und kopiert diesen in MINSCORE in Schritt S161, wenn dieser kleiner ist. Der Zählwert ACOUNT (der die Anzahl aktiver Zustände und Knoten aufzeigt, die für den laufenden Rahmen verarbeitet worden sind) wird dann in Schritt S163 inkrementiert, und die Verarbeitung schreitet fort zu Schritt S165. Wenn D[v] größer als der Schwellwert Th zum Vermindern der Zweige eines Suchraums ist, dann wird bei Rückkehr zu Schritt S155 dieser auf den großen Wert HUGE in Schritt S167 gesetzt, und die Verarbeitung schreitet fort zu Schritt S165.
  • Die in Schritt S165 und in Schritt S168 ausgeführte Verarbeitung ist für einen in 29 gezeigten Beispielknoten N nachstehend erläutert, wobei es drei Wörter "get", "save" und "load" gibt, die mit ihren Eingängen und den Wörtern "an" und "the" verbunden sind, die wiederum mit den Ausgängen verbunden sind. Obwohl das Erzeugen eines solchen Knotens nicht möglich ist unter Verwendung der in 17b gezeigten Prozedur, wird dieses Beispiel gewählt, um zu zeigen, daß der dynamische Programmierprozeß für komplexere Sprachmodelle geeignet ist. Letztliche Zustandsgrammatiken, bei denen insbesondere Knoten wie der in 29 gezeigte, sind Allgemeinplätze.
  • In Schritt S165 bestimmt das System das Minimum aller kumulativen Abstände, die in den nächsten Ausgangszuständen für die Wörter gespeichert sind, die verbunden sind mit dem Eingang von Knoten N, das heißt, die Ausgangszustände der Wörter "get", "save" und "load". Für den Allgemeinfall wird die Gleichung dargestellt mit
    Figure 00460001
    wobei Iw[v] alle Wörter repräsentiert, die verbunden sind mit dem Eingang vom Knoten v. Nachdem das System diesen minimalen kumulativen Abstand für Knoten N bestimmt hat, wird er kopiert in den kumulativen Abstand D[N], der gespeichert ist im Knoten N, wenn er kleiner ist als der dort bereits gespeicherte Abstand. Tatsächlich ist dies eine Bestimmung, ob es einen gültigen Weg gibt, der von einem der Wörter kommt, die verbunden sind mit dem Eingang des Knotens, der eine kürzere kumulative Entfernung als die der kumulative Abstand des Weges hat, der sich noch immer im Knoten ausbreitet.
  • Für gültige Wege ist es möglich, sich innerhalb des Knotens auszubreiten, weil es möglich ist, daß es Spalten davor gibt, zwischen und am Ende der Wörter in der Phrase, die zu dem Hintergrundgeräuschrahmen paßt. Die Möglichkeit eines gültigen Weges, der im Knoten von einem Eingangsrahmen zum nächsten bleibt, ist mit einem Pfeil 231 in 29 dargestellt, der den Knoten N verläßt und zu diesem zurückkehrt. Anders als die Zustände der Wortmodelle kann ein Weg in einem Knoten für eine Anzahl aufeinanderfolgender Eingangsrahmen bleiben. Nachdem das System die Verarbeitung von Schritt 165 ausgeführt hat, wird der im Knoten N gespeicherte kumulative Abstand kopiert, und zwar in Schritt S168, in den zeitweiligen Speicher INCSORE, der dargestellt ist durch Kästen 233 und 235 für Wörter "an" beziehungsweise "the", wenn sie kleiner sind als der dort bereits gespeicherte Wert. Ein Vergleich muß erfolgen, da es möglich ist, daß ein Wort verbunden sein kann mit dem Ausgang oder von mehr als einem Knoten, und es ist nur der Weg, der den minimalen kumulativen Abstand hat, der sich in das Verbindungswort ausbreitet. Der kumulative Abstand, der im zeitweiligen Speicher INSCORE eines Wortes gespeichert ist, wird verwendet zum Aktualisieren der Eingabezustände und des Wortes während der Verarbeitung in Schritt S57, der in 21 gezeigt ist.
  • Das System überprüft dann in Schritt S169, ob D[v] dem großen Wert HUGE gleicht. Ist dies der Fall, dann zeigt dies auf, daß keine gültigen Wege durch den laufenden Knoten v durchgehen oder dort enden in einem Wort, das verbunden ist mit dem nächsten Rahmen fk+1. Wenn D[v] kleiner ist als der große Wert HUGE, dann wird ein gültiger Weg entweder enden am Knoten v oder durch diesen durchlaufen in ein Wort, das damit verbunden ist, zum nächsten Rahmen fk+1. Der Zähler PACOUNT, der die Anzahl potentieller Aktivzustände (und Knoten) repräsentiert beim nächsten eingegebenen Rahmen fk+1 wird folglich in Schritt S171 inkrementiert, da der Ruhezustand, der zu diesem Knoten gehört, aktiv beim nächsten eingegebenen Rahmen fk+1 sein kann. Der Knotenzeiger v wird dann in Schritt S173 inkrementiert und wird auf den nächsten Knoten im Sprachmodell 21 zeigen. Das System überprüft dann, ob alle Knoten im Sprachmodell 21 in Schritt S175 verarbeitet worden sind durch Überprüfen, ob der Knotenzeiger v auf einen Knoten zeigt, der vor dem Endknoten N im Sprachmodell 21 liegt. Wenn das System die Verarbeitung aller Knoten noch nicht beendet hat, dann kehrt die Verarbeitung zu Schritt S155 zurück, wohingegen bei Verarbeitung aller Knoten dann die Verarbeitung zu Schritt S53 zurückkehrt, der in 21 gezeigt ist.
  • Die in Schritt S57 ausgeführte Verarbeitung, gezeigt in 21, ist nachstehend in mehr Einzelheiten anhand der 30 und 31 für das Wortmodell 201 beschrieben, das in 22 gezeigt ist. In Schritt S181 überprüft das System unter Bezug auf 30, ob der in INSCORE gespeicherte kumulative Abstand dem großen Wert HUGE gleicht. Ist dies der Fall, dann bedeutet das, daß keine gültigen Wege in dieses Wort beim nächsten Zeitpunkt eingehen. Dieses Wort muß folglich nicht erneut verarbeitet werden, so daß die Verarbeitung zu Schritt S207 fortschreitet, bei dem die Anzahl von Aktivzuständen für den nächsten eingegebenen Rahmen fk+1 (wird nun gespeichert in der laufenden Aktivliste 203 aufgrund des Schrittes S83, der in 24 gezeigt ist), und wird dem Zähler PACOUNT hinzugefügt. Die Verarbeitung kehrt dann zurück zu Schritt S59, der in 21 gezeigt ist, wo die Wortzählung inkrementiert wird, so daß das nächste Wortmodell verarbeitet werden kann.
  • Wenn andererseits INSCORE nicht dem großen Wert HUGE gleich ist, dann bedeutet dies, daß ein gültiger Weg ein vorangehendes Wort verlassen hat und in das laufende Wort eintreten kann, das in Verarbeitung ist. Die Zustände des laufenden Wortmodells können folglich erreicht werden durch einen Weg, der sich von einem anderen Wortmodell erstreckt (wird nachstehend als Eingabezustände bezeichnet) und muß aktualisiert werden unter Verwendung des kumulativen Abstands, der in INSCORE gespeichert ist. Im vorliegenden Ausführungsbeispiel mit obigen DP-Zwangsbedingungen werden die Eingabezustände zu Zuständen S0, S1 und S2. Die Aktualisierungsprozedur wird auf folgende Weise erzielt. Zuerst überprüft das System in Schritt S183, ob das Wortmodell, das für das laufende Wort repräsentativ ist, und verarbeitet wird, mehr als drei Zustände enthält (Ausgangszustand nicht enthalten). Wenn es mehr als drei Zustände gibt, dann wird der Zustandszeiger j eingestellt, auf den Zustand S2 in Schritt S185 zu zeigen. Wenn es andererseits weniger als drei Zustände im laufenden Wort gibt, dann wird der Zustandszeiger j in Schritt S187 eingestellt, um auf den Ausgangszustand SD am Ende des in Verarbeitung befindlichen Wortes zu zeigen. Nachdem der Zustandszeiger j eingestellt ist, auf entweder den Zustand SD oder auf den Zustand S2 in den Schritten S187 beziehungsweise S185 zu zeigen, schreitet die Verarbeitung fort zu Schritt S189, bei dem der vom Zeiger j aufgezeigte Zustand verglichen wird mit dem vom letzten Aktivzeiger LA aufgezeigten Zustand.
  • Hinsichtlich der in der Sequenz von Schritten, die in den 27a und 27b gezeigt sind, ausgeführten Verarbeitung muß dann ein Vergleich erfolgen zwischen dem bereits gespeicherten kumulativen Abstand in diesem Zustand und dem kumulativen Abstand, der in INSCORE gespeichert ist, wenn der vom Zeiger j aufgezeigte Zustand vor dem Zustand ist, den der letzte Aktivzähler LA aufzeigt.
  • Für das Beispiel von DP-Wegen, gezeigt in 23, kann der Weg p7 sich ausbreiten zu den Zuständen S1, S2 und S3 beim nächsten Rahmen fk+1, aber nicht zum Zustand S0, da der Weg p7 beim Zustand S0 geendet ist für die vorangehenden zwei Rahmen. Folglich wird der letzte Aktivzeiger LA auf Zustand S1 zeigen.
  • 31 zeigt die Eingabezustände (das heißt, die ersten drei Zustände) vom Wortmodell 201, das in 22 gezeigt ist. Wie gezeigt, zeigt der letzte Aktivzeiger LA auf Zustand S1. Da es mehr als drei Zustände im Wortmodell 201 gibt, wird der Zustandszeiger j auf Zustand S2 zeigen. Das System wird in Schritt S189 folglich bestimmen, daß der vom Zeiger j aufgezeigte Zustand vor dem Zustand ist, den der letzte Aktivzeiger LA aufzeigt, das heißt, Zustand S1, und folglich schreitet die Verarbeitung fort zu Schritt S191. In Schritt S191 vergleicht das System den kumulativen Abstand, der im Zustand S2 gespeichert ist, mit dem kumulativen Abstand, der im zeitweiligen Speicher INSCORE gespeichert ist, der zum Wortmodell 201 gehört. Der Speicher INSCORE für das Wortmodell 201 wird dargestellt durch einen rechteckigen Kasten 241, der in 31 gezeigt ist. Wenn der in INSCORE gespeicherte kumulative Abstand kleiner ist als der im Zustand S2 gespeicherte kumulative Zustand, dann wird er kopiert in Zustand S2 in Schritt S193. In Schritt S195 wird dann der Selbstwiederholzähler für Zustand S2 auf null zurückgesetzt, und die Verarbeitung schreitet fort zu Schritt S197. Wenn der in INSCORE gespeicherte kumulative Zustand größer als der kumulative Zustand, der im Zustand S2 gespeichert ist, dann bleibt der im Zustand S2 gespeicherte kumulative Zustand ungeändert, und die Verarbeitung schreitet fort zu Schritt S197, bei der der Zeiger j dekrementiert wird, so daß er nun auf Zustand S1 zeigt. Die Verarbeitung kehrt dann zurück zu Schritt S189, und dieselbe Verarbeitung wird für Schritt S1 ausgeführt.
  • Nachdem der Verarbeitungszustand S1 den Zeiger j erneut in Schritt S197 dekrementiert hat, wird er nun auf den Zustand SO zeigen. Die Verarbeitung wird folglich fortschreiten zu Schritt S198 nach Schritt S189, wobei das System überprüft, ob es irgendeinen weiteren Zustand gibt, der zu verarbeiten ist. Da der Zustand S0 noch zu verarbeiten ist, schreitet das System fort zu Schritt S199, bei dem der kumulative Abstand, gespeichert in INSCORE, kopiert wird in den Zustand S0. Ein Vergleich kumulativer Abstände muß für den Zustand S0 ausgeführt werden, da dieser Zustand vor dem letzten Aktivzustand ist, auf den der letzte Aktivzeiger gezeigt hat. Das System fügt dann in Schritt S201 Zustand S0 der laufenden Aktivliste zu (welche die Aktivliste 205 vor Schritt S83 in 24 war) und dekrementiert den Zeiger j, so daß er nun auf Zustand S–1 zeigt. Die Verarbeitung kehrt dann zu Schritt S198 zurück, bei dem das System bestimmt, daß es keine weiteren Eingabezustände im laufenden zu verarbeitenden Wort gibt. Die Verarbeitung schreitet dann fort zu Schritt S205, bei dem der im zugehörigen zeitweiligen Speicher INSCORE gespeicherte kumulative Abstand zurückgesetzt wird auf den großen Wert HUGE. Die Anzahl von Zuständen auf der laufenden Aktivliste wird dann hinzugefügt in Schritt S207 zum Zählwert PACOUNT, und die Verarbeitung kehrt zurück zu Schritt S59, der in 21 gezeigt ist.
  • Vermindern der Zweige eines Suchraums
  • Wenn in Schritt S63 unter Bezug auf 21 das System bestimmt, daß es mehr zu verarbeitende Eingangsrahmen gibt, dann schreitet die Verarbeitung fort zu Schritt S65, bei dem der Schwellwert Th zum Vermindern der Zweige eines Suchraums eingestellt wird. Das Ziel der Anwendung des Verminderns der Zweige eines Suchraums ist es, die Anzahl von DP-Wegen zu begrenzen, die sich von einem Zeitpunkt zum nächsten ausbreiten. Insbesondere beabsichtigt das vorliegende Ausführungsbeispiel, den Schwellwert zum Vermindern der Zweige eines Suchraums so zu justieren, daß die Anzahl von Aktivzuständen, die aktuell verarbeitet werden, im wesentlichen innerhalb vorher festgelegter Grenzen bleiben, die durch den Arbeitsumfang des Speichers diktiert sind und durch die verfügbare Verarbeitungszeit. Des weiteren beabsichtigt das vorliegende Ausführungsbeispiel auch, dies zu erreichen, ohne daß es teurer Rechenvorläufe bedarf. In diesem Ausführungsbeispiel wird der Schwellwert zum Vermindern der Zweige eines Suchraums bestimmt durch Hinzufügen eines variablen Differentialwertes (PRUNING) zu dem minimalen gesamten kumulativen Wert MINSCORE, der bestimmt ist für den gerade verarbeiteten eingegebenen Rahmen, das heißt, der Schwellwert zum Vermindern der Zweige eines Suchraums wird angegeben mit: Th = MINSCORE + PRUNING (10)
  • Ein Weg des Sicherstellens, daß nur eine eingestellte Zahl aktiver Zustände für jeden eingegebenen Rahmen verarbeitet wird, ist das Sortieren der Aktivzustände, die auf allen Aktivlisten für den eingegebenen Rahmen sind um zu den verarbeiteten, um die dort gespeicherten kumulativen Zustände zu erhöhen, und dann wird die gewünschte Zahl beginnend mit der einen mit dem geringsten kumulativen Abstand verarbeitet. Diese Technik erfordert jedoch eine lange Rechenzeit, um die Aktivzustände herauszusortieren. Statt Ausführen dieses rechnerisch aufwendigen Sortierens macht die im vorliegenden Ausführungsbeispiel angewandte Technik Gebrauch von der Information, die nach Verarbeitung des letzten eingegebenen Rahmens verfügbar ist. In diesem Ausführungsbeispiel wird insbesondere ein differentieller Wert (PRUNING) abhängig von der Anzahl an Zuständen variiert, die potentiell aktiv sind (die in PACOUNT) gespeichert sind, für den nächsten eingegebenen zu verarbeitenden Rahmen, um die Anzahl von Zuständen beizubehalten, die aktuell in Verarbeitung sind, um zwischen den beiden Schwellwerten zu bleiben. Die Art und Weise in der der Schwellwert Th zum Vermindern der Zweige eines Suchraums eingestellt wird, ist nachstehend in mehr Einzelheiten anhand 32 beschrieben.
  • In Schritt S211 vergleicht das System die Anzahl von Zuständen, die potentiell für den nächsten zu verarbeitenden Rahmen aktiv sind (gespeichert in PACOUNT) mit einem Zustandsschwellwert (STATETH), der eingestellt wird, unter aber nahe an dem absoluten maximalen Zustandsschwellwert zu liegen, der bestimmt ist durch den Umfang an verfügbarem Arbeitsspeicher. Wenn der in PACOUNT gespeicherte Wert geringer als STATEH ist, dann bedeutet das, daß alle potentiell aktiven Zustände verarbeitet werden können, und folglich kann der Differentialwert PRUNING, der am letzten Punkt verwendet wird, erhöht werden. In Schritt S213 wird folglich eine Justierkonstante dP1 dem vorhandenen Differentialwert PRUNING hinzugefügt. Der Wert von dP1 wird größer eingestellt als irgendein vernünftiger Ortsabstand, so daß meistens, wenn nicht immer, potentiell aktive Zustände verarbeitet werden.
  • Der in PRUNING gespeicherte Wert wird dann verglichen mit einem hohen Schwellwert zum Vermindern der Zweige eines Suchraums, nämlich HIGHPRTH in Schritt S215. Eine obere Grenze wird auf den Differentialwert PRUNING plaziert, wie angenommen wird, daß es sich um einen maximalen Differentialwert handelt, über dem es niemals Bedarf gibt, zu gehen. Wenn der in PRUNING gespeicherte Wert geringer ist als HIGHPRTH, dann schreitet die Verarbeitung fort zu Schritt S219. Wenn der in PRUNING gespeicherte Wert größer als HIGHPRTH ist, dann wird PRUNING gleich HIGHPRTH in Schritt S217 eingestellt. Nach Schritt S215 oder nach Schritt S217 stellt das System den Schwellwert Th zum Vermindern der Zweige eines Suchraums gleich dem minimalen kumulativen Abstand für alle gültigen Wege ein, das heißt, MINSCORE plus dem Differentialwert PRUNING. Die Verarbeitung kehrt dann zurück zu Schritt S43, wie in 21 gezeigt. Wenn in Schritt S211 das System bestimmt, daß die Anzahl potentiell aktiver Zustände PACOUNT für den nächsten Rahmen größer ist als STATETH, dann vergleicht das System in Schritt S221 die Anzahl von Zuständen, die aktiv waren und während der Verarbeitung des letzten eingegebenen Rahmens (der in ACOUNT gespeichert ist) mit einem niedrigen Zustandsschwellwert LOWSTTH verarbeitet wurden. Der Wert von LOWSTTH wird so eingestellt, daß versucht werden kann und sichergestellt werden kann, daß wenn ACOUNT geringer als LOWSTTH ist, dann die Möglichkeit zum Verarbeiten aller potentiell aktiven Zustände für die nächsten eingegebenen Rahmen besteht, ohne daß hierfür zuviel Zeit oder Speicherplatz beansprucht wird. Wenn ACOUNT kleiner als LOWSTTH ist, dann durchläuft die Verarbeitung Schritt S221 bis S213, wobei der Differentialwert PRUNING eingestellt wird und die Verarbeitung in der schon zuvor beschriebenen Weise fortschreitet. Wenn andererseits ACOUNT größer als LOWSTTH ist, dann gibt es keine Garantie dafür, daß wenn alle potentiell aktiven Zustände verarbeitet sind, auch dieses nicht zuviel Zeit oder zuviel Speicherplatz zur Verarbeitung benötigt. Folglich kann es notwendig werden, den Differentialwert PRUNING zu reduzieren.
  • Um zu bestimmen, ob der Differentialwert PRUNING reduziert werden muß, vergleicht das System ACOUNT mit STATETH in Schritt S223. Ist ACOUNT kleiner als STATETH, dann überprüft das System, ob der Differentialwert PRUNING gleich HIGHPRTH ist. Gleicht HIGHPRTH diesem, dann zeigt dies auf, daß das System versucht hat, alle aktiven Zustände zu verarbeiten, und auch daß es unwahrscheinlich ist, daß die Anzahl aktiver Zustände, die für den nächsten eingegebenen Rahmen verarbeitet werden, zu dem Prozeß führt, der folglich zu lange oder zuviel Speicherplatz braucht. Folglich wird der Differentialwert PRUNING nicht geändert, und die Verarbeitung läuft von Schritt S219, bei dem der Schwellwert zum Vermindern der Zweige eines Suchraums gleich MINSCORE plus dem Differentialwert PRUNING eingestellt wird. Wenn andererseits der Differentialwert PRUNING nicht gleich HIGHPRTH ist (in diesem Falle muß er kleiner sein), dann ist es möglich, daß die Anzahl aktiver Zustände, die für den nächsten eingegebenen Rahmen verarbeitet werden, zu lange dauert und zuviel Speicherplatz benötigt. Die aktuelle Anzahl aktiver Zustände, die verarbeitet werden, muß folglich errechnet werden. Dies erfolgt in Schritt S233 unter Verwendung des Schwellwerts zum Vermindern der Zweige eines Suchraums, eingestellt in Schritt S231, der einen unveränderten Differentialwert PRUNING nutzt.
  • Wenn das System bestimmt, daß die ACOUNT größer als STATETH, dann wird der Differentialwert PRUNING von der Einstellkonstanten dp1 in Schritt S225 reduziert, wobei Bezug genommen wird auf Schritt S223. Nachdem der Differentialwert PRUNING in Schritt S225 verringert wurde, bestimmt das System in Schritt S227, ob der Differentialwert PRUNING geringer als der geringe Schwellwert LOWPRTH zum Vermindern der Zweige eines Suchraums ist. Ein niedriger Schwellwert zum Vermindern der Zweige eines Suchraums wird verwendet, um sicherzustellen, daß die Anzahl aktiver Zustände für den nächsten eingegebenen Rahmen verarbeitet wird, und größer wird als ein eingestellter Schwellwert für den Notzustand EMGSTTH. Der Grund hierfür liegt darin, daß man herausgefunden hat, daß die dynamische Programmierverarbeitung fällt, wenn die Verminderung der Zweige eines Suchraums zu stark ist. Wenn der Differentialwert PRUNING kleiner ist als der geringe Schwellwert LOWPRTH zum Vermindern der Zweige eines Suchraums, dann wird er in Schritt S229 auf LOWPRTH gebracht, und der Schwellwert Th zum Vermindern der Zweige eines Suchraums wird in Schritt S231 = MINSCORE plus dem eingestellten Differentialwert PRUNING gebracht. Danach wird zählt das System in Schritt S233 die Anzahl aktiver Zustände, die für den nächsten Eingaberahmen zu verarbeiten sind. Dies wird erreicht durch Vergleichen der kumulativen Abstände, die in den Aktivzuständen der kumulativen Abstände gespeichert sind in allen Knoten mit dem neuerlich bestimmten Schwellwert Th zum Vermindern der Zweige eines Suchraums.
  • Diese Gesamtzahl (nsa) repräsentiert die Gesamtzahl von Aktivzuständen und Knoten, die für den nächsten eingegebenen Rahmen verarbeitet werden. Wenn diese Gesamtzahl nsa geringer als der Schwellwert für den Notzustand EMGSTTH, dann ist der Schwellwert zu niedrig eingestellt, und die Verarbeitung kehrt zu Schritt S213 zurück, bei dem der Differentialwert PRUNING erhöht wird und der Schwellwert Th zum Vermindern der Zweige eines Suchraums zurückgesetzt wird. Ist nsa nicht geringer als EMGSTTH, dann erfolgt ein Vergleich in Schritt S237 mit LOWSTTH. Ist nsa größer als LOWSTTH, dann bedeutet dies, daß der Schwellwert Th zum Vermindern der Zweige eines Suchraums in Schritt S231 eingestellt wird und akzeptabel ist, und die Verarbeitung kehrt zurück zu Schritt S43, wie in 21 gezeigt. Ist andererseits nsa kleiner als LOWSTTH, dann kann der Schwellwert zum Vermindern der Zweige eines Suchraums erhöht werden, und so wird eine zweite Justierkonstante dp2 dem Differentialwert PRUNING in Schritt S239 hinzugefügt, bevor der Schwellwert Th zum Vermindern der Zweige eines Suchraums in Schritt S219 zurückgesetzt wird. In diesem Ausführungsbeispiel wird die zweite Justierkonstante dp2 auf die Hälfte der Justierkonstante dpi eingestellt.
  • Da der Fachmann das obige Verfahren des Variierens vom Schwellwert zum Vermindern der Zweige eines Suchraums als nicht aufwendig zum Rechnen realisiert, ist es noch erlaubt, den Schwellwert zum Vermindern der Zweige eines Suchraums so einzustellen, daß die Anzahl von Aktivzuständen, die zu jedem Zeitpunkt verarbeitet werden, verknüpft sind, so daß die Zuordnungsverarbeitungszeit und der Speicherumfang nicht überschritten werden.
  • Nachdem alle Rahmen in der eingegebenen Sequenz unter Verwendung der Verarbeitungsschritte verarbeitet worden sind, wie in 21 gezeigt, ist eine Rückspurroutine erforderlich, um den genauen Weg zu bestimmen, den der optimale Weg genommen hat, der bestimmt ist vom dynamischen Programmierprozeß. In diesem Ausführungsbeispiel führt die Rückspurroutine durch Rückwärtszeiger, die die Sequenz von Wörtern aufzeigen, durch die sich jeder Weg ausbreitet. Die Einzelheiten der Art und Weise, in der die Rückspurroutine ausgeführt wird und die Art und Weise, in der die Zeiger erzeugt werden, sind dem Fachmann bekannt und werden hier nicht weiter beschrieben.
  • Initialisierung
  • Bevor das System versucht, eine eingegebene Äußerung zu erkennen, werden die Systemschwellwerte und Variablen, die während des Erkennungsprozesses verwendet werden, neu initialisiert. Dies wird auf folgender Weise erreicht. Zuerst wird der kumulative Abstand, der im Startknoten N0 gespeichert ist, auf Null gesetzt, und der kumulative Abstand, der in anderen Knoten gespeichert ist, wird dem großen Wert HUGE gleichgemacht. Der Zähler, der die Anzahl potentieller Aktivzustände PACOUNT zählt, zugehörig zu einem jeden Wortmodell, wird dann auf Null gesetzt; der letzte Aktivzähler, der zu einem jeden Wortmodell gehört, wird so eingestellt, daß er auf den Zustand SD von diesem Modell zeigt; und der zeitweilige Speicher INSCORE, der einem jeden Wortmodell zugehörig ist, wird auf den großen Wert HUGE gesetzt. Alle Knoten werden dann verarbeitet, so daß das Minimum der kumulativen Abstände aller Knoten, die mit dem Eingang eines Wortes verbunden sind, kopiert werden in den zeitweiligen Speicher INSCORE, der zu diesem Wort gehört. Dies stellt sicher, daß der zeitweilige Speicher INSCORE eines jeden Wortes, verbunden mit dem Startknoten N0, auf Null gesetzt wird. Letztlich wird der in INSCORE gespeicherte Wert eines jeden Wortes verwendet, um die Eingabezustände eines jeden Wortmodells zu aktivieren und zu initialisieren. Die Verarbeitungsschritte zum Initialisieren der Eingangszustände eines jeden Wortmodells sind identisch mit den Verarbeitungsschritten, die beim Aktualisieren der Eingabezustände verwendet werden, die zuvor anhand 30 beschrieben wurden. Der Schwellwert zum Vermindern der Zweige eines Suchraums und der Differentialwert PRUNING wird ebenfalls vor der Verarbeitung des ersten Rahmens initialisiert. Insbesondere wird der Schwellwert Th zum Vermindern der Zweige eines Suchraums auf den großen Wert HUGE eingestellt, und der Differentialwert PRUNING wird gleich oder höher als der Schwellwert HIGHPRTH zum Vermindern der Zweige eines Suchraums eingestellt.
  • Flexible dynamische Programmierausrichtung.
  • Eine kurze Beschreibung wird anhand der 13 bis 16 gegeben über die Art und Weise, in der die Wortmodelle in diesem Ausführungsbeispiel erzeugt werden. Isolierte Wortmodelle werden insbesondere zuerst für die Wörter erzeugt, die in einer Phrase enthalten sind, durch Ausrichten der Sequenz von Parameterrahmen gemäß der Phrase mit den Sequenzen der Parameterrahmen gemäß der Wörter, wenn die Wörter einzeln innerhalb der Phrase gesprochen werden, unter Verwendung eines flexiblen dynamischen Programmierausrichtprozesses. Dieser flexibler Ausrichtprozeß wird nun in mehr Einzelheiten für die Lernphase "get an image" beschrieben, wenn kein Wortmodell für die Wörter der Phrase bisher vorhanden ist.
  • 33 zeigt die Sequenz von Parameterrahmen 152, die der Äußerung der Phrase "get an image" kund den Sequenzen der Parameter 158, 160 und 162 gemäß den Äußerungen der Einzelwörter "get", "an" beziehungsweise "image" entspricht. Da einige der Parameterrahmen in der Sequenz der Parameterrahmen 152 dem Hintergrundgeräusch oder der Ruhe entsprechen, sind Knoten 251, 253, .255, 257 zwischen den Einzelwörtern vorgesehen und zu Beginn des ersten Wortes und des letzten Wortes in der Phrase enthalten. Diese Knoten arbeiten in gleicher Weise wie die Knoten im Sprachmodell, das in 17a gezeigt ist, und berücksichtigen die Situation, bei der ein aktueller Parameterrahmen der Sequenz von Parameterrahmen 152 in Verarbeitung ist gemäß der Ruhe oder dem Hintergrundgeräusch. Diese Möglichkeit ist in 33 dargestellt durch den Ruherahmen fsil (welches das Geräuschmodell 23 ist, das in 10 gezeigt ist, bei den Knoten 251, 253 255 und 257.
  • Obwohl einige der Rahmen zu Beginn und am Ende der Sequenzen von Parameterrahmen 158, 160 und 162 er Höhe oder dem Hintergrundgeräusch entsprechen, sollten die Parameterrahmen in der Sequenzen der Parameterrahmen 152, die der Ruhe oder dem Hintergrundgeräusch entspricht, besser an den Geräuschrahmen fsil angepaßt sein, der in den Knoten 251, 252, 255 und 257 gespeichert ist als in den Rahmen gemäß der Ruhe in Sequenzen 158, 160 und 162. Dies liegt daran, daß der Ruherahmen fsil einen Durchschnitt aller Ruherahmen darstellt und folglich einen Durchschnitt, wobei die Variation zwischen dem Rahmen in der Sequenz 152 gemäß der Ruhe und dem Ruherahmen fsil geringer sein sollte als die Variation zwischen den Rahmen gemäß der Ruhe in der Sequenz 152 und jenen gemäß der Ruhe in den Sequenzen 158, 160 und 162.
  • Die Art und Weise, in der der flexible Ausrichtungsprozeß ausgeführt wird, gleicht der Art und Weise, in der die eingegebene Sprache ausgerichtet wird mit den gespeicherten Bezugsmodellen, wie zuvor anhand der 18 bis 32 beschrieben. Die allgemeinen Verarbeitungsschritte des flexiblen Ausrichtprozesses folgen insbesondere jenen in 21 gezeigten unter Verwendung der Sequenzen der Parameterrahmen 158, 160 und 162 als Bezugsmodelle und die Knoten 251, 253, 255 und 257 und die Rahmen der Sequenz 152 als Eingangsrahmen. Um eine Konfusion zu vermeiden, werden die Parameterrahmen der Sequenzen 158, 160 und 162, die die Wörter repräsentieren, wenn sie einzeln gesprochen werden, als Zustände bezeichnet. Wie die Zustände der Bezugsmodelle, die während der Erkennung einer unbekannten eingegebenen Äußerung verwendet werden, haben diese Zustände einen Speicher für zugehörigen kumulativen Abstand zum Speichern des kumulativen Abstands vom dynamischen Programmierungsweg, der beim Zustand für den laufenden Rahmen der Sequenz 152 endet, die in Verarbeitung ist.
  • Der Hauptunterschied zwischen dem flexiblen Ausrichtprozeß und dem Ausrichtprozeß, der während der Erkennung einer unbekannten eingegebenen Äußerung verwendet wird, ist der mit der flexiblen Ausrichtung:
    • (i) jeder dynamische Programmierungsweg kann eintreten in ein Wort an einer beliebigen Stelle (und nicht nur einen der Eingabezustände); und
    • (ii) jeder dynamische Programmierungsweg kann aus einem Wort aus einem beliebigen Zustand austreten.
  • Die Art und Weise, in der der flexible Ausrichtprozeß für das obige Beispiel arbeitet, ist nachstehend unter Berücksichtigung der ersten wenigen Parameterrahmen der Sequenz von Parameterrahmen 152 beschrieben. Vor der Verarbeitung des ersten Rahmens werden jedoch die kumulativen Abstandswerte, die den Knoten zugehörig sind, und die Zustände der Wortmodelle initialisiert. Die Initialisierungsprozedur gleicht der Initialisierungsprozedur, die vor dem Versuch zum Erkennen einer unbekannten eingegebenen Äußerung ausgeführt wird, wie schon zuvor beschrieben. Der kumulative Abstand, der im Startknoten gespeichert ist, das heißt, im Knoten 151, wird insbesondere auf Null gesetzt, und der kumulative Abstand, der in all den anderen Knoten gespeichert ist, wird gleich auf den großen Wert HUGE gesetzt. Die kumulativen Abstandswerte der Zustände in den Wörtern W1, W2 und W3 werden dann aktualisiert unter Verwendung der kumulativen Abstandswerte, die in den Knoten gespeichert sind, die mit dem Eingang der Wörter verbunden sind. Dies stellt sicher, daß der dynamische Programmierungsweg beginnt bei jedem Zustand des ersten Wortes W1 und beim ersten Knoten 152 beginnen kann, wenn der Rahmen F0 P1 verarbeitet wird.
  • Nach Initialisierung wird der erste Rahmen F0 P1 in Hinsicht auf jedes Wort W1, W2 und W3 der Reihe nach verarbeitet. Da jedoch der kumulative Abstand, der zu den Zuständen in den Wörtern W1 und W2 gehört, den Wert HUGE hat, wird nur der erste Rahmen in Hinsicht auf die Zustände des Wortes W1 verarbeitet. Wenn die Verarbeitung des ersten Rahmens in Hinsicht auf das Wort W1 erfolgt, wird der Abstand zwischen Rahmen F0 P1 und der Zustand im Wort W1 im jeweiligen kumulativen Abstandsspeicher gespeichert, der zu diesem Zustand gehört. Der flexible Ausrichtprozeß verarbeitet dann die Knoten 251, 253, 255 und 257 der Reihe nach unter Verwendung der Verarbeitungsschritte, die in 28 gezeigt sind. Letztlich wird die Verarbeitung des ersten Rahmens F0 P1 abgeschlossen durch Aktualisieren der kumulativen Abstandswerte von den Zuständen in den Wörtern W1, W2 und W3 unter Verwendung der Ergebnisse der Knotenverarbeitung. Die Aktualisierungsprozedur gleicht derjenigen, die in 30 gezeigt ist, mit Ausnahme aller Zustände in den Wörtern, die aktualisiert werden, und nicht gerade die Eingangszustände (das heißt die ersten drei Zustände).
  • Ist einmal der erste Parameterrahmen der Sequenz 152 verarbeitet, dann wird der zweite Parameterrahmen f1 P1 verarbeitet, um die dynamischen Programmierungswege auszubreiten, die gestartet sind durch die Verarbeitung des ersten Parameterrahmens f0 P1. Hinsichtlich des dynamischen Programmierungsverfahrens, das während des Erkennens einer eingegebenen Äußerung verwendet wird, werden die Zustände in jedem Wort W1, W2 und W3 in umgekehrter sequentieller Reihenfolge verarbeitet, wobei in diesem Ausführungsbeispiel gleiche Ausbreitungszwangsbedingungen verwendet werden, wie jene anhand der 19 und 20 beschriebenen. Der einzige Unterschied besteht darin, daß jeder dynamische Programmierungsweg auch aus einem laufenden Wort austreten kann von einem beliebigen Zustand und nicht gerade aus den letzten drei Zuständen, wie im Falle während des Erkennens einer unbekannten eingegebenen Äußerung. Sind einmal die Wörter W1, W2 und W3 unter Verwendung des zweiten Parameterrahmens f1 P2 verarbeitet, dann werden die Knoten 251, 253, 255 und 257 in dieser Reihenfolge verarbeitet, um den dynamischen Programmierungsweg zu aktualisieren, der sich aktuell innerhalb eines jeden Knotens ausbreitet. Ist dies einmal geschehen, wird jedes der Wörter W1, W2 und W3 erneut verarbeitet, um die dynamischen Programmierungswege der Reihe nach zu aktualisieren unter Berücksichtigung der Ergebnisse der Knotenverarbeitung.
  • Die restlichen Parameterrahmen in der Sequenz der Parameterrahmen 152 werden dann der Reihe nach in gleicher Weise verarbeitet. Sind einmal alle Parameterrahmen in der Sequenz 152 verarbeitet worden, wird der dynamische Programmierungsweg mit dem geringsten kumulativen Wert bestimmt. Um den Anfangs- und Endrahmen innerhalb der Sequenzen der Parameterrahmen 158, 160 und 162 zu bestimmen, die jene Parameterrahmen verknüpfen, die die zugehörigen Wörter (und nicht Ruhe) repräsentieren, erfolgt eine Aufzeichnung des Fortschrittes eines jeden dynamischen Programmierungswegs während des flexiblen Ausrichtprozesses.
  • Wann immer ein dynamischer Programmierungsweg in ein Wort eintritt, wird insbesondere entweder von einem vorangehenden Wort oder von einem Knoten vor dem Wort der Zustand, in den der dynamische Programmierungsweg eintritt, aufgezeichnet und dem Weg zugeordnet. Wenn ein dynamischer Programmierungsweg aus einem Wort austritt, dann wird gleichermaßen der Zustand, aus dem es austritt, aufgezeichnet, vorausgesetzt, der Wert, der dem Weg zugehörig ist, ist geringer als der Wert, der allen anderen vorherigen dynamischen Programmierungsworten zugeordnet ist, die aus diesem Wort ausgetreten sind. Ist einmal der letzte Parameterrahmen in der Sequenz der Parameterrahmen 152 verarbeitet und der dynamische Programmierungsweg mit dem besten Wert ist identifiziert worden, dann kann der ungefähre Anfangs- und Endpunkt der Wörter innerhalb der Sequenz der Parameterrahmen 158, 160 und 162 identifiziert werden durch Suchen der Aufzeichnung, die dem identifizierten dynamischen Programmierungsweg zugehörig ist.
  • Wie der Fachmann einschätzen kann, ist die obige Beschreibung des flexiblen Ausrichtprozesses der Situation spezifisch, bei der kein Wortmodell vorhanden ist für jedes Wort, das in der eingegebenen Phrase enthalten ist. Da jedoch das Üben des Bezugsmodells ausgelegt ist in einer inkrementalen Natur, das heißt, so daß der Anwender das System nach seiner Vorstellung lehren kann, wird die Situation manchmal auch kommen, daß ein Wortmodell für ein Wort einer eingegebenen Phrase bereits vorhanden ist. Während des Ausrichtens zwischen der Phrase und den individuellen Wörtern wird in diesem Falle ein hybridartiger dynamischer Programmierungsausrichtprozeß angewandt, der einen standardisierte dynamischen Programmierungsausrichtprozeß für Wörter verwendet, die bereits ein Wortmodell haben, und ein flexibler dynamischer Programmierungsausrichtprozeß für andere Wörter, die noch kein Wortmodell haben.
  • Wie zuvor unter Bezug auf die Schritte S25 und S26 in 14 erläutert, werden sie ausgerichtet in der Sequenz von Parameterrahmen der eingegebenen Phrasen, die dieses Wort enthalten, wenn einmal die isolierten Wortmodelle für die unbekannten Wörter in einer Phrase bestimmt sind, und Wortmodelle werden aus dem Ergebnis erzeugt.
  • Wortmodellanpassung
  • Ein anderes Merkmal des Spracherkennungssystems gemäß diesem Ausführungsbeispiel ist das des Wortmodells 19, des Geräuschmodells 23 und des Sprachmodells 21, das in 10 gezeigt ist, und aktualisiert und selbst modifiziert werden kann durch den Erricht-/Aktualisierungsmodul 91. Die gespeicherten Wortmodelle 19 können folglich angepaßt werden von der eingegebenen Sprache eines anderen Anwenders.
  • 34 ist ein Ablaufdiagramm, das ein Verfahren darstellt, die gespeicherten Wortmodelle 19 angepaßt werden können an einen anderen Anwender. In Schritt S251 gibt insbesondere der neue Anwender ein bekanntes Wort oder eine Phrase in das System über Mikrophon 7 und die Tastatur 3 ein. Der Erricht-/Aktualisierungsmodul 91 hat folglich die Sequenz von Parameterrahmen gemäß der Äußerung vom neuen Anwender und dem zugehörigen Text, der über die Tastatur 3 hereingekommen ist. Das System richtet dann in Schritt S253 die eingegebene Äußerung aus mit den vorhandenen Wortmodellen der Wörter, die bekannt sind und in der Äußerung enthalten sind, unter Verwendung einer dynamischen Programmierroutine. Die dynamische Programmierroutine richtet die Parameterrahmen der eingegebenen Äußerung aus mit den Zuständen von ungefähren Wortmodellen. Das System ersetzt dann direkt in Schritt S255 die Zustände der Wortmodelle durch die Sequenz von Parameterrahmen, die damit ausgerichtet sind. Wenn der neue Anwender in Schritt S257 entscheidet, eine andere Phrase einzugeben, dann kehrt die Verarbeitung zurück zu Schritt S251, und dieselbe Routine wird erneut für die nächste eingegebene Äußerung ausgeführt. Wenn der neue Nutzer in Schritt S257 entscheidet, daß keine Phrasen mehr anzupassen sind, dann endet die Verarbeitung.
  • 35 ist ein Ablaufdiagramm, das ein zweites Verfahren veranschaulicht, wie die gespeicherten Wortmodelle 19 von einem anderen Anwender angepaßt werden können. In Schritt S261 gibt der neue Anwender insbesondere ein bekanntes Wort oder eine Phrase in das System ein, mehrfach über das Mikrofon und einmal über die Tastatur. Der Erstell-/Aktualisierungsmodul 91 hat folglich eine Vielzahl von Sequenzen an Parameterrahmen, die jeweils der Äußerung des bekanntes Wortes oder der Phrase vom neuen Anwender entsprechen, und dem zugehörigen Text, der über die Tastatur 3 eingegeben wurde. Das System richtet dann in Schritt S263 jede eingegebene Äußerung aus mit dem existierenden Wortmodellen und den Wörtern, die in der Äußerung bekannt sind, unter Verwendung einer dynamischen Programmierroutine.
  • Die dynamische Programmierroutine richtet die Parameterrahmen einer jeden eingegebenen Äußerung aus mit den Zuständen der geeigneten Wortmodelle. Das System ersetzt dann in Schritt S265 die Zustände der Wortmodelle durch den Durchschnitt der Parameterrahmen, die damit ausgerichtet sind. Wenn ein Zustand eines Wortmodells nicht mit irgendeinem der Parameterrahmen der Äußerung ausgerichtet ist, dann interpoliert in diesem Ausführungsbeispiel das System zwischen oder extrapoliert aus benachbarten ersetzten Zuständen. Wenn der neue Anwender in Schritt S267 entscheidet, eine andere Phrase anzupassen, dann kehrt die Verarbeitung zurück zu Schritt S261, und dieselbe Routine wird erneut für die nächste Phrase ausgeführt. Wenn der neue Anwender in Schritt S267 entscheidet, daß keine Phrasen mehr einzugeben sind, dann endet die Verarbeitung. Wie dem Fachmann offensichtlich ist, kann der Anwender folglich die vorhandenen Wortmodelle inkremental nach seinen Wünschen anpassen. Darüber hinaus kann der neue Anwender neue Wörter oder neue Phrasen dem System in der zuvor beschriebenen Weise hinzufügen.
  • Alternative Ausführungsbeispiele
  • Eine Anzahl von Abwandlungen sind möglich zu dem obigen Spracherkennungssystem, ohne daß von dem erfinderischen Konzept der vorliegenden Erfindung abgewichen wird. Einige dieser Abwandlungen sind nachstehend beschrieben.
  • Obwohl die gesamte Äußerung in diesem Ausführungsbeispiel aufgenommen wird, bevor sie verarbeitet wird, kann das System inkremental betrieben werden, wobei die Sprache empfangen und zugleich verarbeitet wird. In einem solchen Ausführungsbeispiel wäre ein Eingangspuffer noch erforderlich, könnte aber nur in der Lage sein, eintreffende Sprache gemäß einem Rahmen zu speichern, das heißt, 20 Millisekunden an Sprache. Der Fachmann erkennt die gesamte Verarbeitung des Rahmens der eingegebenen Sprache (durch den Vorprozessor und den Erkennungsblock), daß um für dieses Systems zu arbeiten, die Beendigung vor dem nächsten Rahmen eingegebener zu verarbeitenden Sprache erfolgen muß. Mit der obigen Rahmengeschwindigkeit und der Rahmendauer bedeutet dies, daß die erforderliche Zeit zum Verarbeiten eines Rahmens der eingegebenen Sprache geringer sein muß als 10 Millisekunden. Dies läßt sich erreichen mit den aktuellen Prozessoren des Standes der Technik. Darüber hinaus müssen die Leistungsparameter eines jeden Rahmens der eingegebenen Äußerung normiert werden, und zwar in unterschiedlicher Weise. Ein Weg des Normierens der Leistung in einem solchen Ausführungsbeispiel wäre die Verwendung eines adaptiven Normierungsfaktors, der angepaßt ist auf der Grundlage der Leistung der eingegebenen Sprache über beispielsweise die vorangehenden 20 eingegebenen Rahmen.
  • Im ersten Ausführungsbeispiel wurden die Zustände der Wortmodelle, die am Ende eines dynamischen Verarbeitungsweges stehen, aufgelistet in einer Aktivliste, die dem Wortmodell zugehörig ist. In einem alternativen Ausführungsbeispiel könnte eine einzelne globale Aktivliste bereitstehen, in der alle Aktivzustände aller Wortmodelle aufgelistet würden. In einem solch alternativen Ausführungsbeispiel würde die Information, die zu speichern ist, zur globalen Aktivliste gehören zum Identifizieren, welche Wortmodelle den speziellen Aktivzuständen zugehörig sind.
  • Im ersten Ausführungsbeispiel entsprechen die Zustände der Wortmodelle der Zeitdauer der Rahmen der eingegebenen Sprache, die zu erkennen ist. In einem alternativen Ausführungsbeispiel könnte jeder Zustand eines Wortmodells äquivalent in der Zeitdauer sein, beispielsweise drei aufeinander folgende Rahmen eingegebener Sprache. In einem solchen alternativen Ausführungsbeispiel würde aus den eingegebenen Rahmen ein Durchschnitt in Gruppen von drei gebildet und dann ausgerichtet mit den Zuständen der Wortmodelle.
  • In einem noch anderen alternativen Ausführungsbeispiel könnten die Wortmodelle statistische Modelle sein, beispielsweise ein verstecktes Markov-Modell, das dem Fachmann der Spracherkennung gut bekannt ist. Anstatt des Bestimmens des minimalen kumulativen Abstands in einem solchen Ausführungsbeispiel zwischen der eingegebenen Äußerung und der Sequenz von Wortmodellen wurde die höchste Wahrscheinlichkeit, daß die Sequenz durch eine spezielle Sequenz versteckter Markov-Modelle erzeugt wird, bestimmt. In einem solchen Ausführungsbeispiel würden die versteckten Markov-Modelle in gleicher Weise wie die kontinuierlichen Bezugsmodelle erzeugt, wie im ersten Ausführungsbeispiel. Ein isoliertes Bezugsmodell für ein Wort würde insbesondere erzeugt durch Vergleichen einer Äußerung des Wortes mit einer oder mehreren Äußerungen von Phrasen, die das Wort enthalten. Das isolierte Bezugsmodell würde dann verwendet mit einer Vielzahl von Beispielphrasen, die das Wort enthalten, um die durchschnittlichen Parameterrahmen zu erzeugen und die Kovarianzmatritzen der Zustände des versteckten Markov-Modells und zum Erzeugen der Übergangswahrscheinlichkeiten zwischen diesen Zuständen. Der Weg, auf dem dies erreicht wird, würde dem Fachmann der Spracherkennung offensichtlich sein.
  • Die verwendeten Bezugsmodelle im ersten Ausführungsbeispiel entsprechen den ganzen Wörtern. Der Fachmann wird jedoch realisieren, daß dies unwesentlich ist. Die Bezugsmodelle könnten Teilen von Wörtern entsprechen, das heißt, Silben zu einer Vielzahl oder selbst individuellen Phonemen. Der Nachteil der Verwendung von Bezugsmodellen, der den Phonemen entspricht, besteht jedoch darin, daß das System sprachabhängig wird. Bezugsmodelle, die den gesamten Wörtern äquivalent sind, werden des weiteren bevorzugt für jene Äquivalente zu gesamten Phrasen, weil es ein Potential für die Zeit- und die Recheneinsparung gibt. Durch Modellieren der Wörter innerhalb Phrasen und durch Verwenden eines Sprachmodells ist es insbesondere möglich, dem System viele unterschiedliche Phrasen unter Verwendung einer Handvoll Wörter beizubringen. Wenn andererseits die Bezugsmodelle den gesamten Phrasen entsprechen, dann würde ein Bezugsmodell erforderlich für jede der unterschiedlichen Phrasen, die vom System erlernt werden müssen. Zusätzlich zu diesem Vorteil erhöht die Verwendung der Bezugsmodelle, die den Wörtern entsprechen, die Flexibilität des Systems gegenüber Lücken zwischen den Wörtern in der Phrase. Dies ist wegen des Umgebungsmodells möglich, das auftreten kann zu Beginn oder am Ende der Phrase und auch zwischen den Wörtern in der Phrase.
  • In einem noch anderen alternativen Ausführungsbeispiel könnten die Bezugsmodelle komprimiert werden, wenn aufeinander folgende Rahmen des Modells sich gleichen. Wenn diese Situation aufkommt, dann würden aufeinander folgende gleiche Rahmen ersetzt durch einen einzigen Rahmen. In einem solchen Ausführungsbeispiel würde die Zwangsbedingung, die dem dynamischen Programmierungsprozeß auferlegt ist, daß aufeinander folgende Rahmen der eingegebenen Äußerung nicht mit demselben Zustand eines Wortmodells mehr als zweimal ausgerichtet werden können, beseitigt.
  • Wenn im Sprachmodell, das in 17 gezeigt ist, einem Wort zwei unterschiedliche Wörter folgen können, dann wird kein Vorzug einem dieser beiden Wörter gegeben, die diesem Wort nachfolgen. In einem alternativen Ausführungsbeispiel wäre es möglich, einige Sequenzen von Wörtern bevorzugt zu gewichten gegenüber anderen. Für die in 17a dargestellten Phrasen kann beispielsweise bekannt sein, daß die Phrase "make ist more ..." (gefolgt von einer Farbe) allgemeiner machen als die Phrasen "make it smaller" oder "make it larger" oder "make it brighter". Der Übergang von Knoten N7 zum Knoten N8 ist stärker ausgebildet, verglichen mit dem Übergang vom Knoten N7 zum Endknoten Nn. Dies läßt sich erreichen unter Verwendung von Wichtungsfaktoren, die die kumulativen Entfernungen Wichten, die sich vom Knoten N7 bis zum Eingang des Wortes "more", "smaller", "larger" und "brighter" ausbreiten.
  • Der Fachmann wird erkennen, daß das verwendete Sprachmodell zum Festlegen zulässiger Sequenzen von Wörtern kein Bigram-Modell enthält, sondern ein allgemein bekanntes Sprachmodell sein kann, beispielsweise ein Grammatikmodell endlichen Zustands. Wenn die verwendete Art des Sprachmodells geändert wird, dann wären einige Abwandlungen erforderlich für den dynamischen Programmierungsanpassungsprozeß, der zuvor beschrieben wurde, aber derartige Abwandlungen sind dem Fachmann der Spracherkennung bekannt. Die wesentlichen Merkmale des Anpassungsprozesses bleiben jedoch unverändert, da diese passend ausgelegt sind für die Verwendung irgendeines Musteranpassungsprozesses.
  • Im ersten Ausführungsbeispiel mußten wenigstens zwei Phrasen eingegeben werden, die ein Wort enthalten, in das System, bevor ein Bezugsmodell für dieses Wort erzeugt werden konnte. Dies ist ein bevorzugter Betriebsmodus, und Wortmodelle könnten für jedes Wort lediglich aus einer einzigen Beispielphrase erzeugt werden, die dieses Wort enthält. In einem solchen Ausführungsbeispiel werden jedoch die Bezugsmodelle weniger repräsentativ für dieses Wort, wenn sie in einer beliebigen Phrase Verwendung finden. Im Lernverfahren, das im ersten Ausführungsbeispiel verwendet wird, wird darüber hinaus das Wortmodell nicht geändert, wenn einmal ein Bezugswortmodell für ein Wort bestimmt ist, ungeachtet der Tatsache, ob nachfolgend eingegebene Lernphrasen dieses Wort enthalten. In einem alternativen Ausführungsbeispiel wäre es möglich, vorhandene Wortmodelle während der Lernsitzung zu aktualisieren, und zwar unter Verwendung eingegebener Phrasen, die Beispiele der Wörter enthalten, für die bereits Wortmodelle vorhanden sind.
  • Wenn der Anwender das Spracherkennungssystem lehrt und eine Phrase eingibt, die eine Anzahl von Wörtern enthält, die bereits einzeln eingegeben worden sind, veranlaßt das System den Anwender nicht erneut zur Eingabe dieser einzelnen Wörter. In einem alternativen Ausführungsbeispiel könnte das System den Anwender für diese Wörter erneut auffordern und könnte eine Konsistenzprüfung durchführen, um sicherzustellen, daß die Äußerungen des Wortes sich nicht signifikant unterscheiden.
  • Wenn im ersten Ausführungsbeispiel die Bezugsmodelle gelehrt werden oder angepaßt, hat der Anwender die Eingabe des Textes durchzuführen und dann einen zugehörigen Sprachbefehl• zu geben. Der Fachmann der Spracherkennung wird realisieren, daß dies nicht wichtig ist. Anstelle des eingegebenen Textes könnte der Anwender einfach eine zugehörige Taste/Kombination von Tasten der Tastatur betätigen, ein Faxgerät, einen Fotokopierer. Wenn beispielsweise das System trainiert wird auf die Verwendung in einem Fotokopierer, kann beim Eingeben des Sprachbefehls "copy" in das gewünschte Gerät die Eingabe einfach durch anwendersei8tiges Betätigen des Kopierknopfes erfolgen.
  • Darüber hinaus ist es dem Fachmann der Musteranpassung bekannt, daß das Verfahren des Realisierens des dynamischen Programmieranpaßprozesses und der Bezugsmodellerzeugung und der Anpaßverarbeitung, wie zuvor beschrieben, auch verwendet werden kann zur Anpassung anderer Arten von Mustern. Beispielsweise ist es vorstellbar, daß der zuvor beschriebene Musteranpaßprozeß verwendet werden kann zur Handschrifterkennung oder anderer Musteranpaßtechniken.
  • Obwohl ein kontinuierliches Wortspracherkennungssystem im obigen ersten Ausführungsbeispiel beschrieben wurde, ist es dem Fachmann offensichtlich, daß viele Merkmale des beschriebenen Systems Anwendung finden können in anderen Arten von Spracherkennungssystemen. Die Art und Weise des Bestimmens der Einzelwortmodelle und der zuvor genannten Einzelwortmodelle könnten beispielsweise verwendet werden in einem Einzelwortspracherkennungssystem. Gleichermaßen werden viele Merkmale der Art und Weise, in der der dynamische Programmierungsprozeß ausgeführt wird, und die Art und Weise, in der der Schwellwert zum Vermindern der Zweige eines Suchraums eingestellt wird, in beliebigen Spracherkennungssystemen Verwendung finden, bei denen Bezugsmodelle einem beliebigen Teil der Sprache entsprechen, beispielsweise Phonemen, Silben usw.
  • Das im ersten Ausführungsbeispiel beschriebene Spracherkennungssystem kann verwendet werden in Verbindung mit vielen unterschiedlichen Softwareanwendungen, beispielsweise bei einem Kalkulationstabellensoftwarepaket, einem Graphiksoftwarepaket, einem Wortprozessorsoftwarepaket usw. Wenn das Spracherkennungssystem zu verwenden ist mit einer Vielzahl derartiger Softwareanwendungen, dann könnte es vorteilhaft sein, Wort- und Sprachmodelle für jede Anwendung zu trennen, insbesondere wenn die bei der Anwendung verwendeten Phrasen unterschiedlich sind. Der Grund hierfür liegt darin, daß beim Ansteigen der Anzahl von Wortmodellen auch die Größe der Sprachmodelle wächst und sich auch die erforderliche Zeit für das System zum Erkennen einer eingegebenen Äußerung verlängert. Um getrennte Wort- und Sprachmodelle für jede Anwendung zu haben, kann folglich die Geschwindigkeit des Spracherkennungssystems beibehalten werden. Verschiedene Wort- und Sprachmodelle könnten zusätzlich für jede Anwendung Verwendung finden.
  • Wie der Fachmann weiß, kann das obige Spracherkennungssystem auch darüber hinaus in verschiedenen Arten von Hardware benutzt werden. Fern von der obigen Verwendung in einem Personal Computer oder dergleichen könnte beispielsweise das Spracherkennungssystem als Anwenderschnittstelle für ein Faxgerät verwendet werden, für ein Telefon, einen Drucker, einen Fotokopierer oder eine beliebige Maschine mit einer Mensch-/Maschine-Schnittstelle.
  • Es ist nicht beabsichtigt, die vorliegende Erfindung durch zuvor beschriebene exemplarische Ausführungsbeispiele zu beschränken, sondern es sind dem Fachmann verschiedene andere Abwandlungen und Ausführungsbeispiele möglich, so lange diese Ausführungsbeispiele innerhalb den Geltungsbereich der beigefügten Ansprüche fallen.

Claims (24)

  1. Vorrichtung zur Erzeugung kontinuierlicher Wortmodelle zur Verwendung bei einem Erkennungssystem kontinuierlicher Sprache, mit einer Einrichtung zum Empfang von Text entsprechend einem neuen Eingabesatz und Signalen, die eine gesprochene kontinuierliche Wiedergabe des neuen Eingabesatzes repräsentieren, einem Speicher zur Speicherung von Text entsprechend vorhergehenden Eingabesätzen zusammen mit Signalen, die ihre gesprochenen kontinuierlichen Wiedergaben repräsentieren, einer Einrichtung zum Vergleich des Textes des neuen Eingabesatzes mit dem gespeicherten Text von vorhergehenden Eingabesätzen zum zur Verfügung Stellen eines Vergleichsergebnisses, das identifiziert, ob irgendwelche Wörter in dem neuen Eingabesatz in irgendwelchen vorhergehenden Eingabesätzen vorkommen, einer Einrichtung zur Aufforderung eines Benutzers, abhängig von dem Vergleichsergebnis eine Anzahl von Wörtern isoliert zu sprechen, einer Einrichtung zum Empfang von Signalen, die die gesprochene isolierte Wiedergabe der Anzahl von Wörtern repräsentieren, und zur Speicherung dieser mit ähnlichen Signalen, die für andere Wörter als Reaktion auf von der Aufforderungseinrichtung vorgenommene vorhergehende Aufforderungen empfangen sind, und einer Einrichtung zur Erzeugung kontinuierlicher Wortmodelle für in einem oder mehr Eingabesätzen enthaltene Wörter unter Verwendung der Signale, die die gesprochene kontinuierliche Wiedergabe von dem oder jedem Satz repräsentieren, der das Wort enthält, und der Signale, die die gesprochene isolierte Wiedergabe des Worts repräsentieren.
  2. Vorrichtung nach Anspruch 1, wobei die Aufforderungseinrichtung betreibbar ist, um den Benutzer aufzufordern, jedes Wort in dem neuen Eingabesatz isoliert zu sprechen, welches nicht in irgendeinem der vorhergehenden Eingabesätze vorkommt.
  3. Vorrichtung nach Anspruch 1 oder 2, mit einer Benutzerschnittstelle zum Ermöglichen, dass der Benutzer den Text des neuen Satzes eingibt, einer auf die Eingabe des Textes ansprechenden Einrichtung zur Aufforderung des Benutzers, den Satz zu sprechen, und einem Mikrophon zur Erzeugung der die gesprochene kontinuierliche Wiedergabe des neuen Eingabesatzes repräsentierenden Signale.
  4. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Aufforderungseinrichtung eine Anzeige aufweist.
  5. Vorrichtung nach einem der vorhergehenden Ansprüche, mit einer Satzeingabebetriebsart, bei welcher ein Benutzer in der Lage ist, eine Vielzahl von neuen Eingabesätzen einzugeben, um gesprochene kontinuierliche Wiedergaben der neuen Eingabesätze zur Verfügung zu stellen, und um gesprochene isolierte Wiedergaben einer Anzahl von Wörtern in den neuen Sätzen zur Verfügung zu stellen, und einer Wortmodellerzeugungsbetriebsart, bei welcher neue Wortmodelle unter Verwendung von Signalen, die gesprochene kontinuierliche Wiedergaben der neuen Eingabesätze repräsentieren, und von Signalen erzeugt werden, die die gesprochenen isolierten Wiedergaben von in den Eingabesätzen enthaltenen Wörtern repräsentieren.
  6. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die eine gesprochene kontinuierliche Wiedergabe eines Satzes repräsentierenden Signale im Speicher zusammen mit Wortdaten für jedes Wort in dem Satz gespeichert werden.
  7. Vorrichtung nach Anspruch 6, wobei die Wortdaten den Text des Worts, die Satznummer, die Wortnummer in dem Satz und einen Wortindex aufweisen, der das Wort mit den die gesprochene isolierte Wiedergabe des Worts repräsentierenden Signalen in Zusammenhang setzt.
  8. Vorrichtung nach Anspruch 7, wobei die Wortdaten zudem Daten aufweisen, die Zeitgrenzen definieren, die den Ort des Worts in den die gesprochene kontinuierliche Wiedergabe des Satzes repräsentierenden Signalen identifizieren.
  9. Vorrichtung nach Anspruch 8, wobei die Zeitgrenzen bestimmt werden, indem die die gesprochene isolierte Wiedergabe des Worts repräsentierenden Signale mit der gesprochenen kontinuierlichen Wiedergabe des Satzes abgestimmt werden.
  10. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die jede gesprochene isolierte Wiedergabe eines Worts repräsentierenden Signale zusammen mit einem Satzindex gespeichert werden, der die Sätze identifiziert, in welchen das Wort vorkommt, und wobei die Vergleichseinrichtung betreibbar ist, um den Satzindex als Reaktion auf das Vergleichsergebnis zu aktualisieren.
  11. Vorrichtung nach einem der vorhergehenden Ansprüche, wobei die Erzeugungseinrichtung betreibbar ist, um kontinuierliche Wortmodelle für Wörter zu erzeugen, welche in zwei oder mehr Eingabesätzen enthalten sind.
  12. Verfahren des Erzeugens von einem oder mehr kontinuierlichen Wortmodellen zur Verwendung bei einem Erkennungssystem kontinuierlicher Sprache, mit den Schritten des Empfangens von Text entsprechend einem neuen Eingabesatz und Signalen, die eine gesprochene kontinuierliche Wiedergabe des neuen Eingabesatzes repräsentieren, Speicherns von Text entsprechend vorhergehenden Eingabesätzen zusammen mit Signalen, die ihre gesprochenen kontinuierlichen Wiedergaben repräsentieren, Vergleichens des Textes des neuen Eingabesatzes mit dem gespeicherten Text von vorhergehenden Eingabesätzen zum zur Verfügung Stellen eines Vergleichsergebnisses, das identifiziert, ob irgendwelche Wörter in dem neuen Eingabesatz in irgendwelchen vorhergehenden Eingabesätzen vorkommen, Aufforderns eines Benutzers, abhängig von dem Vergleichsergebnis eine Anzahl von Wörtern isoliert zu sprechen, Empfangens von Signalen, die die gesprochene isolierte Wiedergabe der Anzahl von Wörtern repräsentieren, und Speicherns dieser mit ähnlichen Signalen, die für andere Wörter als Reaktion auf vorhergehende Aufforderungen empfangen sind, und Erzeugens von einem oder mehr kontinuierlichen Wortmodellen für in einem oder mehr Eingabesätzen enthaltene Wörter unter Verwendung der Signale, die die gesprochene kontinuierliche Wiedergabe von dem oder jedem Satz repräsentieren, der das Wort enthält, und der Signale, die die gesprochene isolierte Wiedergabe des Worts repräsentieren.
  13. Verfahren nach Anspruch 12, wobei der Aufforderungsschritt den Benutzer auffordert, jedes Wort in dem neuen Eingabesatz isoliert zu sprechen, welches nicht in irgendeinem der vorhergehenden Eingabesätze vorkommt.
  14. Verfahren nach Anspruch 12 oder 13, wobei der Text des neuen Satzes über eine Benutzerschnittstelle empfangen wird, und als Reaktion auf die Eingabe des Textes Auffordern des Benutzers, den Satz zu sprechen, und Erzeugen der die gesprochene kontinuierliche Wiedergabe des neuen Eingabesatzes repräsentierenden Signale unter Verwendung eines Mikrophons.
  15. Verfahren nach einem der Ansprüche 12 bis 14, wobei der Aufforderungsschritt eine Anzeige verwendet.
  16. Verfahren nach einem der Ansprüche 12 bis 15, bei welchem ein Benutzer eine Vielzahl von neuen Eingabesätzen eingibt, gesprochene kontinuierliche Wiedergaben der neuen Eingabesätze zur Verfügung stellt, und gesprochene isolierte Wiedergaben einer Anzahl von Wörtern in den neuen Sätzen zur Verfügung stellt, und dann unter Verwendung von Signalen, die gesprochene kontinuierliche Wiedergaben der neuen Eingabesätze repräsentieren, und von Signalen, die die gesprochenen isolierten Wiedergaben von in den Eingabesätzen enthaltenen Wörtern repräsentieren, neue Wortmodelle erzeugt.
  17. Verfahren nach einem der Ansprüche 12 bis 16, mit dem Schritt des Speicherns der eine gesprochene kontinuierliche Wiedergabe eines Satzes repräsentierenden Signale zusammen mit Wortdaten für jedes Wort in dem Satz.
  18. Verfahren nach Anspruch 17, wobei der Speicherschritt Wortdaten speichert, die den Text des Worts, die Satznummer, die Wortnummer in dem Satz und einen Wortindex aufweisen, der das Wort mit den die gesprochene isolierte Wiedergabe des Worts repräsentierenden Signalen in Zusammenhang setzt.
  19. Verfahren nach Anspruch 18, wobei der Speicherschritt Daten speichert, die Zeitgrenzen definieren, die den Ort des Worts in den die gesprochene kontinuierliche Wiedergabe des Satzes repräsentierenden Signalen identifizieren.
  20. Verfahren nach Anspruch 19, wobei die Zeitgrenzen bestimmt werden, indem die die gesprochene isolierte Wiedergabe des Worts repräsentierenden Signale mit der gesprochenen kontinuierlichen Wiedergabe des Satzes abgestimmt werden.
  21. Verfahren nach einem der Ansprüche 12 bis 20, mit dem Schritt des Speicherns der jede gesprochene isolierte Wiedergabe eines Worts repräsentierenden Signale zusammen mit einem Satzindex, der die Sätze identifiziert, in welchen das Wort vorkommt, und wobei der Vergleichsschritt den Satzindex als Reaktion auf das Vergleichsergebnis aktualisiert.
  22. Verfahren nach einem der Ansprüche 12 bis 21, wobei der Erzeugungsschritt die ein oder mehr kontinuierliche Wortmodelle für Wörter erzeugt, welche in zwei oder mehr Eingabesätzen enthalten sind.
  23. Computerlesbares Medium, welches Computersoftwareanweisungen speichert, um eine programmierbare Computervorrichtung zu veranlassen, das Verfahren nach einem der Ansprüche 12 bis 22 auszuführen.
  24. Computersoftwareanweisungen zur Veranlassung einer programmierbaren Computervorrichtung, das Verfahren nach einem der Ansprüche 12 bis 22 auszuführen, wenn sie auf dem Computer ablaufen.
DE69738116T 1996-02-09 1997-02-07 Lokalisierung eines Musters in einem Signal Expired - Lifetime DE69738116T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9602691.9A GB9602691D0 (en) 1996-02-09 1996-02-09 Word model generation
GB9602691 1996-02-09

Publications (2)

Publication Number Publication Date
DE69738116D1 DE69738116D1 (de) 2007-10-18
DE69738116T2 true DE69738116T2 (de) 2008-08-21

Family

ID=10788443

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69724485T Expired - Lifetime DE69724485T2 (de) 1996-02-09 1997-02-07 Lokalisierung eines Musters in einem Signal
DE69738116T Expired - Lifetime DE69738116T2 (de) 1996-02-09 1997-02-07 Lokalisierung eines Musters in einem Signal

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE69724485T Expired - Lifetime DE69724485T2 (de) 1996-02-09 1997-02-07 Lokalisierung eines Musters in einem Signal

Country Status (6)

Country Link
US (1) US5907825A (de)
EP (2) EP0789347B1 (de)
JP (1) JP3847879B2 (de)
DE (2) DE69724485T2 (de)
GB (1) GB9602691D0 (de)
HK (2) HK1002470A1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151574A (en) * 1997-12-05 2000-11-21 Lucent Technologies Inc. Technique for adaptation of hidden markov models for speech recognition
US6157910A (en) * 1998-08-31 2000-12-05 International Business Machines Corporation Deferred correction file transfer for updating a speech file by creating a file log of corrections
US6577999B1 (en) * 1999-03-08 2003-06-10 International Business Machines Corporation Method and apparatus for intelligently managing multiple pronunciations for a speech recognition vocabulary
US6480824B2 (en) * 1999-06-04 2002-11-12 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for canceling noise in a microphone communications path using an electrical equivalence reference signal
JP2002142192A (ja) * 2000-11-01 2002-05-17 Sony Corp 信号処理装置および方法、ならびに、記録装置および方法
US6917918B2 (en) * 2000-12-22 2005-07-12 Microsoft Corporation Method and system for frame alignment and unsupervised adaptation of acoustic models
US7340392B2 (en) * 2002-06-06 2008-03-04 International Business Machines Corporation Multiple sound fragments processing and load balancing
US7788097B2 (en) * 2002-06-06 2010-08-31 Nuance Communications, Inc. Multiple sound fragments processing and load balancing
JP2007047575A (ja) * 2005-08-11 2007-02-22 Canon Inc パターンマッチング方法およびその装置、および音声情報検索システム
US7970613B2 (en) 2005-11-12 2011-06-28 Sony Computer Entertainment Inc. Method and system for Gaussian probability data bit reduction and computation
US7778831B2 (en) 2006-02-21 2010-08-17 Sony Computer Entertainment Inc. Voice recognition with dynamic filter bank adjustment based on speaker categorization determined from runtime pitch
US8010358B2 (en) * 2006-02-21 2011-08-30 Sony Computer Entertainment Inc. Voice recognition with parallel gender and age normalization
US8442833B2 (en) * 2009-02-17 2013-05-14 Sony Computer Entertainment Inc. Speech processing with source location estimation using signals from two or more microphones
US8788256B2 (en) * 2009-02-17 2014-07-22 Sony Computer Entertainment Inc. Multiple language voice recognition
US8442829B2 (en) * 2009-02-17 2013-05-14 Sony Computer Entertainment Inc. Automatic computation streaming partition for voice recognition on multiple processors with limited memory
US20100332225A1 (en) * 2009-06-29 2010-12-30 Nexidia Inc. Transcript alignment
US9153235B2 (en) 2012-04-09 2015-10-06 Sony Computer Entertainment Inc. Text dependent speaker recognition with long-term feature based on functional data analysis
EP2862169A4 (de) * 2012-06-15 2016-03-02 Jemardator Ab Cepstraltrennungsunterschied
CN105334997A (zh) * 2014-08-12 2016-02-17 扬智科技股份有限公司 智能输入装置及其设定方法与控制方法
CN110598671B (zh) * 2019-09-23 2022-09-27 腾讯科技(深圳)有限公司 基于文本的虚拟形象行为控制方法、设备和介质
US11694694B2 (en) * 2020-07-30 2023-07-04 University Of Florida Research Foundation, Incorporated Detecting deep-fake audio through vocal tract reconstruction

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4400788A (en) * 1981-03-27 1983-08-23 Bell Telephone Laboratories, Incorporated Continuous speech pattern recognizer
EP0202534B1 (de) * 1985-05-07 1990-04-11 Nec Corporation System zur Erkennung kontinuierlicher Sprache
GB2181874B (en) * 1985-09-06 1989-08-16 Ricoh Kk Voice recognition system
CA1261472A (en) * 1985-09-26 1989-09-26 Yoshinao Shiraki Reference speech pattern generating method
US4783808A (en) * 1986-04-25 1988-11-08 Texas Instruments Incorporated Connected word recognition enrollment method
US5220609A (en) * 1987-03-13 1993-06-15 Matsushita Electric Industrial Co., Ltd. Method of speech recognition
US5027406A (en) * 1988-12-06 1991-06-25 Dragon Systems, Inc. Method for interactive speech recognition and training
AT391035B (de) * 1988-12-07 1990-08-10 Philips Nv System zur spracherkennung
US5127055A (en) * 1988-12-30 1992-06-30 Kurzweil Applied Intelligence, Inc. Speech recognition apparatus & method having dynamic reference pattern adaptation
JPH0782544B2 (ja) * 1989-03-24 1995-09-06 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチテンプレートを用いるdpマツチング方法及び装置
US4994983A (en) * 1989-05-02 1991-02-19 Itt Corporation Automatic speech recognition system using seed templates
CA2015410C (en) * 1989-05-17 1996-04-02 Chin H. Lee Speech recognition employing key word modeling and non-key word modeling
US5073939A (en) * 1989-06-08 1991-12-17 Itt Corporation Dynamic time warping (DTW) apparatus for use in speech recognition systems
DE4110300C2 (de) * 1991-03-28 1995-04-06 Telefonbau & Normalzeit Gmbh Verfahren zur Erweiterung des Wortschatzes für sprecherunabhängige Spracherkennung
US5199077A (en) * 1991-09-19 1993-03-30 Xerox Corporation Wordspotting for voice editing and indexing
WO1994002936A1 (en) * 1992-07-17 1994-02-03 Voice Powered Technology International, Inc. Voice recognition apparatus and method
US5434956A (en) * 1992-11-04 1995-07-18 Hewlett-Packard Company Method and apparatus for printing an image in a specified positional relationship with a preprinted registration mark
JP2692581B2 (ja) * 1994-06-07 1997-12-17 日本電気株式会社 音響カテゴリ平均値計算装置及び適応化装置

Also Published As

Publication number Publication date
DE69724485D1 (de) 2003-10-09
US5907825A (en) 1999-05-25
JPH09230885A (ja) 1997-09-05
EP0789347A2 (de) 1997-08-13
EP0789347B1 (de) 2003-09-03
EP1199705B1 (de) 2007-09-05
DE69738116D1 (de) 2007-10-18
HK1047181A1 (zh) 2003-02-07
HK1002470A1 (en) 1998-08-28
EP1199705A3 (de) 2002-05-02
JP3847879B2 (ja) 2006-11-22
EP0789347A3 (de) 1997-10-29
EP1199705A2 (de) 2002-04-24
GB9602691D0 (en) 1996-04-10
DE69724485T2 (de) 2004-07-22

Similar Documents

Publication Publication Date Title
DE69738116T2 (de) Lokalisierung eines Musters in einem Signal
DE69923379T2 (de) Nicht-interaktive Registrierung zur Spracherkennung
DE69832393T2 (de) Spracherkennungssystem für die erkennung von kontinuierlicher und isolierter sprache
DE69827988T2 (de) Sprachmodelle für die Spracherkennung
DE69311303T2 (de) Sprachtrainingshilfe für kinder.
DE69914131T2 (de) Positionshandhabung bei der Spracherkennung
DE102017124264B4 (de) Computerimplementiertes Verfahren und Rechensystem zum Bestimmen phonetischer Beziehungen
DE68928097T2 (de) Spracherkennungssystem
DE602004012909T2 (de) Verfahren und Vorrichtung zur Modellierung eines Spracherkennungssystems und zur Schätzung einer Wort-Fehlerrate basierend auf einem Text
EP0789296B1 (de) Manipulation von Bildschirmdarstellungen durch Sprachbefehle
DE69829235T2 (de) Registrierung für die Spracherkennung
DE69818231T2 (de) Verfahren zum diskriminativen training von spracherkennungsmodellen
DE60201262T2 (de) Hierarchische sprachmodelle
DE69635655T2 (de) Sprecherangepasste Spracherkennung
DE60009583T2 (de) Sprecheradaptation auf der Basis von Stimm-Eigenvektoren
DE69031165T2 (de) System und methode zur text-sprache-umsetzung mit hilfe von kontextabhängigen vokalallophonen
DE69814589T2 (de) Spracherkennung unter verwendung mehrerer spracherkenner
DE60126722T2 (de) Aussprache von neuen Wörtern zur Sprachverarbeitung
DE60124559T2 (de) Einrichtung und verfahren zur spracherkennung
DE69725091T2 (de) Verfahren und System zum Editieren von Sätzen während der kontinuierlichen Spracherkennung
EP0925578B1 (de) Sprachverarbeitungssystem und verfahren zur sprachverarbeitung
DE60004420T2 (de) Erkennung von Bereichen überlappender Elemente für ein konkatenatives Sprachsynthesesystem
EP0925579A1 (de) Verfahren zur anpassung eines hidden-markov-lautmodelles in einem spracherkennungssystem
EP1184839A2 (de) Graphem-Phonem-Konvertierung
EP1649450A1 (de) Verfahren zur spracherkennung und kommunikationsger t

Legal Events

Date Code Title Description
8364 No opposition during term of opposition