DE60036486T2 - Methode und apparat zum prüfen von musterübereinstimmungen - Google Patents

Methode und apparat zum prüfen von musterübereinstimmungen Download PDF

Info

Publication number
DE60036486T2
DE60036486T2 DE60036486T DE60036486T DE60036486T2 DE 60036486 T2 DE60036486 T2 DE 60036486T2 DE 60036486 T DE60036486 T DE 60036486T DE 60036486 T DE60036486 T DE 60036486T DE 60036486 T2 DE60036486 T2 DE 60036486T2
Authority
DE
Germany
Prior art keywords
speech
annotation
query
features
speech features
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
DE60036486T
Other languages
English (en)
Other versions
DE60036486D1 (de
Inventor
Philip Neil Bracknell GARNER
Jason P A Bracknell CHARLESWORTH
Asako Ohta-Ku HIGUCHI
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
Priority claimed from GBGB9925560.6A external-priority patent/GB9925560D0/en
Priority claimed from GBGB9925561.4A external-priority patent/GB9925561D0/en
Priority claimed from GB0025143A external-priority patent/GB2355836B/en
Application filed by Canon Inc filed Critical Canon Inc
Application granted granted Critical
Publication of DE60036486D1 publication Critical patent/DE60036486D1/de
Publication of DE60036486T2 publication Critical patent/DE60036486T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3343Query execution using phonetics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/683Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/685Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using automatically derived transcript of audio data, e.g. lyrics

Description

  • Die vorliegende Erfindung bezieht sich auf eine Vorrichtung und ein Verfahren zum Abgleichen von Phonemsequenzen oder dergleichen. Die Erfindung kann verwendet werden, um eine Datenbank von Datendateien mit zugehörigen phonetischen Anmerkungen als Antwort auf eine Benutzereingabeabfrage zu durchsuchen. Die Eingabeabfrage kann eine gesprochene oder eine getippte Abfrage sein.
  • Informationsdatenbanken sind wohlbekannt und leiden an dem Problem, wie die gewünschten Informationen aus der Datenbank schnell und effizient zu lokalisieren und zu holen sind. Existierende Datenbankensuchwerkzeuge ermöglichen dem Benutzer, die Datenbank unter Verwendung von getippten Schlüsselwörtern zu durchsuchen. Obwohl dies schnell und effizient ist, ist diese Art des Durchsuchens für verschiedene Arten von Datenbanken, wie Video- oder Audiodatenbanken, nicht geeignet.
  • Ein Vorschlag aus jüngster Zeit wurde dargelegt, um derartige Video- und Audiodatenbanken mit einer phonetischen Umsetzung des Sprachinhalts in den Audio- und Videodateien zu kommentieren, wobei ein nachfolgendes Holen durch Vergleichen einer phonetischen Umsetzung einer Benutzereingabeabfrage mit den Phonemanmerkungsdaten in der Datenbank erreicht wird. Die vorgeschlagene Technik zum Abgleichen der Phonemsequenzen definiert zuerst einen Satz von Merkmalen in der Abfrage, wobei jedes Merkmal als ein überlappendes Fragment fester Größe aus der Phonemkette genommen wird, und die Technik identifiziert dann die Häufigkeit des Auftauchens der Merkmale sowohl in der Abfrage als auch der Anmerkung und bestimmt dann schließlich ein Ähnlichkeitsmaß zwischen der Abfrage und der Anmerkung unter Verwendung eines Kosinusmaßes dieser Auftrittsfrequenzen. Ein Vorteil dieser Art von Phonemvergleichstechnik besteht darin, dass sie Situationen gerecht werden kann, in welchen die Sequenz von Anfragewörtern nicht exakt mit der Sequenz von Anmerkungswörtern übereinstimmt. Die Technik leidet jedoch an dem Problem, dass sie insbesondere dann fehleranfällig ist, wenn die Abfrage und die Anmerkung bei verschiedenen Geschwindigkeiten gesprochen werden und wenn irgendwelche Löschungen von Wortteilen aus der Abfrage, nicht aber aus der Anmerkung oder umgekehrt vorliegen.
  • Die Aufgabe der Erfindung liegt in einem Bereitstellen eines alternativen Systems zum Durchsuchen einer Datenbank.
  • Gemäß einer Ausgestaltung stellt die Erfindung eine Vorrichtung zum Durchsuchen einer Datenbank bereit, die eine Vielzahl von Informationseinträgen umfasst, um daraus zu holende Informationen zu identifizieren, wobei jeder der Vielzahl von Informationseinträgen eine eine Sequenz von Sprachmerkmalen umfassende, zugehörige Anmerkung aufweist, wobei die Vorrichtung umfasst:
    eine Einrichtung zum Empfangen einer eine Sequenz von Sprachmerkmalen umfassenden Eingabeabfrage,
    eine Einrichtung zum Vergleichen der Abfragesequenz von Sprachmerkmalen mit den Sprachmerkmalen von jeder Anmerkung, um einen Satz von Vergleichsergebnissen bereitzustellen, und
    eine Einrichtung zum Identifizieren der unter Verwendung der Vergleichsergebnisse aus der Datenbank zu holenden Informationen,
    dadurch gekennzeichnet, dass die Vergleichseinrichtung eine Vielzahl von verschiedenen Vergleichsbetriebsarten aufweist, und dadurch gekennzeichnet, dass die Vorrichtung ferner umfasst:
    eine Einrichtung zum Bestimmen, (i) ob die Abfragesequenz von Sprachmerkmalen aus einem Audiosignal oder aus Text erzeugt wurde, und (ii) ob die Sequenz von Sprachmerkmalen einer momentanen Anmerkung aus einem Audiosignal oder aus Text erzeugt wurde, und zum Ausgeben eines Bestimmungsergebnisses, und
    eine Einrichtung zum Auswählen, für die momentane Anmerkung, der Betriebsart der Vergleichseinrichtung abhängig von dem Bestimmungsergebnis.
  • Gemäß einer weiteren Ausgestaltung stellt die Erfindung ebenso ein Verfahren zum Durchsuchen einer Datenbank bereit, die eine Vielzahl von Informationseinträgen umfasst, um daraus zu holende Informationen zu identifizieren, wobei jeder der Vielzahl von Informationseinträgen eine eine Sequenz von Sprachmerkmalen umfassende, zugehörende Anmerkung aufweist, wobei das Verfahren umfasst:
    Empfangen einer eine Sequenz von Sprachmerkmalen umfassenden Eingabeabfrage,
    Vergleichen der Abfragesequenz von Sprachmerkmalen mit den Sprachmerkmalen einer jeden Anmerkung, um einen Satz von Vergleichsergebnissen bereitzustellen, und
    Identifizieren der aus der Datenbank unter Verwendung der Vergleichsergebnisse zu holenden Informationen,
    dadurch gekennzeichnet, dass der Vergleichsschritt eine Vielzahl von verschiedenen Vergleichstechniken verwenden kann, um den Vergleich durchzuführen, und dadurch, dass das Verfahren ferner umfasst:
    Bestimmen, (i) ob die Abfragesequenz von Sprachmerkmalen von einem Audiosignal oder aus Text erzeugt wurde, und (ii) ob die Sequenz von Sprachmerkmalen einer momentanen Anmerkung aus einem Audiosignal oder aus Text erzeugt wurde und zum Ausgeben eines Bestimmungsergebnisses, und
    Auswählen, für die momentane Anmerkung, der zum Durchführen des Vergleichs in dem Vergleichsschritt verwendeten Technik abhängig von dem Bestimmungsergebnis.
  • Beispielhafte Ausführungsbeispiele der Erfindung werden nun nachstehend unter Bezugnahme auf 1 bis 28 beschrieben. Es zeigen:
  • 1 eine schematische Blockdarstellung eines Benutzerendgeräts, das die Kommentierung einer Datendatei mit aus einer getippten oder gesprochenen Eingabe von einem Benutzer erzeugten Anmerkungsdaten ermöglicht,
  • 2 eine schematische Ansicht von Phonem- und Wortnetzanmerkungsdaten, die aus einer getippten Eingabe durch den Benutzer zum Kommentieren der Datendatei erzeugt werden,
  • 3 eine schematische Ansicht von Phonem- und Wortnetzanmerkungsdaten, die aus einer gesprochenen Eingabe durch den Benutzer zum Kommentieren der Datendatei erzeugt werden,
  • 4 eine schematische Blockdarstellung eines Benutzerendgeräts, das dem Benutzer ermöglicht, Informationen aus der Datenbank durch eine getippte oder Sprachabfrage zu holen,
  • 5a ein Ablaufdiagramm eines Teils der Flusssteuerung des in 4 gezeigten Benutzerendgeräts,
  • 5b ein Ablaufdiagramm des verbleibenden Teils der Flusssteuerung des in 4 gezeigten Benutzerendgeräts,
  • 6a eine schematische Darstellung eines zugrunde liegenden statistischen Modells, von welchem angenommen wird, dass es sowohl die Abfrage als auch die Anmerkung erzeugt hat,
  • 6b eine schematische Darstellung einer ersten Sequenz von Phonemen, die eine getippte Eingabe darstellen, und einer zweiten Sequenz von Phonemen, die eine Benutzerspracheingabe darstellen, und der Möglichkeit, dass Phonemeinfügungen und -Löschungen aus der Benutzerspracheingabe in Relation zu der getippten Eingabe vorliegen,
  • 6c eine schematische Darstellung einer ersten und zweiten Sequenz von Phonemen, die jeweils eine gesprochene Eingabe darstellen, und einer dritten Sequenz von Phonemen, die eine kanonische Sequenz von Phonemen darstellen, die dem entsprechen, was tatsächlich in den entsprechenden gesprochenen Eingaben gesprochen wurde, und der Möglichkeit, dass Phonemeinfügungen und -Löschungen aus den zwei gesprochenen Eingaben in Relation zu der entsprechenden kanonischen Sequenz von Phonemen vorliegen,
  • 7 schematisch einen Suchraum, der durch die Sequenz von Anmerkungsphonemen und die Sequenz von Abfragephonemen zusammen mit einem Startnullknoten und einem Endnullknoten erstellt wird,
  • 8 einen zweidimensionalen Ausdruck, wobei die horizontale Achse für die Phoneme der Anmerkung vorgesehen ist, und die vertikale Achse für die Phoneme der Abfrage vorgesehen ist, und einer Anzahl von Netzpunkten, von denen jeder einer möglichen Übereinstimmung zwischen einem Anmerkungsphonem und einem Abfragephonem entspricht,
  • 9a schematisch die dynamischen Programmierungsrandbedingungen, die in einem dynamischen Programmierungsabgleichvorgang verwendet werden, wenn die Anmerkung eine getippte Eingabe ist und die Abfrage aus einer gesprochenen Eingabe erzeugt wird,
  • 9b schematisch die dynamischen Programmierungsrandbedingungen, die in einem dynamischen Programmierungsabgleichvorgang verwendet werden, wenn die Abfrage eine getippte Eingabe ist und wenn die Anmerkung eine gesprochene Eingabe ist,
  • 10 schematisch die Löschungs- und Decodierungswahrscheinlichkeiten, die für ein Beispielphonem gespeichert sind,
  • 11 schematisch die dynamischen Programmierungsrandbedingungen, die in einem dynamischen Programmierungsabgleichvorgang verwendet werden, wenn sowohl die Anmerkung als auch die Abfrage gesprochene Eingaben sind,
  • 12 ein Ablaufdiagramm der Hauptverarbeitungsschritte, die in dem dynamischen Programmierungsabgleichvorgang durchgeführt werden,
  • 13 ein Ablaufdiagramm der Hauptverarbeitungsschritte, die zu einem Beginnen des dynamischen Programmierungsvorgangs durch Fortpflanzen von einem Nullstartknoten zu allen möglichen Startpunkten verwendet werden,
  • 14 ein Ablaufdiagramm der Hauptverarbeitungsschritte, die verwendet werden, um dynamische Programmierungspfade von den Startpunkten zu allen möglichen Endpunkten fortzupflanzen,
  • 15 ein Ablaufdiagramm der Hauptverarbeitungsschritte, die bei einem Fortpflanzen der Pfade von den Endpunkten zu einem Nullendknoten verwendet werden,
  • 16a ein Ablaufdiagramm eines Teils der Verarbeitungsschritte, die bei einem Fortpflanzen eines Pfades unter Verwendung der dynamischen Programmierungsrandbedingungen durchgeführt werden,
  • 16b ein Ablaufdiagramm der verbleibenden Vorgangsschritte, die bei einem Fortpflanzen eines Pfades unter Verwendung der dynamischen Programmierungsrandbedingungen beteiligt sind,
  • 17 ein Ablaufdiagramm der Verarbeitungsschritte, die bei einem Bestimmen einer Übergangswertung zum Fortpflanzen eines Pfades von einem Startpunkt zu einem Endpunkt beteiligt sind,
  • 18a ein Ablaufdiagramm eines Teils der Verarbeitungsschritte, die bei einem Berechnen von Wertungen für Löschungen und Decodierungen von Anmerkungs- und Abfragephonemen verwendet werden,
  • 18b ein Ablaufdiagramm der verbleibenden Schritte, die bei einem Bestimmen von Wertungen für Löschungen und Decodierungen von Anmerkungs- und Abfragephonemen verwendet werden,
  • 19 schematisch einen Suchraum, der durch eine Sequenz von Anmerkungsphonemen und zwei Sequenzen von Abfragephonemen zusammen mit einem Startnullknoten und einem Endnullknoten erstellt wird,
  • 20 ein Ablaufdiagramm der Hauptverarbeitungsschritte, die bei einem Beginnen eines dynamischen Programmierungsvorgangs durch Fortpflanzen von dem Nullstartknoten zu allen möglichen Startpunkten verwendet werden,
  • 21 ein Ablaufdiagramm der Hauptverarbeitungsschritte, die bei einem Fortpflanzen von dynamischen Programmierungspfaden von den Startpunkten zu allen möglichen Endpunkten verwendet werden,
  • 22 ein Ablaufdiagramm der Hauptverarbeitungsschritte, die bei einem Fortpflanzen der Pfade von den Endpunkten zu den Nullendknoten verwendet werden,
  • 23 ein Ablaufdiagramm der Verarbeitungsschritte, die bei einem Fortpflanzen eines Pfads unter Verwendung der dynamischen Programmierungsrandbedingungen verwendet werden,
  • 24 ein Ablaufdiagramm der Verarbeitungsschritte, die bei einem Bestimmen einer Übergangswertung zum Fortpflanzen eines Pfads von einem Startpunkt zu einem Endpunkt beteiligt sind,
  • 25a ein Ablaufdiagramm eines ersten Teils der Verarbeitungsschritte, die bei einem Berechnen von Wertungen für Löschungen und Decodierungen von Anmerkungs- und Abfragephonemen verwendet werden,
  • 25b ein Ablaufdiagramm eines zweiten Teils der Verarbeitungsschritte, die bei einem Berechnen von Wertungen für Löschungen und Decodierungen von Anmerkungs- und Abfragephonemen verwendet werden,
  • 25c ein Ablaufdiagramm eines dritten Teils der Verarbeitungsschritte, die bei einem Berechnen von Wertungen für Löschungen und Decodierungen von Anmerkungs- und Abfragephonemen verwendet werden,
  • 25d ein Ablaufdiagramm eines vierten Teils der Verarbeitungsschritte, die bei einem Berechnen von Wertungen für Löschungen und Decodierungen von Anmerkungs- und Abfragephonemen verwendet werden,
  • 25e ein Ablaufdiagramm der verbleibenden Schritte, die bei einem Bestimmen von Wertungen für Löschungen und Decodierungen von Anmerkungs- und Abfragephonemen verwendet werden,
  • 26a schematisch ein alternatives Ausführungsbeispiel, das eine andere Technik zum Anordnen der Abfrage an jeder Anmerkung verwendet,
  • 26b ein Ausdruck der Art und Weise, in welcher eine dynamische Programmierungswertung verglichen mit einer Abfrage mit einer Anmerkung in dem in 26a gezeigten Ausführungsbeispiel variiert,
  • 27 eine schematische Blockdarstellung der Form eines alternativen Benutzerendgeräts, das betreibbar ist, um eine Datendatei aus einer in einem Fern-Server befindliche Datenbank als Antwort auf eine eingegebene Sprachabfrage zu holen, und
  • 28 ein weiteres Benutzerendgerät, das einem Benutzer ermöglicht, Daten aus einer in einem Fern-Server befindlichen Datenbank als Antwort auf eine eingegebene Sprachabfrage zu holen.
  • Ausführungsbeispiele der Erfindung können unter Verwendung spezialisierter Hardware-Schaltungen implementiert werden, aber das zu beschreibende Ausführungsbeispiel ist in Computersoftware oder -code implementiert, der in Verbindung mit Verarbeitungs-Hardware läuft, wie ein Personal-Computer, eine Workstation, ein Fotokopierer, eine Faksimilemaschine, ein persönlicher digitaler Assistent (PDA) oder dergleichen.
  • DATENDATEIKOMMENTIERUNG
  • 1 zeigt die Form eines Benutzerendgeräts 59, das einem Benutzer ermöglicht, getippte oder gesprochene Anmerkungsdaten über die Tastatur 3 und Mikrofon 7 zum Kommentieren einer Datendatei 91 einzugeben, die in einer Datenbank 29 zu speichern ist. In diesem Ausführungsbeispiel weist die Datendatei 91 ein zweidimensionales, beispielsweise durch eine Kamera erzeugtes Bild auf. Das Benutzerendgerät 59 ermöglicht dem Benutzer 39, das 2D-Bild mit einer geeigneten Anmerkung zu kommentieren, die nachfolgend zum Holen des 2D-Bildes aus der Datenbank 29 verwendet werden kann. In diesem Ausführungsbeispiel wird eine getippte Eingabe durch die Phonetikumschreibungseinrichtung 75 in ein Phonem (oder phonemähnlich) und Wortnetzanmerkungsdaten umgewandelt, die zu der Steuereinrichtung 55 weitergegeben werden. 2 zeigt die Form der Phonem- und Wortnetzanmerkungsdaten, die für die getippte Eingabe "Picture of the Taj Mahal" erzeugt werden. Wie in 2 gezeigt, ist das Phonem- und Wortnetz ein azyklisch gerichteter Graph mit einem einzelnen Eintrittspunkt und einen einzelnen Austrittspunkt. Der Graph stellt verschiedene Analysen ("parses") der Benutzereingabe dar. Wie gezeigt, identifiziert die Phonetikumschreibungseinrichtung 75 eine Anzahl von verschiedenen möglichen Phonemketten, die einer getippten Eingabe entsprechen, aus einem (nicht gezeigten) internen Phonetikwörterbuch.
  • Auf ähnliche Weise wird eine gesprochene Eingabe durch die automatische Spracherkennungseinrichtung 51 in Phonem- (oder phonemähnlich) und Wortnetzanmerkungsdaten umgewandelt, die ebenso zu der Steuereinrichtung 55 weitergegeben werden. Die automatische Spracherkennungseinrichtung 51 erzeugt diese Phonem- und Wortnetzanmerkungsdaten durch (i) Erzeugen eines Phonemnetzes für die eingegebene Äußerung, (ii) dann Identifizieren von Worten innerhalb des Phonemnetzes, und (iii) schließlich durch Kombinieren von (i) und (ii). 3 zeigt die Form der Phonem- und Wortnetzanmerkungsdaten, die für die eingegebene Äußerung "Picture of the Taj Mahal" erzeugt werden. Wie gezeigt, identifiziert die automatische Spracherkennungseinrichtung eine Anzahl von verschiedenen möglichen Phonemketten, die dieser eingegebenen Äußerung entsprechen. Es ist auf dem Gebiet der Spracherkennung wohlbekannt, dass diese verschiedenen Möglichkeiten ihre eigene Gewichtung aufweisen können, die durch die Spracherkennungseinrichtung 51 erzeugt werden und für das Maß an Sicherheit der Ausgabe der Spracherkennungseinrichtung bezeichnend ist. In diesem Ausführungsbeispiel wird diese Gewichtung der Phoneme jedoch nicht durchgeführt. Wie in 3 gezeigt, werden die Worte, die die automatische Spracherkennungseinrichtung 51 innerhalb des Phonemnetzes identifiziert, in die Phonemnetzdatenstruktur eingebracht. Wie für die vorstehend beschriebene Beispielphrase gezeigt, identifiziert die automatische Spracherkennungseinrichtung 51 die Worte "picture", "of", "off", "the", "other", "ta", "tar", "jam", "ah", "hal", "ha" und Wie in 3 gezeigt, ist das durch die automatische Spracherkennungseinrichtung 51 erzeugte Phonem- und Wortnetz ein azyklisch gerichteter Graph mit einem einzelnen Eintrittspunkt und einem einzelnen Austrittspunkt. Der Graph stellt verschiedene Analysen der durch den Benutzer eingegebenen Anmerkungsäußerung dar. Es handelt sich hierbei nicht einfach um eine Sequenz von Worten mit Alternativen, da nicht jedes Wort durch eine einzelne Alternative ersetzt werden muss, sondern ein Wort für zwei oder mehr Worte oder Phoneme eingesetzt werden kann, und die Gesamtstruktur kann eine Ersetzung für ein oder mehrere Wörter oder Phoneme bilden. Aus diesem Grund bleibt die Dichte der Daten innerhalb der Phonem- und Wortnetzanmerkungsdaten durch die Anmerkungsdaten hindurch grundlegend linear, und wächst nicht exponentiell an wie in dem Fall eines Systems, das die Listen von N besten Worten für die Audioanmerkungseingabe erzeugt.
  • In diesem Ausführungsbeispiel weisen die durch die automatische Spracherkennungseinrichtung 51 oder die Phonetikumschreibungseinrichtung 75 erzeugten Anmerkungsdaten die nachstehende allgemeine Form auf:
  • KOPFTEIL
    • – Flagge, falls Wort, falls Phonem oder falls gemischt
    • – Zeitindex, der den Ort von Blöcken von Anmerkungsdaten innerhalb eines Speichers zu einem gegebenen Zeitpunkt assoziiert
    • – verwendeter Wortsatz (d.h. das Wörterbuch)
    • – verwendeter Phonemsatz
    • – die Sprache, auf die sich das Vokabular bezieht
    • – Phonemwahrscheinlichkeitsdaten
  • Block (i) i = 0, 1, 2, ...
    Knoten N = 0, 1, 2,
    – Zeitversatz des Knotens vom Start des Blocks an
    – Phonemanbindungen (k) k = 0, 1, 2, ... Versatz zu Knoten N = Nk – Nj (Nk ist der Knoten, zu der sich die Anbindung K er streckt) Phonem, das der Anbindung (k) zugehörig ist
    – Wortanbindung (1) l = 0, 1, 2, ... Versatz zu Knoten Nj = Ni – Nj (Nj ist der Knoten, zu der sich die Anbindung 1 er streckt)
    Wort, das der Anbindung (1) zugehörig ist
  • Es wird die Flagge, die identifiziert, ob die Anmerkungsdaten Wortanmerkungsdaten, Phonemanmerkungsdaten sind oder ob eine Mischform vorliegt, bereitgestellt, da nicht alle Datendateien innerhalb der Datenbank die vorstehend beschriebenen kombinierten Phonem- und Wortnetzanmerkungsdaten enthalten, und in diesem Fall wird eine andere Durchsuchstrategie zum Durchsuchen dieser Anmerkungsdaten verwendet werden.
  • In diesem Ausführungsbeispiel werden die Anmerkungsdaten in Blockknoten unterteilt, um der Durchsuchung zu ermög lichen, inmitten der Anmerkungsdaten für eine gegebene Durchsuchung zu springen. Der Kopfteil enthält zu diesem Zweck einen Zeitindex, der den Ort der Blöcke von Anmerkungsdaten innerhalb des Speichers zu einem gegebenen Zeitversatz zwischen dem Zeitpunkt des Starts und dem Zeitpunkt, der dem Beginn des Blocks entspricht, assoziiert.
  • Der Kopfteil enthält ebenso Daten, die den verwendeten Wortsatz (d. h. das Wörterbuch), den verwendeten Phonemsatz und deren Wahrscheinlichkeiten und die Sprache, auf die sich das Vokabular bezieht, definieren. Der Kopfteil kann ebenso Einzelheiten des automatischen Spracherkennungssystems enthalten, das zu einem Erzeugen der Anmerkungsdaten und irgendwelcher geeigneter Einstellungen der Daten verwendet wird, die während der Erzeugung der Anmerkungsdaten verwendet wurden.
  • Die Blöcke von Anmerkungsdaten folgen dann dem Kopfteil und identifizieren für jeden Knoten in dem Block den Zeitversatz des Knotens von dem Start des Blocks, die Phonemanbindungen, die jenen Knoten mit anderen Knoten durch Phonem- und Wortanbindungen verbinden, die wiederum jenen anderen Knoten mit anderen Knoten durch Worte verbinden. Jede Phonemanbindung und jede Wortanbindung identifiziert ein Phonem oder Wort, das mit der Anbindung assoziiert ist. Sie identifizieren ebenso den Versatz zu dem momentanen Knoten. Ist beispielsweise Knoten N50 durch eine Phonemanbindung an Knoten N55 angebunden, dann beträgt der Versatz zu Knoten N50 5. Wie für den Fachmann ersichtlich, ermöglicht eine derartige Versatzangabe die Unterteilung der fortlaufenden Anmerkungsdaten in separate Blöcke.
  • In einem Ausführungsbeispiel, in welchem eine automatische Spracherkennungseinrichtung Gewichtungen ausgibt, die für das Maß an Sicherheit der Ausgabe der Spracherkennungseinrichtung bezeichnend sind, werden diese Gewichtungen oder Sicherheitswertungen ebenso innerhalb der Datenstruktur enthalten sein. Insbesondere wird eine Sicherheitswertung für jeden Knoten bereitgestellt, die für das Maß an Sicherheit des Ankommens bei dem Knoten bezeichnend ist, und jede der Phonem- und Wortanbindungen wird eine Übergangswertung abhängig von der Gewichtung enthalten, die dem entsprechendem Phonem oder Wort gegeben ist. Diese Gewichtungen werden dann verwendet, um das Durchsuchen und das Holen der Datendateien durch Verwerfen jener Übereinstimmungen, die eine niedrige Sicherheitswertung aufweisen, zu steuern.
  • Als Antwort auf die Benutzereingabe holt die Steuereinrichtung 55 die passende 2D-Datei aus der Datenbank 29 und hängt die erzeugten Phonem- und Wortanmerkungsdaten an die Datendatei 91 an. Die erweiterte Datendatei wird dann zu der Datenbank 29 zurückgegeben. Während dieses Anmerkungsschritts ist die Steuereinrichtung 55 zu einem Anzeigen des 2D-Bildes auf der Anzeige 57 betreibbar, so dass der Nutzer sicherstellen kann, dass die Anmerkungsdaten mit der richtigen Datendatei 91 assoziiert sind.
  • Wie nachstehend ausführlicher beschrieben, ermöglicht die Verwendung derartiger Phonem- und Wortnetzanmerkungsdaten eine Ausführung einer schnellen und effizienten Durchsuchung der Datenbank 29, um eine gewünschte, in der Datenbank gespeicherte 2D-Bilddatendatei zu identifizieren und zu holen. Dies kann dadurch erreicht werden, dass die Datenbank 29 unter Verwendung der Wortdaten durchsucht wird, und falls diese Suche die erforderliche Datendatei nicht erbringt, dass dann eine weitere Durchsuchung unter Verwendung der robusteren Phonemdaten durchgeführt wird. Wie für den Fachmann auf dem Gebiet der Spracherkennung ersichtlich, ist eine Verwendung von Phonemdaten robuster, da Phoneme wörterbuchunabhängig sind und dem System ermöglichen, Wörtern außerhalb des Vokabulars gerecht zu werden, wie Namen, Orten, fremdsprachlichen Worten usw. Die Verwendung von Phonemdaten ist ebenso in der Lage, das System zukunftssicher zu gestalten, da sie ermöglicht, Datendateien zu holen, die in die Datenbank 29 verbracht wurden, wenn die ursprüngliche Anmerkung per Sprache eingegeben wurde und das ursprüngliche automatische Spracherkennungssystem die Worte der Eingabeanmerkung nicht verstand.
  • DATENDATEIHOLEN
  • 4 zeigt eine Blockdarstellung der Form eines Benutzerendgeräts 59, das diesem Ausführungsbeispiel zu einem Holen der kommentierten 2D-Bilder aus der Datenbank 29 verwendet wird. Dieses Benutzerendgerät 59 kann beispielsweise ein Personal-Computer, eine tragbare Vorrichtung oder dergleichen sein. Wie in diesem Ausführungsbeispiel gezeigt, weist das Benutzerendgerät 59 die Datenbank 29 von kommentierten 2D-Bildern, eine automatische Spracherkennungseinheit 51, eine Phonetikumschreibungseinrichtung 75, eine Tastatur 3, ein Mikrofon 7, eine Suchmaschine 53, eine Steuereinrichtung 55 und eine Anzeige 57 auf. Bei Betrieb gibt der Benutzer entweder eine Sprachabfrage über das Mikrofon 7 oder eine getippte Abfrage über die Tastatur 3 ein, und die Abfrage wird entweder durch die automatische Spracherkennungseinrichtung 51 oder die Phonetikumschreibungseinrichtung 75 verarbeitet, um entsprechende Phonem- und Wortdaten zu erzeugen. Diese Daten können ebenso die Form eines Phonem- und Wortnetzes annehmen, dies ist aber nicht wesentlich. Diese Phonem- und Wortdaten werden dann in die Steuereinrichtung 55 eingegeben, die betreibbar ist, um eine geeignete Durchsuchung der Datenbank 29 unter Verwendung der Suchmaschine 53 zu initiieren. Die durch die Suchmaschine 53 erzeugten Ergebnisse der Durchsuchung werden dann zu der Steuereinrichtung 55 zurückübertragen, die die Suchergebnisse analysiert und dem Benutzer über die Anzeige 57 geeignete Anzeigedaten (wie das geholte 2D-Bild) anzeigt.
  • 5a und 5b zeigen Flussdiagramme der Art und Weise, in welcher das Benutzerendgerät 59 in diesem Ausführungsbeispiel funktioniert. In Schritt s1 befindet sich das Benutzerendgerät 59 in einem Ruhezustand und erwartet eine Eingabeabfrage von dem Benutzer 39. Bei Empfang einer Eingabeabfrage werden in Schritt s3 die Phonem- und Wortdaten für die Eingabeabfrage durch die automatische Spracherkennungseinrichtung 51 oder die Phonetikumschreibungseinrichtung 75 erzeugt. In Schritt s5 weist dann die Steuereinrichtung 55 die Suchmaschine 53 an, eine Suche in der Datenbank unter Verwendung der aus der Eingabeabfrage erzeugten Wortdaten durchzuführen. Die in diesem Ausführungsbeispiel verwendete Wortsuche ist die gleiche wie jene, die momentan in der Technik für getippte Wortsuchen verwendet wird, und wird hier daher nicht ausführlicher beschrieben. Identifiziert in Schritt s7 die Steuereinrichtung 55 aus den Suchergebnissen, dass eine Übereinstimmung für die Benutzereingabeabfrage gefunden wurde, dann gibt die Steuereinrichtung die Suchergebnisse an den Benutzer über die Anzeige 57 aus.
  • In diesem Ausführungsbeispiel ermöglicht das Benutzerendgerät 59 dann dem Benutzer, die Suchergebnisse zu betrachten, und erwartet die Bestätigung des Benutzers, ob die Ergebnisse den von dem Benutzer geforderten Informationen entsprechen oder nicht. Wenn dem so ist, geht die Verarbeitung von Schritt s11 zu dem Ende der Verarbeitung über, und das Benutzerendgerät 59 kehrt in seinen Ruhezustand zurück und erwartet die nächste Eingabeabfrage. Gibt jedoch der Benutzer an (beispielsweise durch Eingeben eines geeigneten Sprachbefehls), dass die Suchergebnisse nicht den gewünschten Informationen entsprechen, dann geht die Verarbeitung von Schritt s11 zu Schritt s13 über, in welchem die Suchmaschine 53 eine Phonemdurchsuchung der Datenbank 29 durchführt. Jedoch erfolgt die in Schritt s13 durchgeführte Phonemdurchsuchung in diesem Ausführungsbeispiel nicht bei der gesamten Datenbank 29, da dies abhängig von der Größe der Datenbank mehrere Stunden in Anspruch nehmen kann.
  • Stattdessen verwendet die in Schritt s13 durchgeführte Phonemdurchsuchung die Ergebnisse der in Schritt s5 durchgeführten Wortdurchsuchung, um einen oder mehrere Abschnitte innerhalb der Datenbank zu identifizieren, die der Benutzereingabeabfrage entsprechen können. Weist die Abfrage beispielsweise drei Worte auf und identifiziert die Wortdurchsuchung lediglich eine oder zwei der Abfragewörter in der Anmerkung, dann führt das Verfahren eine Phonemdurchsuchung der Abschnitte der Anmerkungen durch, die das identifizierte Wort oder die identifizierten Wörter umgeben. Die Art und Weise, in welcher die in Schritt s13 durchgeführte Phonemdurchsuchung in diesem Ausführungsbeispiel ausgeführt wird, wird nachstehend ausführlicher beschrieben.
  • Nachdem die Phonemdurchsuchung durchgeführt wurde, identifiziert in Schritt s15 die Steuereinrichtung 55, ob eine Übereinstimmung gefunden wurde. Wurde eine Übereinstimmung gefunden, dann geht die Verarbeitung zu Schritt s17 über, in welchem die Steuereinrichtung 55 veranlasst, dass die Suchergebnisse dem Benutzer auf der Anzeige 57 angezeigt werden. Wieder erwartet das System dann die Bestätigung des Benutzers, ob die Suchergebnisse den gewünschten Informationen entsprechen oder nicht. Sind die Ergebnisse richtig, dann geht die Verarbeitung von Schritt s19 zu dem Ende über, und das Benutzerendgerät 59 kehrt in seinen Ruhezustand zurück und erwartet die nächste Eingabeabfrage. Gibt jedoch der Benutzer an, dass die Suchergebnisse nicht den gewünschten Informationen entsprechen, dann geht die Verarbeitung von Schritt s19 zu Schritt s21 über, in welchem die Steuereinrichtung 55 betreibbar ist, um den Benutzer über die Anzeige 57 zu fragen, ob eine Phonemdurchsuchung der gesamten Datenbank 29 durchgeführt werden soll oder nicht. Gibt der Benutzer als Antwort auf diese Abfrage an, dass eine derartige Durchsuchung durchgeführt werden soll, dann geht die Verarbeitung zu Schritt s23 über, in welchem die Suchmaschine eine Phonemdurchsuchung der gesamten Datenbank 29 durchführt.
  • Bei Vollendung dieser Durchsuchung identifiziert die Steuereinrichtung 55 in Schritt s25, ob eine Übereinstimmung für die Benutzereingabeabfrage gefunden wurde oder nicht. Wurde eine Übereinstimmung gefunden, dann geht die Verarbeitung zu Schritt s27 über, in welchem die Steuereinrichtung 55 veranlasst, dass die Suchergebnisse dem Benutzer auf der Anzeige 57 angezeigt werden. Sind die Suchergebnisse richtig, dann geht die Verarbeitung von Schritt s29 zu dem Ende der Verarbeitung über, und das Benutzerendgerät 59 kehrt in seinen Ruhezustand zurück und erwartet die nächste Eingabeabfrage. Gibt demgegenüber der Benutzer an, dass die Suchergebnisse noch immer nicht den gewünschten Informationen entsprechen, dann geht die Verarbeitung zu Schritt s31 über, in welchem die Steuereinrichtung 55 den Benutzer über die Anzeige 57 befragt, ob der Benutzer die Suchabfrage neu zu definieren oder zu ändern wünscht. Wünscht der Benutzer die Suchanfrage neu zu definieren oder zu ändern, dann kehrt die Verarbeitung zu Schritt s3 zurück, in welchem die darauffolgende Eingabeabfrage des Benutzers auf eine ähnliche Weise verarbeitet wird. Ist die Suche nicht neu zu definieren oder zu ändern, dann werden die Suchergebnisse und die ursprüngliche Benutzereingabeabfrage verworfen, und das Benutzerendgerät 59 kehrt in seinen Ruhezustand zurück und erwartet die nächste Eingabeabfrage.
  • Vorstehend wurde eine allgemeine Beschreibung der Art und Weise vermittelt, in welcher eine Suche in diesem Ausführungsbeispiel durch das Benutzerendgerät 59 ausgeführt wird. Nachstehend wird eine ausführlichere Beschreibung der Art und Weise, in welcher die Suchmaschine 53 die Phonemdurchsuchungen ausführt, zusammen mit einer kurzen Beschreibung der Motivation vermittelt, die der Suchstrategie zugrunde liegt.
  • INFORMATIONSHOLEN ALS EIN KLASSIFIZIERUNGSPROBLEM
  • In dem klassischen Klassifizierungsszenario muss ein Testdatensatz in K Klassen klassifiziert werden. Dies wird unter Verwendung von Wissen bezüglich anderer Daten durchgeführt, für welche die Klasse bekannt ist. Das Klassifizierungsproblem nimmt an, dass eine "Klassen"-Zufallsvariable vorliegt, die Werte von l bis K annehmen kann. Die optimale Klassifizierung wird dann durch Identifizieren der Klasse gefunden, zu welcher der Testdatensatz am wahrscheinlichsten gehört. Es sei angenommen, dass die Trainingsdaten durch N generative Vorgänge erzeugt werden, die zu nk Daten der Klasse k führten, wobei ∑ K k=1 nk = N. Wird der Vektor (n1, n2, ..., nk) durch n, werden die Trainingsdaten durch D und wird der Testdatensatz durch x bezeichnet, dann hat das klassische Klassifizierungsproblem den Wert von k zu bestimmen, der die nachstehende Wahrscheinlichkeit maximiert:
    Figure 00210001
  • Der zweite Term in dem Zähler ist eine bedingte Wahrscheinlichkeit für die Klasse, die häufiger auftretenden Klassen ein höheres Gewicht vermittelt. Im Kontext des Informationsholens weist jede Klasse einen einzelnen Trainingsdatensatz (d. h. die Anmerkungsdaten) auf. Deshalb kann zum Informationsholen der zweite Term auf der rechten Seite des vorstehend beschriebenen Ausdrucks ignoriert werden. In ähnlicher Weise kann ebenso der Nenner ignoriert werden, da P(x|D) für jede Klasse gleich ist und somit den Zähler lediglich normalisiert. Folglich kann die Reihenfolge der Klassen durch einfaches Einstufen der Reihenfolge des ersten Ausdrucks im Zähler des vorstehend beschriebenen Ausdrucks für die Klassen eingestuft werden. Mit anderen Worten: Bestimmen und Einstufen von P(x|dk) für alle Klassen, wobei dk der Trainingsdatensatz für Klasse k ist.
  • In diesem Ausführungsbeispiel stellt der Testdatensatz x die Eingabeabfrage dar und stellt der Trainingsdatensatz für Klasse k (d. h. dk) die k-te Anmerkung dar, und es sei angenommen, dass ein zugrundeliegendes statistisches Modell (M) vorliegt, das sowohl die Abfrage als auch die Anmerkung erzeugte, wie in 6a gezeigt. Im allgemeinen Fall weist das Modell drei Unbekannte auf: die Modellstruktur m, die Zustandssequenzen durch das Modell sowohl für die Abfrage als auch für die Anmerkung sq und sa und die Aufteilung C. In diesem Fall kennt man die Aufteilung, da sie die Eigenschaften des Spracherkennungssystems verkörpert, das die Phonemketten aus der eingegebenen Sprache erzeugt. Wie nachstehend beschrieben, kann die Aufteilung durch Anwenden einer großen Datenbank von bekannter Sprache bei dem Spracherkennungssystem erhalten werden, und die Verteilung wird nachstehend Konfusionsstatistik ("confusion statistics") genannt. Deshalb ergibt das Einsetzen der Zustandssequenzen und des Modells in die vorstehend beschriebenen Wahrscheinlichkeiten (und ein Verwenden der Variablen q für die Eingabeabfrage und a für die Anmerkung):
    Figure 00220001
    die unter Verwendung von Bayes'schen Verfahren erweitert werden kann und ergibt:
    Figure 00230001
  • Obwohl der vorstehend beschriebene Ausdruck kompliziert aussieht, können die Summationen über den Satz von Zustandssequenzen sq und sa unter Verwendung eines Standarddynamikprogrammierungsalgorithmus durchgeführt werden. Ferner kann der letzte Ausdruck sowohl im Zähler als auch dem Nenner ignoriert werden, da angenommen werden kann, dass jedes Modell gleichwahrscheinlich ist, und die Zustandssequenzausdrücke P(s|m, c) können ignoriert werden, da ebenso angenommen werden kann, dass jede Zustandssequenz gleichwahrscheinlich ist. Ferner kann unter der Annahme, dass die zugrundeliegende Modellstruktur eine kanonische Sequenz von Phonemen mit ungefähr der gleichen Länge wie die Abfrage abhängig von Einfügungen ist, die Summation über die verschiedenen Modelle beseitigt werden, obwohl sie durch eine Summation über alle möglichen Phoneme ersetzt wird, weil im allgemeinen Fall die kanonische Sequenz von Phonemen des Modells unbekannt ist. Deshalb wird unter Ignorieren der Zustandssequenz summationen der Term, der innerhalb des dynamischen Programmierungsalgorithmus auszuwerten ist, zu:
    Figure 00240001
    im Zähler, und
    Figure 00240002
    im Nenner (d. h. der Normalisierungsausdruck), wobei N die Gesamtanzahl von dem System bekannten Phonemen ist und ai, qj und pr das Anmerkungsphonem, das Abfragephonem bzw. das Modellphonem sind, die dem momentanen DP-Netzpunkt entsprechen, der ausgewertet wird. Wie aus einem Vergleich von Gleichungen (4) und (5) ersichtlich, werden die in dem Nenner berechneten Wahrscheinlichkeitsterme ebenso in dem Zähler berechnet. Deshalb können beide Terme während der gleichen dynamischen Programmierungsroutine summiert werden. In Anbetracht der ausführlicher bestimmten Wahrscheinlichkeiten ist P(gj|pr, C) die Decodierungswahrscheinlichkeit des kanonischen Phonems pr als Abfragephonem qj angesichts der Konfusionsstatistik, ist P(ai|pr, C) die Decodierungswahrscheinlichkeit des kanonischen Phonems pr als Anmerkungsphonem ai angesichts der Konfusionsstatistik, und ist P(pr|C) die Wahrscheinlichkeit, dass das kanonische Phonem pr ohne Bedingung auftritt angesichts der Konfusionsstatistik.
  • Zusätzlich zu den vorstehend beschriebenen Termen muss bei jedem Punkt in der dynamischen Programmierungsberechnung ein weiterer Term berechnet werden, der sich mit Einfügungen und Löschungen in der Abfrage oder der Anmerkung in Relation zu dem Modell befasst. Wie für den Fachmann ersichtlich, ist eine Einfügung oder eine Löschung in der Abfrage unabhängig von einer Einfügung oder einer Löschung in der Anmerkung und umgekehrt. Aus diesem Grund werden diese zusätzlichen Terme getrennt behandelt. Einfügungen und Löschungen in die Anmerkung relativ zu dem Modell muss ebenso für den in Gleichung (5) vorstehend beschriebenen Normalisierungsterm betrachtet werden.
  • Wie für den Fachmann aus der Beschreibung von 4 und 5 ersichtlich, können in diesem Ausführungsbeispiel die Anmerkungsphonemdaten und die Abfragephonemdaten beide entweder aus Text oder aus Sprache hergeleitet werden. Deshalb sind vier Situationen in Betracht zu ziehen:
    • i) Sowohl die Anmerkung als auch die Abfrage werden aus Text erzeugt;
    • ii) die Anmerkung wird aus Text erzeugt, und die Abfrage wird aus Sprache erzeugt;
    • iii) die Anmerkung wird aus Sprache erzeugt, und die Abfrage wird aus Text erzeugt, und
    • iv) sowohl die Abfrage als auch die Anmerkung werden aus Sprache erzeugt.
  • Die erste Situation ist der einfache Fall, in welchem keine zeitliche Stauchung/Dehnung der Anmerkung oder der Abfrage vorliegen kann, und der Vergleich zwischen der Anmerkung und der Abfrage wird durch einen einfachen Boole'schen Vergleich der jeweiligen Phonemsequenzen durchgeführt.
  • In der zweiten Situation wird die Anmerkung als korrekt angenommen, und die dynamische Programmierungsanordnung ermöglicht die Einfügung und Löschung von Phonemen in die Abfrage, um die beste Anordnung zwischen den beiden herauszufinden. Um diesen Fall zu zeigen, zeigt 6b eine mögliche Übereinstimmung zwischen einer Sequenz von Anmerkungsphonemen (mit a0, a1, a2, ... bezeichnet) und einer Sequenz von Abfragephonemen (mit q0, q1, q2, ... bezeichnet), wenn die Anmerkungsphoneme aus Text erzeugt werden. Wie durch die gestrichelten Pfeile gezeigt, wird das Anmerkungsphonem a0 mit dem Abfragephonem q0 angeordnet, wird das Anmerkungsphonem a1 mit dem Abfragephonem q2 angeordnet, wird das Anmerkungsphonem a2 mit dem Abfragephonem q3 angeordnet, wird das Anmerkungsphonem a3 mit dem Abfragephonem q3 angeordnet und wird das Anmerkungsphonem a4 mit dem Abfragephonem q4 angeordnet. Für jede dieser Anordnungen berechnet die dynamische Programmierungsroutine die in den vorstehenden Gleichungen (4) und (5) gegebenen Terme. In diesem Fall vereinfachen sich diese Gleichungen jedoch, da die kanonische Sequenz von Modellphonemen bekannt ist (da diese Anmerkungsphoneme sind). Im Besonderen beträgt der Normalisierungsterm 1, da die Anmerkung das Modell ist und sich der Zähler zu P(qi|aj, C) vereinfacht. Zusätzlich zu diesen Decodierungstermen berechnet die dynamische Programmierungsroutine ebenso die relevanten Einfügungs- und Löschungswahrscheinlichkeiten für die Phoneme, die in die Abfrage in Relation zu der Anmerkung (wie Abfragephonem ql) eingefügt werden, und für die Phoneme, die in der Abfrage in Relation zu der Anmerkung gelöscht werden (dargestellt durch das Abfragephonem q3, das mit den beiden Anmerkungsphonemen a2 und a3 zur Übereinstimmung bestimmt wird).
  • Die vorstehend beschriebene dritte Situation ist der zweiten Situation mit Ausnahme dessen ähnlich, dass die Sequenz von Abfragephonemen als richtig angesehen wird, und die dynamische Programmierungsanordnung die Einfügung und Löschung von Phonemen in die Anmerkung in Relation zu der Abfrage erlaubt. In dieser Situation können jedoch Gleichungen (1) bis (5) nicht verwendet werden, da die Abfrage bekannt ist. Deshalb kann in dieser Situation Gleichung (1) umgeschrieben werden zu:
    Figure 00270001
  • Wie bei den entsprechenden Termen in der vorstehenden Gleichung (1) können sowohl der zweite Term im Zähler als auch der Nenner ignoriert werden. Der erste Term des Zählers in vorstehender Gleichung (6) kann in einer Art und Weise erweitert werden, die der Art und Weise ähnelt, in welcher der erste Term des Zählers von Gleichung (1) erweitert wurde. In dieser Situation jedoch, in der die Abfrage als das Modell angenommen wird, vereinfacht sich der durch die dynamische Programmierungsroutine berechnete Normalisierungsausdruck zu 1 und vereinfacht sich der Zähler zu P(ai|qj, C). Wie bei der vorstehend beschriebenen zweiten Situation berechnet die dynamische Programmierungsroutine ebenso die relevanten Einfügungs- und Löschungswahrscheinlichkeiten für die Phoneme, die in die Anmerkung in Relation zu der Abfrage eingefügt werden, und für die Phoneme, die in der Anmerkung in Relation zu der Abfrage gelöscht werden.
  • Schließlich, in der vierten Situation, wenn sowohl die Anmerkung als auch die Abfrage aus Sprache erzeugt werden, können beide Sequenzen von Phonemdaten Einfügungen und Löschungen in Relation zu der unbekannten kanonischen Sequenz von Modellphonemen aufweisen, die den tatsächlich gesprochenen Text darstellt. Dies ist in 6c verdeutlicht, die eine mögliche Übereinstimmung zwischen einer Sequenz von Anmerkungsphonemen (die mit ai, ai+1, ai+2, ... bezeichnet sind) , einer Sequenz von Abfragephonemen (die mit qj, qj+1, qj+2, bezeichnet sind) und einer Sequenz von Phonemen (die als pn, pn+1, pn+2, ... bezeichnet sind) zeigt, die die kanonische Sequenz von Phonemen dessen darstellt, was tatsächlich sowohl durch die Abfrage als auch die Anmerkung gesprochen wurde. Wie in 6c gezeigt, muss in diesem Fall die dynamische Programmierungsanordnungstechnik die Einfügung von Phonemen sowohl in die Anmerkung als auch die Abfrage (dargestellt durch die eingefügten Phoneme ai+3 und qj+1) sowie sowie die Löschung von Phonemen sowohl aus der Anmerkung als auch der Abfrage (dargestellt durch Phoneme ai+1 und qj+2, die beide mit zwei Phonemen in der kanonischen Sequenz von Phonemen angeordnet sind) in Relation zu der kanonischen Sequenz von Modellphonemen tolerieren.
  • Wie für den Fachmann ersichtlich, ist der Algorithmus durch Einführen der Modellsequenz von Phonemen in die Berechnungen hinsichtlich Aussprachevariationen sowohl in der Abfrage als auch der Anmerkung flexibler.
  • Vorstehend wurde eine allgemeine Beschreibung der Art und Weise vermittelt, in welcher das Ausführungsbeispiel das Informationsholen durch Abgleich der Sequenz von Abfragephonemen mit den Sequenzen von Anmerkungsphonemen in der Datenbank durchführt. Um den Betrieb des Ausführungsbeispiels tiefgreifender zu verstehen, wird nachstehend eine kurze Beschreibung eines Standarddynamikprogrammierungsalgorithmus vermittelt, der eine ausführlichere Beschreibung des in diesem Ausführungsbeispiel verwendeten speziellen Algorithmus folgt.
  • ÜBERBLICK ÜBER DIE DP-SUCHE
  • Wie dem Fachmann bekannt, ist die dynamische Programmierung eine Technik, die zu einem Auffinden der optimalen Anordnung zwischen Sequenzen von Merkmalen, die in diesem Ausführungsbeispiel Phoneme sind, verwendet werden kann. Die Technik erreicht dies durch gleichzeitiges Fortpflanzen einer Vielzahl von dynamischen Programmierungspfaden, von denen jeder eine mögliche Übereinstimmung zwischen einer Sequenz von Anmerkungsphonemen und einer Sequenz von Abfragephonemen darstellt. Alle Pfade beginnen bei einem Startnullknoten, welcher sich bei dem Beginn der Anmerkung und der Abfrage befindet, und pflanzen sich fort, bis sie einen Endnullknoten erreichen, der sich an dem Ende der Anmerkung und der Abfrage befindet. 7 und 8 zeigen schematisch den durchgeführten Abgleich und diese Pfadfortpflanzung. 7 zeigt insbesondere einen Ausdruck mit rechtwinkligen Koordinaten, wobei die horizontale Achse für die Anmerkung vorgesehen ist und die vertikale Achse für die Abfrage vorgesehen ist. Der Startnullknoten ⌀s ist in der oberen linken Ecke bereit gestellt, und der Endnullknoten ⌀s ist in der unteren rechten Ecke bereitgestellt. Wie in 8 gezeigt, sind die Phoneme der Anmerkung entlang der horizontalen Achse bereitgestellt und sind die Phoneme der Abfrage entlang der vertikalen Achse bereitgestellt. 8 zeigt ebenso eine Anzahl von Netzpunkten, von denen jeder eine mögliche Anordnung zwischen einem Phonem der Anmerkung und einem Phonem der Abfrage darstellt. Netzpunkt 21 stellt beispielsweise eine mögliche Anordnung zwischen Anmerkungsphonem a3 und Abfragephonem q1 dar. 8 zeigt ebenso drei dynamische Programmierungspfade m1, m2 und m3, die drei mögliche Übereinstimmungen zwischen den Sequenzen von Phonemen darstellen, die die Anmerkung und die Abfrage darstellen, und die bei dem Startnullknoten ⌀s beginnen und sich durch die Netzpunkte hin zu dem Endnullknoten ⌀s fortpflanzen. Unter Bezug auf vorstehende Gleichungen (2) und (3) stellen diese dynamischen Programmierungspfade die vorstehend beschriebenen verschiedenen Zustandssequenzen sq und sa dar.
  • Wie durch die in 7 gezeigten unterschiedlichen Längen der horizontalen und vertikalen Achse dargestellt, muss die Eingabeabfrage nicht alle Worte der Anmerkung enthalten. Lautet die Anmerkung beispielsweise "picture of the Taj Mahal", dann kann der Benutzer einfach die Datenbank 29 nach diesem Bild durch Eingeben der Abfrage "Taj Mahal" durchsuchen. In dieser Situation wird der optimale Anordnungspfad entlang der oberen horizontalen Achse verlaufen, bis die Anfrage beginnen wird, mit der Anmerkung übereinzustimmen. Der Pfad wird dann beginnen, durch die Netzpunkte hin zu der unteren horizontalen Achse zu verlaufen und wird bei dem Endknoten enden. Dies ist in 7 durch Pfad 23 gezeigt. Wie jedoch für den Fachmann ersichtlich, müssen sich die Worte in der Abfrage in der gleichen Reihenfolge befinden, in der sie in der Anmerkung auftreten, andernfalls funktioniert die dynamische Programmierungsanordnung nicht.
  • Um die Ähnlichkeit zwischen der Sequenz von Anmerkungsphonemen und der Sequenz von Abfragephonemen zu bestimmen, führt der dynamische Programmierungsvorgang fortlaufend eine Wertung für jeden der dynamischen Programmierungspfade, den er fortpflanzt, wobei die Wertung von der Gesamtähnlichkeit der Phoneme abhängig ist, die entlang des Pfades angeordnet sind. Um die Anzahl von Löschungen und Einfügungen von Phonemen in die zur Übereinstimmung bestimmten Sequenzen zu beschränken, wendet der dynamische Programmierungsvorgang bestimmte Randbedingungen auf dem Weg an, auf welchem sich die dynamischen Programmierungspfade fortpflanzen können. Wie für den Fachmann erkennbar, sind diese dynamischen Programmierungsrandbedingungen für die vier vorstehend beschriebenen Situationen verschieden.
  • DP-RANDBEDINGUNGEN
  • Sowohl Anmerkung als auch Abfrage sind Text. In dem Fall, in welchem die Abfragephonemdaten und die Anmerkungsphonemdaten beide aus Text erzeugt werden, entartet die dynamische Programmierungsanordnung zu einem Boole'schen Abgleich zwischen den zwei Phonemsequenzen, und es werden keine Phonemlöschungen oder -einfügungen zugelassen.
  • Anmerkung ist Text und Abfrage ist Sprache.
  • In dem Fall, in welchem die Anmerkungsphonemdaten aus Text und die Abfragephonemdaten aus Sprache erzeugt werden, können keine Phonemlöschungen oder -einfügungen in der Anmerkung vorliegen, aber es können Phonemlöschungen und -einfügungen in der Abfrage in Relation zu der Anmerkung vorliegen. 9a zeigt die dynamischen Programmierungsrandbedingungen, die in diesem Ausführungsbeispiel verwendet werden, wenn die Anmerkung aus Text und die Abfrage aus Sprache erzeugt wird. Endet ein dynamischer Programmierungspfad wie gezeigt bei einem Netzpunkt (i, j), der eine Anordnung zwischen einem Anmerkungsphonem ai und einem Abfragephonem qj darstellt, dann kann sich jener dynamische Programmierungspfad zu den Netzpunkten (i + 1, j), (i + 1, j + 1) und (i + 1, j + 2) fortpflanzen. Eine Fortpflanzung zu Punkt (i + 1, j) stellt den Fall dar, in welchem eine Löschung eines Phonems aus der gesprochenen Abfrage verglichen mit der getippten Anmerkung vorliegt, eine Fortpflanzung zu dem Punkt (i + 1, j + 1) stellt die Situation dar, in welcher eine einfache Decodierung zwischen dem nächsten Phonem in der Anmerkung und dem nächsten Phonem in der Abfrage vorliegt, und eine Fortpflanzung zu dem Punkt (i + 1, j + 2) stellt die Situation dar, in welcher eine Einfügung des Phonems qj+1 in die gesprochene Abfrage verglichen mit der getippten Anmerkung vorliegt, und wenn eine Decodierung zwischen Anmerkungsphonem ai+1 und Abfragephonem qj+2 vorliegt.
  • Anmerkung ist Sprache und Abfrage ist Text.
  • In dem Fall, in welchem die Anmerkung aus Sprache und die Abfrage aus Text erzeugt wird, können keine Einfügungen oder Löschungen von Phonemen aus der Abfrage vorliegen, es können aber Einfügungen und Löschungen aus der Anmerkung in Relation zu der Abfrage vorliegen. 9b zeigt die dynamischen Programmierungsrandbedingungen, die in diesem Ausführungsbeispiel verwendet werden, wenn die Anmerkung aus Sprache und die Abfrage aus Text erzeugt wird. Endet ein dynamischer Programmierungspfad wie gezeigt bei Netzpunkt (i, j), der eine Anordnung zwischen Anmerkungsphonem ai und Abfragephonem qj darstellt, dann kann sich jener dynamische Programmierungspfad zu den Netzpunkten (i, j + 1), (i + 1, j + 1) und (i + 2, j + 1) fortpflanzen. Eine Fortpflanzung zu Punkt (i, j + 1) stellt den Fall dar, in welchem eine Löschung eines Phonems aus der gesprochenen Anmerkung verglichen mit der getippten Anfrage vorliegt, eine Fortpflanzung zu dem Punkt (i + 1, j + 1) stellt die Situation dar, in welcher eine einfache Decodierung zwischen dem nächsten Phonem in der Anmerkung und dem nächsten Phonem in der Abfrage vorliegt, und eine Fortpflanzung zu dem Punkt (i + 2, j + 1) stellt die Situation dar, in welcher eine Einfügung eines Phonems ai+1 in die gesprochene Anmerkung verglichen mit der getippten Anfrage vorliegt, und wenn eine Decodierung zwischen Anmerkungsphonem ai+2 und Abfragephonem qi+1 vorliegt.
  • Anmerkung ist Sprache und Abfrage ist Sprache. In dem Falle, in welchem sowohl die Anmerkung als auch die Abfrage aus Sprache erzeugt werden, können Phoneme sowohl aus der Anmerkung als auch der Abfrage in Relation zueinander eingefügt oder gelöscht werden. 11 zeigt die dynamischen Programmierungsrandbedingungen, die in diesem Ausführungsbeispiel verwendet werden, wenn sowohl die Anmerkungsphoneme als auch die Abfragephoneme aus Sprache erzeugt werden. Endet insbesondere ein dynamischer Programmierungspfad bei Netzpunkt (i, j), der eine Anordnung zwischen Anmerkungsphonem ai und Abfragephonem qj darstellt, dann kann sich jener dynamische Programmie rungspfad zu den Netzpunkten (i + 1, j) (i + 2, j), (i + 3, j), (i, j + 1), (i + 1, j + 1), (i + 2, j + 1), (i, j + 2), (i + 1, j + 2) und (i, j + 3) fortpflanzen. Diese Fortpflanzungen erlauben deshalb die Einfügung und Löschung von Phonemen sowohl in der Anmerkung als auch der Abfrage in Relation zu der unbekannten kanonischen Sequenz von Modellphonemen, die dem tatsächlich gesprochenen Text entspricht.
  • An fangs- und End-DP-Randbedingungen
  • In diesem Ausführungsbeispiel ermöglicht der dynamische Programmierungsanordnungsvorgang einem dynamischen Programmierungspfad, bei irgendeinem der Anmerkungsphoneme zu starten und zu enden. Im Ergebnis muss die Abfrage nicht alle Wörter der Anmerkung enthalten, obwohl die Abfragewörter in der gleichen Reihenfolge vorliegen müssen, in der sie in der Anmerkung erscheinen.
  • DP-WERTUNGSFORTPFLANZUNG
  • Wie vorstehend beschrieben, führt der dynamische Programmierungsvorgang fortlaufend eine Wertung für jeden der dynamischen Programmierungspfade, wobei die Wertung von der Ähnlichkeit der Phoneme abhängt, die entlang des Pfades angeordnet sind. Pflanzt sich deshalb ein bei Punkt (i, j) endender Pfad zu diesen weiteren Punkten fort, dann addiert der dynamische Programmierungsvorgang die jeweiligen "Kosten", die die Fortpflanzung erfordert, zu der aufsummierenden Wertung für den bei Punkt (i, j) endenden Pfad, die in einem mit jenem Punkt assoziierten Speicher (WERTUNG (i, j)) gespeichert wird. Wie für den Fachmann erkenntlich, enthalten diese Kosten die vorstehend beschriebenen Einfügungswahrscheinlichkeiten, Löschungswahrscheinlichkeiten und Decodierungswahrschein lichkeiten. Liegt insbesondere eine Einfügung vor, dann wird die aufsummierende Wertung mit der Einfügungswahrscheinlichkeit des gegebenen Phonems multipliziert, liegt eine Löschung vor, dann wird die aufsummierende Wertung mit der Löschungswahrscheinlichkeit des Phonems multipliziert, und liegt eine Decodierung vor, dann wird die aufsummierende Wertung mit der Decodierungswahrscheinlichkeit der zwei Phoneme multipliziert.
  • Um in der Lage zu sein, diese Wahrscheinlichkeiten zu berechnen, speichert das System eine Wahrscheinlichkeit für alle möglichen Phonemkombinationen. In diesem Ausführungsbeispiel wird die Löschung eines Phonems in der Anmerkung oder der Abfrage in einer einer Decodierung ähnlichen Weise behandelt. Dies wird dadurch erreicht, dass eine Löschung einfach als ein weiteres Phonem behandelt wird. Sind deshalb dem System 43 Phoneme bekannt, dann speichert das System 1892 (1892 = 43 × 44) Decodierungs-/Löschungswahrscheinlichkeiten, eine für jede mögliche Phonemdecodierung und -löschung. Dies ist in 10 verdeutlicht, die die möglichen Phonemdecodierungen zeigt, die für das Phonem /ax/ gespeichert sind, und welche das Löschungsphonem (⌀) als eine der Möglichkeiten enthält. Wie für den Fachmann erkenntlich, müssen sich alle Decodierungswahrscheinlichkeiten für ein gegebenes Phonem zu 1 aufsummieren, da keine weiteren Möglichkeiten vorliegen. Zusätzlich zu diesen Decodierungs-/Löschungswahrscheinlichkeiten speichert das System 43 Einfügungswahrscheinlichkeiten, eine für jede mögliche Phonemeinfügung. Wie nachstehend beschrieben, werden diese Wahrscheinlichkeiten vorab aus Trainingsdaten bestimmt.
  • Um die Wertungsfortpflanzungen zu verdeutlichen, wird nachstehend eine Anzahl von Beispielen betrachtet. In dem Fall, in welchem die Anmerkung Text und die Abfrage Sprache ist, und für den der Pfad sich von Punkt (i, j) zu Punkt (i + 1, j + 2) fortpflanzt, wird das Phonem qj+1 in Relation zu der Anmerkung eingefügt und wird das Abfragephonem qj +2 mit Anmerkungsphonem ai+1 decodiert. Somit ist die zu Punkt (i + 1, j + 2) fortgepflanzte Wertung gegeben durch: S(i + 1, j + 2) = S(ij)·PI(qj+1|C)·P(gj+2|ai+1, C) (7)wobei PI(qj+1|C) die Einfügungswahrscheinlichkeit von Phonem qj+1 in die gesprochene Abfrage darstellt und P(qj+2|ai+1, C) die Decodierungswahrscheinlichkeit von Anmerkungsphonem ai+1 als Abfragephonem qj+2 darstellt.
  • In dem Fall, in welchem sowohl die Anmerkung als auch die Abfrage aus Sprache erzeugt werden, und wenn von Punkt (i, j) zu Punkt (i + 2, j + 1) fortgepflanzt wird, dann wird das Anmerkungsphonem ai +1 in Relation zu der Abfrage eingefügt, und es liegt eine Decodierung zwischen Anmerkungsphonem ai+2 und Abfragephonem qj+1 vor. Deshalb ist die zu Punkt (i + 2, j + 1) fortgepflanzte Wertung gegeben durch:
    Figure 00360001
  • Wie für den Fachmann ersichtlich, treffen sich während dieser Pfadfortpflanzung mehrere Pfade an dem gleichen Netzpunkt. In diesem Ausführungsbeispiel werden die mit den sich treffenden Pfaden assoziierten Wertungen einfach miteinander addiert. Alternativ kann ein Vergleich zwischen den Wertungen durchgeführt werden, und der die beste Wertung aufweisende Pfad kann fortgesetzt werden, während der (die) andere(n) Pfad(e) verworfen wird (werden). Dies ist jedoch in diesem Ausführungsbeispiel nicht wesentlich, da der dynamische Programmierungsvorgang lediglich an einem Auffinden einer Wertung interessiert ist, die eine Ähnlichkeit zwischen den Phonemdaten der Abfrage und den Phonemdaten der Anmerkung darstellt. Der Vorgang ist nicht daran interessiert, zu wissen, was die beste Anordnung zwischen den beiden ist.
  • Werden sowohl die Abfrage als auch die Anmerkung aus Sprache erzeugt, dann normalisiert das System, wenn erst einmal alle Pfade zu dem Endknoten ⌀e fortgepflanzt wurden und eine Gesamtwertung für die Ähnlichkeit zwischen der Abfrage und der momentanen Anmerkung bestimmt wurde, diese Wertung unter Verwendung des Normalisierungsterms, der während des DP-Vorgangs aufsummiert wurde. Das System vergleicht dann die Abfrage mit der nächsten Anmerkung auf eine ähnliche Weise. Wurde die Abfrage erst einmal mit allen Anmerkungen abgeglichen, dann werden die normalisierten Wertungen für die Anmerkungen eingestuft und das System gibt auf der Grundlage der Einstufung an den Benutzer die Anmerkung(en) aus, die der Eingabeabfrage am ähnlichsten ist (sind).
  • AUSFÜHRLICHE BESCHREIBUNG DER DP-SUCHE
  • Nachstehend wird eine ausführlichere Beschreibung der Art und Weise vermittelt, in welcher die dynamische Programmierungsdurchsuchung ausgeführt wird, wenn eine Sequenz von Abfragephonemen mit einer Sequenz von Anmerkungsphonemen abgeglichen wird. Unter Bezugnahme auf 12 initialisiert das System in Schritt s101 die dynamischen Programmierungswertungen. In Schritt s103 pflanzt das System dann Pfade von dem Nullstartknoten (⌀s) zu allen möglichen Startpunkten fort. In Schritt s105 pflanzt das System dann die dynamischen Programmierungspfade von allen Startpunkten zu allen möglichen Endpunkten unter Verwendung der vorstehend beschriebenen dynamischen Programmierungsrandbedingungen fort. In Schritt s107 pflanzt das System schließlich die bei den Endpunkten endenden Pfade zu dem Nullendknoten (⌀e) fort.
  • 13 zeigt ausführlicher die Verarbeitungsschritte, die in Schritt s103 bei einem Fortpflanzen der dynamischen Programmierungspfade von dem Nullstartknoten (⌀S) zu allen möglichen Startpunkten beteiligt sind, die wiederum durch die dynamischen Programmierungsrandbedingungen definiert sind. Eine der Randbedingungen besteht darin, dass ein dynamischer Programmierungspfad bei irgendeinem der Anmerkungsphoneme beginnen kann, und die weitere Randbedingung, die die Anzahl von in der Sequenz von Abfragephonemen erlaubten Sprüngen definiert, hängt davon ab, ob die Abfrage Text oder Sprache ist oder nicht. Wird die Abfrage insbesondere aus Text erzeugt, dann weisen die Startpunkte die erste Zeile von Netzpunkten in dem Suchraum auf, d. h. Punkte (i, 0) für i = 0 bis Nanm – 1, und wird die Abfrage aus Sprache erzeugt, dann weisen die Startpunkte die ersten vier Zeilen von Netz punkten in dem Suchraum auf, d. h. Punkte (i, 0), (i, 1), (i, 2) und (i, 3) für i = 0 bis Nanm – 1.
  • Die Art und Weise, in der dies erreicht wird, wird nachstehend unter Bezug auf die in 13 gezeigten Schritte beschrieben. Wie gezeigt, bestimmt das System in Schritt s111, ob die Eingabeabfrage eine Textabfrage ist oder nicht. Ist dem so, dann geht die Verarbeitung zu Schritt s113 über, in welchem das System den Wert der Variablen mx auf 1 setzt, die die maximale Anzahl von in der Sequenz von Abfragephonemen erlaubten "Sprüngen" ("hops") definiert, wenn die Abfrage Text ist. Die Verarbeitung geht dann zu Schritten s115, s117 und s119 über, die betreibbar sind, einen dynamischen Programmierungspfad bei jedem der Netzpunkte in der ersten Zeile des Suchraums durch Addieren der Übergangswertung für ein Durchlaufen von den Nullstartknoten zu dem Netzpunkt (i, 0) zu der Wertung (WERTUNG (i, 0)), die mit Punkt (i, 0) für i = 0 bis Nanm – 1 assoziiert ist, zu starten. Ist die Abfrage Text, endet die Verarbeitung in in 12 gezeigtem Schritt s103, und die Verarbeitung geht dann zu Schritt s105 über.
  • Bestimmt das System in Schritt s111, dass die Abfrage nicht Text ist und deshalb aus einer gesprochenen Eingabe erzeugt wurde, dann geht das System zu Schritt s121 über, in welchem mx auf mxhops gesetzt wird, die eine Konstante ist, die einen Wert aufweist, der um 1 größer als die Maximalanzahl von durch die dynamischen Programmierungsrandbedingungen erlaubten "Sprüngen" ist. Wie in 9 und 10 gezeigt, kann in dem Fall, in welchem die Abfrage Sprache ist, ein Pfad äußerstenfalls zu einem Abfragephonem springen, das entlang der Sequenz von Abfragephonemen drei Phoneme weiter gelegen ist. Deshalb weist in diesem Ausführungsbeispiel mxhops einen Wert von 4 auf, und die Variable mx wird gleich 4 gesetzt, vorausgesetzt, dass 4 oder mehr Phoneme in der Abfrage vorliegen, ansonsten wird mx gleich der Anzahl von Phonemen in der Abfrage gesetzt. Die Verarbeitung geht dann zu Schritten s123, s125, s127, s129 und s131 über, die betreibbar sind, dynamische Programmierungspfade bei jedem der Netzpunkte in den ersten vier Zeilen des Suchraums durch Addieren der entsprechenden Übergangswahrscheinlichkeit zu der mit dem entsprechenden Netzpunkt assoziierten Wertung zu beginnen. Wird die Abfrage aus einer gesprochenen Eingabe erzeugt, dann beendet dies die Verarbeitung in in 12 gezeigtem Schritt s103, und die Verarbeitung geht dann zu Schritt s105 über.
  • In diesem Ausführungsbeispiel pflanzt das System die dynamischen Programmierungspfade von den Startpunkten zu den Endpunkten in Schritt s105 durch spaltenweises Verarbeiten der Netzpunkte in dem Suchraum in einer rasterartigen Technik fort. Der zum Steuern dieses Rasterverarbeitungsvorgangs verwendete Steueralgorithmus ist in 14 gezeigt. In Schritt s151 vergleicht das System einen Anmerkungsphonemschleifenzeiger i mit der Anzahl von Phonemen in dieser Anmerkung (Nanm). Anfänglich wird der Anmerkungsphonemschleifenzeiger i auf Null gesetzt, und die Verarbeitung geht deshalb anfänglich zu Schritt s153 über, in welchem ein ähnlicher Vergleich für einen Abfragephonemschleifenzeiger j in Relation zu der Gesamtanzahl von Phonemen in der Abfrage (Nabfrage) durchgeführt wird. Anfänglich wird der Schleifenzeiger j ebenso auf Null gesetzt, und deshalb geht die Verarbeitung zu Schritt s155 über, in welchem das System den bei Punkt (i, j) endenden Pfad unter Verwendung der vorstehend beschriebenen dynamischen Programmierungsrandbedingungen fortpflanzt. Die Art und Weise, in welcher das System die Pfade in Schritt s115 fortpflanzt, wird nachstehend ausführlicher beschrieben. Nach Schritt s155 wird in Schritt s157 der Schleifenzeiger j um 1 inkrementiert, und die Verarbeitung kehrt zu Schritt s153 zurück. Hat diese Verarbeitung erst einmal alle Phoneme in der Abfrage innerhalb der Schleife durchlaufen (wodurch die momentane Spalte von Netzpunkten verarbeitet wird), dann geht die Verarbeitung zu Schritt s159 über, in welchem der Abfragephonemschleifenzeiger j auf Null rückgesetzt wird und der Anmerkungsphonemschleifenzeiger i um 1 inkrementiert wird. Die Verarbeitung kehrt dann zu Schritt s151 zurück, in welchem ein ähnlicher Vorgang für die nächste Spalte von Netzpunkten durchgeführt wird. Wurde erst einmal die letzte Spalte von Netzpunkten verarbeitet, dann geht die Verarbeitung zu Schritt s161 über, in welchem der Anmerkungsphonemschleifenzeiger i auf Null rückgesetzt wird, und die Verarbeitung endet in in 12 gezeigtem Schritt s105.
  • 15 zeigt ausführlicher die Verarbeitungsschritte, die in in 12 gezeigtem Schritt s107 beteiligt sind, wenn die Pfade bei den Endpunkten zu dem Endnullknoten ⌀e fortgepflanzt werden. Wie bei der Fortpflanzung von dem Startnullknoten ⌀s werden die Netzpunkte, die die "Endpunkte" sind, durch die dynamischen Programmierungsrandbedingungen definiert, die davon abhängen, ob die Abfrage Text oder Sprache ist. Ferner ermöglichen in diesem Ausführungsbeispiel die dynamischen Programmierungsrandbedingungen dynamischen Programmierungspfaden, die Anmerkung bei einem beliebigen Punkt entlang der Sequenz von Anmerkungsphonemen zu verlassen. Deshalb erlaubt das System, wenn die Abfrage Text ist, in der letzten Zeile der Netzpunkte endenden dynamischen Programmierungspfaden, d. h. bei Punkten (i, Nabfrage – 1) für i = 0 bis Nanm – 1, sich zu dem Nullendknoten ⌀e fortzupflanzen. Wurde die Abfrage jedoch aus Sprache erzeugt, dann ermöglicht das System irgendeine Pfadfortpflanzung in den letzten vier Zeilen der Netzpunkte, d. h. Punkte (i, Nabfrage – 4), (i, Nabfrage – 3), (i, Nabfrage – 2) und (i, Nabfrage – 1) für i = 0 bis Nanm – 1, sich zu dem Endnullknoten ⌀e fortzupflanzen.
  • Wie in 15 gezeigt, beginnt dieser Vorgang bei Schritt s171, in welchem das System bestimmt, ob die Abfrage Text ist oder nicht. Wenn dem so ist, geht die Verarbeitung zu Schritt s173 über, in welchem der Abfragephonemschleifenzeiger j auf Nabfrage – 1 gesetzt wird. Die Verarbeitung geht dann zu Schritt s175 über, in welchem der Anmerkungsphonemschleifenzeiger i mit der Anzahl von Phonemen in der Anmerkung (Nanm) verglichen wird. Anfänglich wird der Anmerkungsphonemschleifenzeiger i auf Null gesetzt, und deshalb geht die Verarbeitung zu Schritt s177 über, in welchem das System die Übergangswertung von Punkt (i, Nabfrage – 1) zu dem Nullendknoten ⌀e berechnet. Diese Übergangswertung wird dann mit der aufsummierenden Wertung für den bei Punkt (i, Nabfrage – 1) endenden Pfad kombiniert, die in WERTUNG (i, Nabfrage – 1) gespeichert wird. Wie vorstehend beschrieben, sind in diesem Ausführungsbeispiel die Übergangs- und aufsummierende Wertungen wahrscheinlichkeitsbasiert, und sie werden durch Miteinandermultiplizieren der Wahrscheinlichkeiten kombiniert. Um jedoch in diesem Ausführungsbeispiel den Bedarf an einem Durchführen von Multiplika tionen zu beseitigen und um die Verwendung einer hohen Fließkommagenauigkeit zu vermeiden, verwendet das System Log-Wahrscheinlichkeiten für die Übergangs- und aufsummierende Wertungen. Deshalb addiert das System in Schritt s179 die aufsummierende Wertung für den bei Punkt (i, Nabfrage – 1) endenden Pfad zu der in Schritt s177 berechneten Übergangswertung und wird das Ergebnis in einen temporären Speicher TEMPENDWERTUNG kopiert.
  • Treffen sich wie vorstehend beschrieben zwei oder mehr dynamische Programmierungspfade bei dem gleichen Punkt, dann werden die aufsummierenden Wertungen für jeden der Pfade miteinander addiert. Deshalb werden, da Log-Wahrscheinlichkeiten verwendet werden, die mit den sich treffenden Pfaden assoziierten Wertungen effizient in Wahrscheinlichkeiten zurückumgewandelt, addiert und dann wieder neu in Log-Wahrscheinlichkeiten umgewandelt. In diesem Ausführungsbeispiel wird dieser Vorgang als ein "Log-Additions"-Vorgang bezeichnet. Dies ist eine wohlbekannte Technik und wird beispielsweise in dem Buch mit dem Titel "Automatic Speech Recognition. The Development of the (Sphinx) System" von Lee, Kai-Fu, veröffentlicht durch Kluwer Academic Publishers, 1989, auf Seiten 28 und 29 beschrieben.
  • Da der sich von Punkt (i, Nabfrage – 1) zu dem Nullendknoten fortpflanzende Pfad sich mit anderen dynamischen Programmierungspfaden treffen wird, führt das System eine Log-Addition von TEMPENDWERTUNG mit der in dem Endknoten gespeicherten Wertung (ENDWERTUNG) durch, und das Ergebnis wird in ENDWERTUNG gespeichert. Die Verarbeitung geht dann zu Schritt s183 über, in welchem der Anmerkungsphonemschleifenzeiger i inkrementiert wird. Die Verarbeitung geht dann zu Schritt s175 über, in welchem ein ähnlicher Vorgang für den nächsten Netzpunkt in der letzten Zeile von Netzpunkten durchgeführt wird. Wurden erst einmal alle Netzpunkte in der letzten Zeile auf diese Weise verarbeitet, dann endet die durchgeführte Verarbeitung in in 12 gezeigtem Schritt s107.
  • Bestimmt das System in Schritt s171, dass die Abfrage kein Text ist, dann geht die Verarbeitung zu Schritt s185 über, in welchem der Abfragephonemschleifenzeiger j auf die Anzahl von Phonemen in der Abfrage minus mxhops gesetzt wird, d. h. Nabfrage – 4. Die Verarbeitung geht dann zu Schritt s187 über, in welchem das System prüft, um zu sehen, ob der Anmerkungsphonemschleifenzeiger i kleiner als die Anzahl von Phonemen in der Anmerkung (Nanm) ist. Anfänglich wird der Anmerkungsphonemschleifenzeiger i auf Null gesetzt, und deshalb geht die Verarbeitung zu Schritt s189 über, in welchem das System prüft, um zu sehen, ob der Abfragephonemschleifenzeiger j kleiner als die Anzahl von Phonemen in der Abfrage (Nabfrage) ist. Anfänglich ist dem so, und die Verarbeitung geht zu Schritt s191 über, in welchem das System die Übergangswertung von Netzpunkt (i, j) zu dem Nullendknoten ⌀e berechnet. Diese Übergangswertung wird dann in Schritt s193 zu der aufsummierenden Wertung für den bei Punkt (i, j) endenden Pfad addiert, und das Ergebnis wird in die temporäre Wertung TEMPENDWERTUNG kopiert. Die Verarbeitung geht dann zu Schritt s195 über, in welchem das System eine Log-Addition von TEMPENDWERTUNG mit ENDWERTUNG durchführt und das Ergebnis in ENDWERTUNG speichert. Die Verarbeitung geht dann zu Schritt s197 über, in welchem der Abfragephonemschleifenzeiger j um 1 inkrementiert wird, und die Verarbeitung kehrt zu Schritt s189 zurück. Die vorstehenden Verarbeitungsschritte werden dann wiederholt, bis der Abfragephonemschleifenzeiger j soweit inkrementiert wurde, dass er gleich der Anzahl von Phonemen in der Abfrage (Nabfrage) ist. Die Verarbeitung geht dann zu Schritt s199 über, in welchem der Abfragephonemschleifenzeiger j auf Nabfrage – 4 rückgesetzt wird und der Anmerkungsphonemschleifenzeiger i um 1 inkrementiert wird. Die Verarbeitung kehrt dann zu Schritt s187 zurück. Die vorstehenden Verarbeitungsschritte werden dann wiederholt, bis alle Netzpunkte in den letzten vier Zeilen des Suchraums auf diese Weise verarbeitet wurden, wonach die Verarbeitung in in 12 gezeigtem Schritt s107 endet.
  • Fortpflanzen
  • In in 14 gezeigtem Schritt s155 pflanzt das System den bei Netzpunkt (i, j) endenden Pfad unter Verwendung der vorstehend beschriebenen Programmierungsrandbedingungen fort. 16 zeigt ein Ablaufdiagramm, das die bei einem Durchführen dieses Fortpflanzungsschritts beteiligten Verarbeitungsschritte verdeutlicht. Wie gezeigt, setzt das System in Schritt s211 die Werte von zwei Variablen mxi und mxj und initialisiert einen Anmerkungsphonemschleifenzeiger i2 und einen Abfragephonemschleifenzeiger j2. Die Schleifenzeiger i2 und j2 werden bereitgestellt, um alle Netzpunkte in einer Schleife zu durchlaufen, zu denen sich der bei Punkt (i, j) endende Pfad fortpflanzen kann, und die Variablen mxi und mxj werden verwendet, um sicherzustellen, dass i2 und j2 lediglich die Werte annehmen können, die durch die dynamischen Programmierungsrandbedingungen erlaubt sind. Im Einzelnen wird mxi gleich i + mxhops gesetzt, vorausgesetzt, dass dies kleiner oder gleich der Anzahl von Phonemen in der Anmerkung ist, andernfalls wird mxi gleich der Anzahl von Phonemen in der Anmerkung (Nanm) gesetzt. Auf ähnliche Weise wird mxj gleich j + mxhops gesetzt, vorausgesetzt, dass dies kleiner oder gleich der Anzahl von Phonemen in der Abfrage ist, andernfalls wird mxj gleich der Anzahl von Phonemen in der Abfrage (Nabfrage) gesetzt. Schließlich initialisiert das System in Schritt s211 den Anmerkungsphonemschleifenzeiger i2, so dass dieser gleich dem momentanen Wert des Anmerkungsphonemschleifenzeigers i ist, und so dass der Abfragephonemschleifenzeiger j2 gleich dem momentanen Wert des Abfragephonemschleifenzeigers j ist.
  • Da die durch das System verwendeten dynamischen Programmierungsrandbedingungen davon abhängen, ob die Anmerkung Text oder Sprache ist, und ob die Abfrage Text oder Sprache ist, muss der nächste Schritt bestimmen, wie die Anmerkung und die Abfrage erzeugt wurden. Dies wird durch die Entscheidungsblöcke s213, s215 und s217 durchgeführt. Wurden sowohl die Anmerkung als auch die Abfrage aus Sprache erzeugt, dann kann der bei Netzpunkt (i, j) endende dynamische Programmierungspfad sich zu in 11 gezeigten weiteren Punkten fortpflanzen, und Vorgangsschritte s219 bis s235 funktionieren, um diesen Pfad zu diesen weiteren Punkten fortzupflanzen. Im Einzelnen vergleicht in Schritt s219 das System den Anmerkungsphonemschleifenzeiger i2 mit der Variablen mxi. Da in Schritt s211 der Anmerkungsphonemschleifenzeiger i2 auf i gesetzt wird und mxi gleich i + 4 gesetzt wird, geht die Verarbeitung zu Schritt s221 über, in welchem ein ähnlicher Vergleich für den Abfragephonemschleifenzeiger j2 durchgeführt wird. Die Verarbeitung geht dann zu Schritt s223 über, welcher sicherstellt, dass der Pfad nicht bei dem gleichen Netzpunkt (i, j) verbleibt, da anfänglich i2 gleich i und j2 gleich j ist. Deshalb geht anfänglich die Verarbeitung zu Schritt s225 über, in welchem der Abfragephonemschleifenzeiger j2 um 1 inkrementiert wird.
  • Die Verarbeitung kehrt dann zu Schritt s221 zurück, in welchem der inkrementierte Wert von j2 mit mxj verglichen wird. Ist j2 kleiner als mxj, dann kehrt die Verarbeitung zu Schritt s223 zurück, und die Verarbeitung geht zu Schritt s227 über, welcher betreibbar ist, um einen zu großen Sprung entlang sowohl der Sequenzen von Anmerkungsphonemen als auch der Abfragephoneme zu verhindern. Dies wird dadurch durchgeführt, dass sichergestellt wird, dass der Pfad lediglich fortgepflanzt wird, falls i2 + j2 kleiner als i + j + mxhops ist. Dies stellt sicher, dass lediglich der in 11 gezeigte Dreieckssatz von Punkten verarbeitet wird. Unter der Voraussetzung, dass diese Bedingung erfüllt ist, geht die Verarbeitung dann zu Schritt s229 über, in welchem das System die Übergangswertung (ÜBERGANGSWERTUNG) von Netzpunkt (i, j) zu Netzpunkt (i2, j2) berechnet. Die Verarbeitung geht dann zu Schritt s231 über, in welchem das System die in Schritt s229 bestimmte Übergangswertung zu der für den Punkt (i, j) gespeicherten aufsummierenden Wertung addiert und diese zu einem temporären Speicher TEMPWERTUNG kopiert. Wie vorstehend beschrieben, werden in diesem Ausführungsbeispiel, falls sich zwei oder mehr dynamische Programmierungspfade bei dem gleichen Netzpunkt treffen, die mit jedem der Pfade assoziierten aufsummierenden Wertungen miteinander addiert. Deshalb führt in Schritt s233 das System eine Log-Addition von TEMPWERTUNG mit der bereits für Punkt (i2, j2) gespeicherten aufsummierenden Wertung durch, und das Ergebnis wird in WERTUNG (i2, j2) gespeichert. Die Verarbeitung kehrt dann zu Schritt s225 zurück, in welchem der Abfragephonemschleifenzeiger j2 um 1 inkrementiert wird, und die Verarbeitung kehrt zu Schritt s221 zurück. Hat der Abfragephonemschleifenzeiger j2 erst einmal den Wert von mxj erreicht, dann geht die Verarbeitung zu Schritt s235 über, in welchem der Abfragephonemschleifenzeiger j2 auf den anfänglichen Wert j rückgesetzt wird und der Anmerkungsphonemschleifenzeiger i2 um 1 inkrementiert wird. Die Verarbeitung geht dann zu Schritt s219 über, in welchem die Verarbeitung wieder für die nächste Spalte von Punkten beginnt, die in 11 gezeigt sind. Wurde der Pfad erst einmal von Punkt (i, j) zu allen anderen in 11 gezeigten Punkten fortgepflanzt, endet die Verarbeitung.
  • Bestimmen die Entscheidungsblöcke s213 und s215, dass die Anmerkung Text und die Abfrage Sprache ist, dann geht die Verarbeitung zu Schritten s241 bis s251 über, welche betreibbar sind, um den bei Punkt (i, j) endenden Pfad zu den in 9a gezeigten Punkten fortzupflanzen. Im Einzelnen bestimmt das System in Schritt s241, ob der Anmerkungsphonemschleifenzeiger i auf das letzte Phonem in der Anmerkung zeigt oder nicht. Wenn dem so ist, dann liegen keine weiteren Phoneme in der Anmerkung vor, und die Verarbeitung endet. Beträgt der Anmerkungsphonemschleifenzeiger i weniger als Nanm – 1, dann geht die Verarbeitung zu Schritt s243 über, in welchem der Abfragephonemschleifenzeiger j2 mit mxj verglichen wird. Anfänglich ist j2 kleiner als mxj, und deshalb geht die Verarbeitung zu Schritt s245 über, in welchem das System die Übergangswertung ((ÜBERGANGSWERTUNG) von Punkt (i, j) zu Punkt (i + 1, j2) berechnet. Diese Übergangswertung wird dann zu der aufsummierenden Wertung addiert, die mit dem bei Punkt (i, j) endenden Pfad assoziiert ist, und das Ergebnis wird zu der temporären Wertung TEMPWERTUNG kopiert. Das System führt dann in Schritt s249 eine Log-Addition von TEMPWERTUNG mit der mit dem Punkt (i + 1, j2) assoziierten aufsummierenden Wertung durch und speichert das Ergebnis in WERTUNG (i + 1, j2), um sicherzustellen, dass die Pfadwertungen für sich bei dem Netzpunkt (i + 1, j2) treffenden Pfaden kombiniert werden. Die Verarbeitung geht dann zu Schritt s251 über, in welchem der Abfragephonemschleifenzeiger j2 um 1 inkrementiert wird, und die Verarbeitung kehrt dann zu Schritt s243 zurück. Wurde der bei Punkt (i, j) endende Pfad erst einmal zu den in 9a gezeigten weiteren Punkten fortgepflanzt, ist j2 gleich mxj, und die Fortpflanzung des bei Punkt (i, j) endenden Pfads endet.
  • Bestimmen die Entscheidungsblöcke s213 und s217, dass die Anmerkung Sprache und die Abfrage Text ist, dann geht die Verarbeitung zu in 16b gezeigten Schritten s255 bis s265 über, die betreibbar sind, um den bei Punkt (i, j) endenden Pfad zu den in 9b gezeigten weiteren Punkten fortzupflanzen. Dies wird dadurch erreicht, dass zuerst in Schritt s255 geprüft wird, dass der Abfragephonemschleifenzeiger j nicht auf das letzte Phonem in der Sequenz von Phonemen zeigt, die die Abfrage darstellt. Wenn dem nicht so ist, dann geht die Verarbeitung zu Schritt s257 über, in welchem der Anmerkungsphonemschleifenzeiger i2 mit mxi verglichen wird. Anfänglich weist i2 einen Wert von i auf, und unter der Voraussetzung, dass sich Anmerkungsphonem i nicht am Ende der Sequenz von die Anmerkung darstellenden Phonemen befindet, geht die Verarbeitung zu Schritt s259 über, in welchem die Über gangswertung zur Bewegung von Punkt (i, j) zu Punkt (i2, j + 1) berechnet wird. Die Verarbeitung geht dann zu Schritt s261 über, in welchem diese Übergangswertung zu der aufsummierenden Wertung für den bei Punkt (i, j) endenden Pfad berechnet wird, und das Ergebnis wird zu der temporären Wertung TEMPWERTUNG kopiert. Die Verarbeitung geht dann zu Schritt s263 über, in welchem eine Log-Addition von TEMPWERTUNG mit dem bereits für den Punkt (i2, j + 1) gespeicherten aufsummierenden Wertung durchgeführt und das Ergebnis in WERTUNG (i2, j + 1) gespeichert wird. Die Verarbeitung geht dann zu Schritt s265 über, in welchem der Anmerkungsphonemschleifenzeiger i2 um 1 inkrementiert wird, und die Verarbeitung geht zu Schritt s257 über. Diese Verarbeitungsschritte werden dann wiederholt, bis der bei Punkt (i, j) endende Pfad zu jedem der in 9b gezeigten weiteren Punkte fortgepflanzt wurde. Zu diesem Zeitpunkt ist die Fortpflanzung des Pfades bei Punkt (i, j) vollendet, und die Verarbeitung endet.
  • Falls die Entscheidungsblöcke s213 und s215 schließlich bestimmen, dass sowohl die Anmerkung als auch die Abfrage Text sind, dann geht die Verarbeitung zu in 16b gezeigten Schritten s271 bis s279 über, die betreibbar sind, um den bei Punkt (i, j) endenden Pfad zu dem Punkt (i + 1, j + 1) fortzupflanzen, natürlich unter der Voraussetzung, dass ein weiteres Anmerkungsphonem und ein weiteres Abfragephonem vorliegen. Im Einzelnen prüft das System in Schritt s271, dass der Anmerkungsphonemschleifenzeiger i nicht auf das letzte Anmerkungsphonem zeigt. Wenn dem nicht so ist, dann geht die Verarbeitung zu Schritt s273 über, in welchem eine ähnliche Prüfung für den Abfragephonemschleifenzeiger j in Relation zu der Sequenz von Abfragephonemen durchgeführt wird. Liegen keine weiteren Anmerkungsphoneme vor oder liegen keine weiteren Abfragephoneme vor, dann endet die Verarbeitung. Liegen jedoch ein weiteres Anmerkungsphonem und ein weiteres Abfragephonem vor, dann geht die Verarbeitung zu Schritt s275 über, in welchem das System die Übergangswertung von Punkt (i, j) zu Punkt (i + 1, j + 1) berechnet. Diese Übergangswertung wird dann in Schritt s277 zu der für den Punkt (i, j) gespeicherten aufsummierenden Wertung addiert und in der temporären Wertung TEMPWERTUNG gespeichert. Die Verarbeitung geht dann zu Schritt s279 über, in welchem das System eine Log-Addition von TEMPWERTUNG mit der bereits für Punkt (i + 1, j + 1) gespeicherten aufsummierenden Wertung durchführt und das Ergebnis zu WERTUNG (i + 1, j + 1) kopiert wird. Wie für den Fachmann ersichtlich, sind Schritte s277 und s279 in diesem Ausführungsbeispiel erforderlich, da die dynamischen Programmierungsrandbedingungen einem Pfad erlauben, bei jedem Phonem innerhalb der Sequenz von Phonemen zu starten, die die Anmerkung darstellen, und deshalb kann Punkt (i + 1, j + 1) bereits eine mit ihm assoziierte Wertung aufweisen. Nach Schritt s279 ist die Fortpflanzung von Punkt (i, j) vollendet, und die Verarbeitung endet.
  • Übergangswertung
  • In in 12 gezeigten Schritten s103, s105 und s107 werden dynamische Programmierungspfade fortgepflanzt, und während dieser Fortpflanzung wird die Übergangswertung von einem Punkt zu einem anderen Punkt in Schritten s127, s117, s177, s191, s229, s245, s259 und s275 berechnet. In diesen Schritten berechnet das System die geeigneten Einfügungswahrscheinlichkeiten, Löschungswahrscheinlichkeiten und Decodierungswahrscheinlichkeiten in Relation zu dem Startpunkt und Endpunkt des Übergangs. Die Art und Weise, wie dies in diesem Ausführungsbeispiel erreicht wird, wird nachstehend unter Bezugnahme auf 17 und 18 beschrieben.
  • Im Einzelnen zeigt 17 ein Ablaufdiagramm, das die allgemeinen Verarbeitungsschritte verdeutlicht, die bei einem Berechnen der Übergangswertung für einen sich von Netzpunkt (i, j) zu Netzpunkt (i2, j2) fortpflanzenden Pfad beteiligt sind. In Schritt s291 berechnet das System für jedes zwischen Punkt (i, j) und Punkt (i2, j2) eingefügte Phonem die Wertung zur Einfügung des (der) eingefügten Phonems(/e) (was genau der vorstehend beschriebenen Log von Wahrscheinlichkeit PI( ) entspricht) und addiert dies zu einem geeigneten Speicher EINFÜGEWERTUNG. Die Verarbeitung geht dann zu Schritt s293 über, in welchem das System eine ähnliche Berechnung für jedes Abfragephonem durchführt, das zwischen Punkt (i, j) und Punkt (i2, j2) eingefügt wird, und addiert dies zu EINFÜGEWERTUNG. Es sei jedoch darauf hingewiesen, dass falls (i, j) der Startnullknoten ⌀s oder falls (i2, j2) der Endnullknoten ⌀e ist, dann das System nicht die Einfügungswahrscheinlichkeiten für irgendwelche eingefügten Anmerkungsphoneme berechnet (da keine Strafe für ein Starten oder Enden eines Pfades bei irgendeinem der Anmerkungsphoneme vorliegt), obwohl das System Einfügungswahrscheinlichkeiten für irgendwelche eingefügten Abfragephoneme berechnet. Wie vorstehend beschrieben, sind die berechneten Wertungen Log- basierte Wahrscheinlichkeiten, und deshalb entspricht die Addition der Wertungen in EINFÜGEWERTUNG der Multiplikation der entsprechenden Einfügungswahrscheinlichkeiten. Die Verarbeitung geht dann zu Schritt s295 über, in welchem das System die Wertungen für irgendwelche Löschungen und/oder irgendwelche Decodierungen bei einer Fortpflanzung von Punkt (i, j) zu Punkt (i2, j2) berechnet, diese Wertungen addiert und in einem geeigneten Speicher LÖSCHWERTUNG gespeichert werden. Die Verarbeitung geht dann zu Schritt s297 über, in welchem das System EINFÜGEWERTUNG und LÖSCHWERTUNG addiert und das Ergebnis zu ÜBERGANGSWERTUNG kopiert.
  • Die Verarbeitung, die in Schritt s295 bei einem Bestimmen der Löschungs- und/oder Decodierungswertungen bei einem Fortpflanzen von Punkt (i, j) zu Punkt (i2, j2) beteiligt ist, wird nachstehend ausführlicher unter Bezugnahme auf 18 beschrieben. Da die möglichen Löschungen und Decodierungen davon abhängen, ob die Anmerkung aus Text erzeugt wurde oder nicht, und ob die Abfrage aus Text erzeugt wurde oder nicht, bestimmen die Entscheidungsblöcke s301, s303 und s305, ob die Anmerkung Text oder Sprache ist, und ob die Abfrage Text oder Sprache ist. Bestimmen diese Entscheidungsblöcke, dass sowohl die Anmerkung als auch die Abfrage Text sind, dann liegen keine Löschungen vor, und die Decodierung der zwei Phoneme wird in Schritt s307 durch einen Boole'schen Abgleich durchgeführt. Ist Anmerkungsphonem ai2 das gleiche wie Abfragephonem qj2, dann geht die Verarbeitung zu Schritt s309 über, in welchem ÜBERGANGSWERTUNG gleich Log [1] (d. h. Null) gesetzt wird, und die Verarbeitung endet. Ist jedoch Anmerkungsphonem ai2 nicht das gleiche wie Abfragephonem qj2, dann geht die Verarbeitung zu Schritt s311 über, in welchem ÜBERGANGSWERTUNG auf eine sehr große negative Zahl gesetzt wird, die eine Systemnäherung von Log [Null] ist, und die Verarbeitung endet dann.
  • Bestimmen die Entscheidungsblöcke s301 und s305, dass die Anmerkung Sprache und die Abfrage Text ist, dann werden die Übergangswertungen unter Verwendung der vereinfachten Form von vorstehend beschriebener Gleichung (4) bestimmt. In diesem Fall geht die Verarbeitung von Schritt s303 zu Schritt s313 über, in welchem das System bestimmt, ob Anmerkungsschleifenzeiger i2 gleich Anmerkungsschleifenzeiger i ist. Wenn dem so ist, dann bedeutet dies, dass sich der Pfad von Punkt (i, j) zu Punkt (i, j + 1) fortgepflanzt hat. Deshalb wurde das Abfragephonem qj+1 aus der Sequenz von Anmerkungsphonemen in Relation zu der Sequenz von Abfragephonemen gelöscht. Deshalb kopiert das System in Schritt s317 die Log-Löschungswahrscheinlichkeit von Phonem qj+1 (d. h. Log P(⌀|qj+1, C)) zu LÖSCHWERTUNG, und die Verarbeitung endet. Bestimmt das System in Schritt s313, dass i2 ungleich i ist, dann betrachtet das System die Fortpflanzung des bei Punkt (i, j) endenden Pfades zu einem der Punkte (i + 1, j + 1), (i + 2, j + 1) oder (i + 3, j + 1). In diesem Fall liegen keine Löschungen, lediglich Einfügungen und eine Decodierung zwischen Anmerkungsphonem ai2 und Abfragephonem qj+1 vor. Deshalb kopiert das System in Schritt s315 die Log-Decodierungswahrscheinlichkeit von Abfragephonem qj+1 als Anmerkungsphonem ai2 (d. h. Log P(ai2|qj+1, C)) zu LÖSCHWERTUNG, und die Verarbeitung endet.
  • Bestimmen die Entscheidungsblöcke s301 und s305, dass die Anmerkung Text und dass die Abfrage Sprache ist, dann werden die Übergangswertungen unter Verwendung der anderen vereinfachten Form von vorstehend beschriebener Gleichung (4) bestimmt. In diesem Fall geht die Verarbeitung von Schritt s305 zu Schritt s319 über, in welchem das System bestimmt, ob Abfragephonemschleifenzeiger j2 gleich Abfragephonemschleifenzeiger j ist. Wenn dem so ist, dann berechnet das System die Übergangswertung von Punkt (i, j) zu Punkt (i + 1, j). In diesem Fall wurde das Anmerkungsphonem ai+1 aus der Sequenz von Abfragephonemen in Relation zu der Sequenz von Anmerkungsphonemen gelöscht. Deshalb bestimmt das System in Schritt s321 die Log-Löschungswahrscheinlichkeit von Anmerkungsphonem ai+1 (d. h. Log P(⌀|ai+1, C)), und kopiert diese zu LÖSCHWERTUNG, und dann endet die Verarbeitung. Bestimmt das System in Schritt s319, dass Abfragephonemschleifenzeiger j2 ungleich Abfragephonemschleifenzeiger j ist, dann bestimmt das System momentan die Übergangswertung von Punkt (i, j) zu einem der Punkte (i + 1, j + 1), (i + 1, j + 2) oder (i + 1, j + 3). In diesem Fall liegen keine Löschungen, sondern lediglich Einfügungen und eine Decodierung zwischen Anmerkungsphonem ai+1 und Abfragephonem qj2 vor. Deshalb bestimmt das System in Schritt s323 die Log-Decodierungswahrscheinlichkeit von Anmerkungsphonem ai+1 als als Abfragephonem qj2 (d. h. Log P(qj2|ai+1, C)) und kopiert diese zu LÖSCHWERTUNG, und die Verarbeitung endet.
  • Bestimmen die Entscheidungsblöcke s301 und s303, dass sowohl die Anmerkung als auch die Abfrage aus Sprache erzeugt werden, dann werden die Übergangswertungen unter Verwendung von vorstehender Gleichung (4) bestimmt. In diesem Fall geht die Verarbeitung von Schritt s303 zu Schritt s325 über, in welchem das System bestimmt, ob der Anmerkungsschleifenzeiger i2 gleich Anmerkungsschleifenzeiger i ist. Wenn dem so ist, dann geht die Verarbeitung zu Schritt s327 über, in welchem ein Phonemschleifenzeiger r auf 1 initialisiert wird. Der Phonemzeiger r wird verwendet, um jedes mögliche Phonem, das dem System bekannt ist, während der Berechnung von vorstehender Gleichung (4) in einer Schleife zu durchlaufen. Die Verarbeitung geht dann zu Schritt s329 über, in welchem das System den Phonemzeiger r mit der Anzahl von dem System bekannten Phonemen Nphoneme (welche in diesem Ausführungsbeispiel gleich 43 ist) vergleicht. Anfänglich wird in Schritt s327 r auf 1 gesetzt, wodurch die Verarbeitung zu Schritt s331 übergeht, in welchem das System die Log-Wahrscheinlichkeit des Auftretens von Phonem pr (d. h. Log P(pr|C)) bestimmt und diese zu einer temporären Wertung TEMPLÖSCHWERTUNG kopiert. Ist Anmerkungsphonemschleifenzeiger i2 gleich Anmerkungsphonem i, dann pflanzt das System den bei Punkt (i, j) endenden Pfad zu einem der Punkte (i, j + 1), (i, j + 2) oder (i, j + 3) fort. Deshalb liegt ein Phonem in der Abfrage vor, das in der Anmerkung nicht vorliegt. Folglich addiert das System in Schritt s333 die Log-Löschungswahrscheinlichkeit von Phonem pr aus der Anmerkung (d. h. Log P(⌀|pr, C)) zu TEMPLÖSCHWERTUNG. Die Verarbeitung geht dann zu Schritt s335 über, in welchem das System die Log-Decodierungswahrscheinlichkeit von Phonem pr als Abfragephonem qj2 (d. h. Log P(qj2|pr, C)) zu TEMPLÖSCHWERTUNG addiert. Die Verarbeitung geht dann zu Schritt s337 über, in welchem die Log-Addition von TEMPLÖSCHWERTUNG und LÖSCHWERTUNG durchgeführt und das Ergebnis in LÖSCHWERTUNG gespeichert wird. Die Verarbeitung geht dann zu Schritt s339 über, in welchem der Phonemschleifenzeiger r um 1 inkrementiert wird, und die Verarbeitung kehrt dann zu Schritt s329 zurück, in welchem eine ähnliche Verarbeitung für das nächste dem System bekannte Phonem durchgeführt wird. Wurde diese Berechnung erst einmal für alle der 43 dem System bekannten Phoneme durchgeführt, endet die Verarbeitung.
  • Bestimmt in Schritt s325 das System, dass i2 ungleich i ist, dann geht die Verarbeitung zu Schritt s341 über, in welchem das System bestimmt, ob der Abfragephonemschleifenzeiger j2 gleich Abfragephonemschleifenzeiger j ist. Wenn dem so ist, dann geht die Verarbeitung zu Schritt s343 über, in welchem der Phonemschleifenzeiger r auf 1 initialisiert wird. Die Verarbeitung geht dann zu Schritt s345 über, in welchem der Phonemschleifenzeiger r mit der Gesamtanzahl von dem System bekannten Phonemen (Nphoneme) verglichen wird. Anfänglich wird in Schritt s343 r auf 1 gesetzt, und deshalb geht die Verarbeitung zu Schritt s347 über, in welchem die Log-Wahrscheinlichkeit des Auftretens von Phonem pr bestimmt und in den temporären Speicher TEMPLÖSCHWERTUNG kopiert wird. Die Verarbeitung geht dann zu Schritt s349 über, in welchem das System die Log-Decodierungswahrscheinlichkeit von Phonem pr als Anmerkungsphonem ai2 bestimmt und diese zu TEMPLÖSCHWERTUNG addiert. Ist der Abfragephonemschleifenzeiger j2 gleich Abfragephonemschleifenzeiger j, dann pflanzt das System den bei Punkt (i, j) endenden Pfad zu einem der Punkte (i + 1, j), (i + 2, j) oder (i + 3, j) fort. Deshalb liegt ein Phonem in der Anmerkung vor, das in der Abfrage nicht vorliegt. Folglich bestimmt das System in Schritt s351 die Log-Löschungswahrscheinlichkeit von Phonem pr aus der Abfrage und addiert diese zu TEMPLÖSCHWERTUNG. Die Verarbeitung geht dann zu Schritt s353 über, in welchem das System die Log-Addition von TEMPLÖSCHWERTUNG mit LÖSCHWERTUNG durchführt und das Ergebnis in LÖSCHWERTUNG speichert. Der Phonemschleifenzeiger r wird dann in Schritt s355 um 1 inkrementiert, und die Verarbeitung kehrt zu Schritt s345 zurück. Wurden die Verarbeitungsschritte s347 bis s353 erst einmal für alle dem System bekannten Phoneme durchgeführt, endet die Verarbeitung.
  • Bestimmt in Schritt s341 das System, dass Abfragephonemschleifenzeiger j2 ungleich Abfragephonemschleifenzeiger j ist, dann geht die Verarbeitung zu Schritt s357 über, in welchem der Phonemschleifenzeiger r auf 1 initialisiert wird. Die Verarbeitung geht dann zu Schritt s359 über, in welchem das System den Phonemzähler r mit der Anzahl von dem System bekannten Phonemen (Nphoneme) vergleicht. Anfänglich wird r in Schritt s357 auf 1 gesetzt, und deshalb geht die Verarbeitung zu Schritt s361 über, in welchem das System die Log-Wahrscheinlichkeit des Auftretens von Phonem pr bestimmt und diese zu der temporären Wertung TEMPLÖSCHWERTUNG kopiert. Ist der Abfragephonemschleifenzeiger j2 ungleich Abfragephonemschleifenzeiger j, dann pflanzt das System den bei Punkt (i, j) endenden Pfad zu einem der Punkte (i + 1, j + 1), (i + 1, j + 2) und (i + 2, j + 1) fort. Deshalb liegen keine Löschungen, sondern lediglich Einfügungen und Decodierungen vor. Die Verarbeitung geht deshalb zu Schritt s363 über, in welchem die Log-Decodierungswahrscheinlichkeit von Phonem pr als Anmerkungsphonem ai2 zu TEMPLÖSCHWERTUNG addiert wird. Die Verarbeitung geht dann zu Schritt s365 über, in welchem die Log-Decodierungswahrscheinlichkeit von Phonem pr als Abfragephonem qj2 bestimmt und zu TEMPLÖSCHWERTUNG addiert wird. Das System führt dann in Schritt s367 die Log-Addition von TEMPLÖSCHWERTUNG mit LÖSCHWERTUNG durch und speichert das Ergebnis in LÖSCHWERTUNG. Der Phonemzähler r wird dann in Schritt s369 um 1 inkrementiert, und die Verarbeitung kehrt zu Schritt s359 zurück. Wurden Verarbeitungsschritte s361 bis s367 erst einmal für alle dem System bekannten Phoneme durchgeführt, endet die Verarbeitung.
  • NORMALISIERUNG
  • Die vorstehende Beschreibung des dynamischen Programmierungsvorgangs befasst sich lediglich mit dem Zählerteil von vorstehender Gleichung (3). Deshalb muss, nachdem eine Eingabeabfrage mit einer Sequenz von Anmerkungsphonemen in der Datenbank abgeglichen wurde, die Wertung für jenen Abgleich (die in ENDWERTUNG gespeichert ist) durch den Normalisierungsterm normalisiert werden, der durch den Nenner von Gleichung (3) definiert wird. Wie vorstehend beschrieben, wird die Berechnung des Nennerterms zur gleichen Zeit wie die Berechnung des Zählers durchgeführt, d. h. in der vorstehend beschriebenen dynamischen Programmierungsroutine. Dies liegt daran, wie aus einem Vergleich des Zählers und des Nenners ersichtlich, dass die für den Nenner erforderlichen Terme alle im Zähler berechnet werden. Es sei jedoch darauf hingewiesen, dass falls die Anmerkung oder die Abfrage aus Text erzeugt wird, keine Normalisierung durchgeführt wird. In diesem Ausführungsbeispiel wird die Normalisierung derart durchgeführt, dass längeren Anmerkungen kein größeres Gewicht als kürzeren Anmerkungen vermittelt wird, und derart, dass Anmerkungen, die gewöhnliche Phoneme enthalten, nicht mehr Gewicht vermittelt wird als Anmerkungen, die ungewöhnliche Phoneme enthalten. Dies wird durch eine Normalisierung der Wertung mit einem Term erreicht, der davon abhängt, wie gut die Anmerkung mit dem zugrundeliegenden Modell übereinstimmt.
  • TRAINING
  • In dem vorstehenden Ausführungsbeispiel verwendete das System 1892 Decodierungs-/Löschungswahrscheinlichkeiten und 43 Einfügungswahrscheinlichkeiten (die vorstehend als Konfusionsstatistik bezeichnet wurden), die dazu verwendet wurden, die dynamischen Programmierungspfade in dem Phonemabgleichvorgang zu bewerten. In diesem Ausführungsbeispiel werden diese Wahrscheinlichkeiten vorab während einer Trainingssitzung bestimmt und in einem (nicht gezeigten) Speicher gespeichert. Im Einzelnen wird während dieser Trainingssitzung ein Spracherkennungssystem verwendet, um eine Phonemdecodierung von Sprache auf zwei Wegen bereitzustellen. In dem ersten Weg wird das Spracherkennungssystem sowohl mit der Sprache als auch den tatsächlich gesprochenen Worten versehen. Das Spracherkennungssystem kann deshalb diese Informationen verwenden, um die kanonische Phonemsequenz der gesprochenen Wörter zu erzeugen, um eine ideale Decodierung der Sprache zu erhalten. Das Spracherkennungssystem wird dann verwendet, um die gleiche Sprache zu decodieren, aber dieses Mal ohne Kenntnis der tatsächlich gesprochenen Wörter (nachstehend als freie Decodierung bezeichnet). Die aus der freien Decodierung erzeugte Phonemsequenz weicht von der kanonischen Phonemsequenz in den nachstehenden Aspekten ab:
    • i) Die freie Decodierung kann Fehler machen und Phoneme in die Decodierung einfügen, die in der kanonischen Sequenz nicht vorhanden sind, oder kann alternativ Phoneme in der Decodierung auslassen, die in der kanonischen Sequenz vorhanden sind,
    • ii) ein Phonem kann mit einem anderen verwechselt werden, und
    • iii) selbst wenn das Spracherkennungssystem die Sprache perfekt decodiert, kann die freie Decodierung nichtsdestotrotz von der kanonischen Decodierung aufgrund der Unterschiede zwischen natürlichsprachlicher Aussprache und kanonischer Aussprache abweichen, z. B. wird in natürlicher Sprache das Wort "and" (dessen kanonische Formen /ae/ /n/ /d/ und /ax/ /n/ /d/ lauten) häufig auf /ax/ /n/ oder sogar /n/ reduziert.
  • Deshalb kann, falls eine große Anzahl von Äußerungen in ihren kanonischen Formen und ihren frei decodierten Formen decodiert wird, dann ein dynamisches Programmierungsverfahren verwendet werden, um die beiden anzuordnen. Dies stellt Zählungen des Decodierten d bereit, wenn das Phonem kanonisch p hätte sein sollen. Aus diesen Trainingsergebnissen können die vorstehenden Decodierungs-, Löschungs- und Einfügungswahrscheinlichkeiten auf die nachstehend beschriebene Weise genähert werden.
  • Die Wahrscheinlichkeit, dass Phonem d eine Einfügung ist, ist gegeben durch:
    Figure 00610001
    wobei Id die Anzahl von Durchläufen ist, für die das automatische Spracherkennungssystem Phonem d einfügte, und ist n0 d die Gesamtanzahl von decodierten Phonemen, die in Relation zu der kanonischen Sequenz eingefügt werden.
  • Decodierungswahrscheinlichkeit von Phonem p als Phonem d ist gegeben durch:
    Figure 00620001
    wobei cdp die Anzahl von Durchläufen ist, für die das automatische Spracherkennungssystem d decodierte, wenn es p hätte decodieren sollen, und np ist die Anzahl von Durchläufen, für die das automatische Spracherkennungssystem irgendetwas (einschließlich einer Löschung) decodierte, wenn es p hätte decodieren sollen.
  • Die Wahrscheinlichkeit, dass nichts decodiert wird (d. h. dass eine Löschung vorliegt), wenn das Phonem p hätte decodiert werden sollen, ist gegeben durch:
    Figure 00620002
    wobei Op die Anzahl von Durchläufen ist, für die das automatische Spracherkennungssystem nichts decodierte, wenn p hätte decodiert werden sollen, und np das gleiche wie das vorstehend beschriebene np ist.
  • ZWEITES AUSFÜHRUNGSBEISPIEL
  • In dem ersten Ausführungsbeispiel wurde eine einzelne Eingabeabfrage mit einer Anzahl von gespeicherten Anmerkungen verglichen. In diesem Ausführungsbeispiel werden zwei gesprochene Abfragen mit den gespeicherten Anmerkungen verglichen. Dieses Ausführungsbeispiel ist für Anwendungen geeignet, in welchen die Eingabeabfragen in einer verrauschten Umgebung getätigt werden oder in welchen eine höhere Genauigkeit erforderlich ist. Das Ausführungsbeispiel ist klar nicht für Situationen geeignet, in welchen irgendeine der Abfragen Text sind, da dies die anderen Abfragen redundant macht. Das System soll daher in der Lage sein, die nachstehenden zwei Situationen zu behandeln:
    • (i) Beide Eingabeabfragen werden aus Sprache erzeugt, und die Anmerkung wird aus Sprache erzeugt, und
    • (ii) beide Eingabeabfragen werden aus Sprache erzeugt, und die Anmerkung wird aus Text erzeugt.
  • Dieses Ausführungsbeispiel verwendet einen dynamischen Programmierungsalgorithmus, der jenem ähnlich ist, der in dem ersten Ausführungsbeispiel verwendet wird, mit Ausnahme dessen, dass der Algorithmus angepasst ist, um die zwei Abfragen zur gleichen Zeit mit der Anmerkung abzugleichen. 19 zeigt einen dreidimensionalen Koordinatenausdruck, wobei eine Dimension für jede der zwei Abfragen vorgesehen ist und die verbleibende Dimension für die Anmerkung vorgesehen ist. 19 zeigt das dreidimensionale Netz von Punkten, die durch den dynamischen Programmierungsalgorithmus dieses Ausführungsbeispiels verarbeitet werden. Der Algorithmus verwendet die gleichen Übergangswertungen, dynamischen Programmierungs randbedingungen und die Konfusionsstatistik (d. h. die Phonemwahrscheinlichkeiten), die in dem ersten Ausführungsbeispiel verwendet wurden, um jeden der Pfade durch das dreidimensionale Netz von Netzpunkten in dem in 19 gezeigten Ausdruck fortzupflanzen und zu bewerten.
  • Nachstehend wird eine ausführliche Beschreibung dieses dreidimensionalen dynamischen Programmierungsvorgangs angegeben. Wie für den Fachmann aus einem Vergleich von 20 bis 25 mit 13 bis 18 ersichtlich, ist dieser dreidimensionale dynamische Programmierungsalgorithmus im Wesentlichen der gleiche wie der in dem ersten Ausführungsbeispiel angewendete zweidimensionale dynamische Programmierungsalgorithmus mit Ausnahme dessen, dass einige wenige weitere Steuerschleifen hinzugefügt sind, um der gesonderten Abfrage Rechnung zu tragen.
  • Der dreidimensionale dynamische Programmierungsalgorithmus vergleicht die zwei Abfragen mit der Anmerkung gemäß allen in 12 gezeigten Schritten. 20 zeigt ausführlicher die Verarbeitungsschritte, die in Schritt s103 bei einem Fortpflanzen der dynamischen Programmierungspfade von dem Nullstartknoten ϕs zu allen möglichen Startpunkten beteiligt sind, die durch die dynamischen Programmierungsrandbedingungen definiert sind. Diesbezüglich bestehen die Randbedingungen darin, dass ein dynamischer Programmierungspfad bei irgendeinem der Anmerkungsphoneme beginnen kann, und darin, dass ein Pfad bei irgendeinem der ersten vier Phoneme in einer der Abfragen beginnen kann. Deshalb setzt das System unter Bezugnahme auf 20 in Schritt s401 den Wert der Variablen mxj und mxk auf mxhops, welche die gleiche wie die in dem ersten Ausführungsbeispiel verwendete Konstante ist.
  • Deshalb werden in diesem Ausführungsbeispiel mxj und mxk beide gleich vier gesetzt, vorausgesetzt, die jeweilige Eingabeabfrage umfasst vier oder mehr Phoneme. Andernfalls werden/wird mxj und/oder mxk gleich der Anzahl von Phonemen in der entsprechenden Abfrage gesetzt. Die Verarbeitung geht dann zu Schritten s403 bis s417 über, welche betreibbar sind, um dynamische Programmierungspfade bei Punkten (i, j, k) für i = 0 bis Nanm – 1, j = 0 bis 3 und k = 0 bis 3 zu beginnen. Dies beendet die Verarbeitung in in 12 gezeigtem Schritt s103, und die Verarbeitung geht dann zu Schritt s105 über, in welchem diese dynamischen Programmierungspfade zu den Endpunkten fortgepflanzt werden.
  • Wie in dem ersten Ausführungsbeispiel pflanzt das System in diesem Ausführungsbeispiel die dynamischen Programmierungspfade von den Startpunkten zu den Endpunkten durch Verarbeiten der Punkte in dem Suchraum in einer rasterartigen Weise fort. Der zum Steuern dieses Rasterverarbeitungsvorgangs verwendete Steueralgorithmus ist in 21 gezeigt. Wie aus einem Vergleich von 21 mit 14 ersichtlich, weist dieser Steueralgorithmus die gleiche allgemeine Form wie der in dem ersten Ausführungsbeispiel verwendete Steueralgorithmus auf. Die einzigen Unterschiede bestehen im komplexeren Fortpflanzungsschritt s419 und in der Bereitstellung von Abfrageblock s421, Block s423 und Block s425, die gebraucht werden, um die durch die zweite Eingabeabfrage verursachten zusätzlichen Punkte zu verarbeiten. Zu einem besseren Verständnis der Arbeitsweise des in 21 gezeigten Steueralgorithmus wird der Leser auf die vorstehend vermittelte Beschreibung von 14 verwiesen.
  • 22 zeigt ausführlicher die Verarbeitungsschritte, die in in 12 gezeigtem Schritt s107 in diesem Ausführungsbeispiel verwendet werden, wenn die Pfade bei den Endpunkten zu den Endnullknoten ϕe fortgepflanzt werden. Wie aus einem Vergleich zwischen 22 und 15 ersichtlich, sind die in Schritt s107 in diesem Ausführungsbeispiel beteiligten Verarbeitungsschritte ähnlich den entsprechenden in dem ersten Ausführungsbeispiel verwendeten Schritten. Die Unterschiede bestehen in einem komplexeren Übergangswertungsberechnungsblock s443 und in den zusätzlichen Blöcken (s439, s441 und s449) und einer Variablen (k), die zu einem Verarbeiten der zusätzlichen Netzpunkte aufgrund der zweiten Abfrage erforderlich ist. Aus diesem Grund wird der Leser, um die Verarbeitung zu verstehen, die in Schritten s431 bis s449 beteiligt ist, auf die vorstehende Beschreibung von 15 verwiesen.
  • 23 zeigt ein Ablaufdiagramm, das die Verarbeitungsschritte verdeutlicht, die bei dem in 21 gezeigten Fortpflanzungsschritt s419 beteiligt sind. 16 zeigt das entsprechende Ablaufdiagramm für das vorstehend beschriebene zweidimensionale Ausführungsbeispiel. Wie aus einem Vergleich von 23 mit 16 ersichtlich, bestehen die Hauptunterschiede zwischen den zwei Ausführungsbeispielen in den zusätzlichen Variablen (mxk und k2) und in Verarbeitungsblöcken (s451, s453, s455 und s457), die zu einem Verarbeiten der zusätzlichen Netzpunkte aufgrund der zweiten Abfrage erforderlich sind. 23 ist ebenso geringfügig einfacher, da beide Abfragen Sprache sein müssen, und deshalb lediglich zwei Hauptäste in dem Ablaufdiagramm vorliegen, einer dafür, wenn die Anmerkung Text ist, und der andere dafür, wenn die Anmerkung Sprache ist. Für ein besseres Verständnis der Verarbeitungsschritte, die in dem Ablaufdiagramm in 23 beteiligt sind, wird der Leser auf die Beschreibung von 16 verwiesen.
  • 24 zeigt ein Ablaufdiagramm, das die Verarbeitungsschritte verdeutlicht, die bei einer Berechnung der Übergangswertung beteiligt sind, wenn ein dynamischer Programmierungspfad von Punkt (i, j, k) zu Punkt (i2, j2, k2) während der Verarbeitungsschritte in 23 fortgepflanzt wird. 17 zeigt das entsprechende Ablaufdiagramm für das vorstehend beschriebene zweidimensionale Ausführungsbeispiel. Wie aus einem Vergleich von 24 mit 17 ersichtlich, besteht der Hauptunterschied zwischen diesem Ausführungsbeispiel und dem ersten Ausführungsbeispiel in dem zusätzlichen Verarbeitungsschritt s461 zur Berechnung der Einfügungswahrscheinlichkeiten für eingefügte Phoneme in der zweiten Abfrage. Deshalb wird der Leser zu einem besseren Verständnis der Verarbeitungsschritte, die in dem in 24 gezeigten Ablaufdiagramm beteiligt sind, auf die Beschreibung von 17 verwiesen.
  • Die Verarbeitungsschritte, die in Schritt s463 in 24 zu einem Bestimmen der Löschungs- und/oder Decodierungswertungen bei einem Fortpflanzen von Punkt (i, j, k) zu Punkt (i2, j2, k2) beteiligt sind, werden nachstehend ausführlicher unter Bezugnahme auf 25 beschrieben. Da die möglichen Löschungen und Decodierungen davon abhängen, ob die Anmerkung aus Text oder Sprache erzeugt wurde, bestimmt der Entscheidungsblock s501, ob die Anmerkung Text oder Sprache ist. Ist die Anmerkung aus Text erzeugt, dann muss Phonemschleifenzeiger i2 auf Anmerkungsphonem ai+1 zeigen. Die Verarbeitung geht dann zu Schritten s503, s505 und s507 über, die betreibbar sind, um zu bestimmen, ob Phonemlöschungen in der ersten und zweiten Abfrage in Relation zu der Anmerkung vorhanden sind oder nicht. Wenn dem so ist, dann sind/ist j2 und/oder k2 gleich j bzw. k.
    • • Falls j2 ungleich j und k2 ungleich k ist, dann liegen keine Löschungen in den Abfragen in Relation zu der Anmerkung vor, und die Verarbeitung geht zu Schritt s509 über, in welchem die Log-Decodierungswahrscheinlichkeit von Anmerkungsphonem ai+1 als erstes Abfragephonem qj2 zu LÖSCHWERTUNG kopiert wird. Die Verarbeitung geht dann zu Schritt s511 über, in welchem die Log-Decodierungswahrscheinlichkeit von Anmerkungsphonem ai+1 als zweites Abfragephonem qk2 zu LÖSCHWERTUNG addiert wird.
    • • Bestimmt das System, dass j2 ungleich j und k2 gleich k ist, dann geht die Verarbeitung zu Schritten s513 und s515 über, in welchen die Löschungswahrscheinlichkeit von Anmerkungsphonem ai+1 bestimmt und in LÖSCHWERTUNG kopiert wird, bzw. die Log-Decodierungswahrscheinlichkeit von Anmerkungsphonem ai+1 als erstes Abfragephonem qj2 zu LÖSCHWERTUNG addiert wird.
    • • Bestimmt das System, dass sowohl j2 gleich j als auch k2 gleich k ist, dann geht die Verarbeitung zu Schritten s517 und s519 über, in welchen das System die Log-Löschungswahrscheinlichkeit des Anmerkungsphonems ai+1 sowohl aus der ersten als auch der zweiten Abfrage bestimmt und das Ergebnis in LÖSCHWERTUNG speichert.
    • • Bestimmt das System, dass j2 gleich j ist und k2 ungleich k ist, dann geht die Verarbeitung zu Schritten s521 und s523 über, die betreibbar sind, um die Log-Löschungswahrscheinlichkeit von Anmerkungsphonem ai+1 zu LÖSCHWERTUNG zu kopieren bzw. um die Log-Decodierungswahrscheinlichkeit von Anmerkungsphonem ai+1 als zweites Abfragephonem qk2 zu LÖSCHWERTUNG zu addieren.
  • Bestimmt in Schritt s501 das System, dass die Anmerkung aus Sprache erzeugt ist, dann bestimmt das System (in Schritten s525 bis s537) durch Vergleichen von i2, j2 bzw. k2 mit i, j bzw. k, ob irgendwelche Phonemlöschungen aus der Anmerkung oder den beiden Abfragen vorliegen. Wie in 25b bis 25e gezeigt, liegen, wenn die Anmerkung aus Sprache erzeugt wird, acht Hauptäste vor, die funktionieren, um die geeigneten Decodierungs- und Löschungswahrscheinlichkeiten für die acht möglichen Situationen zu bestimmen. Da die in jeder Situation durchgeführte Verarbeitung sehr ähnlich ist, wird lediglich eine Beschreibung für eine der Situationen nachstehend angeführt.
  • Bestimmt im Einzelnen das System in Schritten s525, s527 und s531, dass eine Löschung aus der Anmerkung (da i2 = i) vorlag und dass keine Löschungen aus den beiden Abfragen vorlagen (da j2 ≠ j und k2 ≠ k), dann geht die Verarbeitung zu Schritt s541 über, in welchem ein Phonemschleifenzähler r auf 1 initialisiert wird. Der Phonemschleifenzähler r wird verwendet, um jedes mögliche, dem System bekannte Phonem während der Berechnung einer Gleichung, die vorstehender, in dem ersten Ausführungsbeispiel beschriebener Gleichung (4) ähnlich ist, in einer Schleife zu durchlaufen. Die Verarbeitung geht dann zu Schritt s543 über, in welchem das System den Phonemzeiger r mit der Anzahl von dem System bekannten Phonemen Nphoneme (die in diesem Ausführungsbeispiel gleich 43 ist) vergleicht. Anfänglich wird in Schritt s541 r auf 1 gesetzt. Deshalb geht die Verarbeitung zu Schritt s545 über, in welchem das System die Log-Wahrscheinlichkeit des Auftretens von Phonem pr bestimmt und diese in eine temporäre Wertung TEMPLÖSCHWERTUNG kopiert. Die Verarbeitung geht dann zu Schritt s547 über, in welchem das System die Log-Löschungswahrscheinlichkeit von Phonem pr in der Anmerkung bestimmt und diese zu TEMPLÖSCHWERTUNG addiert. Die Verarbeitung geht dann zu Schritt s549 über, in welchem das System die Log-Decodierungswahrscheinlichkeit von Phonem pr als erstes Abfragephonem q1 j2 bestimmt und diese zu TEMPLÖSCHWERTUNG addiert. Die Verarbeitung geht dann zu Schritt s551 über, in welchem das System die Log-Decodierungswahrscheinlichkeit von Phonem pr als zweites Abfragephonem q2 k2 bestimmt und diese TEMPLÖSCHWERTUNG addiert. Die Verarbeitung geht dann zu Schritt s553 über, in welchem das System die Log-Addition von TEMPLÖSCHWERTUNG mit LÖSCHWERTUNG durchführt und das Ergebnis in LÖSCHWERTUNG speichert. Die Verarbeitung geht dann zu Schritt s555 über, in welchem der Phonemzeiger r um 1 inkrementiert wird. Die Verarbeitung kehrt dann zu Schritt s543 zurück, in welchem eine ähnliche Verarbeitung für das nächste dem System bekannte Phonem durchgeführt wird. Wurde diese Berechnung erst einmal für jedes der 43 dem System bekannten Phoneme durchgeführt, endet die Verarbeitung.
  • Wie aus einem Vergleich der in 25 durchgeführten Verarbeitungsschritte und der in 18 durchgeführten Schritte ersichtlich, ist der innerhalb des dynamischen Programmierungsalgorithmus für Decodierungen und Löschungen berechnete Term Gleichung (4) ähnlich, weist aber einen zusätzlichen Wahrscheinlichkeitsterm für die zweite Abfrage auf. Im Einzelnen weist der Term die nachfolgende Form auf:
    Figure 00710001
  • Dies stand zu erwarten, da die zwei Abfragen hinsichtlich Bedingungen unabhängig voneinander sind.
  • Nachdem alle dynamischen Programmierungspfade zu dem Endknoten ϕe fortgepflanzt wurden, wird die Gesamtwertung für die Anordnung mit dem gleichen Normalisierungsausdruck (in vorstehender Gleichung (5) gegeben) normalisiert, der in dem ersten Ausführungsbeispiel berechnet wurde. Dies ist dadurch begründet, dass der Normalisierungsausdruck lediglich von der Ähnlichkeit zwischen der Anmerkung und dem Modell abhängt. Wurden die beiden Abfragen erst einmal mit allen Anmerkungen abgeglichen, dann werden die normalisierten Wertungen für die Anmerkungen eingestuft, und gibt das System basierend auf dieser Einstufung an den Benutzer die Anmerkung oder Anmerkungen aus, die den Eingabeabfragen am ähnlichsten ist oder sind.
  • In dem vorstehend beschriebenen zweiten Ausführungsbeispiel wurden zwei Eingabeabfragen mit den gespeicherten Anmerkungen verglichen. Wie für den Fachmann ersichtlich, kann der Algorithmus für irgendeine Anzahl von Eingabeabfragen angepasst werden. Wie für den Fall mit zwei Abfragen gezeigt, führt die Hinzufügung einer weiteren Abfrage einfach zu einer Hinzufügung einer Anzahl von Schleifen in den Algorithmus, um der zusätzlichen Abfrage Rechnung zu tragen. In einem Ausführungsbeispiel, in welchem drei oder mehr Eingabeabfragen mit den gespeicherten Anmerkungen verglichen werden, kann es jedoch erforderlich sein, eine dynamische Programmierungsroutine zu verwenden, die ein Ausästen einsetzt, um eventuelle Geschwindigkeits- oder Speicherrandbedingungen zu erfüllen. In diesem Fall wird, anstelle einer Miteinanderaddition aller Wahrscheinlichkeiten aller Pfade, lediglich die beste Wertung für sich treffende Pfade fortgepflanzt werden, und schlecht bewertete Pfade würden beendet.
  • ALTERNATIVE AUSFÜHRUNGSBEISPIELE
  • Wie für den Fachmann ersichtlich, kann die vorstehende Technik zum Abgleichen einer Sequenz von Phonemen mit einer anderen Sequenz von Phonemen bei Anwendungen verwendet werden, die von einem Datenholen verschieden sind. Außerdem, wie für den Fachmann ersichtlich, können andere phonemartige Einheiten verwendet werden, wie Silben oder Katakana (japanisches Alphabet), obwohl das vorstehend beschriebene System Phoneme in dem Phonem- und Wortnetz verwendet.
  • Wie für den Fachmann ersichtlich, wurde die vorstehende Beschreibung des dynamischen Programmierungsabgleichs und -anordnung der zwei Sequenzen von Phonemen lediglich beispielhaft vermittelt, und verschiedenartige Modifikationen können durchgeführt werden. Während beispielsweise eine Rasterabtasttechnik zum Fortpflanzen der Pfade durch die Netzpunkte verwendet wurde, können andere Techniken angewendet werden, die die Pfade progressiv durch die Netzpunkte fortpflanzen. Zudem können, wie für den Fachmann ersichtlich, dynamische Programmierungsrandbedingungen verwendet werden, die sich von den vorstehend Beschriebenen unterscheiden, um den Abgleichvorgang zu steuern.
  • In dem vorstehenden Ausführungsbeispiel war die Anmerkung im Allgemeinen länger als die Abfrage, und der dynamische Programmierungsanordnungsalgorithmus ordnete die Abfrage an der gesamten Anmerkung an. In einem alternativen Ausführungsbeispiel kann der Anordnungsalgorithmus die Abfrage mit der Anmerkung durch Durchschreiten der Abfrage über die Anmerkung von Beginn bis Ende und, bei jedem Schritt, durch Vergleichen der Abfrage mit einem Abschnitt der Anmerkung mit ungefähr der gleichen Größe wie die Abfrage vergleichen. In einem derartigen Ausführungsbeispiel wird die Abfrage bei jedem Schritt mit dem entsprechenden Abschnitt der Anmerkung unter Verwendung einer dynamischen Programmierungstechnik angeordnet, die der vorstehend Beschrieben ähnlich ist. Diese Technik ist in 26a gezeigt, wobei der sich ergebende Ausdruck den Weg zeigt, in welchem die dynamische Programmierungswertung für die Anordnungen zwischen der Abfrage und einer momentanen Anrichtung in dem Maße variiert, in dem die Abfrage schrittweise über die in 26 gezeigte Anmerkung verbracht wird. Die Spitzenwerte des in 26b gezeigten Drucks stellen die Abschnitte der Anmerkung dar, die am besten mit der Abfrage übereinstimmen. Die Anmerkung, die der Abfrage am ähnlichsten ist, kann dann durch Vergleichen der Spitzen-DP-Wertung bestimmt werden, die während des Vergleichs der Abfrage mit jeder Anmerkung erhalten wurde.
  • In dem vorstehenden Ausführungsbeispiel wurden Bilder unter Verwendung der Phonem- und Wortnetzanmerkungsdaten kommentiert. Wie für den Fachmann ersichtlich, können diese Phonem- und Wortnetzdaten verwendet werden, um viele verschiedene Arten von Datendateien zu kommentieren. Diese Art von Anmerkungsdaten können beispielsweise in medizinischen Anwendungen zum Kommentieren von Patientenröntgenaufnahmen, 3D-Videos beispielsweise von NMR-Abtastungen, Ultraschallabtastungen usw. verwendet werden. Die Daten können ebenso verwendet werden, um 1D-Daten, wie Audiodaten oder seismische Daten, zu kommentieren.
  • In den vorstehenden Ausführungsbeispielen wurde ein Spracherkennungssystem verwendet, das eine Sequenz von Phonemen aus dem Eingabesprachsignal erzeugt. Wie für den Fachmann ersichtlich, kann das vorstehende System zusammen mit anderen Arten von Spracherkennungssystemen verwendet werden, die beispielsweise eine Sequenz von Ausgabewörtern oder ein Wortnetz erzeugen, die dann in eine entsprechende Kette von Phonemen mit Alternativen zerlegt werden können, um einen Erkenner zu simulieren, der Phonemketten erzeugt.
  • In dem vorstehenden Ausführungsbeispiel wurden die Einfügungs-, Löschungs- und Decodierungswahrscheinlichkeiten aus der Konfusionsstatistik für das Spracherkennungssystem unter Verwendung einer Maximumwahrscheinlichkeitsschätzung der Wahrscheinlichkeiten berechnet. Wie für den Fachmann auf dem Gebiet der Statistik ersicht lich, können andere Techniken, wie Maximumentropietechniken, zum Schätzen dieser Wahrscheinlichkeiten verwendet werden. Einzelheiten einer geeigneten Maximumentropietechnik können auf Seiten 45 bis 52 in dem Buch mit dem Titel "Maximum Entropy and Bayesian Methods", veröffentlicht durch Kluwer Academic Publishers, Autor John Skilling, entnommen werden, dessen Inhalt hiermit durch Bezugnahme aufgenommen ist.
  • In dem vorstehenden Ausführungsbeispiel wurden die Datenbank 29 und die automatische Spracherkennungseinrichtung 51 beide innerhalb des Benutzerendgeräts 59 angeordnet. Wie für den Fachmann ersichtlich, ist dies nicht wesentlich. 27 verdeutlicht ein Ausführungsbeispiel, in welchem die Datenbank 29 und die Suchmaschine 53 in einem Fern-Server 60 befindlich sind, und in welchem das Benutzerendgerät 59 auf die Datenbank 29 über die Netzwerkschnittstelleneinrichtungen 67 und 69 und ein Datennetzwerk 68 (wie das Internet) zugreift. In diesem Ausführungsbeispiel kann das Benutzerendgerät 59 Sprachabfragen lediglich von dem Mikrofon 7 empfangen. Diese Abfragen werden durch die automatische Spracherkennungseinrichtung 51 in Phonem- und Wortdaten umgewandelt. Diese Daten werden dann zu der Steuereinrichtung 55 weitergegeben, die die Übertragung der Daten über das Datennetzwerk 68 zu der in dem Fern-Server 60 befindlichen Suchmaschine 53 steuert. Die Suchmaschine 53 führt dann die Suche in einer Weise aus, die der Suche ähnlich ist, die in dem vorstehenden Ausführungsbeispiel durchgeführt wurde. Die Suchergebnisse werden dann von der Suchmaschine 53 zurück zu der Steuereinrichtung 55 über das Datennetzwerk 68 übertragen. Die Steuereinrichtung 55 betrachtet dann die von dem Netzwerk zurückempfangenen Suchergebnisse und zeigt geeignete Daten auf der Anzeige 57 zur Betrachtung durch den Benutzer 39 an.
  • Zusätzlich zu einem Anordnen der Datenbank 29 und der Suchmaschine 53 in dem Fern-Server 60 ist es ebenso möglich, die automatische Spracherkennungseinrichtung 51 in dem Fern-Server 60 anzuordnen. Ein derartiges Ausführungsbeispiel ist in 28 gezeigt. Wie gezeigt, wird in diesem Ausführungsbeispiel die Eingabesprachabfrage dem Benutzer über eine Eingabeleitung 61 in eine Sprachcodiereinrichtung 73 eingegeben, die betreibbar ist, die Sprache für eine effiziente Übermittlung durch das Datennetzwerk 68 zu codieren. Die codierten Daten werden dann zu der Steuereinrichtung 55 weitergegeben, die die Daten über das Netzwerk 68 zu dem Fern-Server 60 überträgt, in welchem sie durch die automatische Spracherkennungseinrichtung 51 verarbeitet werden. Die durch die Spracherkennungseinrichtung 51 für die Eingabeabfrage erzeugten Phonem- und Wortdaten werden dann zu der Suchmaschine 53 zur Verwendung bei einem Durchsuchen der Datenbank 29 weitergegeben. Die durch die Suchmaschine 53 erzeugten Suchergebnisse werden dann über die Netzwerkschnittstelle 69 und das Netzwerk 68 zurück zu dem Benutzerendgerät 59 weitergegeben. Die von dem Fern-Server zurückempfangenen Suchergebnisse werden dann über die Netzwerkschnittstelleinrichtung 67 zu der Steuereinrichtung 55 weitergegeben, die die Ergebnisse analysiert und geeignete Daten auf der Anzeige 57 zur Betrachtung durch den Benutzer 39 erzeugt und anzeigt.
  • Auf eine ähnliche Weise kann ein Benutzerendgerät 59, das lediglich getippte Eingaben von dem Benutzer ermöglicht, und das die Suchmaschine und die Datenbank in dem Fern- Server befindlich aufweist, bereitgestellt werden. In einem derartigen Ausführungsbeispiel kann die Phonetikumschreibungseinrichtung 75 ebenso in dem Fern-Server 60 befindlich sein.
  • In den vorstehend beschriebenen Ausführungsbeispielen wurde ein dynamischer Programmierungsalgorithmus zum Anordnen der Sequenz von Abfragephonemen an den Sequenzen von Anmerkungsphonemen verwendet. Wie für den Fachmann ersichtlich, kann jedwede Anordnungstechnik verwendet werden. Beispielsweise kann eine naive Technik verwendet werden, die alle möglichen Anordnungen identifiziert. Die dynamische Programmierung wird jedoch aufgrund ihrer einfachen Implementierung unter Verwendung von Standardverarbeitungshardware bevorzugt.
  • Vorstehend wurde eine Beschreibung der Art und Weise vermittelt, auf die zwei oder mehr kanonische Sequenzen von Phonemen unter Verwendung einer dynamischen Programmierungstechnik verglichen werden. Wie jedoch in 2 und 3 gezeigt, werden die Anmerkungen vorzugsweise als Netze gespeichert. Wie für den Fachmann ersichtlich, müssen die durch die Netze definierten Phonemsequenzen, damit die vorstehend beschriebenen Vergleichstechniken mit diesen Netzen funktionieren, in eine einzelne Sequenz von Phonemen ohne Äste "verflacht" werden. Ein naiver Ansatz, um dies zu erreichen, würde in einem Identifizieren aller unterschiedlichen, möglichen, durch das Netz definierten Phonemsequenzen und dann im Vergleichen jeder der Sequenzen mit der Abfragesequenz oder jeder Abfragesequenz bestehen. Dies ist jedoch nicht bevorzugt, da gewöhnliche Teile des Netzes mit jeder Abfragesequenz mehrere Male zur Übereinstimmung gebracht werden. Deshalb wird das Netz vorzugsweise durch sequenzielles Kennzeichnen eines jeden Phonems innerhalb des Netzes gemäß den für jedes Phonem zur Verfügung stehenden Zeitstempelinformationen innerhalb des Netzes verflacht. Dann werden während der dynamischen Programmierungsanordnung verschiedene dynamische Programmierungsrandbedingungen bei jedem DP-Netzpunkt verwendet, um sicherzustellen, dass sich die Pfade gemäß der Netzstruktur fortpflanzen.
  • Die nachstehende Tabelle verdeutlicht die DP-Randbedingungen, die für einen Teil des in 2 gezeigten Phonemnetzes verwendet werden. Im Einzelnen verdeutlicht die erste Spalte die Phonemnummer (p1 bis p9), die jedem Phonem in dem Netz zugewiesen wird; entspricht die mittlere Spalte dem gegenwärtigen Phonem in dem Netz und verdeutlicht die letzte Spalte für jedes Phonem die Phoneme, zu denen sich ein bei jedem Phonem endender Pfad hin bei dem nächsten dynamischen Programmierungszeitpunkt fortpflanzen kann. Obwohl nicht gezeigt, enthält die mittlere Spalte ebenso Einzelheiten des Knotens, mit dem das Phonem verbunden ist, und die entsprechende Phonemanbindung.
  • Phonem-Nummer Phonem Dynamische Programmierungsrandbedingungen
    p1 /p/ p1; p2; p3; p4
    p2 /ih/ p2; p3; p4; p5
    p3 /k/ p6 p3; p4; p5; p7 p8
    p4 /ch/ p6; p10 p4; p5; p7; p9 p8; p1
    p5 /ax/ p6; p10; p12 p5; p7; p9; p12 p8; p11; p13 p14
    P6 /ax/ p6; p10; p12; p15 p16
    p7 /ao/ p7; p9; p12; p15 p16
    p8 /ah/ p8; p11; p13; p18 p14; p17
    p9 /f/ p9; p12; p15; p18 p16; p18
  • Endet beispielsweise ein dynamischer Programmierungspfad bei einem zeitgeordneten Phonem p4, dann kann jener dynamische Programmierungspfad bei Phonem p4 bleiben oder er kann sich zu irgendeinem der zeitgeordneten Phoneme p5 bis p11 fortpflanzen. Wie in der Tabelle gezeigt, sind einige Punkte der möglichen Phoneme, zu denen sich ein Pfad erstrecken kann, in der zeitgeordneten Phonemsequenz nicht fortlaufend angeordnet. Beispielsweise kann für einen bei einem zeitgeordneten Phonem p6 endenden dynamischen Programmierungspfad dieser Pfad entweder bei diesem Phonem bleiben oder zu Phonemen p10, p12, p15 oder p16 voranschreiten. Durch derartiges fortlaufendes Nummerieren der Phoneme in dem Netz und durch Variieren der dynamischen Programmierungsrandbedingungen, die abhängig von dem Netz verwendet werden, kann ein effizienter dynamischer Programmierungsabgleich zwischen der Eingabeabfrage und dem Anmerkungsnetz erreicht werden. Ferner, wie für den Fachmann ersichtlich, falls die Eingabeabfrage ebenso ein Netz erzeugt, dann kann diese Abfrage auf eine ähnliche Weise verflacht und können dynamische Programmierungsrandbedingungen entsprechend eingestellt werden.
  • In dem vorstehend beschriebenen Ausführungsbeispiel wurden die gleichen Phonemkonfusionswahrscheinlichkeiten sowohl für die Anmerkungen als auch für die Abfragen verwendet. Wie für den Fachmann offensichtlich, falls unterschiedliche Erkennungssysteme zum Erzeugen dieser Anmerkungen und Abfragen verwendet werden, dann sollen unterschiedliche Phonemkonfusionswahrscheinlichkeiten für die Anmerkungen und die Abfragen verwendet werden. Dies liegt daran, dass diese Konfusionswahrscheinlichkeiten von dem Erkennungssystem abhängen, das zum Erzeugen der Phonemsequenzen verwendet wurde.
  • In dem vorstehend beschriebenen Ausführungsbeispiel wurde, wenn entweder die Anmerkung oder die Abfrage aus Text erzeugt wurde, angenommen, dass die dem getippten Text entsprechende kanonische Sequenz von Phonemen richtig war. Dies ist womöglich nicht der Fall, da dies annimmt, dass das getippte Wort oder die Worte nicht falsch geschrieben ist oder sind oder keine Tippfehler enthält oder enthalten. Deshalb können in einem alternativen Ausführungsbeispiel ebenso Konfusionswahrscheinlichkeiten für getippte Abfragen und/oder Anmerkungen verwendet werden. Mit anderen Worten werden Gleichungen (4) und (12) selbst dann verwendet werden, wenn entweder die Anmerkung oder die Abfrage oder beide Text sind. Die verwendeten Konfusionswahrscheinlichkeiten können versuchen, Falschschreibungen und/oder Tippfehler zu codifi zieren. Wie für den Fachmann offensichtlich, hängen die Konfusionswahrscheinlichkeiten für Tippfehler von der Art von verwendeter Tastatur ab. Im Einzelnen hängen die Konfusionswahrscheinlichkeiten des Tippfehlers eines Worts von der Auslegung der Tastatur ab. Wird beispielsweise ein Buchstabe "d" getippt, dann werden die Tasten, die die Taste für den Buchstaben "d" umgeben, hohe Tippfehlerwahrscheinlichkeiten aufweisen, wohingegen jene Tasten, die von der "d"-Taste weiter entfernt sind, niedrigere Tippfehlerwahrscheinlichkeiten aufweisen. Wie vorstehend beschrieben, können diese Tippfehlerwahrscheinlichkeiten zusammen mit den Konfusionswahrscheinlichkeiten für das Falschschreiben des Worts zusammen verwendet oder durch diese ersetzt werden. Diese Falschschreibungswahrscheinlichkeiten können durch Analysieren von getippten Dokumenten aus einer großen Anzahl von verschiedenen Benutzern und durch Überwachen der Art von Falschschreibungen, die üblicherweise auftreten, bestimmt werden. Derartige Falschschreibungswahrscheinlichkeiten können ebenso Kontoumschreibungsfehler berücksichtigen, die durch eine Fehltastung verursacht werden. In einem derartigen Ausführungsbeispiel sollen die verwendeten dynamischen Programmierungsrandbedingungen Einfügungen und/oder Löschungen in der getippten Eingabe tolerieren. Es können beispielsweise die in 11 gezeigten Randbedingungen verwendet werden.
  • Eine weitere Alternative besteht darin, dass der Text über eine Tastatur eingegeben wird, die jeder Taste mehr als ein Zeichen zuweist (wie die Tastatur eines Mobiltelefons), bei dem der Benutzer jede Taste wiederholt drücken muss, um durch die jener Taste zugewiesenen Zeichen zu iterieren. In einem derartigen Ausführungsbei spiel werden die Konfusionswahrscheinlichkeiten derart eingestellt, dass Zeichen, die der gleichen Taste als das Eingabezeichen zugewiesen sind, höhere Tippfehlerwahrscheinlichkeiten aufweisen, als jene, die mit den anderen Tasten assoziiert sind. Dies ist dadurch begründet, wie für jeden ersichtlich, der ein Mobiltelefon zum Senden einer Textnachricht verwendet hat, dass Tippfehler oft auftreten, weil die Taste nicht für die korrekte Anzahl von Durchläufen gedrückt wurde, um das gewünschte Zeichen einzugeben.
  • In den vorstehend beschrieben Ausführungsbeispielen berechnete die Steuereinrichtung Decodierungswertungen für jeden Übergang unter Verwendung der vorstehenden Gleichungen (4) oder (12). Anstelle des Summierens über alle möglichen dem System bekannten Phoneme gemäß dieser Gleichungen kann die Steuereinrichtung ersatzweise zum Identifizieren des unbekannten Phonems pr, das den Wahrscheinlichkeitsterm innerhalb dieser Summation maximiert, und zum Verwenden dieser Maximalwahrscheinlichkeit als die Decodierungswahrscheinlichkeit des entsprechenden Phonems der Anmerkung und der Abfrage angeordnet werden. Dies ist jedoch nicht bevorzugt, da dies eine zusätzliche Berechnung involviert, um zu bestimmen, welches Phonem (pr) den Wahrscheinlichkeitsterm innerhalb dieser Summation maximiert.
  • In dem ersten vorstehend beschriebenen Ausführungsbeispiel wurde während des dynamischen Programmierungsalgorithmus Gleichung (4) für jedes angeordnete Paar von Phonemen berechnet. Bei der Berechnung von Gleichung (4) wurden das Anmerkungsphonem und das Abfragephonem mit jedem der dem System bekannten Phoneme verglichen. Wie für den Fachmann ersichtlich, sind für ein gegebenes Anmerkungsphonem- und Abfragephonempaar viele der in Gleichung (4) gegebenen Wahrscheinlichkeiten gleich oder sehr nahe Null. Deshalb wird in einem alternativen Ausführungsbeispiel das Anmerkungs- und Abfragephonempaar womöglich lediglich mit einer Untermenge aller bekannten Phoneme verglichen, wobei die Untermenge vorab aus der Konfusionsstatistik bestimmt wird. Um ein derartiges Ausführungsbeispiel zu implementieren, können das Anmerkungsphonem und das Abfragephonem verwendet werden, um eine Nachschlagetabelle zu adressieren, die die Modellphoneme identifizieren, die mit den Anmerkungs- und Abfragephonemen unter Verwendung von Gleichung (4) verglichen werden müssen.
  • In den vorstehend beschriebenen Ausführungsbeispielen stellten die Merkmale der Anmerkung und der Abfrage, die angeordnet und abgeglichen wurden, Spracheinheiten dar. Wie für den Fachmann ersichtlich, kann die vorstehend beschriebene Technik bei anderen Anwendungen angewendet werden, in welchen die Merkmale der Abfrage und der Anmerkung aufgrund der Ungenauigkeiten eines Erkennungssystems, das die Merkmalssequenzen erzeugte, verwechselbar sein können. Die vorstehend beschriebene Technik kann beispielsweise in optischen Zeichen- oder Handschrifterkennungssystemen verwendet werden, in welchen eine Wahrscheinlichkeit vorliegt, dass ein Erkennungssystem ein Eingabezeichen mit einem anderen verwechseln kann.
  • Eine Anzahl von Ausführungsbeispielen und Modifikationen wurde vorstehend beschrieben. Wie für den Fachmann ersichtlich, liegen viele weitere Ausführungsbeispiele und Modifikationen vor, die für den Fachmann ersichtlich sind.

Claims (76)

  1. Vorrichtung zum Durchsuchen einer Datenbank (29), die eine Vielzahl von Informationseinträgen (41) umfasst, um daraus zu holende Informationen zu identifizieren, wobei jeder der Vielzahl von Informationseinträgen (41) eine eine Sequenz von Sprachmerkmalen umfassende, zugehörige Anmerkung aufweist, wobei die Vorrichtung umfasst: eine Einrichtung (55) zum Empfangen einer eine Sequenz von Sprachmerkmalen umfassenden Eingabeabfrage, eine Einrichtung (53) zum Vergleichen der Abfragesequenz von Sprachmerkmalen mit den Sprachmerkmalen von jeder Anmerkung, um einen Satz von Vergleichsergebnissen bereitzustellen, und eine Einrichtung (55) zum Identifizieren der unter Verwendung der Vergleichsergebnisse aus der Datenbank (29) zu holenden Informationen, dadurch gekennzeichnet, dass die Vergleichseinrichtung (53) eine Vielzahl von verschiedenen Vergleichsbetriebsarten aufweist, und dadurch gekennzeichnet, dass die Vorrichtung ferner umfasst: eine Einrichtung (53, s213, s215, s217) zum Bestimmen, (i) ob die Abfragesequenz von Sprachmerkmalen aus einem Audiosignal oder aus Text erzeugt wurde, und (ii) ob die Sequenz von Sprachmerkmalen einer momentanen Anmerkung aus einem Audiosignal oder aus Text erzeugt wurde, und zum Ausgeben eines Bestimmungsergebnisses, und eine Einrichtung (53, s213, s215, s217) zum Auswählen, für die momentane Anmerkung, der Betriebsart der Vergleichseinrichtung (53) abhängig von dem Bestimmungsergebnis.
  2. Vorrichtung gemäß Anspruch 1, wobei die Vergleichseinrichtung (53) einen ersten Komparator umfasst, den die Vergleichseinrichtung verwendet, falls bestimmt ist, dass die Abfragesequenz von Sprachmerkmalen aus einem Audiosignal erzeugt wurde, und falls bestimmt ist, dass die Sequenz von Sprachmerkmalen der momentanen Anmerkung aus einem Audiosignal erzeugt wurde, und ferner einen zweiten Komparator umfasst, der verwendet ist, wenn bestimmt ist, dass die Abfragesequenz von Sprachmerkmalen und/oder Sequenz von Sprachmerkmalen der momentanen Anmerkung aus Text erzeugt wurden/wurde.
  3. Vorrichtung gemäß Anspruch 2, wobei der erste Komparator umfasst: eine Einrichtung (s153) zum Anordnen der Sprachmerkmale der Eingabeabfrage mit den Sprachmerkmalen der momentanen Anmerkung, um eine Anzahl von angeordneten Paaren von Sprachmerkmalen zu erstellen, eine erste Untervergleichseinrichtung (s335, s365) zum Vergleichen, für jedes angeordnete Paar von Sprachmerkmalen, des Abfragesprachmerkmals in dem angeordneten Paar mit jedem der Vielzahl von Sprachmerkmalen, die aus einem Satz von vorbestimmten Sprachmerkmalen genommen sind, um eine entsprechende Vielzahl von Zwischenvergleichswertungen zu erzeugen, die die Ähnlichkeit zwischen dem Abfragesprachmerkmal und den jeweiligen Sprachmerkmalen von dem Satz darstellen, eine zweite Untervergleichseinrichtung (s349, s363) zum Vergleichen, für jedes angeordnete Paar von Sprachmerkmalen, des Anmerkungssprachmerkmals in dem angeordneten Paar mit jedem der Vielzahl von Merkmalen von dem Satz, um eine ferner entsprechende Vielzahl von Zwischen vergleichswertungen zu erzeugen, die die Ähnlichkeit zwischen dem Anmerkungssprachmerkmal und den jeweiligen Sprachmerkmalen von dem Satz darstellen, eine Einrichtung (s337, s353, s367) zum Berechnen einer Vergleichswertung, die die Ähnlichkeit zwischen dem angeordneten Paar von Sprachmerkmalen darstellt, durch Kombinieren der Vielzahlen von für das angeordnete Paar erzeugten Zwischenvergleichswertungen, und eine Einrichtung (s233) zum Kombinieren der Vergleichswertungen für alle angeordneten Paare von Sprachmerkmalen einer Eingabeabfrage und einer Anmerkung, um ein Vergleichsergebnis bereitzustellen, das die Ähnlichkeit zwischen der Eingabeabfrage und der momentanen Anmerkung darstellt.
  4. Vorrichtung gemäß Anspruch 3, wobei die erste und zweite Untervergleichseinrichtung (s335, s365; s349, s363) zum Vergleichen des Abfragesprachmerkmals und des Anmerkungssprachmerkmals jeweils mit jedem der Sprachmerkmale in dem Satz von vorbestimmten Sprachmerkmalen betreibbar sind.
  5. Vorrichtung gemäß Anspruch 3 oder 4, wobei die Berechnungseinrichtung (s337, s353, s367) zum Berechnen einer Vergleichswertung für ein angeordnetes Paar von Sprachmerkmalen betreibbar ist, die eine Wahrscheinlichkeit des Verwechselns des Anmerkungssprachmerkmals des angeordneten Paares mit dem Abfragesprachmerkmal des angeordneten Paares darstellt.
  6. Vorrichtung gemäß Anspruch 5, wobei die erste und zweite Untervergleichseinrichtung (s335, s365, s349, s363) zum Erzeugen von Zwischenvergleichswertungen betreibbar sind, die eine Wahrscheinlichkeit des Verwechselns des von dem Satz von vorbestimmten Merkmalen genommenen, entsprechenden Sprachmerkmals mit dem Sprachmerkmal in dem angeordneten Paar anzeigt.
  7. Vorrichtung gemäß Anspruch 6, wobei die Berechnungseinrichtung (s337, s353, s367) betreibbar ist (i) zum Multiplizieren der bei Vergleichen der Abfrage- und Anmerkungssprachmerkmale in dem angeordneten Paar mit dem gleichen Sprachmerkmal von dem Satz gewonnenen Zwischenwertungen, um eine Vielzahl von multiplizierten Zwischenvergleichswertungen bereitzustellen, und (ii) zum Addieren der resultierenden multiplizierten Zwischenvergleichswertungen, um die Vergleichswertung für das angeordnete Paar von Sprachmerkmalen zu berechnen.
  8. Vorrichtung gemäß Anspruch 7, wobei jedes der Sprachmerkmale in dem Satz von vorbestimmten Sprachmerkmalen eine vorbestimmte Wahrscheinlichkeit des Auftretens innerhalb einer Sequenz von Sprachmerkmalen aufweist, und wobei die Berechnungseinrichtung zum Gewichten von jedem der multiplizierten Zwischenvergleichswertungen mit der jeweiligen Wahrscheinlichkeit des Auftretens für das Sprachmerkmal von dem Satz, der zum Erzeugen der multiplizierten Zwischenvergleichswertungen verwendet ist, betreibbar ist.
  9. Vorrichtung gemäß Anspruch 8, wobei die Berechnungseinrichtung betreibbar ist zum Berechnen von:
    Figure 00880001
    wobei qj bzw. ai ein angeordnetes Paar von Abfrage- bzw. Anmerkungssprachmerkmalen sind, P(qj|pr) die Wahrscheinlichkeit des Verwechselns eines Satzsprachmerkmals pr mit einem Abfragesprachmerkmal qj ist, P(ai|pr) die Wahrscheinlichkeit des Verwechselns eines Satzsprachmerkmals Pr mit einem Anmerkungssprachmerkmal ai ist, und P(pr) die Wahrscheinlichkeit darstellt, dass das Satzsprachmerkmal pr in einer Sequenz von Sprachmerkmalen auftritt.
  10. Vorrichtung gemäß Anspruch 9, wobei die Verwechslungswahrscheinlichkeiten für die Abfrage- und Anmerkungssprachmerkmale vorab und abhängig von dem Erkennungssystem, das zum Erzeugen der jeweiligen Abfrage- und Anmerkungssequenzen verwendet wurde, bestimmt sind.
  11. Vorrichtung gemäß einem der Ansprüche 7 bis 10, wobei die Zwischenvergleichswertungen LOG-Wahrscheinlichkeiten darstellen, und wobei die Berechnungseinrichtung zum Durchführen der Multiplikation durch Addieren der jeweiligen Zwischenvergleichswertungen betreibbar ist, und zum Durchführen der Addition der multiplizierten Wertungen durch Durchführen einer LOG-Additionsberechnung betreibbar ist.
  12. Vorrichtung gemäß Anspruch 11, wobei die Kombinierungseinrichtung zum Addieren der Vergleichswertungen für alle angeordneten Paare der Abfragesequenz und der momentanen Anmerkungssequenz betreibbar ist, um das Vergleichsergebnis für die Eingabeabfrage und die momentane Anmerkung zu bestimmen.
  13. Vorrichtung gemäß einem der Ansprüche 3 bis 12, wobei die Anordnungseinrichtung zum Identifizieren von Merkmalslöschungen (s295) und -einfügungen (s293) in den Abfrage- und Anmerkungssequenzen von Sprachmerkmalen betreibbar ist, und wobei die Berechnungseinrichtung zum Berechnen der Vergleichswertung für ein angeordnetes Paar von Sprachmerkmalen abhängig von Merkmalslöschungen und – einfügungen, die durch die Anordnungseinrichtung identi fiziert sind, die in der Umgebung der Sprachmerkmale in dem angeordneten Paar auftreten, betreibbar ist.
  14. Vorrichtung gemäß einem der Ansprüche 3 bis 13, wobei die Anordnungseinrichtung eine Dynamikprogrammiereinrichtung zum Anordnen der Abfrage- und Anmerkungssequenzen von Merkmalen unter Verwendung einer Dynamikprogrammiertechnik umfasst.
  15. Vorrichtung gemäß Anspruch 14, wobei die Dynamikprogrammiereinrichtung zum progressiven Bestimmen einer Vielzahl von möglichen Anordnungen zwischen den Abfrage- und Anmerkungssequenzen von Sprachmerkmalen betreibbar ist, und wobei die Berechnungseinrichtung (s337, s353, s367) zum Bestimmen einer Vergleichswertung für jedes der möglichen angeordneten Paare von Sprachmerkmalen, die durch die Dynamikprogrammiereinrichtung bestimmt sind, betreibbar ist.
  16. Vorrichtung gemäß Anspruch 15, wobei die Berechnungseinrichtung (s337, s353, s367) zum Berechnen der Vergleichswertung während der progressiven Bestimmung der möglichen Anordnungen betreibbar ist.
  17. Vorrichtung gemäß Anspruch 14, 15 oder 16, wobei die Dynamikprogrammiereinrichtung zum Bestimmen einer Optimalanordnung zwischen den Abfrage- und Anmerkungssequenzen von Sprachmerkmalen betreibbar ist, und wobei die Kombinierungseinrichtung zum Bereitstellen des Vergleichsergebnisses durch Kombinieren der Vergleichswertungen lediglich für die optimal angeordneten Paare von Sprachmerkmalen betreibbar ist.
  18. Vorrichtung gemäß Anspruch 15 oder 16, wobei die Kombinierungseinrichtung (s233) zum Bereitstellen des Vergleichsergebnisses durch Kombinieren aller Vergleichswertungen für alle möglichen angeordneten Paare von Sprachmerkmalen betreibbar ist.
  19. Vorrichtung gemäß einem der Ansprüche 3 bis 18, wobei jedes der Sprachmerkmale in den Abfrage- und Anmerkungssequenzen von Sprachmerkmalen zu dem Satz von vorbestimmten Sprachmerkmalen gehört, und wobei die erste und zweite Untervergleichseinrichtung (s335, s365; s349, s363) zum Erzeugen der Zwischenvergleichswertungen unter Verwendung von vorbestimmten Daten, die die Sprachmerkmale in dem Satz miteinander verknüpfen, betreibbar sind.
  20. Vorrichtung gemäß Anspruch 19, wobei die durch die erste Untervergleichseinrichtung verwendeten, vorbestimmten Daten von dem zum Erzeugen der Abfragesequenz von Sprachmerkmalen verwendeten System abhängig sind, und wobei die durch die zweite Untervergleichseinrichtung verwendeten, vorbestimmten Daten sich von den durch die erste Vergleichseinrichtung verwendeten, vorbestimmten Daten unterscheiden und von dem zum Erzeugen der Anmerkungssequenz von Sprachmerkmalen verwendeten System abhängen.
  21. Vorrichtung gemäß Anspruch 19 oder 20, wobei das vorbestimmte Datum oder alle vorbestimmten Daten für jedes Sprachmerkmal in dem Satz von Sprachmerkmalen eine Wahrscheinlichkeit zum Verwechseln jenes Sprachmerkmals mit jedem der anderen Sprachmerkmale in dem Satz von Sprachmerkmalen umfasst oder umfassen.
  22. Vorrichtung gemäß Anspruch 21, wobei das vorbestimmte Datum oder alle vorbestimmten Daten ferner für jedes Sprachmerkmal in dem Satz von Sprachmerkmalen die Wahr scheinlichkeit des Einfügens des Sprachmerkmals in eine Sequenz von Sprachmerkmalen umfasst oder umfassen.
  23. Vorrichtung gemäß Anspruch 21 oder 22, wobei das vorbestimmte Datum oder alle vorbestimmte Daten ferner für jedes Sprachmerkmal in dem Satz von Sprachmerkmalen die Wahrscheinlichkeit des Löschens des Sprachmerkmals aus einer Sequenz von Sprachmerkmalen umfasst oder umfassen.
  24. Vorrichtung gemäß einem der vorstehenden Ansprüche, wobei jedes der Sprachmerkmale ein Phonem darstellt.
  25. Vorrichtung gemäß einem der Ansprüche 3 bis 24, wobei die Kombinierungseinrichtung eine Normalisierungseinrichtung zum Normalisieren eines jeden Vergleichsergebnisses umfasst.
  26. Vorrichtung gemäß Anspruch 25, wobei die Normalisierungseinrichtung zum Normalisieren eines jeden Vergleichsergebnisses durch Teilen des Vergleichsergebnisses durch eine jeweilige Normalisierungswertung, die abhängig von der Länge der entsprechenden Anmerkungssequenz von Sprachmerkmalen variiert, betreibbar ist.
  27. Vorrichtung gemäß Anspruch 26, wobei die jeweiligen Normalisierungswertungen abhängig von der Sequenz von Sprachmerkmalen in der entsprechenden Anmerkungssequenz von Sprachmerkmalen variieren.
  28. Vorrichtung gemäß Anspruch 26 oder 27, wobei die jeweiligen Normalisierungswertungen mit den durch die zweite Untervergleichseinrichtung berechneten, entsprechenden Zwischenvergleichswertungen variieren.
  29. Vorrichtung gemäß einem der Ansprüche 25 bis 28, wobei die Anordnungseinrichtung eine Dynamikprogrammiereinrichtung zum Anordnen der Abfrage- und Anmerkungssequenzen von Sprachmerkmalen unter Verwendung einer Dynamikprogrammiertechnik umfasst, und wobei die Normalisierungseinrichtung zum Berechnen der jeweiligen Normalisierungswertungen während einer progressiven Berechnung der möglichen Anordnungen durch die Dynamikprogrammiereinrichtung betreibbar ist.
  30. Vorrichtung gemäß Anspruch 29, wobei die Normalisierungseinrichtung zum Berechnen, für jedes mögliche angeordnete Paar von Sprachmerkmalen, des nachstehenden Normalisierungsausdrucks betreibbar ist:
    Figure 00930001
    wobei P(ai|pr) die Wahrscheinlichkeit des Verwechselns eines Satzmerkmals pr mit einem Anmerkungssequenzmerkmal ai darstellt und P(pr) die Wahrscheinlichkeit darstellt, dass ein Satzmerkmal pr in einer Sequenz von Merkmalen auftritt.
  31. Vorrichtung gemäß Anspruch 30, wobei die Normalisierungseinrichtung zum Berechnen der jeweiligen Normalisierungen durch Multiplizieren der für die jeweiligen angeordneten Paare von Merkmalen berechneten Normalisierungsausdrücke betreibbar ist.
  32. Vorrichtung gemäß einem der Ansprüche 2 bis 31, wobei der zweite Komparator zum Vergleichen der Abfragesequenz von Sprachmerkmalen mit einer momentanen Anmerkungssequenz von Sprachmerkmalen betreibbar ist, um ein Vergleichsergebnis unter Verwendung von Falschtippwahr scheinlichkeiten und/oder Falschbuchstabierwahrscheinlichkeiten bereitzustellen.
  33. Vorrichtung gemäß einem der vorstehenden Ansprüche, wobei die Identifizierungseinrichtung zum Vergleichen der durch Vergleichen der Abfragesequenz von Sprachmerkmalen mit jeder Anmerkungssequenz von Sprachmerkmalen gewonnenen Vergleichsergebnisse betreibbar ist, um die Anmerkungssequenz von Sprachmerkmalen zu identifizieren, die der Abfragesequenz von Sprachmerkmalen am ähnlichsten ist.
  34. Vorrichtung gemäß einem der vorstehenden Ansprüche, wobei ein oder mehrere der Informationseinträge die zugehörige Anmerkung ist oder sind.
  35. Vorrichtung gemäß einem der vorstehenden Ansprüche, wobei die Empfangseinrichtung zum Empfangen einer Vielzahl von Wiedergaben einer Eingabeabfrage, von denen jede eine Sequenz von Sprachmerkmalen umfasst, betreibbar ist, wobei die Vergleichseinrichtung zum Vergleichen von Sprachabfragemerkmalen von jeder Wiedergabe mit Sprachanmerkungsmerkmalen von jeder Anmerkung betreibbar ist, um ein Maß der Ähnlichkeit zwischen einer jeden Eingabeabfrage und einer jeden Anmerkung bereitzustellen, und wobei die Identifizierungseinrichtung zum Identifizieren der Informationen betreibbar ist, die aus der Datenbank unter Verwendung der durch die Vergleichseinrichtung bereitgestellten Ähnlichkeitsmaße zu holen sind.
  36. Vorrichtung gemäß einem der vorstehenden Ansprüche, die ferner eine automatische Spracherkennungseinrichtung (51) zum Empfangen einer gesprochenen Eingabeabfrage und zum Bereistellen der Eingabeabfragesequenz von Sprachmerkmalen für die Empfangseinrichtung umfasst.
  37. Vorrichtung gemäß einem der vorstehenden Ansprüche, die ferner eine Tastatur (3) und eine Phonetikumschreibungseinrichtung (75) zum Empfangen einer getippten Eingabeabfrage und zum Bereitstellen der Eingabeabfragesequenz von Sprachmerkmalen für die Empfangseinrichtung umfasst.
  38. Verfahren zum Durchsuchen einer Datenbank (29), die eine Vielzahl von Informationseinträgen (41) umfasst, um daraus zu holende Informationen zu identifizieren, wobei jeder der Vielzahl von Informationseinträgen (41) eine eine Sequenz von Sprachmerkmalen umfassende, zugehörende Anmerkung aufweist, wobei das Verfahren umfasst: Empfangen einer eine Sequenz von Sprachmerkmalen umfassenden Eingabeabfrage, Vergleichen der Abfragesequenz von Sprachmerkmalen mit den Sprachmerkmalen einer jeden Anmerkung, um einen Satz von Vergleichsergebnissen bereitzustellen, und Identifizieren der aus der Datenbank (29) unter Verwendung der Vergleichsergebnisse zu holenden Informationen, dadurch gekennzeichnet, dass der Vergleichsschritt eine Vielzahl von verschiedenen Vergleichstechniken verwenden kann, um den Vergleich durchzuführen, und dadurch, dass das Verfahren ferner umfasst: Bestimmen, (i) ob die Abfragesequenz von Sprachmerkmalen von einem Audiosignal oder aus Text erzeugt wurde (s215, s217), und (ii) ob die Sequenz von Sprachmerkmalen einer momentanen Anmerkung aus einem Audiosignal oder aus Text erzeugt wurde (s213) und zum Ausgeben eines Bestimmungsergebnisses, und Auswählen (s213, s215, s217), für die momentane Anmerkung, der zum Durchführen des Vergleichs in dem Vergleichsschritt verwendeten Technik abhängig von dem Bestimmungsergebnis.
  39. Verfahren gemäß Anspruch 38, wobei der Vergleichsschritt eine erste Vergleichstechnik verwendet, wenn bestimmt wird, dass die Abfragesequenz von Sprachmerkmalen aus einem Audiosignal erzeugt wurde, und wenn bestimmt wird, dass die Sequenz von Sprachmerkmalen der momentanen Anmerkung aus einem Audiosignal erzeugt wurden, und eine zweite Vergleichstechnik verwendet, wenn bestimmt wird, dass die Abfragesequenz von Sprachmerkmalen und/oder die Sequenz von Sprachmerkmalen der momentanen Anmerkung aus Text erzeugt wurden/wurde.
  40. Verfahren gemäß Anspruch 39, wobei die erste Vergleichstechnik umfasst: Anordnen der Sprachmerkmale der Eingabeabfrage mit den Sprachmerkmalen der momentanen Anmerkung, um eine Anzahl von angeordneten Paaren von Sprachmerkmalen zu erstellen, einen ersten Untervergleichsschritt (s335, s365) des Vergleichens, für jedes angeordnete Paar von Sprachmerkmalen, des Abfragesprachmerkmals in dem angeordneten Paar mit jedem einer Vielzahl von Sprachmerkmalen, die aus einem Satz von vorbestimmten Sprachmerkmalen genommen werden, um eine entsprechende Vielzahl von Zwischenvergleichswertungen zu erzeugen, die die Ähnlichkeit zwischen dem Abfragesprachmerkmal und den jeweiligen Sprachmerkmalen von dem Satz darstellen, einen zweiten Untervergleichsschritt (s349, s363) des Vergleichens, für jedes angeordnete Paar von Sprachmerkmalen, des Anmerkungssprachmerkmals in dem angeordneten Paar mit jedem der Vielzahl von Merkmalen von dem Satz, um eine ferner entsprechende Vielzahl von Zwischenvergleichswertungen zu erzeugen, die die Ähnlichkeit zwi schen dem Anmerkungssprachmerkmal und den jeweiligen Sprachmerkmalen von dem Satz darstellen, Berechnen (s337, s353, s367) einer Vergleichswertung, die die Ähnlichkeit zwischen dem angeordneten Paar von Sprachmerkmalen darstellt, durch Kombinieren der Vielzahlen von für das angeordnete Paar erzeugten Zwischenvergleichswertungen, und Kombinieren (s233) der Vergleichswertungen für alle angeordneten Paare von Sprachmerkmalen einer Eingabeabfrage und einer Anmerkung, um ein Vergleichsergebnis bereitzustellen, dass die Ähnlichkeit zwischen der Eingabeabfrage und der momentanen Anmerkung darstellt.
  41. Verfahren gemäß Anspruch 40, wobei der erste und der zweite Untervergleichsschritt (s335, s365; s349, s363) das Abfragesprachmerkmal und das Anmerkungssprachmerkmal jeweils mit jedem der Sprachmerkmale in dem Satz von vorbestimmten Sprachmerkmalen vergleichen.
  42. Verfahren gemäß Anspruch 40 oder 41, wobei der Berechnungsschritt (s337, s353, s367) eine Vergleichswertung für ein angeordnetes Paar von Sprachmerkmalen berechnet, die eine Wahrscheinlichkeit des Verwechselns des Anmerkungssprachmerkmals des angeordneten Paares mit dem Abfragesprachmerkmal des angeordneten Paares darstellt.
  43. Verfahren gemäß Anspruch 42, wobei der erste und der zweite Untervergleichsschritt (s335, s365, s349, s363) Zwischenvergleichswertungen erzeugen, die eine Wahrscheinlichkeit des Verwechselns des aus dem Satz von vorbestimmten Merkmalen genommenen, entsprechenden Sprachmerkmals mit dem Sprachmerkmal in dem angeordneten Paar anzeigen.
  44. Verfahren gemäß Anspruch 43, wobei der Berechnungsschritt (s337, s353, s367) (i) die bei Vergleich der Abfrage- und Anmerkungssprachmerkmale in dem angeordneten Paar mit den gleichen Sprachmerkmalen aus dem Satz gewonnenen Zwischenwertungen multipliziert, um eine Vielzahl von multiplizierten Zwischenvergleichswertungen bereitzustellen, und (ii) die resultierenden multiplizierten Zwischenvergleichswertungen addiert, um die Vergleichswertung für das angeordnete Paar von Sprachmerkmalen zu berechnen.
  45. Verfahren gemäß Anspruch 44, wobei jedes der Sprachmerkmale in dem Satz von vorbestimmten Sprachmerkmalen eine vorbestimmte Wahrscheinlichkeit des Auftretens innerhalb einer Sequenz von Sprachmerkmalen aufweist, und wobei der Berechnungsschritt jede der multiplizierten Zwischenvergleichswertungen mit der jeweiligen Wahrscheinlichkeit des Auftretens für das Sprachmerkmal aus dem Satz, der zum Erzeugen der multiplizierten Zwischenvergleichswertungen verwendet wird, gewichtet.
  46. Verfahren gemäß Anspruch 45, wobei der Berechnungsschritt berechnet:
    Figure 00980001
    wobei qj bzw. ai ein angeordnetes Paar von Abfrage- bzw. Anmerkungssprachmerkmalen sind, P(qj|pr) die Wahrscheinlichkeit des Verwechselns eines Satzsprachmerkmals pr mit einem Abfragesprachmerkmal qj ist, P(ai|pr) die Wahrscheinlichkeit des Verwechselns eines Satzsprachmerkmals pr mit einem Anmerkungssprachmerkmal ai ist und P(pr) die Wahrscheinlichkeit darstellt, dass ein Satzsprachmerkmal pr in einer Sequenz von Sprachmerkmalen auftritt.
  47. Verfahren gemäß Anspruch 46, wobei die Verwechslungswahrscheinlichkeiten für die Abfrage- und Anmerkungssprachmerkmale vorab und abhängig von dem Erkennungssystem, das zum Erzeugen der jeweiligen Abfrage- und Anmerkungssequenzen verwendet wurde, bestimmt werden.
  48. Verfahren gemäß einem der Ansprüche 44 bis 47, wobei die Zwischenvergleichswertungen LOG-Wahrscheinlichkeiten darstellen, und wobei der Berechnungsschritt die Multiplikation durch Addieren der jeweiligen Zwischenvergleichswertungen durchführt und die Addition der multiplizierten Wertungen durch Durchführen einer LOG-Additionsberechnung durchführt.
  49. Verfahren gemäß Anspruch 48, wobei der Kombinierungsschritt die Vergleichswertungen für alle angeordneten Paare der Abfragesequenz und der momentanen Anmerkungssequenz addiert, um das Vergleichsergebnis für die Eingabeabfrage und die momentane Anmerkung zu bestimmten.
  50. Verfahren gemäß einem der Ansprüche 40 bis 49, wobei der Anordnungsschritt Merkmalslöschungen (s295) und – einfügungen (s293) in den Abfrage- und Anmerkungssequenzen von Sprachmerkmalen identifiziert, und wobei der Berechnungsschritt die Vergleichswertung für ein angeordnetes Paar von Sprachmerkmalen abhängig von Merkmalslöschungen und -einfügungen berechnet, die in dem Anordnungsschritt identifiziert werden, die in der Umgebung der Sprachmerkmale in dem angeordneten Paar auftreten.
  51. Verfahren gemäß einem der Ansprüche 40 bis 50, wobei der Anordnungsschritt einen Dynamikprogrammierschritt verwendet, um die Abfrage- und Anmerkungssequenzen von Merkmalen anzuordnen.
  52. Verfahren gemäß Anspruch 51, wobei der Dynamikprogrammierschritt eine Vielzahl von möglichen Anordnungen zwischen den Abfrage- und Anmerkungssequenzen von Sprachmerkmalen progressiv bestimmt, und wobei der Berechnungsschritt (s337, s353, s367) eine Vergleichswertung für jedes der durch den Dynamikprogrammschritt bestimmten, möglichen angeordneten Paare von Sprachmerkmalen bestimmt.
  53. Verfahren gemäß Anspruch 52, wobei der Berechnungsschritt (s337, s353, s367) die Vergleichswertung während der progressiven Bestimmung der möglichen Anordnungen berechnet.
  54. Verfahren gemäß Anspruch 51, 52 oder 53, wobei der Dynamikprogrammierschritt eine Optimalanordnung zwischen den Abfrage- und Anmerkungssequenzen von Sprachmerkmalen bestimmt, und wobei der Kombinierungsschritt das Vergleichsergebnis durch Kombinieren der Vergleichswertungen lediglich für die optimal angeordneten Paare von Sprachmerkmalen bereitstellt.
  55. Verfahren gemäß Anspruch 52 oder 53, wobei der Kombinierungsschritt (s233) das Vergleichsergebnis durch Kombinieren aller Vergleichswertungen für alle möglichen angeordneten Paare von Sprachmerkmalen bereitstellt.
  56. Verfahren gemäß einem der Ansprüche 40 bis 55, wobei jedes der Sprachmerkmale in den Abfrage- und Anmerkungssequenzen von Sprachmerkmalen zu dem Satz von vorbestimmten Sprachmerkmalen gehört, und wobei der erste und der zweite Untervergleichsschritt (s335, s365; s349, s363) die Zwischenvergleichswertungen unter Verwendung von vorbestimmten Daten erzeugen, die die Sprachmerkmale in dem Satz miteinander verknüpfen.
  57. Verfahren gemäß Anspruch 56, wobei die in dem ersten Untervergleichsschritt verwendeten, vorbestimmten Daten von dem zum Erzeugen der Abfragesequenz von Sprachmerkmalen verwendeten System abhängen, und wobei die in dem zweiten Untervergleichsschritt verwendeten, vorbestimmten Daten sich von den in dem ersten Vergleichsschritt verwendeten, vorbestimmten Daten unterscheiden und von dem zum Erzeugen der Anmerkungssequenz von Sprachmerkmalen verwendeten System abhängen.
  58. Verfahren gemäß Anspruch 56 oder 57, wobei das vorbestimmte Datum oder alle vorbestimmten Daten, für jedes Sprachmerkmal in dem Satz von Sprachmerkmalen, eine Wahrscheinlichkeit zum Verwechseln jenes Sprachmerkmals mit jedem der anderen Sprachmerkmale in dem Satz von Sprachmerkmalen umfasst oder umfassen.
  59. Verfahren gemäß Anspruch 58, wobei das vorbestimmte Datum oder alle vorbestimmten Daten ferner, für jedes Sprachmerkmal in dem Satz von Sprachmerkmalen, die Wahrscheinlichkeit des Einfügens des Sprachmerkmals in eine Sequenz von Sprachmerkmalen umfasst oder umfassen.
  60. Verfahren gemäß Anspruch 58 oder 59, wobei das vorbestimmte Datum oder alle vorbestimmten Daten ferner, für jedes Sprachmerkmal in dem Satz von Sprachmerkmalen, die Wahrscheinlichkeit des Löschens des Sprachmerkmals aus einer Sequenz von Sprachmerkmalen umfasst oder umfassen.
  61. Verfahren gemäß einem der Ansprüche 38 bis 60, wobei jedes der Sprachmerkmale ein Phonem darstellt.
  62. Verfahren gemäß einem der Ansprüche 60 bis 61, wobei der Kombinierungsschritt jedes Vergleichsergebnis normalisiert.
  63. Verfahren gemäß Anspruch 62, wobei der Kombinierungsschritt jedes Vergleichsergebnis durch Teilen des Vergleichsergebnisses durch eine jeweilige Normalisierungswertung normalisiert, die abhängig von der Länge der entsprechenden Anmerkungssequenz von Sprachmerkmalen variiert.
  64. Verfahren gemäß Anspruch 63, wobei die jeweiligen Normalisierungswertungen abhängig von der Sequenz von Sprachmerkmalen in der entsprechenden Anmerkungssequenz von Sprachmerkmalen variieren.
  65. Verfahren gemäß Anspruch 63 oder 64, wobei die jeweiligen Normalisierungswertungen mit den durch die zweite Untervergleichseinrichtung berechneten, entsprechenden Zwischenvergleichswertungen variieren.
  66. Verfahren gemäß einem der Ansprüche 62 bis 65, wobei der Anordnungsschritt einen Dynamikprogrammschritt zum Anordnen der Abfrage- und Anmerkungssequenzen von Sprachmerkmalen verwendet, und wobei der Kombinierungsschritt die jeweiligen Normalisierungswertungen während einer progressiven Berechnung der möglichen Anordnungen durch den Dynamikprogrammierschritt berechnet.
  67. Verfahren gemäß Anspruch 66, wobei der Kombinierungsschritt für jedes mögliche angeordnete Paar von Sprachmerkmalen den nachstehenden Normalisierungsausdruck berechnet:
    Figure 01020001
    wobei P(ai|pr) die Wahrscheinlichkeit des Verwechselns eines Satzmerkmals pr mit einem Anmerkungssequenzmerkmal ai darstellt und P(pr) die Wahrscheinlichkeit darstellt, dass ein Satzmerkmal pr in einer Sequenz von Merkmalen auftritt.
  68. Verfahren gemäß Anspruch 67, wobei der Kombinierungsschritt die jeweiligen Normalisierungswertungen durch Multiplizieren der für die jeweiligen angeordneten Paare von Merkmalen berechneten Normalisierungsausdrücke berechnet.
  69. Verfahren gemäß einem der Ansprüche 39 bis 68, wobei die zweite Vergleichstechnik die Abfragesequenz von Sprachmerkmalen mit einer momentanen Anmerkungssequenz von Sprachmerkmalen vergleicht, um ein Vergleichsergebnis unter Verwendung von Fehltippwahrscheinlichkeiten und/oder Fehlbuchstabierwahrscheinlichkeiten bereitzustellen.
  70. Verfahren gemäß einem der Ansprüche 38 bis 69, wobei der Identifizierungsschritt das durch Vergleichen der Abfragesequenz von Sprachmerkmalen mit jeder Anmerkungssequenz von Sprachmerkmalen gewonnenen Vergleichsergebnisse vergleicht, um die Anmerkungssequenz von Sprachmerkmalen zu identifizieren, die der Abfragesequenz von Sprachmerkmalen am ähnlichsten ist.
  71. Verfahren gemäß einem der Ansprüche 38 bis 70, wobei ein oder mehrere Informationseinträge die zugehörige Anmerkung ist oder sind.
  72. Verfahren gemäß einem der Ansprüche 38 bis 71, wobei der Empfangsschritt eine Vielzahl von Wiedergaben einer Eingabeabfrage empfängt, von denen jede eine Sequenz von Sprachmerkmalen umfasst, wobei der Vergleichsschritt Sprachabfragemerkmale einer jeden Eingabe mit Sprachanmerkungsmerkmalen einer jeden Anmerkung vergleicht, um ein Maß der Ähnlichkeit zwischen jeder Eingabeabfrage und jeder Anmerkung bereitzustellen, und wobei der Identifizierungsschritt die Informationen identifiziert, die aus der Datenbank unter Verwendung der durch den Vergleichsschritt bereitgestellten Ähnlichkeitsmaße zu holen sind.
  73. Verfahren gemäß einem der Ansprüche 38 bis 72, das ferner den Schritt des Verwendens einer automatischen Spracherkennungseinrichtung (51) zum Verarbeiten einer gesprochenen Eingabeabfrage und zum Bereitstellen der Eingabeabfragesequenz von Sprachmerkmalen für den Empfangsschritt umfasst.
  74. Verfahren gemäß einem der Ansprüche 38 bis 72, das ferner den Schritt des Verwendens einer Phonetikumschreibungseinrichtung (75) zum Verarbeiten einer getippten Eingabeabfrage und zum Bereitstellen der Eingabeabfragesequenz von Sprachmerkmalen für den Empfangsschritt umfasst.
  75. Speichermedium, das computerausführbare Anweisungen zum Steuern eines programmierbaren Prozessors zum Ausführen des Verfahrens gemäß einem der Ansprüche 38 bis 74 speichert.
  76. Prozessorimplementierbares Anweisungsprodukt zum Steuern einer programmierbaren Verarbeitungseinrichtung zum Implementieren des Verfahrens gemäß einem der Ansprüche 38 bis 74.
DE60036486T 1999-10-28 2000-10-25 Methode und apparat zum prüfen von musterübereinstimmungen Expired - Lifetime DE60036486T2 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GB9925560 1999-10-28
GBGB9925560.6A GB9925560D0 (en) 1999-10-28 1999-10-28 Pattern matching method and apparatus
GBGB9925561.4A GB9925561D0 (en) 1999-10-28 1999-10-28 Pattern matching method and apparatus
GB9925561 1999-10-28
GB0025143A GB2355836B (en) 1999-10-28 2000-10-13 Pattern matching method and apparatus
GB0025143 2000-10-13
PCT/GB2000/004112 WO2001031627A2 (en) 1999-10-28 2000-10-25 Pattern matching method and apparatus

Publications (2)

Publication Number Publication Date
DE60036486D1 DE60036486D1 (de) 2007-10-31
DE60036486T2 true DE60036486T2 (de) 2008-06-12

Family

ID=27255934

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60036486T Expired - Lifetime DE60036486T2 (de) 1999-10-28 2000-10-25 Methode und apparat zum prüfen von musterübereinstimmungen

Country Status (6)

Country Link
US (2) US7212968B1 (de)
EP (1) EP1228452B1 (de)
JP (1) JP3689670B2 (de)
CN (1) CN1329861C (de)
DE (1) DE60036486T2 (de)
WO (1) WO2001031627A2 (de)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310600B1 (en) 1999-10-28 2007-12-18 Canon Kabushiki Kaisha Language recognition using a similarity measure
US6882970B1 (en) 1999-10-28 2005-04-19 Canon Kabushiki Kaisha Language recognition using sequence frequency
GB0011798D0 (en) 2000-05-16 2000-07-05 Canon Kk Database annotation and retrieval
GB0023930D0 (en) 2000-09-29 2000-11-15 Canon Kk Database annotation and retrieval
FR2837969A1 (fr) * 2002-03-29 2003-10-03 France Telecom Procede de traduction de donnees autorisant une gestion de memoire simplifiee
US8959019B2 (en) * 2002-10-31 2015-02-17 Promptu Systems Corporation Efficient empirical determination, computation, and use of acoustic confusability measures
GB2399983A (en) * 2003-03-24 2004-09-29 Canon Kk Picture storage and retrieval system for telecommunication system
GB2404040A (en) * 2003-07-16 2005-01-19 Canon Kk Lattice matching
US7904296B2 (en) * 2003-07-23 2011-03-08 Nexidia Inc. Spoken word spotting queries
US7676739B2 (en) * 2003-11-26 2010-03-09 International Business Machines Corporation Methods and apparatus for knowledge base assisted annotation
US7401019B2 (en) * 2004-01-15 2008-07-15 Microsoft Corporation Phonetic fragment search in speech data
US8694317B2 (en) * 2005-02-05 2014-04-08 Aurix Limited Methods and apparatus relating to searching of spoken audio data
US7293022B2 (en) * 2005-04-14 2007-11-06 International Business Machines Corporation List update employing neutral sort keys
US7941316B2 (en) * 2005-10-28 2011-05-10 Microsoft Corporation Combined speech and alternate input modality to a mobile device
CN102176310B (zh) 2005-12-08 2013-08-21 纽昂斯奥地利通讯有限公司 具有巨大词汇量的语音识别系统
US7877256B2 (en) * 2006-02-17 2011-01-25 Microsoft Corporation Time synchronous decoding for long-span hidden trajectory model
US8510109B2 (en) 2007-08-22 2013-08-13 Canyon Ip Holdings Llc Continuous speech transcription performance indication
WO2007134293A2 (en) * 2006-05-12 2007-11-22 Nexidia, Inc. Wordspotting system
US8255216B2 (en) * 2006-10-30 2012-08-28 Nuance Communications, Inc. Speech recognition of character sequences
US7912724B1 (en) * 2007-01-18 2011-03-22 Adobe Systems Incorporated Audio comparison using phoneme matching
KR100897554B1 (ko) * 2007-02-21 2009-05-15 삼성전자주식회사 분산 음성인식시스템 및 방법과 분산 음성인식을 위한 단말기
US8457959B2 (en) * 2007-03-01 2013-06-04 Edward C. Kaiser Systems and methods for implicitly interpreting semantically redundant communication modes
US20090299731A1 (en) * 2007-03-12 2009-12-03 Mongoose Ventures Limited Aural similarity measuring system for text
GB0704772D0 (en) * 2007-03-12 2007-04-18 Mongoose Ventures Ltd Aural similarity measuring system for text
US8069044B1 (en) * 2007-03-16 2011-11-29 Adobe Systems Incorporated Content matching using phoneme comparison and scoring
US9973450B2 (en) 2007-09-17 2018-05-15 Amazon Technologies, Inc. Methods and systems for dynamically updating web service profile information by parsing transcribed message strings
US8436815B2 (en) 2007-05-25 2013-05-07 Microsoft Corporation Selective enabling of multi-input controls
US7788095B2 (en) * 2007-11-18 2010-08-31 Nice Systems, Ltd. Method and apparatus for fast search in call-center monitoring
US20100153112A1 (en) * 2008-12-16 2010-06-17 Motorola, Inc. Progressively refining a speech-based search
WO2010112087A1 (en) * 2009-04-03 2010-10-07 Netcycler Oy On-line searching systems
US8719016B1 (en) 2009-04-07 2014-05-06 Verint Americas Inc. Speech analytics system and system and method for determining structured speech
US8321218B2 (en) * 2009-06-19 2012-11-27 L.N.T.S. Linguistech Solutions Ltd Searching in audio speech
US8494852B2 (en) 2010-01-05 2013-07-23 Google Inc. Word-level correction of speech input
CN102314876B (zh) * 2010-06-29 2013-04-10 株式会社理光 语音检索的方法和系统
CN102411563B (zh) 2010-09-26 2015-06-17 阿里巴巴集团控股有限公司 一种识别目标词的方法、装置及系统
US20120209606A1 (en) * 2011-02-14 2012-08-16 Nice Systems Ltd. Method and apparatus for information extraction from interactions
US8914286B1 (en) * 2011-04-14 2014-12-16 Canyon IP Holdings, LLC Speech recognition with hierarchical networks
US8827710B2 (en) 2011-05-19 2014-09-09 Microsoft Corporation Realtime user guidance for freehand drawing
JP5404726B2 (ja) * 2011-09-26 2014-02-05 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US9135912B1 (en) * 2012-08-15 2015-09-15 Google Inc. Updating phonetic dictionaries
US9311914B2 (en) * 2012-09-03 2016-04-12 Nice-Systems Ltd Method and apparatus for enhanced phonetic indexing and search
US9734151B2 (en) * 2012-10-31 2017-08-15 Tivo Solutions Inc. Method and system for voice based media search
US20150279351A1 (en) * 2012-12-19 2015-10-01 Google Inc. Keyword detection based on acoustic alignment
US9529907B2 (en) * 2012-12-31 2016-12-27 Google Inc. Hold back and real time ranking of results in a streaming matching system
US9880990B2 (en) 2013-03-14 2018-01-30 Microsoft Technology Licensing, Llc Leveraging previous instances of handwriting for handwriting beautification and other applications
CN104157285B (zh) * 2013-05-14 2016-01-20 腾讯科技(深圳)有限公司 语音识别方法、装置及电子设备
US9384731B2 (en) * 2013-11-06 2016-07-05 Microsoft Technology Licensing, Llc Detecting speech input phrase confusion risk
US9536180B2 (en) 2013-12-30 2017-01-03 Google Inc. Text recognition based on recognition units
JP6400936B2 (ja) * 2014-04-21 2018-10-03 シノイースト・コンセプト・リミテッド 音声検索方法、音声検索装置、並びに、音声検索装置用のプログラム
CN105210147B (zh) * 2014-04-22 2020-02-07 纳宝株式会社 用于改进至少一个语义单元集合的方法、设备及计算机可读记录介质
KR20160056548A (ko) * 2014-11-12 2016-05-20 삼성전자주식회사 질의 응답을 위한 디스플레이 장치 및 방법
US10558926B2 (en) * 2014-11-20 2020-02-11 Academia Sinica Statistical pattern generation for information extraction
US10403267B2 (en) 2015-01-16 2019-09-03 Samsung Electronics Co., Ltd Method and device for performing voice recognition using grammar model
EP3089159B1 (de) 2015-04-28 2019-08-28 Google LLC Korrekturspracherkennung mittels selektivem re-speak
US10192555B2 (en) * 2016-04-28 2019-01-29 Microsoft Technology Licensing, Llc Dynamic speech recognition data evaluation
US10269353B2 (en) * 2016-08-30 2019-04-23 Tata Consultancy Services Limited System and method for transcription of spoken words using multilingual mismatched crowd unfamiliar with a spoken language
EP3794586B1 (de) * 2018-05-18 2024-03-27 Greeneden U.S. Holdings II, LLC System und verfahren für einen mehrklassenansatz zur vertrauensmodellierung in automatischen spracherkennungssystemen
CN109299223B (zh) * 2018-10-15 2020-05-15 百度在线网络技术(北京)有限公司 用于查询指令的方法及装置
CN113192501B (zh) * 2021-04-12 2022-04-22 青岛信芯微电子科技股份有限公司 一种指令词识别方法及装置

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4227176A (en) 1978-04-27 1980-10-07 Dialog Systems, Inc. Continuous speech recognition method
JPS59226400A (ja) 1983-06-07 1984-12-19 松下電器産業株式会社 音声認識装置
US5131043A (en) 1983-09-05 1992-07-14 Matsushita Electric Industrial Co., Ltd. Method of and apparatus for speech recognition wherein decisions are made based on phonemes
FR2554623B1 (fr) 1983-11-08 1986-08-14 Texas Instruments France Procede d'analyse de la parole independant du locuteur
US4980918A (en) 1985-05-09 1990-12-25 International Business Machines Corporation Speech recognition system with efficient storage and rapid assembly of phonological graphs
US4783803A (en) * 1985-11-12 1988-11-08 Dragon Systems, Inc. Speech recognition apparatus and method
US4903305A (en) 1986-05-12 1990-02-20 Dragon Systems, Inc. Method for representing word models for use in speech recognition
JP2739945B2 (ja) 1987-12-24 1998-04-15 株式会社東芝 音声認識方法
US5075896A (en) 1989-10-25 1991-12-24 Xerox Corporation Character and phoneme recognition based on probability clustering
US6236964B1 (en) 1990-02-01 2001-05-22 Canon Kabushiki Kaisha Speech recognition apparatus and method for matching inputted speech and a word generated from stored referenced phoneme data
US5136655A (en) 1990-03-26 1992-08-04 Hewlett-Pacard Company Method and apparatus for indexing and retrieving audio-video data
US5202952A (en) 1990-06-22 1993-04-13 Dragon Systems, Inc. Large-vocabulary continuous speech prefiltering and processing system
US5390278A (en) 1991-10-08 1995-02-14 Bell Canada Phoneme based speech recognition
WO1993018505A1 (en) * 1992-03-02 1993-09-16 The Walt Disney Company Voice transformation system
US5333275A (en) 1992-06-23 1994-07-26 Wheatley Barbara J System and method for time aligning speech
US5625554A (en) 1992-07-20 1997-04-29 Xerox Corporation Finite-state transduction of related word forms for text indexing and retrieval
DE69333422T2 (de) * 1992-07-31 2004-12-16 International Business Machines Corp. Auffindung von Zeichenketten in einer Datenbank von Zeichenketten
EP0597798A1 (de) 1992-11-13 1994-05-18 International Business Machines Corporation Methode und System zum Gebrauch von hörbaren Suchmustern innerhalb einer Multimediapräsentation
AU5803394A (en) 1992-12-17 1994-07-04 Bell Atlantic Network Services, Inc. Mechanized directory assistance
US5467425A (en) 1993-02-26 1995-11-14 International Business Machines Corporation Building scalable N-gram language models using maximum likelihood maximum entropy N-gram models
US5787414A (en) 1993-06-03 1998-07-28 Kabushiki Kaisha Toshiba Data retrieval system using secondary information of primary data to be retrieved as retrieval key
DE69423838T2 (de) 1993-09-23 2000-08-03 Xerox Corp Semantische Gleichereignisfilterung für Spracherkennung und Signalübersetzungsanwendungen
JP2986345B2 (ja) * 1993-10-18 1999-12-06 インターナショナル・ビジネス・マシーンズ・コーポレイション 音声記録指標化装置及び方法
CN1136356A (zh) * 1993-11-29 1996-11-20 迈克尔·T·罗西德斯 用于文本检索的输入系统
SE513456C2 (sv) 1994-05-10 2000-09-18 Telia Ab Metod och anordning vid tal- till textomvandling
IT1272259B (it) 1994-05-30 1997-06-16 Texas Instruments Italia Spa Procedimento ed apparecchio per il riconoscimento dei caratteri
JP3260979B2 (ja) 1994-07-15 2002-02-25 株式会社リコー 文字認識方法
US5799267A (en) 1994-07-22 1998-08-25 Siegel; Steven H. Phonic engine
US5737723A (en) 1994-08-29 1998-04-07 Lucent Technologies Inc. Confusable word detection in speech recognition
US5835667A (en) 1994-10-14 1998-11-10 Carnegie Mellon University Method and apparatus for creating a searchable digital video library and a system and method of using such a library
NZ294659A (en) 1994-11-01 1999-01-28 British Telecomm Method of and apparatus for generating a vocabulary from an input speech signal
US5680605A (en) 1995-02-07 1997-10-21 Torres; Robert J. Method and apparatus for searching a large volume of data with a pointer-based device in a data processing system
ES2164870T3 (es) 1995-03-07 2002-03-01 British Telecomm Reconocimiento del habla.
CA2170669A1 (en) 1995-03-24 1996-09-25 Fernando Carlos Neves Pereira Grapheme-to phoneme conversion with weighted finite-state transducers
US5675706A (en) 1995-03-31 1997-10-07 Lucent Technologies Inc. Vocabulary independent discriminative utterance verification for non-keyword rejection in subword based speech recognition
US5729741A (en) 1995-04-10 1998-03-17 Golden Enterprises, Inc. System for storage and retrieval of diverse types of information obtained from different media sources which includes video, audio, and text transcriptions
US5873061A (en) 1995-05-03 1999-02-16 U.S. Philips Corporation Method for constructing a model of a new word for addition to a word model database of a speech recognition system
US6070140A (en) 1995-06-05 2000-05-30 Tran; Bao Q. Speech recognizer
JPH0916598A (ja) 1995-07-03 1997-01-17 Fujitsu Ltd エラー・パターンを用いた文字列修正システムおよび方法
US5721939A (en) 1995-08-03 1998-02-24 Xerox Corporation Method and apparatus for tokenizing text
US5684925A (en) 1995-09-08 1997-11-04 Matsushita Electric Industrial Co., Ltd. Speech representation by feature-based word prototypes comprising phoneme targets having reliable high similarity
US5737489A (en) 1995-09-15 1998-04-07 Lucent Technologies Inc. Discriminative utterance verification for connected digits recognition
JPH09128396A (ja) 1995-11-06 1997-05-16 Hitachi Ltd 対訳辞書作成方法
US6567778B1 (en) 1995-12-21 2003-05-20 Nuance Communications Natural language speech recognition using slot semantic confidence scores related to their word recognition confidence scores
US5960395A (en) 1996-02-09 1999-09-28 Canon Kabushiki Kaisha Pattern matching method, apparatus and computer readable memory medium for speech recognition using dynamic programming
GB2302199B (en) 1996-09-24 1997-05-14 Allvoice Computing Plc Data processing method and apparatus
US5870740A (en) 1996-09-30 1999-02-09 Apple Computer, Inc. System and method for improving the ranking of information retrieval results for short queries
US5708759A (en) 1996-11-19 1998-01-13 Kemeny; Emanuel S. Speech recognition using phoneme waveform parameters
US6172675B1 (en) 1996-12-05 2001-01-09 Interval Research Corporation Indirect manipulation of data using temporally related data, with particular application to manipulation of audio or audiovisual data
US5852822A (en) 1996-12-09 1998-12-22 Oracle Corporation Index-only tables with nested group keys
EP0849723A3 (de) 1996-12-20 1998-12-30 ATR Interpreting Telecommunications Research Laboratories Spracherkennungsapparat mit Mitteln zum Eliminieren von Kandidatenfehlern
US6122613A (en) * 1997-01-30 2000-09-19 Dragon Systems, Inc. Speech recognition using multiple recognizers (selectively) applied to the same input sample
WO1998047084A1 (en) 1997-04-17 1998-10-22 Sharp Kabushiki Kaisha A method and system for object-based video description and linking
WO1999005681A1 (de) 1997-07-23 1999-02-04 Siemens Aktiengesellschaft Verfahren zum abspeichern von suchmerkmalen einer bildsequenz und zugriff auf eine bildfolge in der bildsequenz
US6006182A (en) * 1997-09-22 1999-12-21 Northern Telecom Limited Speech recognition rejection method using generalized additive models
WO1999016051A1 (en) 1997-09-24 1999-04-01 Lernout & Hauspie Speech Products N.V Apparatus and method for distinguishing similar-sounding utterances in speech recognition
US6026398A (en) 1997-10-16 2000-02-15 Imarket, Incorporated System and methods for searching and matching databases
US6061679A (en) 1997-11-25 2000-05-09 International Business Machines Corporation Creating and searching a data structure ordered by ranges of key masks associated with the data structure
US5983177A (en) 1997-12-18 1999-11-09 Nortel Networks Corporation Method and apparatus for obtaining transcriptions from multiple training utterances
US6289140B1 (en) 1998-02-19 2001-09-11 Hewlett-Packard Company Voice control input for portable capture devices
US6182039B1 (en) 1998-03-24 2001-01-30 Matsushita Electric Industrial Co., Ltd. Method and apparatus using probabilistic language model based on confusable sets for speech recognition
US6243680B1 (en) 1998-06-15 2001-06-05 Nortel Networks Limited Method and apparatus for obtaining a transcription of phrases through text and spoken utterances
US6321226B1 (en) 1998-06-30 2001-11-20 Microsoft Corporation Flexible keyboard searching
US6192337B1 (en) 1998-08-14 2001-02-20 International Business Machines Corporation Apparatus and methods for rejecting confusible words during training associated with a speech recognition system
US6490563B2 (en) 1998-08-17 2002-12-03 Microsoft Corporation Proofreading with text to speech feedback
DE19842404A1 (de) 1998-09-16 2000-03-23 Philips Corp Intellectual Pty Verfahren zur Schätzung von Auftrittswahrscheinlichkeiten für Sprachvokabularelemente
FR2786600B1 (fr) * 1998-11-16 2001-04-20 France Telecom Procede de recherche par le contenu de documents textuels utilisant la reconnaissance vocale
WO2000031723A1 (en) 1998-11-25 2000-06-02 Sony Electronics, Inc. Method and apparatus for very large vocabulary isolated word recognition in a parameter sharing speech recognition system
US6243676B1 (en) * 1998-12-23 2001-06-05 Openwave Systems Inc. Searching and retrieving multimedia information
WO2000054168A2 (en) 1999-03-05 2000-09-14 Canon Kabushiki Kaisha Database annotation and retrieval
US6463413B1 (en) 1999-04-20 2002-10-08 Matsushita Electrical Industrial Co., Ltd. Speech recognition training for small hardware devices
GB2349260B (en) 1999-04-23 2003-05-28 Canon Kk Training apparatus and method
US6662180B1 (en) 1999-05-12 2003-12-09 Matsushita Electric Industrial Co., Ltd. Method for searching in large databases of automatically recognized text
US6535849B1 (en) * 2000-01-18 2003-03-18 Scansoft, Inc. Method and system for generating semi-literal transcripts for speech recognition systems
US6567816B1 (en) 2000-03-07 2003-05-20 Paramesh Sampatrai Desai Method, system, and program for extracting data from database records using dynamic code
US6535850B1 (en) 2000-03-09 2003-03-18 Conexant Systems, Inc. Smart training and smart scoring in SD speech recognition system with user defined vocabulary
GB0011798D0 (en) 2000-05-16 2000-07-05 Canon Kk Database annotation and retrieval
GB0023930D0 (en) 2000-09-29 2000-11-15 Canon Kk Database annotation and retrieval

Also Published As

Publication number Publication date
JP2003513383A (ja) 2003-04-08
US7295980B2 (en) 2007-11-13
WO2001031627A2 (en) 2001-05-03
JP3689670B2 (ja) 2005-08-31
EP1228452A2 (de) 2002-08-07
CN1329861C (zh) 2007-08-01
EP1228452B1 (de) 2007-09-19
CN1409842A (zh) 2003-04-09
WO2001031627A3 (en) 2002-05-23
US7212968B1 (en) 2007-05-01
DE60036486D1 (de) 2007-10-31
US20070150275A1 (en) 2007-06-28

Similar Documents

Publication Publication Date Title
DE60036486T2 (de) Methode und apparat zum prüfen von musterübereinstimmungen
Shao et al. Transformer-based neural network for answer selection in question answering
DE102019000294A1 (de) Erstellen unternehmensspezifischer Wissensgraphen
DE19952769B4 (de) Suchmaschine und Verfahren zum Abrufen von Informationen mit Abfragen in natürlicher Sprache
WO2020007028A1 (zh) 问诊数据推荐方法、装置、计算机设备和存储介质
DE60126722T2 (de) Aussprache von neuen Wörtern zur Sprachverarbeitung
DE102014113870A1 (de) Identifizieren und Anzeigen von Beziehungen zwischen Kandidatenantworten
DE69432575T2 (de) Dokumentenerkennungssystem mit verbesserter Wirksamkeit der Dokumentenerkennung
JP2001215987A (ja) パターンマッチング方法及び装置
CN108986910B (zh) 线上问答方法、装置、计算机设备和存储介质
JP2001215986A (ja) パターンマッチング方法及び装置
DE112015004203T5 (de) Neuschreibung von abfragen mithilfe von sitzungsinformationen
DE102022201222A1 (de) Neuronales netz mit interaktionsschicht, zum suchen, abrufen und einstufen
CN116701431A (zh) 一种基于大语言模型的数据检索方法及系统
JP2006293767A (ja) 文章分類装置、文章分類方法および分類辞書作成装置
DE112020003909T5 (de) Verfahren zum multimodalen abrufen bzw. wiedergewinnen und clustern unter verwendung einer tiefen cca und aktiver paarweiser abfragen
US7333997B2 (en) Knowledge discovery method with utility functions and feedback loops
DE102021004562A1 (de) Abwandlung von Szenengraphen auf Grundlage von Befehlen in natürlicher Sprache
Liu et al. An attention-based syntax-tree and tree-LSTM model for sentence summarization
DE102018007024A1 (de) Dokumentdurchsuchen mittels grammatischer einheiten
CN109189915B (zh) 一种基于深度相关匹配模型的信息检索方法
DE102022001733A1 (de) Maschinell lernende Modelle zum Detektieren von thematisch abweichenden Digitalvideos
DE112021006602T5 (de) Verfeinern von abfrage-erzeugungsmustern
DE60119643T2 (de) Homophonewahl in der Spracherkennung
WO2012143839A1 (en) A computerized system and a method for processing and building search strings

Legal Events

Date Code Title Description
8381 Inventor (new situation)

Inventor name: GARNER, PHILIP NEIL, BRACKNELL, BERKSHIRE RG12, GB

Inventor name: CHARLESWORTH, JASON P A, BRACKNELL, BERKSHIRE , GB

Inventor name: HIGUCHI, ASAKO, OHTA-KU, TOKYO 146-8501, JP

8364 No opposition during term of opposition