[go: up one dir, main page]

DE69607601T2 - System und verfahren zur spracherkennung mit automatischer erzeugung einer syntax - Google Patents

System und verfahren zur spracherkennung mit automatischer erzeugung einer syntax

Info

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
Application number
DE69607601T
Other languages
English (en)
Other versions
DE69607601D1 (de
Inventor
F. Groner
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.)
Kor Team International Inc
Original Assignee
Kor Team International Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kor Team International Inc filed Critical Kor Team International Inc
Publication of DE69607601D1 publication Critical patent/DE69607601D1/de
Application granted granted Critical
Publication of DE69607601T2 publication Critical patent/DE69607601T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

  • Engineering & Computer Science (AREA)
  • 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.
  • HINTERGRUND DER ERFINDUNG
  • 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.
  • ÜBERSICHT DER ERFINDUNG
  • 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.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • 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.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 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.
  • Dateneingabe durch Endbenutzer-Spracheingabe
  • 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.
  • Alternative Ausführungsformen
  • 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.
DE69607601T 1995-01-31 1996-01-25 System und verfahren zur spracherkennung mit automatischer erzeugung einer syntax Expired - Fee Related DE69607601T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.

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