DE69607601T2 - System und verfahren zur spracherkennung mit automatischer erzeugung einer syntax - Google Patents
System und verfahren zur spracherkennung mit automatischer erzeugung einer syntaxInfo
- Publication number
- DE69607601T2 DE69607601T2 DE69607601T DE69607601T DE69607601T2 DE 69607601 T2 DE69607601 T2 DE 69607601T2 DE 69607601 T DE69607601 T DE 69607601T DE 69607601 T DE69607601 T DE 69607601T DE 69607601 T2 DE69607601 T2 DE 69607601T2
- Authority
- DE
- Germany
- Prior art keywords
- word
- syntax
- predefined
- word sequences
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 72
- 230000001755 vocal effect Effects 0.000 claims description 13
- 230000008030 elimination Effects 0.000 claims description 3
- 238000003379 elimination reaction Methods 0.000 claims description 3
- 238000013479 data entry Methods 0.000 description 47
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 4
- 238000013518 transcription Methods 0.000 description 4
- 230000035897 transcription Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000006227 byproduct Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000002105 tongue Anatomy 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/183—Speech classification or search using natural language modelling using context dependencies, e.g. language models
- G10L15/19—Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
- G10L15/193—Formal grammars, e.g. finite state automata, context free grammars or word networks
Landscapes
- Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Machine Translation (AREA)
Description
- Die vorliegende Erfindung bezieht sich allgemein auf Spracherkennungssysteme in Anwendung auf die Dateneingabe und den allgemeinen Computergebrauch und insbesondere auf ein System und ein Verfahren zum Erzeugen von Sprachsyntaxen für mehrfache Spracheingabekontexte, um die am wenigstens restriktive Syntax wie möglich automatisch zu liefern, während dennoch eine eindeutige Syntax-Identifikation für jede definierte Eingabe in jedem definierten Kontext geliefert wird.
- Viele Datenbankprogramme umfassen Benutzerschnittstellen-Software und Programmierwerkzeuge zum Definieren von Dateneingabeformularen und zum Verknüpfen von Feldern in diesen Dateneingabeformularen mit Feldern in Datenbanktabellen. Eine verwandte Anmeldung, System und Verfahren zum Erzeugen von Datenbankeingabeformularen, US-Seriennummer 08/328362, am 25. Oktober 1994 eingereicht, lehrt ein System und ein Verfahren zum Umwandeln eines existierenden, nicht-computerisierten (d. h. Papier-) Dateneingabeformular in ein computergestütztes Dateneingabeformular, das Spracherkennung für die verbale Dateneingabe verwendet.
- Die WO94/16435 offenbart ein Spracherkennungssystem, das dynamische Kategorien für Sprachregeln hält.
- Die vorliegende Erfindung stellt ein Werkzeug zur automatischen Erzeugung des Spracheingabeteils eines Anwendungsprogramms ohne die Anforderung, daß der Anwendungsentwickler irgendetwas über Spracherkennungssysteme weiß, bereit. Der Anwendungsentwickler liefert nur einen Satz von "Menüdateien", die die längste Wortsequenz zum Identifizieren jeder vordefinierten Eingabe in das Programm auflisten, und die vorliegende Erfindung erzeugt dann alle Syntax- und Wörterbuchdateien, die dafür benötigt werden, daß das Anwendungsprogramm des Entwicklers mit einem Syntax-basierten Spracherkennungssystem verwendet werden kann.
- Phonem-basierte Spracherkennungssysteme (auch erweiterbare Vokabular-Spracherkennungssysteme genannt) werden als wünschenswert erachtet, da sie vom Sprecher unabhängig sind: Es besteht keine Notwendigkeit, das Spracherkennungssystem zu trainieren, damit dieses die Sprachmuster jedes Benutzers lernt. Syntax-basierte Spracherkennungssysteme sind Spracherkennungssysteme, die einen Satz alternativer Verbaleingaben für jeden vordefinierten Mehrfach-Worteingabewert definieren. Der Satz von alternativen Verbaleingaben, die als einem bestimmten Mehrfach-Worteingabewert entsprechend akzeptiert werden, ist durch eine "Syntaxregel", manchmal Syntaxanweisung genannt, definiert. Syntaxbasierte Spracherkennungssysteme sind üblicherweise ferner Phonem-basierte Spracherkennungssysteme, obwohl es möglich wäre, ein Syntax-basiertes Spracherkennungssystem zu haben, das nicht Phonem-basiert ist. Die bevorzugte Ausführungsform der vorliegenden Erfindung verwendet Phonem-basierte Worterkennung und Syntax-basierte Wortsequenzerkennung.
- In einer typischen Anwendung eines Spracherkennungssystems wird entweder ein Spracheingabekontext vorliegen für ein gesamtes zugeordnetes Anwendungs programm, oder es werden mehrere Kontexte vorliegen, wie etwa einen für jedes Pull-Down-Menü des Anwendungsprogramms und einen für jede spezielle Dialogbox, die durch das Anwendungsprogramm verwendet wird. Alternativ kann in einem Dateneingabekontext jeder definierte Bereich eines Dateneingabeformulars als ein gesonderter Kontext definiert sein. Jeder Kontext, sei es im Anwendungsprogramm oder im Dateneingabeformular, wird typischerweise sowohl einen Satz von globalen Kommandos (wie etwa "save file" (sichere Datei), "help" (Hilfe) oder "exit program" (verlasse Programm)) als auch einen Satz von Navigationskommandos (wie etwa "tools menue" (Werkzeugmenü)) zum Schalten zu einem anderen Kontext aufweisen.
- innerhalb jedes gegebenen Kontexts ist es wünschenswert, daß das Spracherkennungssystem so flexibel wie möglich ist hinsichtlich dem Setzen von Wörtern, die der Benutzer sprechen kann, um jeden vordefinierten Eingabewert zu identifizieren, während dennoch dieser vordefinierte Eingabewert eindeutig identifiziert wird.
- In der Vergangenheit wurde dies erreicht durch eine Person, typischerweise einen Computerprogrammierer, der für jeden vordefinierten Eingabewert eine Syntaxanweisung erzeugte, wobei die Syntaxanweisung alle Wortsequenzen definiert, die dahingehend akzeptiert werden, daß sie den vordefinierten Eingabewert identifizieren. Beispielsweise könnte eine Syntaxanweisung für den Eingabewert "move to back" (bewege dich zurück) die Form aufweisen:
- TAG23 (KENNUNG23) -> move back move to back
- oder
- TAG23 (KENNUNG23) -> move (to) back
- wobei das Symbol > ' " der logische ODER-Operator ist und Klammern angeben, daß das Wort "to" (zu) optional ist. Im Kontext dieses vordefinierten Eingabewerts könnte das Wort "back" (zurück) ausreichend sein, um diesen zu identifizieren, obwohl der Autor der obigen Anweisung möglicherweise nicht daran gedacht hat. Mit anderen Worten sollte die Syntax-Anweisung wahrscheinlich lauten:
- TAG23 (KENNUNG23) -> (move) (to) back
- was anzeigt, daß das Wort "move" (bewege) und das Wort "to" (zu) beide optional sind.
- Wenn ein vordefinierter Eingabewert mehr als die drei Wörter des obigen Beispiels aufweist, wird die Definition der optimalen Syntax für den Eingabewert beträchtlich komplexer. Beispielsweise existieren für einen vordefinierten Eingabewert, der sieben Wörter aufweist, 127 potentielle Wortsequenzen, die die gleiche Wortreihenfolge wie die Originalsequenz beibehalten und die möglicherweise akzeptabel und eindeutig diesen Eingabewert identifizieren könnten.
- Natürlich hängen die Sequenzen von Wörtern, die einen Eingabewert eindeutig identifizieren, von den anderen vordefinierten Eingabewerten innerhalb des gleichen definierten Kontextes ab. Falls der gleiche Kontext, der den Eingabewert "move to back" enthielt, den Eingabewert "back one step" (einen Schritt zurück) enthielte, dann könnte das Wort "back" somit nicht verwendet werden, um beide dieser Eingabewerte eindeutig zu identifizieren. In Kontexten mit sogar zehn oder so vordefinierten Eingabewerten kann die Überprüfung auf alle mögliche Konflikte zwischen Wortsequenzen schwierig richtig auszuführen zu sein. In Kontexten mit mehreren Dutzend oder mehr Eingabewerten ist diese Aufgabe für einen Menschen extrem schwierig manuell durchzuführen, ohne auf die Aufgabe übermäßig viel Zeit zu verwenden. Ein Beispiel, wo derart lange Kontexte auftreten können, sind Anwendungen, in denen der Anwendungsgestalter sich entschieden hat, so viele Kommandos wie möglich zur Verfügung zu stellen, während die Anforderungen an die verbalen Navigationskommandos minimiert werden.
- Es ist für viele Dateneingabeformulare und für viele Anwendungsprogramme üblich, Anwendungen, Zahlen, Ordinalzahlen, Akronyme und Initialismen zu verwenden, um vordefinierte Eingabewerte und Kommandos zu identifizieren. Die entsprechenden Syntaxanweisungen für ein Spracherkennungssystem müssen äquivalente Wortsequenzen enthalten, die Standardverbalisierungen derartiger Abkürzungen, Zahlen, Ordinalzahlen, Akronyme und Initialismen entsprechen. Der Unterschied zwischen einem Akronym und einem Initialismus ist wie folgt. Ein Akronym ist aus aussprechbaren Silben gebildet, selbst wenn er ein "erfundenes Wort" repräsentiert, während ein Initialismus nur als eine Folge von Buchstaben und Zahlen aussprechbar ist. Somit sind "IBM" und "YMCA" Initialismen, während "NASA" und "UNICEF" Akronyme sind. Einige Wörter, wie etwa "MSDOS" und "PCNET" sind Mischungen von Akronym- und Initialismus-Bestandteilen.
- Damit ein Spracherkennungssystem mit derartigen Dateneingabeformularen und Anwendungsprogrammen arbeitet, müssen die Syntaxanweisungen, die den Bereich von Wortsequenzen für jeden vordefinierten Eingabewert definieren, äquivalente verbale Wortsequenzen enthalten. Dies bedeutet für Initialismen, daß der Benutzer dieselbe oder im wesentlichen dieselbe Folge von Buchstaben sprechen wird müssen, wie im Initialismus gefunden wird. Bei einem Akronym wird der Benutzer die äquivalente Verbalisierung des Akronyms sprechen müssen und die entsprechende Syntaxanweisung wird somit die äquivalente Verbalisierung genau wiederspiegeln müssen. Bei einer Abkürzung wird die entsprechende Syntaxanweisung das entsprechende vollständige Wort enthalten müssen. Bei Zahlen und Ordinalzahlen wird die Syntaxanweisung die äquivalenten Volltextwörter enthalten müssen.
- Es ist deshalb ein Ziel der vorliegenden Erfindung, ein Spracherkennungssystem bereitzustellen, in dem Syntaxanweisungen für alle vordefinierten Eingabewerte für alle Kontexte automatisch erzeugt werden.
- Ein anderes Ziel der vorliegenden Erfindung ist, daß die automatisch erzeugte Syntaxanweisung maximale Flexibilität liefert hinsichtlich der Wortsequenzen, die als Identifizierer für jeden vordefinierten Eingabewert akzeptiert werden, während dennoch für jeden vordefinierten Eingabewert in jedem definierten Kontext eine eindeutige Syntaxidentifikation geliefert wird.
- Die Erfindung ist so wie in den Ansprüchen 1 und 6 dargelegt. In der Übersicht: Die vorliegende Erfindung ist ein Syntaxregel-Autorensystem, das automatisch Syntaxregeln für vordefinierte Eingaben eines Anwendungsprogramms erzeugt, wodurch ermöglicht wird, daß das Anwendungsprogramm mit einem syntaxbasierten Spracherkennungssystem zu verwenden ist.
- Das Syntaxregel-Autorensystem enthält einen Speicher zum Speichern eines Anwendungsprogramms, das einen zugeordneten Satz von benutzerwählbaren, vordefinierten Eingaben aufweist. Das System speichert für jede vordefinierte Eingabe eine zugeordnete längste Wortsequenz zum eindeutigen Identifizieren dieser vordefinierten Eingabe in einer ersten Datenstruktur. Die Syntaxregel- Erzeugungsprozedur beginnt damit, für jede vordefinierte Eingabe einen Satz potentiell identifizierender Wortsequenzen zu erzeugen. Jede erzeugte potentiell identifizierende Wortsequenz enthält eine Teilmenge der Wörter in der zugeordneten längsten Wortsequenz. Die potentiell identifizierenden Wortsequenzen für alle vordefinierten Eingaben werden in einer zweiten Datenstruktur gespeichert.
- Eine Redundante-Wortsequenz-Beseitigungsprozedur identifiziert redundante Sätze von sich entsprechenden Wortsequenzen in der zweiten Datenstruktur, wobei jeder redundante Satz von sich entsprechenden Wortsequenzen potentiell identifizierende Wortsequenzen für wenigstens zwei verschiedene vordefinierte Eingaben enthält, deren Wortsequenzen vordefinierte Entsprechungskriterien erfüllen. Eine Syntaxerzeugungsprozedur erzeugt dann Syntaxregeln, die eine bestimmte Syntaxregel für jede vordefinierte Eingabe enthalten. Jede erzeugte Syntaxregel repräsentiert jene der potentiell identifizierenden Wortsequenzen für eine bestimmte vordefinierte Eingabe, die in keiner der identifizierten redundanten Sätze enthalten sind. Die erzeugten Syntaxregeln sind für die Verwendung in einem syntaxbasierten Spracherkennungssystem geeignet.
- Zusätzlich Aufgaben und Merkmale der Erfindung werden aus der folgenden detaillierten Beschreibung und den anhängenden Ansprüchen in Zusammenhang mit den Zeichnungen leichter ersichtlich, in denen:
- Fig. 1 ein Blockdiagramm eines Computersystems zum Wandeln papierbasierter Dateneingabeformulare in computerbasierte Dateneingabeformulare und dann zum Verwenden der computerbasierten Dateneingabeformulare zum Sammeln und Speichern von Daten ist, wobei eine Dateneingabe unter Verwendung einer Vielfalt von Eingabevorrichtungen, einschließlich Spracheingabevorrichtungen, unterstützt wird.
- Fig. 2 ein Beispiel eines papierbasierten Dateneingabeformulars darstellt.
- Fig. 3 ein Endbenutzer-Untersystem darstellt, das Spracherkennung in Übereinstimmung mit der vorliegenden Erfindung verwendet.
- Fig. 4A und 4B Pull-Down-Menüs für ein Anwendungsprogramm darstellen, die typische Kontexte veranschaulichen, in denen die Spracherkennungssyntaxerzeugung der vorliegenden Erfindung verwendet werden kann.
- Fig. 5A und 5B Datenstrukturen darstellen, die durch den Syntaxgenerator in der bevorzugten Ausführungsform der vorliegenden Erfindung verwendet werden.
- Fig. 6 ein Flußdiagramm der Prozedur zum Wandeln eines Satzes von "Menü- Dateien" in einen Satz von Syntax-Dateien in der bevorzugten Ausführungsform der vorliegenden Erfindung ist.
- Fig. 7 ein detailliertes Flußdiagramm der Prozedur zum Verarbeiten der vordefinierten Eingabewerte für einen einzelnen definierten Kontext in der bevorzugten Ausführungsform der Erfindung ist.
- Es wird auf Fig. 1 Bezug genommen. Ein die vorliegende Erfindung einschließendes Computersystem 100 enthält eine zentrale Prozessoreinheit 102, ein primäres und ein sekundäres Computerspeicher-Untersystem 104, eine Benutzerschnittstelle 106 und einen Dokumentenabtaster 108. Die Benutzerschnittstelle 106 umfaßt typischerweise eine Anzeige 110, ein Mikrofon 112, einen Lautsprecher 114 und eine Zeigevorrichtung 116, wie etwa eine Maus oder ein Trackball. Bei der bevorzugten Ausführungsform umfaßt die Benutzerschnittstelle 106 ferner eine Tastatur 118 zum Eingeben von Text sowie einen Drucker 119. Der Abtaster 108 wird dazu benutzt, papierbasierte Eingabeformulare 120 einzulesen.
- Der Computerspeicher 104 speichert eine Anzahl von verschiedenen Programmen, die hiernach manchmal Prozeduren genannt werden, sowie Datenstrukturen. Immer dann, wenn ein Dateneingabeformular auf Papierbasis durch den Abtaster 108 eingelesen wird, wird die resultierende Bilddatei 132 im Computerspeicher 104 gespeichert. Es wird ein Satz von Prozeduren, die gemeinsam das "Formularwerkzeug" genannt werden, dazu verwendet, ein computergestütztes Dateneingabeformular zu erzeugen, das auf dem eingelesenen Dateneingabeformular auf Papierbasis basiert.
- Genauer: Das Formularwerkzeug 134 speichert Daten in einer Formulardefinitionsdatenstruktur 136, die alle Objekte und Objekteigenschaften repräsentiert, die erforderlich sind zum repräsentieren eines computergestützten Dateneingabeformulars, und diese Datenstruktur 136 wird als eine "Formulardefinitionsdatei" im Computerspeicher 104 gespeichert. Die Formulardefinitionsdatenstruktur 136 in der Formulardefinitionsdatei wird dann durch einen "Compiler" in ein "kompiliertes Formular" 140 gewandelt zur Verwendung durch einen Satz von Datensammelprozeduren, die gemeinsam das "Zeichenwerkzeug" 150 genannt werden. Die Formulardefinitionsdatei ist bevorzugt eine Textdatei, die unter Verwendung üblicher Texteditorprogramme editierbar ist, während das kompilierte Formular 140 eine binäre Datei ist, die unter Verwendung üblicher Texteditorprogramme nicht editierbar ist.
- Das Formularwerkzeug 134 enthält ferner Prozeduren zum Weitergeben einer Liste aller Sprachkommandos, die für ein Formular definiert sind, zu einer Prozedur, die hiernach das Sprachwerkzeug 170 genannt wird. Das Sprachwerkzeug 170 erzeugt einen Satz von Sprachsyntaxdateien 158 und eine Sprachwörterbuchdatei 159 für jedes Dateneingabeformular. Die Sprachwörterbuchdatei 159 für ein bestimmtes Dateneingabeformular speichert Phonemketten, die die Aussprache von den verschiedenen Formularabschnitten, Textboxen und Knöpfen wie auch Formularnavigationskommandos zur Bewegung zwischen Abschnitten des Dateneingabeformulars und anderen, allen. Pateneingabeformularen gemeinsamen globalen Kommandos zugeordneten Wörtern beschreiben. In dem möglichen Ausmaß werden die Phonemketten in der Sprachwörterbuchdatei 159 durch das Sprachwerkzeug 170 aus einem Standard-Wort-zu-Phonem-Transkriptionswörterbuch 152 von mehreren Zehntausenden von üblicherweise gesprochenen Wörtern erhalten. Für nicht in dem Standard-Sprachwörterbuch 152 enthaltene Wörter, die aber während des Formulardefinitionsprozesses spezifiziert werden, werden in das Sprachwörterbuch 158 aufzunehmende Phonemketten unter Verwendung eines Satzes von Ausspracheregeln erzeugt, die in einem Wort-zu-Phonem-Übersetzer 153 enthalten sind. Für jedes Wort in den definierten Menüpunkten speichert die Sprachwörterbuchdatei 159 mehrere alternative Phonemketten, die alternative Aussprachen dieses Worts repräsentieren.
- Das Sprachwerkzeug 170 erzeugt für jeden einzelnen Kontext in einem Dateneingabeformular eine gesonderte Sprachsyntaxdatei 158. Jede Sprachsyntaxdatei 158 repräsentiert alle die zulässigen gesprochenen Kommandos, die ein Benutzer an einem bestimmten Punkt im Dateneingabeprozeß spezifizieren kann. Spezieller: jede Sprachsyntaxdatei 158 enthält Referenzen zu allen Wörtern in der Sprachwörterbuchdatei 159, die Kandidaten für die Spracherkennung sind, und spezifiziert ferner alle verschiedenen Wörter und Wortreihenfolgen, die benutzt werden können, um verschiedene bestimmte Dateneingaben zu machen. Beispielsweise wird nach der Wahl eines bestimmten Formularabschnitts die entsprechende Sprachsyntaxdatei alle Syntaxketten für alle gesprochenen Kommandos enthalten, die aus dieser Position im Formular "zulässig" sind. An jedem Punkt im Prozeß der Eingabe von Daten in ein bestimmtes Dateneingabeformular werden durch einen Endbenutzer gesprochene Wörter unter Verwendung der Sprachwörterbuchdatei 159 für das gesamte Dateneingabeformular, der Sprachsyntaxdatei 158 für den momentan gewählten oder durch die zuvor eingegebenen Kommandos des Endbenutzers spezifizierten Kontext und eines für den Endbenutzer angemessenen Sprachmodells 172 (siehe Fig. 3) interpretiert.
- Es wird auf die Fig. 1 und 3 Bezug genommen. Nachdem ein computerisiertes Dateneingabeformular definiert und in kompilierter Form 140 gespeichert wurde, benutzen Endbenutzer das computerisierte Dateneingabeformular für die Dateneingabe. Die Zeichenwerkzeugprozeduren 150 oder die Prozeduren für ein beliebiges anderes Anwendungsprogramm, die Spracherkennung verwenden, steuern den Dateneingabeprozeß. Insbesondere wählen die Zeichenwerkzeugprozeduren 150 auf Grundlage des verwendeten Formulars und des Abschnitts, sofern vorhanden, den der Benutzer gewählt hat, eine der zuvor definierten Sprachsyntaxdateien, die den Satz von zulässig gesprochenen Worteingaben für diesen Kontext etabliert.
- Die gewählte Sprachsyntaxdatei leitet die Operation der Spracherkennungsprozeduren 156, bis eine andere Sprachsyntaxdatei für einen anderen Formularkontext gewählt wird. Jedesmal, daß der Benutzer in einen neuen Abschnitt eines Dateneingabeformulars eintritt, wird durch die Zeichenwerkzeugprozeduren 150 eine neue Sprachsyntaxdatei (ein neuer Sprachsyntaxkontext) geladen.
- Die Spracherkennungsprozeduren 156 verwenden die Sprachsyntaxdateien und die Sprachwörterbuchdatei 159, oben beschrieben, die eine Regelbasis für die Interpretation von durch einen Endbenutzer gesprochenen Wörtern (Spracheingaben) definieren. Die Spracherkennungsprozeduren verwenden ferner ein Sprachmodell 172 (von denen mehrere existieren können, typischerweise umfassend wenigstens ein Sprachmodell für weibliche Sprecher und eines für männliche Sprecher), welches Daten speichert, die die Beziehungen zwischen meßbarer akustischer Information (aus der Sprache) und Phonemen repräsentiert.
- Wenn die Spracherkennungsprozeduren 156 eine gesprochene Eingabe des Endbenutzers mit einem Eintrag in der momentan gewählten Sprachsyntaxdatei vergleichen, geben die Spracherkennungsprozeduren dem Zeichenwerkzeug 150 einen Wert zurück, der direkt einen entsprechenden Eingabewert oder ein Benutzerkommando identifiziert, das die Wahl eines Objekts im Datenformular anzeigen mag oder ein Formularnavigationskommando sein mag. Die Zeichenwerkzeugprozeduren 150 empfangen ferner Information über die durch den Endbenutzer gesprochenen speziellen Wörter; es wird aber in den meisten Kontexten diese Information nicht verwendet. Bei einer alternativen Ausführungsform der vorliegenden Erfindung verwenden die Zeichenwerkzeugprozeduren 150 die detaillierte Information über die gesprochenen Wörter des Endbenutzers derart, daß die diktierten Wortsequenzen in die Dateneingabefelder im Dateneingabeformular eingegeben werden.
- Es wird optional ein Satz von Spracherzeugungsprozeduren 160 dazu verwendet, die verbalen Kommandos des Endbenutzers verbal zu bestätigen. Die verbale Bestätigung hilft dem Endbenutzer, durch die Spracherkennungsprozeduren 156 gemachte Fehler zu finden und zu korrigieren.
- Das Zeichenwerkzeug 150 akzeptiert sowohl Tastatur- und/oder Zeigegeräteingaben von Endbenutzern als auch gesprochene Eingaben. Sobald ein Endbenutzer die Eingabe von Daten in ein Formular beendet hat, werden die eingegebenen Daten sowohl in einem Transaktionsprotokoll 162 als auch - als ein Satz von in speziellen Feldern einer Datenbank zu speichernden Daten 164 - in einem Datenbank-Management-System 166 gespeichert. Wie es Standard ist, sind in dem Datenbank-Management-System gespeicherte Daten durch einen Satz von Datenbank-Abfrage- und Reporterzeugungsprozeduren 168 zugänglich.
- Fig. 2 stellt ein Beispiel eines Dateneingabeformulars auf Papierbasis dar. Wie es für viele Dateneingabeformulare der Fall ist, ist das Formular in eine Anzahl von verschiedenen Abschnitten unterteilt, von denen einige das Ankreuzen verschiedener Kästen, die auf eine bestimmten Dateneingabesituation anwendbar sind, erfordert, von denen einige die Eingabe von Text und/oder Zahlen erfordern und von denen einige sowohl das Ankreuzen von Kästen als auch die Eingabe von Text und/oder Zahlen erfordern. Ferner enthalten die meisten, obwohl nicht notwendigerweise alle, Abschnitte eines Dateneingabeformulars einen Titel oder eine Bezeichnung, der/die dem Benutzer hilft, den Formularabschnitt zu identifizieren.
- Bei der bevorzugten Ausführungsform ist jeder Aspekt eines Dateneingabeformulars als ein "Objekt" definiert. Somit sind logische Abschnitte des Dateneingabeformulars jeweils Objekte, ist jeder Kontrollboxknopf und dessen zugeordneter Text oder Einfüllzeile ein Objekt, ist jede Textbox für die Eingabe von Daten ein Objekt und sind feste Textbezeichnungen für Formularabschnitte und Textboxen ebenfalls Objekte. Jedes Objekt weist eine spezifizierte physikalische Stellung oder Position (beispielsweise die Position ihrer oberen linken Ecke) und eine Ausdehnung (d. h. Höhe und Breite) innerhalb des Formulars auf. Jedes Objekt weist ferner einen Satz von spezifizierten Eigenschaften auf einschließlich (A) Verknüpfungen für die Verknüpfung des Objekts mit einem bestimmten Feld in einer Datenbank, und (B) Wortsequenzen, die Spracheingabedaten anzeigen, für die durch den Endbenutzer gesprochene Auswahl des Objekts.
- Für jedes Objekt in dem Datenformular spezifiziert das Formularwerkzeug für den Benutzer alle notwendigen Sprachkommandos und Schlüsselwörter in einem Objekt-"Eigenschaft"-Dialogfenster. Wie unten in näheren Einzelheiten beschrieben werden wird, erzeugen die Formularwerkzeug-134- und Sprachwerkzeug-170- Prozeduren (siehe Fig. 1) ein Sprachwörterbuch für das gesamte Formular und eine Sprachsyntaxdatei 158 für jeden Kontext (beispielsweise Abschnitt) des Datenformulars auf Grundlage des Textes der spezifizierten Kommandos und Schlüsselwörter.
- Es wird auf Fig. 3 Bezug genommen. Ein Endbenutzer-Untersystem 200 in der bevorzugten Ausführungsform umfaßt eine Sprachwörterbuchdatei 195, die Phonemketten speichert, die sowohl die Aussprache der den verschiedenen Formularabschnitten, Textkästen und Knöpfen zugeordneten Wörter als auch die Aussprache von in allen Dateneingabeformularen gemeinsamen Navigationskommandos verwendeten Wörtern beschreiben. Navigationskommandos umfassen Wörter wie etwa "cancel" (streichen), "close" (schließen), "remove" (entfernen) usw.
- In dem Ausmaß, wie es möglich ist, sind die Phonemketten in der Sprachwörterbuchdatei 195 aus einem Standard-Wörterbuch von mehreren Zehntausend von üblicherweise gesprochenen Wörtern gewählt. Für nicht im Standard-Wörterbuch enthaltene Wörter, die aber während des Formulardefinitionsprozesses spezifiziert werden, werden in die Sprachwörterbuchdatei 195 aufzunehmende Phonemketten unter Verwendung eines Satzes von Ausspracheregeln erzeugt.
- Um die Spracherkennung zu implementieren, ohne zu erfordern, daß der Endbenutzer etwas über Computertechnologie lernen muß, ermöglicht das Endbenutzer-Untersystem 200 Endbenutzern, so wenig oder so viel zu sagen, wie er/sie möchte, solange er/sie einen der in jedem Kontext zur Verfügung stehenden Positionen/Punkte eindeutig identifiziert. Falls beispielsweise die in einem Menü aufgelisteten Punkte "in the left eye" (im linken Auge), "in the right eye" (im rechten Auge) und "in both eyes" (in beiden Augen) lauten, erlaubt die Sprachsyntax für einen spezifizierten Menüpunkt dem Benutzer, den ersten Punkt dadurch zu wählen, daß er "left" (links), "left eye" (linkes Auge), "the left" (das linke) oder "in the left eye" sagt. Alle diese möglichen Syntaxen werden durch das Sprachwerkzeug 170 automatisch erzeugt und in der Sprachsyntaxdatei 158 gespeichert.
- Der gegenwärtige Kontext 202 des Dateneingabeprozesses definiert, welche Sprachsyntaxdatei 158 zum Dekodieren der nächsten Spracheingabe zu verwenden ist. Der Kontext 202 wird durch das Anwendungsprogramm (für das das Zeichenwerkzeug 150 nur ein Beispiel ist) während der Dateneingabe dynamisch aktualisiert. Jede Sprachsyntaxdatei 158 enthält Referenzen zu allen Wörtern und/oder Phrasen in der Sprachwörterbuchdatei 159, die Kandidaten für die Spracherkennung sind, wenn diese Sprachsyntaxdatei 158 für die Verwendung ausgewählt ist (d. h. wenn das Anwendungsprogramm 150 seinen Kontextwert auf denjenigen setzt, der der Sprachsyntaxdatei 158 zugeordnet ist). Die Verwendung einer gesonderten Sprachsyntax für jeden Dateneingabekontext hilft, die Anzahl von Wörtern in dem Sprachwörterbuch zu begrenzen, die mit Spracheingaben eines Endbenutzers verglichen werden müssen, und reduziert die Anzahl von getroffenen falschen Entsprechungsfeststellungen.
- Während des Dateneingabeprozesses wird die Anzeige permanent aktualisiert, sowohl um den Benutzer den Satz von zur Verfügung stehenden Wahlmöglichkeiten für die Benutzerauswahl über die gesprochene Eingabe oder auf andere Weise wissen zu lassen, als auch um die zuvor in den zuletzt durch den Endbenutzer gewählten Formularabschnitt eingegebenen Daten zu zeigen. Wenn der Endbenutzer spricht, reagieren die Spracherkennungsprozeduren 156 durch Senden einer Liste erkannter Wörter und einer "Analysekennung" an das Anwendungsprogramm.
- Die Analysekennung identifiziert den gesprochenen Menüpunkt oder das Formularobjekt, ohne unnötige Einzelheiten. Beispielsweise empfängt das Anwendungsprogramm die gleiche "left" (links)-Analysekennung ungeachtet dessen, ob der Endbenutzer "left" (links), "left eye" (linkes Auge), "the left" (das linke) oder "in the left eye" (im linken Auge) sagt. Die "left"-Analysekennung identifiziert einen Menüpunkt ohne zusätzliche Analyse durch das Anwendungsprogramm.
- Die Fig. 4A und 4B zeigen Pull-Down-Menüs 210, 212, die einem Zeichnungsprogramm zugeordnet sind. Jedes derartige Pull-Down-Menü kann, wenn die vorliegende Erfindung verwendet wird, als ein gesonderter Kontext definiert sein, wobei die Punkte in dem Haupt-Horizontalmenü 214 als Navigationskommandos verwendet werden, die für die Auswahl innerhalb aller Pull-Down- Menü-Kontexte zur Verfügung stehe.
- Es wird auf Fig. 5A Bezug genommen. Die Eingabe zum Sprachwerkzeug 170 ist ein Satz von Menüdateien 230, wobei jede Menüdatei alle vordefinierten Eingabewerte für einen Kontext repräsentiert, der dem Anwendungsprogramm zugeordnet ist (welches im in Fig. 3 gezeigten Beispiel das Zeichenwerkzeug 150 ist). Es ist somit für jeden eigenen Kontext des Anwendungsprogramms eine gesonderte Menüdatei 230 vorgesehen. Die zu verarbeitenden Menüdateien 230 sind durch eine Dateiliste 232 identifiziert.
- Jede Menüdatei 230 ist bei der bevorzugten Ausführungsform eine Textdatei, in der jede Zeile einen eigenen vordefinierten Eingabewert repräsentiert und eine Folge von Wörtern enthält, die den längsten verbalen Ausdruck repräsentieren, die diesem Eingabewert zugeordnet ist. Vordefinierte Eingabewerte werden der Zweckmäßigkeit wegen hier häufig Menüpunkte genannt, selbst wenn einige oder alle der Eingabewerte keine "Menüpunkte" nach dem Standardgebrauch dieses Begriffes sind. Eine Zeile in einer Menüdatei wird mit einer anfänglichen linken Klammer "(" markiert, wenn die das Sprachwerkzeug 170 benutzende Person bestimmt hat, daß die Auswahl des zugeordneten Menüpunkts durch Sprechen aller Wörter in dieser Zeile bewerkstelligt werden muß.
- Für jede Menüdatei 230 erzeugt das Sprachwerkzeug 170 eine Syntaxdatei 234 und eine Kennungsdatei 236. Die Syntaxdatei enthält eine Syntaxanweisung für jeden in der Menüdatei 230 aufgelisteten Eingabewert plus einer finalen Anweisung, die eine S-Regel genannt wird. Das Standardformat für eine Syntaxanweisung ist
- Kennungswert -> Wortsequenz1 Wortsequenz2 Wortsequenz3 ....,
- wobei Kennungswert eine "Kennung" ist, die zum Anwendungsprogramm (beispielsweise das Zeichenwerkzeug 150) zurückgegeben wird, wenn eine dieser Zeile entsprechende gesprochene Eingabe erkannt wird, und Wortsequenz1, Wortsequenz2, Wortsequenz3 sind alternative Wortsequenzen, die dem Eingabewert zugeordnet sind.
- Die S-Regel ist einfach eine Anweisung, die die "ODER"-Verknüpfung alle dieser Kennungswerte repräsentiert:
- S -> Kennung1 Kennung2 Kennung3 ...
- wobei S wahr ist, wenn die verbale Eingabe eines Benutzers einer beliebigen der Syntaxanweisungen in der Syntaxdatei entspricht. Die Kennungsdatei 236, die jeder Menüdatei 230 entspricht, ist einfach eine Liste der Kennungen für die Syntaxzeilen in der entsprechenden Syntaxdatei 234. Es gibt eine Kennung für jeden Menüpunkt, und die Kennungen liegen in der gleichen Reihenfolge wie die Menüpunkte vor. Dies macht es für das Anwendungsprogramm dann, wenn es einen Kennungswert vom Spracherkennungssystem erhält, leicht zu bestimmen, welcher Menüpunkt gesprochen wurde.
- Das Sprachwerkzeug 170 erzeugt ferner eine Sprachwörterbuchdatei 159, deren Inhalt einen Satz von Phonemsequenzen für jedes gesonderte Wort in allen Menüdateien 230 definiert.
- Für ein Anwendungsprogramm, das einen "Diktiermodus"-Kontext enthält, wird die Sprachwörterbuchdatei 159 Einträge für alle Wörter enthalten, die sowohl in dem Diktiermoduskontext als auch in allen anderen, dem Anwendungsprogramm zugeordneten Eingabekontexten zulässig sind. Bevorzugt wird das Spracherkennungssystem in einen syntaxregelfreien Modus versetzt, wenn das Anwendungsprogramm in einem Diktiermodus ist. Wenn der Verwendungsbereich für das Diktieren gut definiert ist, wie etwa für medizinische Patientengeschichten in einem Krankenhausaufnahmeformular, ist es für die Unterstützung dieses Kontextes häufig möglich, weniger als 1000 Wörter in der Wörterbuchdatei 159 aufzunehmen.
- Es wird auf Fig. 5B Bezug genommen. Die zum Erzeugen einer Syntaxdatei 234 aus einer Menüdatei 230 verwendeten wichtigsten Datenstrukturen sind eine Line()-Datenstruktur 240 (Zeile()-Datenstruktur 240), die dazu verwendet wird, eine Kopie einer Menüdatei im Speicher zu speichern, und eine WordSeq()-Datenstruktur 242 (Wortsequenz()-Datenstruktur 242), die dazu verwendet wird, durch den Syntaxanweisung-Erzeugungsprozeß erzeugte Wortsequenzen zu speichern. Jede Reihe der WordSeq()-Datenstruktur 242 entspricht einem Menüpunkt in der Menüdatei 230, die verarbeitet wird. Ein "numlines"-Register 244 ("Anzahl Zeilen"-Register 244) speichert einen Wert, der die Anzahl von Menüpunkten in der Menüdatei 230 anzeigt, die verarbeitet wird. Das Word()-Array 246 (Wort()-Feld 246) wird dazu verwendet, die Wörter aus einem Menüpunkt zu speichern, während dieser verarbeitet wird, und das Cptr()-Array 247 (Cptr()-Feld 247) wird dazu verwendet, Zeiger zu "Inhalts"- Wörtern im Word()-Array zu speichern. Schließlich ist ein binärer Zähler 248 definiert, wobei Bit 1 als dessen signifikantestes Bit, Bit 2 als dessen nächstsignifikantestes Bit usw. definiert ist.
- Es wird auf Fig. 5B, 6 und 7 Bezug genommen. Die Sprachwerkzeugprozedur 170 wird zuerst auf allgemeine Weise mit Bezugnahme auf Fig. 6 beschrieben, und es werden dann gewisse Aspekte der Prozedur in näheren Einzelheiten mit Bezugnahme auf Fig. 7 beschrieben.
- Die Sprachwerkzeugprozedur 170 fängt an durch Wählen einer Menüdatei 230 aus der Dateiliste 232 (250). Es werden dann die Menüpunkte in der gewählten Menüdatei in die Line()-Datenstruktur kopiert, wobei jeder Menüpunkt in eine verschiedene Position von Line() kopiert wird. Dieser Prozeß bestimmt auch die Anzahl von Menüpunkten in der Menüdatei, die dann in dem numlines-Register 244 gespeichert wird. Als nächstes wird für jeden Menüpunkt ein Kennungswert erzeugt und in einer Kennungsdatei 236 gespeichert. Dann wird der Text des Menüpunkts revidiert» falls notwendig, durch Expandieren gewisser Abkür zungen, Expandieren von Zahlen und Ordinalzahlen in deren äquivalenten Vollworttext, Konvertieren von Initialismen zu Folgen von Buchstaben und Löschen der meisten Interpunktion. Schließlich wird der resultierende revidierte Text für jeden Menüpunkt dazu verwendet, alle möglichen Sequenzen von Eingabewörtern zu erzeugen, die potentiell dazu verwendet werden könnten, den Menüpunkt zu wählen (252). Schritt 252 ist unten mit Bezugnahme auf die Fig. 7A und 7B in näheren Einzelheiten beschrieben.
- "Inhaltswörter" sind für die Zwecke dieses Dokuments dahingehend definiert, daß sie andere Wörter als Präpositionen, Artikel und Konjunktionen meinen. Die Präpositionen, Artikel und Konjunktionen, die in der bevorzugten Ausführungsform als "Nicht-Inhaltswörter" behandelt werden, sind wie folgt:
- Präpositionen: at (an, bei, zu, auf, in), between (zwischen, unter, dazwischen), by (bei, an, neben, durch, über), for (für), from (von, aus), in (in, an, auf), into (in, in... hinein, zu), of (von, bei, aus), on (auf, an, in), through (durch, durch... hindurch, während, mittels), to (zu, in, auf, an, bis), with (mit, nebst, bei)
- Artikel: a (ein, eine), an (ein, eine), the (der, die)
- Konjunktionen: and (und), but (aber, jedoch, sondern, außer, immerhin, wenigstens), or (oder), nor (noch, und nicht).
- Nach dem alle Menüpunkte in der gewählten Menüdatei verarbeitet wurden und die zugeordneten Wortsequenzen erzeugt wurden, besteht der nächste Schritt darin, alle redundanten Wortsequenzen zu streichen. Es werden zwei Wortsequenzen als redundant betrachtet, wenn die beiden Wortsequenzen vordefinierte Übereinstimmungskriterien erfüllen. In der bevorzugten Ausführungsform der Erfindung sind die vordefinierten Übereinstimmungskriterien: (A) daß beide Wortsequenzen die identischen Inhaltsworte in der identischen Reihenfolge aufweisen und (B) daß Nicht-Inhaltswörter für die Zwecke der Bestimmung, welche Wortsequenzen redundant sind, ignoriert werden. Wenn somit zwei Wortsequenzen identische Inhaltswörter in der identischen Reihenfolge, aber verschiedene Nicht-Inhaltswörter aufweisen können, identifiziert die bevorzugte Ausführungsform der vorliegenden Erfindung diese beiden Wortsequenzen dahingehend, daß sie redundant sind. In anderen Ausführungsformen der vorliegenden Erfindung könnten andere vordefinierte Übereinstimmungskriterien verwendet werden.
- Wann immer dieselbe Folge von Inhaltswörtern in den für mehr als einen Menüpunkt erzeugten Wortsequenzen enthalten ist, wird diese Sequenz von Inhaltswörtern für alle Menüpunkte gelöscht, da sie nicht dazu verwendet werden kann, irgend einen Menüpunkt eindeutig zu identifizieren. Nachdem die redundanten Wortsequenzen gestrichen wurden, werden die verbleibenden Wortsequenzen für jeden Menüpunkt wieder vereinigt, falls möglich, um die Anzahl von Syntaxtermen zu reduzieren, und die resultierenden Wortsequenzen werden dazu verwendet, die Syntaxanweisung für diesen Menüpunkt zu bilden. Nachdem alle Syntaxanweisungen für einen Menüpunkt erzeugt sind, wird für die Syntaxdatei eine S-Regel erzeugt (254). Schritt 254 wird unten mit Bezugnahme auf die Fig. 7C und 7D in näheren Einzelheiten beschrieben.
- Nachdem Syntax- und Kennungsdateien für alle Menüdateien erzeugt wurden (252, 254), werden die "Quellen-Syntaxdateien" kompiliert unter Verwendung eines kommerziell erhältlichen Sprachsyntaxcompilers, wie etwa dem in der Phonetic Engine º (eine Marke von Speech Systems Incorporated) 500 Speech Recognition System von Speech Systems Incorporated bereitgestellten (256). Die resultierenden Dateien werden kompilierte Syntaxdateien genannt.
- Der Kompilierungsprozeß (256) produziert als ein Nebenprodukt eine Liste aller in den Syntaxdateien 232 gefundenen Wörter. In Schritt 258 wird aus dieser Wortliste eine Sprachwörterbuchdatei 159 erzeugt.
- Die Sprachwörterbuchdatei 159 wird wie folgt erzeugt. Es wird zu einem Zeitpunkt ein Wort aus der Wortliste gewählt, und es wird ein Standard-Wort-zu- Phonem-Transkriptionswörterbuch 152 (siehe Fig. 1) durchsucht, um zu bestimmen, ob das gewählte Wort in dem Wörterbuch enthalten ist (260). Falls das gewählte Wort in dem Standard-Wörterbuch enthalten ist (262), wird der Wörterbucheintrag für das gewählte Wort in eine anwendungsspezifische Sprachwörterbuchdatei 159 kopiert (264).
- Falls das gewählte Wort in dem Standard-Wörterbuch nicht gefunden wird (262), werden Transkriptionen des gewählten Worts unter Verwendung eines kommerziell erhältlichen Wort-zu-Phonem-Wandlers 153 erzeugt (siehe Fig. 1), und die resultierenden Transkriptionen werden in die anwendungsspezifische Sprachwörterbuchdatei 159 kopiert (266). Dieser Prozeß wird für alle Wörter in der Wortliste wiederholt, und die resultierende Sprachwörterbuchdatei 159 wird dann für den Gebrauch durch Endbenutzer gespeichert.
- Es wird auf Fig. 7A Bezug genommen. Zum Erzeugen einer Quellen-Syntaxdatei wird eine Menüdatei 230 wie folgt verarbeitet. Die Menüdatei wird gelesen (300) und es wird jeder Menüpunkt in der Menüdatei in einem gesonderten Datensatz des Line()-Arrays gespeichert (302). Ein Zeiger i wird auf null initialisiert (302) und dann am Anfang einer Instruktionsschleife inkrementiert (304). Jeder Durchgang durch diese Schleife verarbeitet einen Menüpunkt in der Menüdatei.
- Die Kennung für jeden Menüpunkt ist als das linkste Wort in der Line(i)-Datenstruktur ausschließlich Präpositionen, Artikeln und Konjunktionen definiert. Falls die Kennung Punkte enthält, werden diese gelöscht (306). Falls dieselbe Kennung zuvor für einen anderen Menüpunkt in der gleichen Menüdatei verwendet wurde (308), wird die Zeilennummer des momentanen Menüpunkts an die zuvor konstruierte Kennung angehängt, um einen eindeutigen Kennungswert zu erzeugen (310).
- Als nächstes wird die gesamte Interpunktion aus dem momentanen Menüpunkt gelöscht ausgenommen Punkte in Wörtern, die aus großen, durch Punkte getrennten Buchstaben gebildet sind, und einer linken Klammer am Anfang des Menüpunkts (312). Eine linke Klammer am Anfang des Menüpunkts wird dazu verwendet um anzuzeigen, daß die einzige akzeptable verbale Eingabe zum Wählen des Menüpunkts eine ist, die alle Wörter des Menüpunkts der Reihe nach angibt.
- In Schritt 314 werden gewisse Abkürzungen zu ihrem Volltext-Äquivalent expandiert, wobei das Hauptbeispiel in der bevorzugten Ausführungsform jenes ist, das das "times" (mal)-Symbol zum Wort "times" (mal) gefolgt von einem Leerzeichen gewandelt wird. Das Symbol "x3" wird zu "times 3" (mal 3) gewandelt.
- In Schritt 316 werden Zahlen und Ordinalzahlen bis zu einem vordefinierten Maximalwert (beispielsweise 9999) zu ihren Volltextäquivalenten umgewandelt. In Schritt 318 werden Initialismen, falls im Menüpunkt als große Buchstaben getrennt durch Punkte ausgedrückt, in eine Liste von Buchstaben umgewandelt, die durch Leerzeichen getrennt sind. Das Wort "I. B. M." wird zu "I B M" umgewandelt. Eine spezielle Ausnahme ist, daß immer dann, wenn ein Buchstabe in einem Initialismus der gleiche wie der vorangehende ist, dieser optional gemacht wird. Der Initialismus "H. E. E. N. T" wird somit zu "H E (E) N T" gewandelt. Der Grund dafür, das zweite Auftreten eines doppelten Buchstabens optional zu machen ist, daß der zweite Buchstabe häufig übersprungen oder zusammen mit dem ersten undeutlich ausgesprochen wird, wenn der Initialismus gesprochen wird.
- In Schritt 320 wird der Menüpunkt getestet, um zu sehen, ob er mit einer linken Klammer anfängt. Falls dies der Fall ist, wird für den Menüpunkt eine Syntaxanweisung erzeugt, die eine einzige Wortsequenz aufweist (322), die der Reihe nach alle Wörter des Menüpunkts aufweist, und die anfängliche linke Klammer wird durch einen Stern ersetzt. Andernfalls wird die in Fig. 7B gezeigte Wortsequenz-Erzeugungsprozedur ausgeführt (324), um für den momentanen Menüpunkt einen Satz von identifizierenden Wortsequenzen zu erzeugen.
- Die in Fig. 7B gezeigte Wortsequenz-Erzeugungsprozedur 324 verarbeitet einen einzigen Menüpunkt. Die Grundmethodologie der Worterzeugungsprozedur ist wie folgt. Es wird in binärer Zähler definiert mit so vielen Bits, wie der momentane Menüpunkt Inhaltswörter aufweist. Für jeden Nicht-Null-Wert des binären Zählers wird eine eigene Wortsequenz erzeugt. Genauer: die Bitwerte des binären Zählers bestimmen, welche Inhaltswörter in dem Menüpunkt in der Wortsequenz aufgenommen werden, derart, daß dann, wenn das erste Bit des binären Zählers gleich eins ist, das erste Inhaltswort des momentanen Menüpunkts in die Wortsequenz aufgenommen wird, und daß dann, wenn das erste Bit gleich null ist, das erste Inhaltswort nicht in die Wortsequenz aufgenommen wird; daß dann, wenn das zweite Bit des binären Zählers gleich eins ist, das zweite Inhaltswort des momentanen Menüpunkts in die Wortsequenz aufgenommen wird, und daß dann, wenn das zweite Bit gleich null ist, das zweite Inhaltswort nicht in die Wortsequenz aufgenommen wird; usw. Wenn der Menüpunkt, der verarbeitet wird, vier Inhaltswörter aufweist und der binäre Zähler einen Wert von 0101 aufweist, werden dann somit das zweite und das vierte Inhaltswort des Menüpunkts in die entsprechende (fünfte) Wortsequenz aufgenommen, die für diesen Menüpunkt erzeugt wird.
- Es wird auf Fig. 7B Bezug genommen. Die Wörter des Menüpunkts, der verarbeitet wird (hier der momentane Menüpunkt genannt), werden einzeln in einem Array (Feld) gespeichert, das Word()246 (Wort() 246) genannt wird, es wird eine Variable MAX gleich der Anzahl von Inhaltswörtern im momentanen Menüpunkt gesetzt, und es werden Variablen K, p und CW auf null initialisiert (340).
- Die Bedeutung dieser Variablen und einiger anderer in dieser Prozedur verwendeter ist wie folgt:
- p: ein Index in das Word()-Array.
- CW: die Anzahl von Inhaltswörtern in dem Menüpunkt; CW wird ferner als ein Zähler und Index in das Cptr-Array 247 verwendet, während die Anzahl und Position der Inhaltswörter im Word()-Array bestimmt werden.
- MAX: wird anfänglich zum Speicher der Zahl von Wörtern im Word()-Array verwendet; wird dann zum Speichern einer Anzahl gleich 2CW - 1 verwendet, die die Anzahl von für den momentanen Menüpunkt zu erzeugenden, potentiell identifizierenden Wortsequenzen ist.
- BC: ein binärer Zähler 248, dessen Bits dazu verwendet werden zu bestimmen, welche Inhaltswörter in jede erzeugte Wortsequenz aufzunehmen sind.
- B: ein Index für die Bits des BC-Binärzählers.
- K: ein Index in das WordSeq()-Array, der den zu erzeugenden Eintrag in die momentane Reihe von WordSeq() identifiziert.
- Um dabei zu helfen, der Funktionsweise dieser Prozedur zu folgen, werden wir zeigen, wie der Menüpunkt
- P1 C1 C2 P2 C3 C4 P3
- durch die Prozedur der Fig. 7B verarbeitet wird, wobei P1, P2 und P3 Nicht- Inhaltswörter und C1, C2, C3 und C4 Inhaltswörter sind. Beachte, daß die Begriffe "Inhaltswort" und "Nicht-Inhaltswort" oben definiert sind.
- Nach der Initialisierung in Schritt 340, sichtet die Wortsequenz-Erzeugungsprozedur 324, Schritte 342 bis 348, die Wörter in dem Word()-Array, um zu bestimmen, wie viele Inhaltswörter in dem Word()-Array gespeichert sind und wo sie angeordnet sind. Genauer: die Prozedur wählt das erste oder nächste Wort in dem Word()-Array (342) und testet dieses Wort, um zu sehen, ob es ein Inhaltswort ist (344). Falls dies der Fall ist, wird der Inhaltswortzähler CW inkrementiert und es wird ein Zeiger zum Inhaltswort in Cptr(CW) gespeichert (346). Falls dies nicht der Fall ist, wird das nächste Wort im Word()-Array gewählt (342). Die Schritte 342 bis 346 werden wiederholt, bis das letzte Wort in dem Word()-Array verarbeitet wurde (348).
- Sobald alle Wörter in dem Word()-Array verarbeitet wurden, ist CW gleich der Anzahl von Inhaltswörtern im Word()-Array und Cptr(1) bis Cptr(CW) zeigen zu den Inhaltswörtern im Word()-Array.
- Als nächstes wird ein binärer Zähler BC mit CW Bits definiert und auf einen Wert von null initialisiert. Zusätzlich wird die Variable MAX gleich 2CW - 1 gesetzt, welches die Anzahl von zu erzeugenden Wortsequenzen ist (349).
- Jede neue Wortsequenz wird initialisiert durch Inkrementieren des binären Zählers, Inkrementieren des WordSeq-Index K, Speichern eines anfänglichen Leerraums in der momentanen Wortsequenz, WordSeq(i,K) und Initialisieren des Bitindex b auf 1 (350). Falls der dem Bitindex b entsprechende Bitwert des binären Zählers gleich 1 ist (352), wird das entsprechende Inhaltswort, Word(Cptr(b)) und dessen zugeordneten optionalen Wörter an dem Ende der erzeugten Wortsequenz angehängt (354).
- Bei der bevorzugten Ausführungsform sind die jedem Inhaltswort zugeordneten Nicht-Inhaltswörter alle die Nicht-Inhaltswörter (falls vorhanden), die dem Inhaltswort folgen, bis entweder ein anderes Inhaltswort oder das Ende des Menüpunkts erreicht ist, mit der Ausnahme, daß dem ersten Inhaltswort im Menüpunkt ferner jedes anfängliche Nicht-Inhaltswort zugeordnet ist, das dem ersten Inhaltswort vorausgeht. Nicht-Inhaltswörter werden dahingehend markiert, daß sie optional sind, indem jedes optionale Wort in Klammern eingeschlossen wird, wenn es in der Wortsequenz abgespeichert wird, die erzeugt wird.
- Der Bitindex b wird inkrementiert (356) und dann getestet, um zu sehen, ob er größer als die Anzahl von Inhaltswörtern im momentanen Menüpunkt ist (358). Falls dies nicht der Fall ist, wird das dem Wert des Bitindexes b entsprechende Bit des binären Zählers überprüft (352), und falls dieser gleich eins ist, werden das entsprechende Inhaltswort, Word(Cptr(b)), und dessen zugeordneten optionalen Wörter an dem Ende der Wortsequenz angehängt, die erzeugt wird (354). Dieser Prozeß fährt fort, bis der Bitindex b die Anzahl von Inhaltswörtern im momentanen Menüpunkt überschreitet (358). An diesem Punkt ist die momentane Wortsequenz vollständig und die Prozedur fängt in Schritt 350, die nächste Wortsequenz zu erzeugen, so lange die Anzahl von bisher erzeugten Wortsequenzen geringer als die zu erzeugende Gesamtanzahl (d. h. MAX) ist (360).
- Beachte, daß alle für einen Menüpunkt erzeugten Wortsequenzen in einer Reihe des WordSeq()-Arrays 242 gespeichert werden, das dem Menüpunkt zugeordnet ist, wobei alle für einen einzelnen Menüpunkt erzeugten Wortsequenzen in verschiedenen Spalten gespeichert werden. Den Wörtern in jeder Wortsequenzgeht jeweils ein Leerraums voraus, um Platz bereitzustellen, einige Wortsequenzen für eine Löschung und andere für einen Schutz während nachfolgender Verarbeitung der Wortsequenzen zu markieren.
- Der volle Satz von fünfzehn, durch diese Prozedur erzeugten Wortsequenzen für diesen Menüpunkt
- P1 C1 C2 P2 C3 C4 P3
- ist wie folgt:
- Es können andere äquivalente Prozeduren verwendet werden, um alle mögliche Wortsequenzen von Inhaltswörtern in einem spezifizierten Menüpunkt zu erzeugen.
- Es wird wieder auf Fig. 7A Bezug genommen. Sobald alle Menüpunkte in einer Menüdatei verarbeitet wurden, wird die S-Regel für die Syntaxdatei erzeugt, wie oben beschrieben.
- Es wird auf Fig. 7C Bezug genommen. Die Prozedur für die Eliminierung redundanter Wortsequenzen ist wie folgt. Die längste Wortsequenz in jeder Reihe des WordSeq()-Arrays wird mit einem Stern markiert (370). Dies schützt die volle- Länge-Wortsequenz für jeden Menüpunkt gegen Löschen.
- Eine Reihe des WordSeq()-Arrays wird als die momentane Reihe gewählt (372). Wortsequenzen in der momentanen Reihe von WordSeq() 324, die schon mit einer linken geschweiften Klammer "{" markiert sind, werden übersprungen. Für jede verbleibende Wortsequenz in der momentanen Reihe von WordSeq() (374), hierin die "momentane Wortsequenz" genannt, wird jede Wortsequenz in jeder nachfolgenden Reihe von WordSeq() identifiziert (376, 378, 380), wird übersprungen, falls sie schon mit einem Stern " *" oder einer geschweiften linken Klammer "{" markiert ist (382) und wird mit der momentanen Wortsequenz verglichen (384). Falls die beiden Wortsequenzen identische Folgen von Inhaltswörtern aufweisen (348), wird die zweite der Wortsequenzen für ein Löschen mit einer linken geschweiften Klammer "{" markiert (386). Die erste der verglichenen Wortsequenzen wird ebenfalls mit einer linken geschweiften Klammer markiert, sofern sie nicht zuvor mit einem Stern markiert wurde (da mit einem Stern markierte Wortsequenzen gegen Löschen geschützt sind). Zuvor mit einer linken geschweiften Klammer markierte Wortsequenzen werden in Schritt 382 übersprungen, da diese Wortsequenzen schon für ein Löschen markiert sind, und mit einem Stern markierte Wortsequenzen werden in Schritt 382 übersprungen, da diese Wortsequenzen gegen ein Löschen geschützt sind.
- Wenn übereinstimmende Wortsequenzen gefunden werden, brauchen keine anderen Wortsequenzen in der mit der momentanen Reihe verglichenen Reihe überprüft werden, da jede Wortsequenz innerhalb dieser Reihe einmalig ist. Nachdem eine übereinstimmende Sequenz identifiziert ist, wird somit die Verarbeitung in Schritt 378 fortgesetzt (der den Reihenzähler j zu einer nächsten Reihe vorstellt).
- Es wird auf Fig. 7D Bezug genommen. Nachdem alle redundanten Wortsequenzen in WordSeq() markiert wurden, schreitet die Syntaxdatei-Erzeugungsprozedur noch einmal durch die Reihen des WordSeq()-Arrays (390, 392), wobei sie alle mit linken geschweiften Klammern markierten Wortsequenzen in jeder Reihe löscht (393), die verbleibenden Wortsequenzen in der Reihe in dem Ausmaß rekombiniert, wie dies möglich ist (394) und dann eine Syntaxanweisung (auch eine Syntaxregel genannt) aus den resultierenden Wortsequenzen bildet (396).
- Wortsequenzen werden kombiniert (394) durch Bestimmen, daß zwei Wortsequenzen sich nur durch ein Inhaltswort unterscheiden (es ist in einer Sequenz vorhanden und in der anderen abwesend), und daß dann beide Wortsequenzen durch eine kombinierte Wortsequenz ersetzt werden, in der das abweichende Inhaltswort dahingehend notiert ist, daß es optional ist. Beispielsweise können die folgenden beiden Wortsequenzen:
- (P1) C1 C2 (P2)
- C2 (P2)
- kombiniert werden, daß sie die folgende Wortsequenz bilden:
- (P1) (C1) C2 (P2).
- Nachdem alle Reihen des WordSeq()-Arrays auf diese Art und Weise verarbeitet wurden (Schritte 392 bis 396) wird eine S-Regel für die Syntaxdatei erzeugt, wie oben erklärt ist.
- Während die vorliegende Erfindung mit Bezugnahme auf einige spezielle Ausführungsformen beschrieben wurde, ist die Beschreibung für die Erfindung veranschaulichend und nicht dahingehend auszulegen, daß sie die Erfindung beschränkt. Es können Fachleuten im Fachgebiet vielfältige Modifikationen ein fallen, ohne den durch die anhängenden Ansprüche definierten Bereich der Erfindung zu verlassen.
- Anmerkung des Übersetzers: Da die vorliegende Beschreibung sich auf die englische Sprache beziehende Ausführungsformen erläutert, wurden die zugehörigen Fig. 2, 4A und 4B, die englischsprachige Textbestandteile enthalten, auf die diese Ausführungsformen angewendet werden, in ihrer ursprünglichen, englischsprachigen Fassung im zu dieser Beschreibung zugehörigen Figurensatz beibehalten. Zum einfacheren Verständnis wurden in den Figurensatz zusätzliche Fig. 2, 4A und 4B mit entsprechenden deutschsprachigen Textbestandteilen aufgenommen. In der Beschreibung wurden in entsprechender Weise beibehaltenen englischsprachigen Textbestandteilen die deutschen Übersetzungen in Klammern nachgestellt.
Claims (8)
1. Syntaxregel-Autorensystem zur Verwendung in Verbindung mit einem
Syntax-basierten Spracherkennungssystem, umfassend:
eine erste Datenstruktur, die Daten speichert, die einem Satz von
Benutzer-wählbaren vordefinierten Eingaben entsprechen, die einem
Anwendungsprogramm zugeordnet sind;
eine zweite Datenstruktur, die für jede der vordefinierten Eingaben eine
zugeordnete Sequenz von einem oder mehreren Wörtern speichert, wobei
jede zugeordnete Sequenz von einem oder mehreren Wörtern eine längste
Wortsequenz zum eindeutigen Identifizieren der der zugeordneten
Sequenz jeweils zugeordneten vordefinierten Eingabe umfaßt; und
Mittel zum Ausführen einer Sprachsyntax-Erzeugungsprozedur, die
Zugang zu der zweiten Datenstruktur hat, zum Erzeugen von
Syntaxregeln, wobei jede erzeugte Syntaxregel einer bestimmten der
vordefinierten Eingaben entspricht und eine Repräsentation der längsten
Wortsequenz enthält, die der einen vordefinierten Eingabe zugeordnet ist;
wobei wenigstens eine Mehrzahl der erzeugten Syntaxregeln jeweils eine
Repräsentation von zusätzlichen Wortsequenzen enthält, wobei jede der
zusätzlichen Wortsequenzen eine Untermenge der längsten Wortsequenz
umfaßt, die eindeutig die eine vordefinierte Eingabe identifiziert; wobei
die erzeugten Syntaxregeln für die Verwendung in dem Syntax-basierten
Spracherkennungssystem bestimmt sind.
2. System nach Anspruch 1, wobei die Sprachsyntax-Erzeugungsprozedur
umfaßt:
eine Wortsequenz-Erzeugungsprozedur, die Zugang zu der zweiten
Datenstruktur hat, zum automatischen Erzeugen eines Satzes von
potentiell identifizierenden Wortsequenzen für jede vordefinierte Eingabe,
wobei jede der potentiellen identifizierenden Wortsequenzen eine
Untermenge der längsten Wortsequenz enthält, die der jeweiligen
vordefinierten Eingabe zugeordnet ist; wobei die Wortsequenz-
Erzeugungsprozedur die potentiell identifizierenden Wortsequenzen für
alle der vordefinierten Eingaben in einer dritten Datenstruktur speichert,
eine Redundante-Wortsequenz-Beseitigungsprozedur, die zur dritten
Datenstruktur Zugang hat, zum Identifizieren von redundanten Sätzen von
sich entsprechenden Wortsequenzen in der dritten Datenstruktur, wobei
jeder redundante Satz von sich entsprechenden Wortsequenzen potentiell
identifizierende Wortsequenzen für wenigstens zwei verschiedene der
vordefinierten Eingaben enthält, deren Wortsequenzen vordefinierte
Entsprechungskriterien erfüllen; und
eine zweite Syntax-Erzeugungsprozedur zum Erzeugen der Syntaxregeln,
wobei jede erzeugte Syntaxregel jenen der potentiell identifizierenden
Wortsequenzen für eine bestimmte der vordefinierten Eingaben
entspricht, die in keinem der identifizierten redundanten Sätze enthalten
sind.
3. System nach Anspruch 2, wobei die potentiell identifizierenden
Wortsequenzen jeweils die entsprechende längste Wortsequenz
enthalten; und
wobei die redundante Wortsequenz-Beseitigungsprozedur Instruktionen
enthält, damit in den redundanten Sätzen von sich entsprechenden
Wortsequenzen die längste Wortsequenz in jedem der Sätze von
potentiell identifizierenden Wortsequenzen nicht enthalten ist.
4. System nach Anspruch 1, ferner umfassend:
ein Mikrofon zum Empfangen verbaler Eingaben von einem Benutzer; und
ein Syntax-basiertes Spracherkennungsuntersystem, das Zugang zum
Mikrofon und den erzeugten Syntaxregeln hat, zum Empfangen der
verbalen Eingaben vom Benutzer und zum Identifizieren, welche der
vordefinierten Eingaben, wenn überhaupt, gemäß den erzeugten
Syntaxregeln den verbalen Eingaben entsprechen.
5. System nach Anspruch 1, bei dem das Anwendungsprogramm mehrfache
Kontexte aufweist, wobei jeder Kontext einen zugeordneten Satz
Benutzer-wählbarer vordefinierter Eingabe aufweist, die durch
verschiedene Sätze von Daten in der ersten Datenstruktur repräsentiert
sind;
wobei die zweite Datenstruktur für jeden Kontext eine längste
Wortsequenz definiert zum eindeutigen Identifizieren jeder dem Kontext
zugeordneten vordefinierten Eingabe; und
wobei die Sprachsyntax-Erzeugungsprozedur für jeden Kontext einen
gesonderten Satz von Syntaxregeln erzeugt.
6. Verfahren zum Erzeugen von Syntaxregeln zur Verwendung in
Verbindung mit einem Syntax-basierten Spracherkennungssystem,
umfassend die Schritte:
Speichern von Daten in einer ersten Datenstruktur, die einem Satz von
Benutzer-wählbaren vordefinierten Eingaben entsprechen, die einem
Anwendungsprogramm zugeordnet sind;
Speichern einer Sequenz von einem oder mehreren Wörtern für jede der
vordefinierten Eingaben in einer zweiten Datenstruktur, wobei jede
zugeordnete Sequenz von einem oder mehreren Wörtern eine längste
Wortsequenz zum eindeutigen Identifizieren der der zugeordneten
Sequenz jeweils zugeordneten vordefinierten Eingabe umfaßt; und
automatisches Erzeugen der Syntaxregeln, wobei jede erzeugte
Syntaxregel einer bestimmten der vordefinierten Eingaben entspricht und
eine Repräsentation der längsten Wortsequenz enthält, die der einen
vordefinierten Eingabe zugeordnet ist; wobei wenigstens eine Mehrzahl
der erzeugten Syntaxregeln jeweils eine Repräsentation von zusätzlichen
Wortsequenzen enthält, wobei jede der zusätzlichen Wortsequenzen eine
Untermenge der längsten Wortsequenz umfaßt, die eindeutig die eine
vordefinierte Eingabe identifiziert; wobei die erzeugten Syntaxregeln zur
Verwendung im Syntax-basierten Spracherkennungssystem bestimmt
sind.
7. Verfahren nach Anspruch 6, wobei der Syntaxregel-Erzeugungsschritt
umfaßt:
automatisches Erzeugen eines Satzes von potentiell identifizierenden
Wortsequenzen für jede vordefinierte Eingabe, wobei jede der potentiell
identifizierenden Wortsequenzen eine Untermenge der längsten
Wortsequenz enthält, die der jeweiligen vordefinierten Eingabe
zugeordnet ist, und Speichern der potentiell identifizierenden
Wortsequenzen für alle der vordefinierten Eingaben in einer dritten
Datenstruktur;
identifizieren redundanter Sätze von sich entsprechenden Wortsequenzen
in der dritten Datenstruktur, wobei jeder redundante Satz von sich
entsprechenden Wortsequenzen die potentiell identifizierenden
Wortsequenzen für wenigstens zwei verschiedene der vordefinierten
Eingaben enthält, deren Wortsequenzen vordefinierte
Entsprechungskriterien erfüllen; und
Erzeugen der Syntaxregeln, wobei jede erzeugte Syntaxregel jenen der
potentiell identifizierenden Wortsequenzen für eine bestimmte der
vordefinierten Eingaben entspricht, die in keinem der identifizierten
redundanten Sätze enthalten sind.
8. Verfahren nach Anspruch 7, wobei die erzeugten potentiell
identifizierenden Wortsequenzen jeweils die entsprechende längste
Wortsequenz enthalten; und wobei der Identifizierungsschritt
redundanter Sätze den Schritt des Ausschließens der längsten
Wortsequenz in jedem der Sätze der potentiell identifizierenden
Wortsequenzen aus den redundanten Sätzen von sich entsprechenden
Wortsequenzen umfaßt.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/381,202 US5668928A (en) | 1995-01-31 | 1995-01-31 | Speech recognition system and method with automatic syntax generation |
PCT/US1996/001251 WO1996024129A1 (en) | 1995-01-31 | 1996-01-25 | Speech recognition system and method with automatic syntax generation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69607601D1 DE69607601D1 (de) | 2000-05-11 |
DE69607601T2 true DE69607601T2 (de) | 2000-11-23 |
Family
ID=23504101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69607601T Expired - Fee Related DE69607601T2 (de) | 1995-01-31 | 1996-01-25 | System und verfahren zur spracherkennung mit automatischer erzeugung einer syntax |
Country Status (7)
Country | Link |
---|---|
US (1) | US5668928A (de) |
EP (1) | EP0807306B1 (de) |
JP (1) | JPH10513275A (de) |
AU (1) | AU690830B2 (de) |
CA (1) | CA2211869A1 (de) |
DE (1) | DE69607601T2 (de) |
WO (1) | WO1996024129A1 (de) |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6014626A (en) * | 1994-09-13 | 2000-01-11 | Cohen; Kopel H. | Patient monitoring system including speech recognition capability |
US6151598A (en) * | 1995-08-14 | 2000-11-21 | Shaw; Venson M. | Digital dictionary with a communication system for the creating, updating, editing, storing, maintaining, referencing, and managing the digital dictionary |
US5867817A (en) * | 1996-08-19 | 1999-02-02 | Virtual Vision, Inc. | Speech recognition manager |
US5850429A (en) * | 1996-12-11 | 1998-12-15 | Lucent Technologies Inc. | Method and system for remotely controlling an interactive voice response system |
US6456974B1 (en) * | 1997-01-06 | 2002-09-24 | Texas Instruments Incorporated | System and method for adding speech recognition capabilities to java |
DE69800898T2 (de) * | 1997-01-25 | 2002-04-04 | Kabushiki Kaisha Toshiba, Kawasaki | Anpassungsregelgenerierungsverfahren, Anpassungsregelgenerierungsgerät, Anpassungssteuerungsverfahren, und Anpassungssteuerungsgerät |
US6587122B1 (en) * | 1998-01-30 | 2003-07-01 | Rockwell Automation Technologies, Inc. | Instruction syntax help information |
US6418431B1 (en) * | 1998-03-30 | 2002-07-09 | Microsoft Corporation | Information retrieval and speech recognition based on language models |
US6321226B1 (en) * | 1998-06-30 | 2001-11-20 | Microsoft Corporation | Flexible keyboard searching |
US6101338A (en) * | 1998-10-09 | 2000-08-08 | Eastman Kodak Company | Speech recognition camera with a prompting display |
US6631368B1 (en) | 1998-11-13 | 2003-10-07 | Nortel Networks Limited | Methods and apparatus for operating on non-text messages |
US6208968B1 (en) | 1998-12-16 | 2001-03-27 | Compaq Computer Corporation | Computer method and apparatus for text-to-speech synthesizer dictionary reduction |
US6400809B1 (en) * | 1999-01-29 | 2002-06-04 | Ameritech Corporation | Method and system for text-to-speech conversion of caller information |
US6574599B1 (en) | 1999-03-31 | 2003-06-03 | Microsoft Corporation | Voice-recognition-based methods for establishing outbound communication through a unified messaging system including intelligent calendar interface |
US6477240B1 (en) * | 1999-03-31 | 2002-11-05 | Microsoft Corporation | Computer-implemented voice-based command structure for establishing outbound communication through a unified messaging system |
US6876991B1 (en) | 1999-11-08 | 2005-04-05 | Collaborative Decision Platforms, Llc. | System, method and computer program product for a collaborative decision platform |
US6813603B1 (en) * | 2000-01-26 | 2004-11-02 | Korteam International, Inc. | System and method for user controlled insertion of standardized text in user selected fields while dictating text entries for completing a form |
DE60140489D1 (de) | 2000-08-25 | 2009-12-24 | Contura As | Polyacrylamidhydrogel und seine Verwendung als Endoprothese |
US7181400B2 (en) * | 2001-04-20 | 2007-02-20 | Intel Corporation | Method and apparatus to provision a network appliance |
US7849400B2 (en) * | 2001-09-13 | 2010-12-07 | Speech Products, Inc. | Electronic charting system |
US7292689B2 (en) | 2002-03-15 | 2007-11-06 | Intellisist, Inc. | System and method for providing a message-based communications infrastructure for automated call center operation |
US7444285B2 (en) * | 2002-12-06 | 2008-10-28 | 3M Innovative Properties Company | Method and system for sequential insertion of speech recognition results to facilitate deferred transcription services |
US20050096910A1 (en) * | 2002-12-06 | 2005-05-05 | Watson Kirk L. | Formed document templates and related methods and systems for automated sequential insertion of speech recognition results |
US7774694B2 (en) | 2002-12-06 | 2010-08-10 | 3M Innovation Properties Company | Method and system for server-based sequential insertion processing of speech recognition results |
US7263483B2 (en) * | 2003-04-28 | 2007-08-28 | Dictaphone Corporation | USB dictation device |
US7369998B2 (en) * | 2003-08-14 | 2008-05-06 | Voxtec International, Inc. | Context based language translation devices and methods |
US20050075884A1 (en) * | 2003-10-01 | 2005-04-07 | Badt Sig Harold | Multi-modal input form with dictionary and grammar |
DE102005031611B4 (de) * | 2005-07-06 | 2007-11-22 | Infineon Technologies Ag | Nachweis einer Veränderung der Daten eines Datensatzes |
US7697827B2 (en) | 2005-10-17 | 2010-04-13 | Konicek Jeffrey C | User-friendlier interfaces for a camera |
US7861159B2 (en) * | 2006-04-07 | 2010-12-28 | Pp Associates, Lp | Report generation with integrated quality management |
US8121626B1 (en) | 2006-06-05 | 2012-02-21 | Callwave, Inc. | Method and systems for short message forwarding services |
US8065147B2 (en) | 2006-09-21 | 2011-11-22 | Nuance Communications, Inc. | Gramma generation for password recognition |
US10031830B2 (en) * | 2006-10-13 | 2018-07-24 | International Business Machines Corporation | Apparatus, system, and method for database management extensions |
US8612230B2 (en) * | 2007-01-03 | 2013-12-17 | Nuance Communications, Inc. | Automatic speech recognition with a selection list |
US8447285B1 (en) | 2007-03-26 | 2013-05-21 | Callwave Communications, Llc | Methods and systems for managing telecommunications and for translating voice messages to text messages |
US8325886B1 (en) | 2007-03-26 | 2012-12-04 | Callwave Communications, Llc | Methods and systems for managing telecommunications |
US7813929B2 (en) * | 2007-03-30 | 2010-10-12 | Nuance Communications, Inc. | Automatic editing using probabilistic word substitution models |
US8583746B1 (en) | 2007-05-25 | 2013-11-12 | Callwave Communications, Llc | Methods and systems for web and call processing |
US8145655B2 (en) * | 2007-06-22 | 2012-03-27 | International Business Machines Corporation | Generating information on database queries in source code into object code compiled from the source code |
DE102007042842A1 (de) * | 2007-09-07 | 2009-04-09 | Daimler Ag | Verfahren und Vorrichtung zur Erkennung einer alphanumerischen Information |
US20110184736A1 (en) * | 2010-01-26 | 2011-07-28 | Benjamin Slotznick | Automated method of recognizing inputted information items and selecting information items |
US20130091266A1 (en) | 2011-10-05 | 2013-04-11 | Ajit Bhave | System for organizing and fast searching of massive amounts of data |
US9081829B2 (en) | 2011-10-05 | 2015-07-14 | Cumulus Systems Incorporated | System for organizing and fast searching of massive amounts of data |
US9081834B2 (en) | 2011-10-05 | 2015-07-14 | Cumulus Systems Incorporated | Process for gathering and special data structure for storing performance metric data |
EP2979201B1 (de) * | 2013-03-29 | 2019-05-15 | Cumulus Systems Incorporated | Organisieren und schnelles durchsuchen von daten |
US9361084B1 (en) | 2013-11-14 | 2016-06-07 | Google Inc. | Methods and systems for installing and executing applications |
US9606983B1 (en) * | 2014-08-27 | 2017-03-28 | Amazon Technologies, Inc. | Human readable mechanism for communicating binary data |
US9866393B1 (en) | 2014-12-22 | 2018-01-09 | Amazon Technologies, Inc. | Device for creating reliable trusted signatures |
US10110385B1 (en) | 2014-12-22 | 2018-10-23 | Amazon Technologies, Inc. | Duress signatures |
US9819673B1 (en) | 2015-06-24 | 2017-11-14 | Amazon Technologies, Inc. | Authentication and authorization of a privilege-constrained application |
US11062707B2 (en) | 2018-06-28 | 2021-07-13 | Hill-Rom Services, Inc. | Voice recognition for patient care environment |
US11881219B2 (en) | 2020-09-28 | 2024-01-23 | Hill-Rom Services, Inc. | Voice control in a healthcare facility |
US11829396B1 (en) * | 2022-01-25 | 2023-11-28 | Wizsoft Ltd. | Method and system for retrieval based on an inexact full-text search |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5228110A (en) * | 1989-09-15 | 1993-07-13 | U.S. Philips Corporation | Method for recognizing N different word strings in a speech signal |
US5425128A (en) * | 1992-05-29 | 1995-06-13 | Sunquest Information Systems, Inc. | Automatic management system for speech recognition processes |
EP0602296A1 (de) * | 1992-12-17 | 1994-06-22 | International Business Machines Corporation | Adaptives Verfahren zur Erzeugung gebietsabhängiger Modelle für intelligente Systeme |
DE69330361T2 (de) * | 1992-12-31 | 2002-05-23 | Apple Computer, Inc. | Spracherkennungssystem |
US5390279A (en) * | 1992-12-31 | 1995-02-14 | Apple Computer, Inc. | Partitioning speech rules by context for speech recognition |
US5384892A (en) * | 1992-12-31 | 1995-01-24 | Apple Computer, Inc. | Dynamic language model for speech recognition |
US5390073A (en) * | 1993-01-11 | 1995-02-14 | Maxwell Laboratories, Inc. | Dielectric material containing dipolar molecules |
EP0618565A3 (de) * | 1993-04-02 | 1996-06-26 | Ibm | Spracherkennung mit interaktiver dynamischer Einschränkung der Grammatik. |
-
1995
- 1995-01-31 US US08/381,202 patent/US5668928A/en not_active Expired - Lifetime
-
1996
- 1996-01-25 DE DE69607601T patent/DE69607601T2/de not_active Expired - Fee Related
- 1996-01-25 WO PCT/US1996/001251 patent/WO1996024129A1/en active IP Right Grant
- 1996-01-25 CA CA002211869A patent/CA2211869A1/en not_active Abandoned
- 1996-01-25 EP EP96906223A patent/EP0807306B1/de not_active Expired - Lifetime
- 1996-01-25 AU AU49466/96A patent/AU690830B2/en not_active Ceased
- 1996-01-25 JP JP8523677A patent/JPH10513275A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
AU690830B2 (en) | 1998-04-30 |
AU4946696A (en) | 1996-08-21 |
EP0807306A1 (de) | 1997-11-19 |
US5668928A (en) | 1997-09-16 |
EP0807306B1 (de) | 2000-04-05 |
DE69607601D1 (de) | 2000-05-11 |
CA2211869A1 (en) | 1996-08-08 |
WO1996024129A1 (en) | 1996-08-08 |
JPH10513275A (ja) | 1998-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69607601T2 (de) | System und verfahren zur spracherkennung mit automatischer erzeugung einer syntax | |
EP0802522B1 (de) | Anordnung und Verfahren zur Aktionsermittlung, sowie Verwendung der Anordnung und des Verfahrens | |
DE69834553T2 (de) | Erweiterbares spracherkennungssystem mit einer audio-rückkopplung | |
DE69527229T2 (de) | Sprachinterpretator mit einem Kompiler mit vereinheitlicher Grammatik | |
DE69829389T2 (de) | Textnormalisierung unter verwendung einer kontextfreien grammatik | |
DE69423838T2 (de) | Semantische Gleichereignisfilterung für Spracherkennung und Signalübersetzungsanwendungen | |
DE3751276T2 (de) | Zergliedergerät für Naturalsprachen. | |
EP0925578B1 (de) | Sprachverarbeitungssystem und verfahren zur sprachverarbeitung | |
DE60012655T2 (de) | Audiowiedergabe von einem geschriebenen Dokument aus mehreren Quellen | |
DE69513369T2 (de) | Verfahren und vorrichtung zur zusammenfassung statischer prozesse in eine auf regeln basierende grammatikalisch definierte natuerliche sprache | |
DE602004011753T2 (de) | Verfahren und Vorrichtung zum Verbessern der Transkriptionsgenauigkeit bei der Spracherkennung | |
DE69807091T2 (de) | System und verfahren zum schaffen einer sprachgrammatik | |
DE60201262T2 (de) | Hierarchische sprachmodelle | |
DE68923981T2 (de) | Verfahren zur Bestimmung von Textteilen und Verwendung. | |
DE69424350T2 (de) | Kontextsensitive Methode zum Auffinden von Informationen über ein Wort in einem elektronischen Wörterbuch | |
DE69937176T2 (de) | Segmentierungsverfahren zur Erweiterung des aktiven Vokabulars von Spracherkennern | |
DE69225173T2 (de) | Spracherkennungsgerät | |
DE69914131T2 (de) | Positionshandhabung bei der Spracherkennung | |
DE69726499T2 (de) | Verfahren und Vorrichtung zur Kodierung von Aussprache-Prefix-Bäumen | |
DE69828141T2 (de) | Verfahren und Vorrichtung zur Spracherkennung | |
DE69129163T2 (de) | Verfahren und Vorrichtung zur Texteingabe | |
DE69625950T2 (de) | Verfahren und Vorrichtung zur Spracherkennung und Übersetzungssystem | |
DE60123952T2 (de) | Erzeugung von einem einheitlichen aufgabeabhängigen sprachmodell mittels informationsauffindungverfahren | |
DE69330361T2 (de) | Spracherkennungssystem | |
DE602005000308T2 (de) | Vorrichtung für sprachgesteuerte Anwendungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |