Beschreibungdescription
Sprachunterstützte Texteingabe bei vorinstallierten Anwendungen auf mobilen GerätenVoice-supported text entry for pre-installed applications on mobile devices
Bisher können vorinstallierte Programme in mobilen Geräten nur anhand der enthaltenen Eingabegeräte bedient werden, was anhand der gegebenen Möglichkeiten zumeist umständlich, langwierig und nur in ruhendem Zustand des Bedieners möglich ist. Als Eingabegeräte fungieren dabei beispielsweise virtuelle Tastaturen oder Miniaturtasten.So far, preinstalled programs in mobile devices can only be operated using the input devices they contain, which is mostly cumbersome, lengthy and only possible when the operator is at rest due to the options available. For example, virtual keyboards or miniature keys function as input devices.
Bei mobilen Telefonen existiert zur Texteingabe in der Regel nur ein Ziffernblock, durch den unter mehrmaligem Drücken der Tasten ein entsprechender Buchstabe eingegeben und auf dem Display dargestellt wird.In mobile telephones, there is usually only a numeric keypad for entering text, by pressing the keys several times and entering a corresponding letter and showing it on the display.
Bei Personal Digital Assistants (PDAs) gibt es oft zwei unterschiedliche Eingabemöglichkeiten. Einerseits die Stifteingabe über eine virtuelle Tastatur, welche im Display eingeblendet wird, oder die Handschrifterkennung, welche meistens als alternative Eingabe für die virtuelle Tastatur verwendet wird. Bei etwas größeren Geräten findet teilweise auch eine miniaturisierte Hardwaretastatur Anwendung. Welches Eingabeverfahren verwendet wird, entscheidet der Hersteller des Gerätes. Die hier beschriebenen Eingabemöglichkeiten sind in den am Markt erhältlichen PDAs integriert.With Personal Digital Assistants (PDAs) there are often two different input options. On the one hand, pen input via a virtual keyboard, which is shown in the display, or handwriting recognition, which is mostly used as an alternative input for the virtual keyboard. A miniaturized hardware keyboard is sometimes used for somewhat larger devices. The manufacturer of the device decides which input method is used. The input options described here are integrated in the PDAs available on the market.
Bei Web-Pads/SIM-Pads existiert ebenfalls nur eine virtuelle Tastatur und eine Handschrifterkennung. Diese Geräte unterscheiden sich von den PDAs nur dadurch, dass ihr Bildschirm und/oder Touchscreen um einiges größer ist.Web pads / SIM pads also only have a virtual keyboard and handwriting recognition. These devices differ from the PDAs only in that their screen and / or touchscreen is a lot larger.
Davon ausgehend liegt der Erfindung die Aufgabe zugrunde, eine Möglichkeit zur Eingabe, insbesondere von Text, in auf kleinen mobilen Endgeräten vorinstallierte Anwendungen anzugeben.
Diese Aufgabe wird durch die in den unabhängigen Patentansprüchen angegebenen Erfindungen gelöst. Vorteilhafte Ausgestaltungen ergeben sich aus den Unteransprüchen.Proceeding from this, the object of the invention is to provide a possibility for input, in particular text, in applications preinstalled on small mobile devices. This object is achieved by the inventions specified in the independent patent claims. Advantageous refinements result from the subclaims.
Dementsprechend befindet sich in einem Verfahren zur Spracherkennung eine Anwendung in einem Zustand, in dem ihr Tastatur-Codes zuführbar sind. Es wird ein Sprachsignal eingegeben und von einer Spracherkennungseinheit in Tastatur- Codes umgewandelt. Die Tastatur-Codes werden der Anwendung zugeführt.Accordingly, in a speech recognition method, an application is in a state in which keyboard codes can be fed to it. A speech signal is entered and converted into keyboard codes by a speech recognition unit. The keyboard codes are fed to the application.
Vorzugsweise läuft die Anwendung auf einem Betriebssystem ab. Bei dem Betriebssystem kann es sich um ein nachrichten- basiertes Betriebssystem handeln. Die Tastatur-Codes werden der Anwendung dann als Nachrichten durch das Betriebssystem zugeführt.The application preferably runs on an operating system. The operating system can be a message-based operating system. The keyboard codes are then sent to the application as messages by the operating system.
Die Tastatur-Codes sind beispielsweise Buchstaben.The keyboard codes are, for example, letters.
Zusätzlich zu den Buchstaben können Kommandos als Sprachsignal eingegeben, von der Spracherkennungseinheit erkannt und der Anwendung als Tastatur-Codes zugeführt werden. Dadurch lässt sich die Anwendung weiterhin steuern.In addition to the letters, commands can be entered as a speech signal, recognized by the speech recognition unit and fed to the application as keyboard codes. This allows the application to continue to be controlled.
Das Verfahren läuft insbesondere auf einem mobilen Endgerät mit einer oder mehreren vorinstallierten Anwendungen ab.The method runs in particular on a mobile device with one or more preinstalled applications.
Eine Anordnung, die eingerichtet ist, eines der geschilderten Verfahren auszuführen, lässt sich zum Beispiel durchAn arrangement that is set up to carry out one of the described methods can be, for example, by
Programmieren und Einrichten einer Datenverarbeitungsanlage mit zu den genannten Verfahrensschritten gehörigen Mitteln realisieren.Realize programming and setting up a data processing system with means belonging to the mentioned method steps.
Ein Programmprodukt für eine Datenverarbeitungsanlage, das Codeabschnitte enthält, mit denen eines der geschilderten Verfahren auf der Datenverarbeitungsanlage ausgeführt werden
kann, lässt sich durch geeignete Implementierung des Verfahrens in einer Programmiersprache und Übersetzung in von der Datenverarbeitungsanlage ausführbaren Code ausführen. Die Codeabschnitte werden hierzu gespeichert. Dabei wird unter einem Programmprodukt das Programm als handelbares Produkt verstanden. Es kann in beliebiger Form vorliegen, so zum Beispiel auf Papier, einem computerlesbaren Datenträger oder über ein Netz verteilt.A program product for a data processing system that contains code sections with which one of the described methods are carried out on the data processing system can be carried out by suitable implementation of the method in a programming language and translation into code executable by the data processing system. The code sections are saved for this purpose. A program product is understood to mean the program as a tradable product. It can be in any form, for example on paper, a computer-readable data medium or distributed over a network.
Weitere Vorteile und Merkmale der Erfindung ergeben sich aus der Beschreibung eines Ausführungsbeispiels anhand der Figur, die ein Verfahren zur Spracherkennung anhand eines Ablaufdiagramms darstellt.Further advantages and features of the invention result from the description of an exemplary embodiment with reference to the figure, which represents a method for speech recognition using a flowchart.
Um das dem Verfahren grundlegende Problem darzustellen, folgt als erstes ein Ausführungsbeispiel. Im Beispiel erfolgt die Bedienung eines herkömmlichen PDAs unter dem Betriebssystem Windows CE. Heutzutage ist es möglich, Programme auf dem PDA durch ein vorgegebenes Vokabular anhand automatischer Spracherkennung zu starten. Im Beispiel wird auf diese Weise das Programm "Kontakte-Neueintrag" gestartet, um zur Eingabemaske eines neuen Kontaktes zu gelangen. Der Cursor steht dann automatisch im Eingabefeld des Namens. An diesem Punkt wird deutlich, dass für die Erstellung eines Kontaktes keine wortbasierte Spracherkennung verwendet werden kann, da aufgrund des großen Wortschatzes der Ressourcen- und CPU- Verbrauch eine Realisierung auf mobilen Geräten schwierig bzw. unmöglich macht. Um dem Benutzer dennoch die Möglichkeit zur Erstellung eines individuellen Kontaktes zu ermöglichen, wird anstatt eines wortbasierten Spracherkenners ein Buchstabier-Erkenner verwendet, welcher zusätzlich mit einigen Sprachkommandowörtern ergänzt wurde. Nun werden die vom Benutzer einzutragenden Namen/Worte buchstabiert. Nachdem die Erkennung abgeschlossen ist, kann der Fensterfocus vom bisherigen Eingabefeld zum nachfolgenden per Sprachkommando, beispielsweise "next", verschoben werden. Dieser Vorgang wiederholt sich nun für alle Eingabefelder. Nachdem vom
Benutzer alle gewünschten Daten eingegeben wurden, kann der neue Datensatz beispielsweise durch das Kommando "save" der Datenbank des Geräts hinzugefügt werden.In order to illustrate the problem that is fundamental to the method, an embodiment follows first. In the example, a conventional PDA is operated using the Windows CE operating system. Nowadays it is possible to start programs on the PDA using a predefined vocabulary based on automatic speech recognition. In the example, the "Contacts new entry" program is started in this way in order to get to the input mask of a new contact. The cursor is then automatically in the input field of the name. At this point, it becomes clear that word-based speech recognition cannot be used to create a contact, because the large vocabulary means that resource and CPU consumption make implementation on mobile devices difficult or impossible. In order to enable the user to create an individual contact, a spelling recognizer is used instead of a word-based speech recognizer, which has also been supplemented with some voice command words. Now the names / words to be entered by the user are spelled out. After the recognition has been completed, the window focus can be shifted from the previous input field to the next one by voice command, for example "next". This process is now repeated for all input fields. After from If all the desired data has been entered, the new data record can be added to the device database, for example, using the "save" command.
Um dieses Verfahren auf einem Endgerät, welches ein nachrichtengesteuertes Betriebssystem wie etwa Windows, Unix, Windows CE, Epoc besitz, zu realisieren, ist lediglich eine zusätzliche, speziell ausgeprägte Spracherkennungsanwendung erforderlich. Diese Spracherkennungsanwendung läuft im Hintergrund, steuert den Spracherkenner und sendet die erkannten Buchstaben per Betriebssystem spezifischen Nachrichten zum aktiven Fensterfocus der Vordergrund- Anwendung. Dabei ist kein Wissen über die Vordergrund- Anwendung erforderlich. Dadurch ist dieses Verfahren für beliebige Anwendungen anwendbar, welche mit Texteingabe arbeiten.In order to implement this method on a terminal device that has a message-controlled operating system such as Windows, Unix, Windows CE, Epoc, all that is required is an additional, specially designed speech recognition application. This speech recognition application runs in the background, controls the speech recognizer and sends the recognized letters via operating system-specific messages to the active window focus of the foreground application. No knowledge of the foreground application is required. This method can therefore be used for any application that uses text input.
Das hier beschriebene Verfahren nutzt also die bestehenden Kommunikationsschnittstellen der Programme mit dem Betriebssystem auf dem Gerät aus.The method described here uses the existing communication interfaces of the programs with the operating system on the device.
Als nächstes wird ein Verfahren zur Spracherkennung beschrieben. Um die folgende Beschreibung besser mit der Figur vergleichen zu können, sind die einzelnen Schritte mit Bezugszeichen versehen.Next, a speech recognition method will be described. In order to better compare the following description with the figure, the individual steps are provided with reference numerals.
Schritt 1 Es wird die im Betriebssystem derzeit aktivierte Anwendung abgefragt. Am Beispiel Windows ist der Rückgabewert ein Fensterhandle. Als nächstes wird inStep 1 The application currently activated in the operating system is queried. Using Windows as an example, the return value is a window handle. Next in
Schritt 2 wird abgefragt, welches Fenster der aktiven Anwendung den Eingabefocus (Cursor) besitzt. Wiederum am Beispiel Windows kann dies mit GetFocus durchgeführt werden. Hierbei ist der Rückgabewert das Handle auf das Fenster, welches den Eingabecursor beinhaltet.
Schritt 3 Nun sind alle Vorarbeiten geleistet und die Anwendung befindet sich im Idle-Modus. In diesem Modus wird überwacht, ob sich das aktive Fenster oder das Fenster mit dem Eingabefocus ändert. Durch den Druck der PTT (Push to Talk) -Taste wird der Spracherkenner gestartet.Step 2 asks which window of the active application has the input focus (cursor). Again using Windows as an example, this can be done with GetFocus. The return value is the handle to the window that contains the input cursor. Step 3 Now all preparatory work has been done and the application is in idle mode. This mode monitors whether the active window or the window with the input focus changes. Pressing the PTT (Push to Talk) button starts the speech recognizer.
Schritt 4 In diesem Schritt wird der automatische Spracherkenner wieder gestoppt, da ein gültiges Erkennungsresultat vorliegt. Es können einzelne Buchstaben und Kommandos erkannt werden. Handelt es sich um eine Fehlerkennung, wird zum Schritt 3 zurückgesprungen .Step 4 In this step, the automatic speech recognizer is stopped again because there is a valid recognition result. Individual letters and commands can be recognized. If there is an error detection, the system jumps back to step 3.
Schritt 5 Wird ein Buchstabe erkannt, wird der korrespondierende KeyCode wie bei den Tastaturcodes einer gebräuchlichen Tastatur an das Fenster mit dem Eingabefocus gesendet. Am Beispiel Windows funktioniert dies beispielsweise mit SendMessage.Step 5 If a letter is recognized, the corresponding KeyCode is sent to the window with the input focus as with the keyboard codes of a conventional keyboard. Using Windows as an example, this works with SendMessage, for example.
Schritt β Dadurch wird das erkannte Kommando in das Feld mit dem Focus eingetragen.Step β This enters the recognized command in the field with the focus.
Schritt 7 Wird innerhalb von Schritt 4 ein Kommando erkannt, wird dieses interpretiert und der entsprechende KeyCode an die aktive Anwendung geschickt.Step 7 If a command is recognized in step 4, this is interpreted and the corresponding KeyCode is sent to the active application.
Schritt 8 Hier wurde das Kommando "next" erkannt, welches den Fensterfocus zum nächsten Eingabefeld schiebt. Am Beispiel Windows kann dies durch das Senden des Tabulator-Tasten-KeyCodes erzielt werden.
Schritt 9 Löschen des Inhalts des aktiven Feldes mit dem Kommando "empty". In Windows kann dies mit dem Senden des KeyCodes für Backspace erreicht werden, bis das Feld leer ist.Step 8 Here the command "next" was recognized, which pushes the window focus to the next input field. Using Windows as an example, this can be achieved by sending the Tab key code. Step 9 Delete the content of the active field with the "empty" command. In Windows this can be achieved by sending the KeyCode for Backspace until the field is empty.
Schritt 10 Das Kommando "back" wird wie unter Schritt 9 beschrieben durchgeführt. Es wird aber lediglich einmal der KeyCode für Backspace gesendet.Step 10 The "back" command is carried out as described in step 9. However, the KeyCode for backspace is only sent once.
Schritt 11 Durch das erkannte Kommando Speichern "save", was am Beispiel Windows CE durch Senden des Okay- Codes "Enter" durchgeführt wird, werden die eingetragenen Daten in die Datenbank eingetragen.Step 11 The recognized command Save "save", which is carried out in the example Windows CE by sending the OK code "Enter", the entered data is entered into the database.
Unter Schritt 8 kann neben "next" auch "previous" erkannt werden, um zum vorherigen Eingabefeld zu gelangen (KeyCode Shift + Tabulator) .In step 8, in addition to "next", "previous" can be recognized to go to the previous input field (KeyCode Shift + Tabulator).
Das Verfahren wurde anhand reiner Spracherkennung vorgestellt. Allerdings kann dieses Texteingabeverfahren auch mit anderen internen oder externen Eingabegeräten bzw. bei der Kombination von verschiedenen Eingabegeräten zum Einsatz kommen. Eine interessante Lösung für die Übertragung von Text in das mobile Gerät wäre die Verwendung eines Scanner-Stifts kombiniert mit der Spracherkennung. Mittels Scanner-Stift wird der Text übertragen und per Sprachkommandos werden die zusätzlichen Steueranweisungen gegeben, beispielsweise "next" für nächstes Feld, "save" für Abspeichern etc.The method was presented using pure speech recognition. However, this text input method can also be used with other internal or external input devices or when combining different input devices. An interesting solution for transferring text to the mobile device would be to use a scanner pen combined with speech recognition. The text is transferred using a scanner pen and the additional control instructions are given via voice commands, for example "next" for the next field, "save" for saving, etc.
Den vorgestellten Verfahren sind folgende Vorteile gemein:The methods presented have the following advantages in common:
- Sie funktionieren bei allen nachrichtengesteuerten Betriebssystemen (Windows, Unix, Windows CE, Symbian OS etc. ) , - sie ermöglichen eine schnelle und natürliche Texteingabe gegenüber herkömmlichen Eingabemöglichkeiten,
- es können sämtliche Textfelder einer Anwendung via Sprache oder anderem Eingabegerät vom Benutzer ausgeführt werden,- They work with all message-driven operating systems (Windows, Unix, Windows CE, Symbian OS etc.), - They enable fast and natural text input compared to conventional input options, - All text fields of an application can be executed by the user via voice or other input device,
- durch das Buchstabieren können alle erdenklichen Worte erstellt werden, - durch andere Eingabegeräte kann Text 1 : 1 übernommen werden,- all possible words can be created by spelling, - text can be adopted 1: 1 by other input devices,
- das Verfahren kann im dynamischen Zustand, also während der Fortbewegung des Benutzers, bedient werden,the method can be operated in the dynamic state, i.e. while the user is moving,
- eine einfache Bedienung ist auch für körperlich Behinderte möglich.- Simple operation is also possible for the physically disabled.
Der Nachweis einer Verwendung des Verfahrens ist sehr einfach. Es muss lediglich ausprobiert werden, ob ein eigenhändig erstelltes Programm nach der Installation per Sprache bearbeitet werden kann.
Proof of using the method is very simple. You only have to try out whether a hand-written program can be edited by voice after installation.