-
TECHNISCHES GEBIET
-
Die
Erfindung betrifft eine sprachgesteuerte oder sprachbasierte bzw.
voice-assisted Benutzerschnittstelle zur Dateneingabe.
-
HINTERGRUND
-
Die
meiste Software, die heutzutage im Geschäftsbereich verwendet wird,
hat die Form von komplexen grafischen Benutzerschnittstellen (GUIs; GUI
= graphical user interface). Komplexe GUIs ermöglichen Benutzern, viele Aufgaben
bzw. Tasks gleichzeitig auszuführen,
während
der Kontext ihrer restlichen Arbeit erhalten bleibt; solche Systeme
sind jedoch häufig
Maus- und Tastatur-intensiv, deren Verwendung für viele Leute, einschließlich körperbehinderter
Menschen, problematisch oder sogar unmöglich sein kann. Sprachschnittstellen
können
eine zugängliche
Lösung
für körperbehinderte
Benutzer bereitstellen, wenn Schritte unternommen werden, um inhärente Verwendbarkeitsprobleme
anzugehen, wie beispielsweise Benutzereffizienz und Mehrdeutigkeitshandhabung.
Zusätzlich
können
Sprachschnittstellen die Effizienz der Ausführung bestimmter Tasks erhöhen.
-
Es
wurden erhebliche Mittel aufgewendet, um webbasierte Anwendungen
zu entwickeln, um tragbare, platformunabhängige Frontends für komplexe
Geschäftsanwendungen
unter Verwendung beispielsweise der Hypertext Markup Language (HTML)
und/oder JavaScript bereitzustellen.
-
Da
Softwareanwendungen typischerweise nur vor dem Hintergrund der visuellen
Präsentation entwickelt
wurden, wurde Details, welche die Entwicklung von Sprachschnittstellen
vereinfachen würden,
wenig. Aufmerksamkeit geschenkt.
-
Bei
den meisten Computer- oder Datenverarbeitungssystemen wird eine
Benutzerkommunikation bzw. -interaktion nur durch Verwendung einer
Videoanzeige, einer Tastatur und einer Maus bereitgestellt. Zusätzliche
Eingabe- und Ausgabeperipheriegeräte werden
manchmal verwendet, beispielsweise Drucker, Plotter, Lichtstifte,
Kontaktbildschirme bzw. Touchscreens und Strichcodescanner; die
größte Mehrheit
von Computerinteraktionen erfolgt jedoch nur mit der Videoanzeige,
der Tastatur und der Maus. Somit wird eine primäre Mensch-Computer-Kommunikation bzw. -Interaktion
durch eine visuelle Anzeige und mechanische Betätigung bereitgestellt. Im Gegensatz
dazu ist ein erheblicher Teil der menschlichen Interaktion verbal.
Es ist wünschenswert,
die verbale Mensch-Computer-Interaktion
zu vereinfachen, um den Zugriff für behinderte Benutzer zu verbessern
und die Effizienz von Benutzerschnittstellen zu erhöhen.
-
Verschiedene
Technologien wurden entwickelt, um eine Form von Mensch-Computer-Interaktion
bereitzustellen, die von einfachen Text-zu-Sprache-Sprachsyntheseanwendungen
zu komplexeren Diktat- und Befehl-und-Steuer- bzw. Regelanwendungen
reichen. Die verschiedenen Arten von verbalen Mensch-Computer-Interaktionsanwendungen können durch
zwei Faktoren beschrieben werden: (1) das Vorhandensein oder Nichtvorhandensein
einer visuellen Komponente; und (2) das Ausmaß, in dem die zu Grunde liegende
Anwendung und Interaktion verändert
wird, wenn eine Sprachschnittstelle hinzugefügt wird.
-
Viele
Forschungsorganisationen, die verbale Mensch-Computer-Interaktionssysteme
herstellen bzw. schaffen, konzentrieren sich auf den zweiten Faktor:
Erzeugen neuer Interaktionsstile, die zusammen mit oder anstelle
von einer visuellen Anzeige verwendet werden können. Verschiedene Organisationen
haben beispielsweise die folgenden Systeme entwickelt: CommandTalk;
ATIS; TOOT und ELVIS. Jedes dieser Systeme konzentriert sich darauf,
verbesserte Modelle zur verbalen Mensch-Computer-Interaktion bereitzustellen,
die den Interaktionsstil grundlegend ändern. Beispielsweise behält CommandTalk
eine traditionelle GUI bei, während
es den Interaktionsstil grundlegend ändert, um eine Verwendbarkeit
zu verbessern. ATIS, ein Luftfahrtinformationssystem, behält eine
traditionelle visuelle Komponente bei, indem es Antworten auf Benutzeranfragen
in einem visuellen Tabellenformat präsentiert; ATIS modifiziert
jedoch herkömmliche
Interaktionsstile, indem es von einer Datenbankanfragenschnittstelle
zu einer natürlichen
Sprachanfragenschnittstelle übergeht.
Gleichermaßen
versucht TOOT, ein Zugfahrplaninformationssystem, dem Benutzer tabellarische
Daten zu präsentieren;
TOOT stellt die tabellarischen Daten jedoch durch Sprache bereit,
was den Bedarf an einer visuellen Komponente eliminiert. Schließlich wurde
das System ELVIS zum Zugreifen auf Email-Nachrichten durch Sprache mit
mehreren Interaktionsstilen getestet, die sich von der visuellen
Interaktion in verschiedenem Maße
unterscheiden. Der systeminitiative Stil macht von vielen der gleichen
Befehlsnamen Gebrauch, die bei der visuellen Schnittstelle gefunden
werden, während das
Bereitstellen eines gemischtinitiativen Stils herkömmliche
Interaktionen wesentlich verändert.
-
Viele
kommerzielle Systeme tendieren dazu, herkömmliche Interaktionsstile mit
verschiedenen Ausmaßen
von visuellen Komponenten beizubehalten. Zugriffstools bzw. Zugriffswerkzeuge
von Windows, wie beispielsweise ViaVoice und SUITEKeys spiegeln
die Tastatur/Mausinteraktion in einem größeren Maß als eines bzw. irgendeines
der oben erwähnten
Dialogsysteme wieder. SUITEKeys geht sogar so weit, die Interaktion
des Bewegens der Maus mit der Hand und des Drückens einzelner Tasten direkt
nachzuahmen. Gleichermaßen
ahmen viele Telefonanwendungen die Tastaturinteraktion direkt mit Interaktionen
nach, welche die Form von „Drücken oder
Eins sagen" annehmen.
-
„DRAGON
NATURALLY SPEAKING 5" DRAGON
NATURALLY SPEAKING USER'S
GUIDE, LERNOUT AND HAUSPIE, BE, Oktober 2000 (2000-10), Seite I-VI,
1, XP001233871, beschreibt Verfahren zum Navigieren innerhalb
eines Dokuments mittels Sprachbefehlen, z. B. zu einem Textbox-
bzw. Textfeldobjekt – mit
Blick auf ein folgendes Diktieren eines Texts, der darin eingegeben
werden soll. Seiten 123–127
betreffen das Navigieren innerhalb einer Webseite (mit einem Standardbrowser
wie dem Internet Explorer) und Seiten 125–126 lehren ein Verfahren zum
sprachauswählen
eines Textfelds innerhalb einer solchen Webseite, um Text durch Sprache
darin einzugeben. Dieses Dokument offenbart eine sprachbasierte Benutzerschnittstelle
(Internet Explorer under Dragon Naturally Speaking, siehe S.
123), umfassend: Benutzerschnittstellenelemente (siehe
die Widgets bzw. Hilfsprogramme auf den Webseiten, vgl. die Figuren
auf Seite 124 und 127-129); und eine Spracherkennungsmaschine,
die eine Spracheingabe empfängt,
die ein Zielbenutzerschnittstellenelement (Seite 126, Zeilen 1–3) identifiziert,
wobei die sprachbasierte Benutzerschnittstelle nonverbale Mehrdeutigkeiten
auflöst,
indem sie die empfangene Spracheingabe mit dem Zielbenutzerschnittstellenelement
verknüpft
bzw. assoziiert, indem sie eine aufgezählte Darstellungsbezeichnung anzeigt,
die positionesmäßig mit
dem Zielbenutzerschnittstellenelement verknüpft wird bzw. ist, nachdem
die Spracheingabe empfangen wurde (siehe Seite 126–129, insbesondere
Seite 126, Zeilen 3–7 und
die Fig. auf Seite 127–129).
-
Enorme
Mittel wurden aufgewendet, um Geschäftsanwendungen zu entwickeln,
die komplexe GUIs erfordern, um große Mengen an Informationen zu
präsentieren,
komplizierte Interaktionen innerhalb der Informationen anzuzeigen
und die Komplexität einer
Maximierung der Benutzerfähigkeit,
-konfiguration und -steuerung bzw. -regelung handzuhaben. Existierende
Anwendungen liefern einen begrenzten Support zum Steuern einer Anwendung
unter Verwendung von Sprache. Einige existierende Systeme ermöglichen
Diktat- oder begrenzte Zugriffsbefehle; es besteht jedoch ein Bedarf
an Systemen und Verfahren, um das Maß an verbaler Mensch-Computer-Interaktion
in einer herkömmlichen
Altanwendung zu erhöhen,
um eine verbesserte Zugreifbarkeit für behinderte Benutzer und eine
erhöhte
Interaktionseffizienz für
alle Benutzer bereitzustellen.
-
In
einem allgemeinen Aspekt ist eine sprachbasierte Benutzerschnittstelle
vorgesehen, umfassend:
Benutzerschnittstellenelemente, die
dem Benutzer angezeigt werden; und
eine Spracherkennungsmaschine,
die eine Spracheingabe empfängt,
welche ein Zielbenutzerschnittstellenelement identifiziert,
wobei
die sprachbasierte Benutzerschnittstelle Zielmehrdeutigkeiten auflöst, indem sie
die empfangene Spracheingabe unter Verwendung von implizitem Scoping
bzw. einer impliziten Definition des Gültigkeitsraums mit dem Zielbenutzerschnittstellenelement
verknüpft,
wobei die Benutzerschnittstelle in Bereiche unterteilt wird, die
dann priorisiert werden, und eine empfangene Spracheingabe zunächst nur bezüglich derjenigen
Benutzerschnittstellenelemente in dem Bereich interpretiert wird,
der höchste
Priorität hat.
-
Hierbei
kann ein Verfahren zum Auflösen
von Zielmehrdeutigkeit in einer sprachbasierten Benutzerschnittstelle
verwendet werden, umfassend:
Empfangen der ersten Spracheingabe,
die mehr als ein mögliches
Zielbenutzerschnittstellenelement identifiziert, das dem Benutzer
basierend auf einer Mehrdeutigkeit der Benutzerschnittstelle angezeigt wird,
um eine Zielmehrdeutigkeit darzustellen;
Auflösen der
Zielmehrdeutigkeiten umfaßt,
indem es die empfangene Spracheingabe unter Verwendung von implizitem
Scoping mit dem Zielbenutzerschnittstellenelement verknüpft, wobei
die Benutzerschnittstelle in Bereiche unterteilt wird, die dann
priorisiert werden, und eine empfangene Spracheingabe zunächst nur
bezüglich
derjenigen Benutzerschnittstellenelemente in dem Bereich interpretiert
wird, der höchste
Priorität
hat.
-
Die
sprachbasierte Benutzerschnittstelle enthält vorzugsweise Benutzerschnittstellenelemente und
eine Spracherkennungsmaschine, die eine Spracheingabe empfängt, die
ein Zielbenutzerschnittstellenelement identifiziert. Die sprachbasierte
Benutzerschnittstelle löst
Mehrdeutikgeiten auf, indem sie die empfangene Spracheingabe unter
Verwendung aufgezählter
Darstellungsbezeichnungen mit dem Zielbenutzerschnittstellenelement
verknüpft.
Die Benutzerschnittstellenelemente enthalten beispielsweise eines
oder mehrere der Folgenden: eine Combobox bzw. Kombinationsfeld
(aus Text- und Listenfeld), ein Textfeld, eine Auswahlliste bzw.
Listenbox, einen Button bzw. Schaltfläche, einen Textbereich, eine Checkbox
bzw. Ankreuzfeld oder Radiobuttons bzw. Optionsfelder (nur eine
Option kann aktiviert werden). Die Spracherkennungsmaschine kann
eine Spracheingabe empfangen, die eine Klasse bzw. Kategorie von
Benutzerschnittstellenelementen identifiziert.
-
Bei
einigen Implementierungen können
die aufgezählten
Darstellungsbezeichnungen halbdurchsichtig oder undurchsichtig bzw.
opak sein. Zusätzlich
kann die sprachbasierte Benutzerschnittstelle Mehrdeutigkeiten bei
der empfangenden Spracheingabe unter Verwendung von implizitem Scoping
bzw. einer impliziten Definition und/oder visueller Hinweise auflösen. Die
Benutzerschnittstellenelemente können
in eine oder mehrere Gruppen unterteilt sein, wie beispielsweise
Bereiche des Bildschirms. Implizites Scoping kann durch Priorisieren
der Gruppen von Benutzerschnittstellenelementen implementiert werden.
Visuelle Hinweise können
farbige Hervorhebungen, wie beispielsweise einen Farbrand, enthalten, der
ein Benutzerschnittstellenelement umgibt.
-
Vorzugsweise
enthält
eine aufgezählte
Darstellungsbezeichnung zum Auflösen
von Mehrdeutigkeiten in einer sprachbasierten Schnittstelle eine
eindeutige Kennung bzw. Identifier, ein entsprechendes Benutzerschnittstellenelement
und eine grafische Darstellung. Die grafische Darstellung wird in
der grafischen Benutzerschnittstelle dargestellt, um ihre Beziehung
zu dem entsprechenden Benutzerschnittstellenelement zu zeigen. Die
eindeutige Kennung kann verwendet werden, um Mehrdeutigkeiten in
der sprachbasierten Schnittstelle aufzulösen. Die eindeutige Kennung
kann beispielsweise ein Buchstabe, eine Zahl oder ein Schriftzeichen
sein.
-
Vorzugsweise
umfasst ein Verfahren zum Auflösen
einer Zielmehrdeutigkeit in einer sprachbasierten Benutzerschnittstelle
Empfangen einer Spracheingabe, die ein Zielbenutzerschnittstellenelement auf
mehrdeutige Weise identifiziert, Anzeigen von aufgezählten Darstellungsbezeichnungen,
die jedem möglichen
Zielbenutzerschnittstellenelement entsprechen, wobei jede aufgezählte Darstellungsbezeichnung
eine eindeutige Kennung enthält,
und Empfangen einer Benutzerspracheingabe einschließlich der
eindeutigen Kennung einer aufgezählten
Darstellungsbezeichnung, um die Zielmehrdeutigkeiten aufzulösen.
-
Zudem
enthält
die sprachbasierte Benutzerschnittstelle vorzugsweise Benutzerschnittstellenelemente,
einen Datenspeicher und eine Spracherkennungsmaschine. Der Datenspeicher
zeichnet Verknüpfungen
bzw. Assoziationen zwischen Benutzerschnittstellenelementen und
Grammatiken auf. Die Spracherkennungsmaschine empfängt eine
Spracheingabe, die ein Zielbenutzerschnittstellenelement identifiziert,
fragt den Datenspeicher ab, um eine Grammatik zu bestimmen, die
mit dem Zielbenutzerschnittstellenelement verknüpft ist, und verarbeitet eingegebene
Daten unter Verwendung der bestimmten Grammatik. Der Datenspeicher
kann für
einen einzelnen Benutzer oder für
mehrere Benutzer zugreifbar sein. Ein einzelner Benutzer kann ein
Dateneingabefeld mit einer Grammatik in einem Datenspeicher, der
für mehrere
Benutzer zugreifbar ist, verknüpfen.
Visuelle Hinweise können
verwendet werden, um einen Datentyp oder eine Grammatik zu identifizieren,
der bzw. die mit dem Zielbenutzerschnittstellenelement verknüpft ist.
-
Die
Details einer oder mehrerer Implementierungen sind in den beiliegenden
Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale
und Vorteile werden anhand der Beschreibung und der Zeichnungen
sowie anhand der Ansprüche
ersichtlich.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm einer sprachbasierten Computeranwendung unter
Verwendung eines Voice-Extension-Moduls bzw. Spracherweiterungsmoduls.
-
2 ist
ein Blockdiagramm eines Spracherweiterungsmoduls, das einen Vorprozessor,
eine Spracherkennungsmaschine und eine Eingabehandhabeeinrichtung
bzw. -handler aufweist.
-
3 ist
ein Flussdiagramm, das ein Verfahren zum Verarbeiten von Benutzerschnittstelleninformationen
in einem Spracherweiterungsmodul zeigt.
-
4 ist
ein Bildschirmausdruck, der eine Gehen-Anforderungsanwendung bzw. leave-request-Anwendung
zeigt.
-
5 ist
ein Bildschirmausdruck, der eine Gehen-Anforderungsanwendung zeigt,
die eine Listenauswahl illustriert.
-
6 ist
ein Flussdiagramm, das die Verwendung von implizitem Scoping zum
Auflösen
von Zielmehrdeutigkeiten in einer Sprachschnittstelle zeigt.
-
7–18 sind
Bildschirmausdrucke eines sprachbasierten Zeiterfassungssystems,
das implizites Scoping, visuelle Hinweise und aufgezählte Darstellungsbezeichnungen
verwendet, um Zielmehrdeutigkeiten aufzulösen.
-
DETAILLIERTE BESCHREIBUNG
-
Eine
Benutzerschnittstelle zu einer Softwareanwendung oder einer elektronischen
Vorrichtung kann durch Sprachbasieren bzw. Voice-enablen von Benutzerinteraktionen
und Dateneingabe verbessert werden. Sprachbasierte Softwareanwendungen
können
eine bessere Verwendbarkeit und Effizienz für einen Benutzer bereitstellen.
Zusätzlich
können sprachbasierte
Softwareanwendungen eine bessere Zugänglichkeit für körperbehinderte
Benutzer bereitstellen.
-
Die
unten beschriebene Implementierung stellt Verfahren zum Sprachbasieren
eines elektronischen Zeiterfassungssystems dar. Bei dieser Implementierung
ist das elektronische Zeiterfassungssystem auf einer webbasierten
Client-Server-Architektur aufgebaut. Fachleute werden erkennen,
dass die beschriebenen Verfahren nicht auf diese Implementierung
begrenzt sind und bei einer beliebigen Benutzerschnittstelle verwendet
werden können.
-
Mit
Bezug auf 1 enthält eine sprachbasierte Computerschnittstelle
(100) ein Voice-Extension-Modul bzw. Spracherweiterungsmodul 102 und einen
Browser 104. Der Browser implementiert die Benutzereingabe
und -ausgabefunktionalität
beispielsweise unter Verwendung der folgenden Vorrichtungen: einem
Videoanzeigemonitor 106; einer Maus 107; einer
Tastatur 108; und einem Lautsprecher 109. Das
Spracherweiterungsmodul 102 kann eine Eingabe von einem
Mikrofon empfangen 110. Der Browser 104 und/oder
das VoicSpracherweiterungsmodul 102 können Benutzerschnittstellendaten über ein
Netzwerk 120 (z. B. das Internet) von einem Anwendungsserver 130 empfangen.
-
Bei
der in 1 gezeigten Implementierung stellt der Anwendungsserver 130 eine
webbasierte Benutzerschnittstelle unter Verwendung eines Hypertext
Markup Language(HTML)-Codes bereit, um den Browser 104 anzuweisen,
Informationen anzuzeigen und Benutzereingaben und Befehle zu akzeptieren.
Der Browser 104 kann unter Verwendung eines herkömmlichen
Webbrowsers implementiert sein, wie beispielsweise dem Microsoft
Internet Explorer. Der Anwendungsserver 130 sendet HTML-Codes,
die verschiedene Text-, Bild- und Benuzterschnittstellenwidgets
bzw. -hilfsprogramme beschreiben, zur Anzeige an den Benutzer. Der HTML-Code
wird jedoch zunächst
von dem VoicSpracherweiterungsmodul 102 empfangen und verarbeitet,
um die Anwendung sprachbasiert zu machen.
-
Ein
Spracherweiterungsmodul 102 kann als ein Microsoft Internet
Explorer Browser Helper Object (BHO) implementiert sein. Ein BHO
wirkt als eine Erweiterung der Funktionalität zu einem Browser und wird
verwendet, um Seiten- und Browserereignisse abzufangen, bevor eine
Handlung ausgeführt
wird. Dies ermöglicht
dem Spracherweiterungsmodul 102, das Verhalten der Browser 104-Umgebung und die Art,
auf die Ereignisse (z. B. Mausklicks, Tastendrücke) gehandhabt werden, zu
definieren und zu steuern bzw. zu regeln. Zudem erlaubt ein BHO
dem Spracherweiterungsmodul 102, auf externe Ereignisse
anzusprechen, beispielsweise wenn ein Wort gesprochen wird, dadurch
dass eine Spracherkennungsmaschine in dem BHO eingebettet ist. Bei
dieser Implementierung kann eine beliebige Spracherkennungsmaschine
(z. B. eine SAPI-konforme Spracherkennungsmaschine) verwendet werden,
um Spracherkennungsereignisse zu erzeugen.
-
Wie
in 2 gezeigt enthält
eine Implementierung des Spracherweiterungsmoduls 102 einen Browser 104 (mit
einem Vorprozessor 200), der Benutzerschnittstelleninformationen
von einem Anwendungsserver 130 beispielsweise als HTML-
oder Java Script-Code empfängt
und die Benutzerschnittstelleninformationen vorverarbeitet, um eine
Sprachinteraktion zu ermöglichen,
bevor die Seite dem Benutzer angezeigt wird. Der Vorprozessor 200 enthält einen
Parser 202 und einen Übersetzer 204.
Der Parser 202 identifiziert Benutzerschnittstellenelemente
in dem Code unter Verwendung beliebiger, herkömmlicher Parsingverfahren,
wie beispielsweise einer finiten Zustandsmaschine.
-
Benutzerschnittstelleninformationen
in Form einer HTML-Webseite können
beispielsweise verschiedene Widgets in Form von Textfeldern, Passwortfeldern,
Checkboxen bzw. Ankreuzfeldern, Radiobuttons bzw. Optionsfeldern
und Steuerbuttons bzw. Steuerschaltflächen (z. B. Senden und Zurücksetzen)
enthalten. Der Parser 202 empfängt die Benutzerschnittstelleninformationen
und leitet sie an den Übersetzter 204 weiter,
um das relevante Vokabular ordnungsgemäß bei der Spracherkennungsmaschine 210 und
der Eingabehandhabeeinrichtung 220 zu registrieren.
-
Der Übersetzer 204 bestimmt,
welche der identifizierten Benutzerschnittstellenelemente „sprechbar" sind. Ein Vokabular
sprechbarer Elemente wird bei der Spracherkennungsmaschine 210 registriert,
so dass geeignete Ereignisse erzeugt werden, wenn die Elemente gesprochen
werden. Zusätzliche Änderungen
können
an dem in dem Browser 104 laufenden HTML oder JavaScript
vorgenommen werden, bevor es dem Benutzer präsentiert wird, um die Seiten „sprachfreundlicher" zu machen. Beispielsweise
kann der Übersetzer 204 den
Elementen Kennungen bzw. Identifier hinzufügen. Einige Elemente können XML-Daten oder Metadaten enthalten,
die eine geeignete Sprachkennung für das Element bezeichnen. Diese
Metadaten können
eine geeignete Kennung bestimmen, die dem Element hinzugefügt werden
kann, um es sprachfreundlicher zu machen. Zusätzlich können einige Kennungen abgekürzt werden.
Bei Elementen, die abgekürzte
Kennungen enthalten, kann der Übersetzer 204 die
abgekürzte
Kennung, die Langform der Kennung oder beides bei der Spracherkennungsmaschine 210 registrieren.
Schließlich
kann der Übersetzter 204 versuchen,
die langen Kennungen zu kürzen.
Eine Art, Kennungen zu kürzen,
besteht darin, nur einen Teil der langen Kennung zu registrieren.
Wenn die Kennung beispielsweise lautet „Änderungen zur Verarbeitung
senden", kann sie
zu „Senden" oder „Änderungen
senden" verkürzt werden.
-
Sobald
ein registriertes Vokabularelement gesprochen und erkannt wurde,
wird der Ausruck an die Eingabehandhabeeinrichtung 220 gesendet,
welche die notwendigen Schritte einleitet, um die Aktion zu vervollständigen,
jeden erforderlichen Zustand zu speichern und zusätzliche
Aufgaben bzw. Tasks auszuführen,
die definiert sind durch das Verhalten der Sprachbenutzerschnittstelle
oder die visuelle Fokussierung, die bei der Gesamtsprachschnittstellenstrategie
verwendet werden. Die Eingabehandhabeeinrichtung 220 hilft
sicherzustellen, dass die gleiche Aktion ausgeführt wird, unabhängig davon,
ob die Quelle die Maus oder die Tastatur, oder ein äquivalenter Sprachbefehl
war.
-
Mit
Bezug auf 3 macht das Spracherweiterungsmodul 102 eine
Benutzerschnittstelle durch Empfangen von Benutzerschnittstelleninformationen 3010 sprachbasiert,
welche die Komponenten der durch einen Benutzer manipulierbaren
Schnittstelle beschreiben (Schritt 3015). Bei dieser Implementierung
werden die Benutzerschnittstelleninformationen 3010 als
ein HTML-Dokument dargestellt, das verschiedene Benutzerschnittstellenelemente
oder -widgets enthalten kann, die von einem Benutzer gesteuert werden
können.
Die Benutzerschnittstelleninformationen 3010 können ebenfalls
einen JavaScript-Code oder einen beliebigen anderen Steuermechanismus
enthalten, der herkömmlicherweise von
Webbrowsern verwendet wird.
-
Die
Benutzerschnittstelleninformationen 3010 werden von dem
Spracherweiterungsmodul 102 empfangen und dann von dem
Vorprozessor 200 verarbeitet. Der Vorprozessor 200 parst
die empfangenen Benutzerschnittstelleninformationen 3010 unter
Verwendung des Parsers 202 (Schritt 3020). Bei jedem
von dem Parser 202 identifizierten Benutzerschnittstellenelement
verarbeitet der Übersetzter 204 das
Element, um es sprachbasiert zu machen. Solange Benutzerschnittstellenelemente übrig sind
(Schritt 3030), verarbeitet das System das nächste Element (Schritt 3050).
Sobald jedes Benutzerschnittstellenelement verarbeitet wurde, wird
die Benutzerschnittstelle von dem Browser 104 angezeigt.
Der Übersetzter 204 verarbeitet
jedes Benutzerschnittstellenelement durch Registrieren eines geeigneten
Vokabulars bei der Spracherkennungsmaschine 210 und durch
Registrieren der Benutzerschnittstellenelemente bei der Eingabehandhabeeinrichtung 220.
-
Beispielsweise
kann das folgende Benutzerschnittstellenelement von dem Spracherweiterungsmodul 102 empfangen
werden: „< INPUT TYPE = 'button' NAME = 'but_xyz 'VALUE = 'save changes'>". Dieses
Benutzerschnittstellenelement zeigt einen Button an, der es einem
Benutzer erlaubt, das Speichern von Änderungen zu initiieren. Der Übersetzer 204 verarbeitet
dieses Element, indem er „SAVE CHANGES" (Änderungen
Speichern) bei der Spracherkennungsmaschine 210 registriert.
Dies würde ebenfalls
bei der Eingabehandhabeeinrichtung 220 als ein Buttonfeld
registriert werden, so dass ein Benutzer durch Sprechen von „BUTTON" auf das Feld zugreifen
kann. Die Eingabehandhabeeinrichtung, die einen Buttonbefehl empfängt, identifiziert
alle aktiven Buttons, was dem Benutzer ermöglicht, den gewünschten
Button durch eine Zahl zu wählen.
Dies erlaubt ein alternatives Verfahren, um auf einen benannten
Button zuzugreifen; dieses Verfahren kann jedoch die einzige Möglichkeit
sein, auf nicht benannte Buttonelemente zuzugreifen.
-
Dateneingabetasks
beinhalten viele Elemente (oder Widgets), die eine Benutzersteuerung
erfordern. Eine Dateneingabe findet üblicherweise unter Verwendung
einer Maus und/oder einer Tastatur statt, und das beabsichtigte
Ziel kann allgemein leicht durch die physische Interaktionskomponente
der Zeigevorrichtung bestimmt werden. Bei einer Sprachschnittstelle
müssen
typischerweise andere Fokussierungs- und Auswahlverfahren verwendet
werden, um potentielle Ziele zu bestimmen.
-
Viele
Datenwidgets innerhalb von Anwendungen, wie beispielsweise Bildlaufleisten
bzw. Scrollbars, Buttons und Textfelder, haben entweder keine Namen
(ebenfalls als nicht benannte Elemente bezeichnet, z. B. da sie
einer bestimmten, nicht benannten Tabelle oder Reihe zugeordnet
sind), haben mehrdeutige Namen (z. B. da mehr als ein Feld als „ID-Nummer" bezeichnet ist),
oder scheinen Namen auf einer visuellen Anzeige zu haben, sind aber
durch den Code nicht leicht mit diesen Namen zu verknüpfen, da
der Text in einem von dem Widget völlig unterschiedlichen Modul
erscheint.
-
Ein
Verfahren besteht darin, eine implizite Navigation in Verbindung
mit einem gattungsgemäßen bzw.
allgemeinen Verfahren zum Adressieren von Dateneingabewidgets zu
verwenden. Eine implizite Navigation ist in der folgenden Veröffentlichung beschrieben:
James, F. und Roelands, J., Voice over Workplace (VoWP): Voice Navigation
in a Complex Business GUI. ASSETS 2002, (Edinburgh, Schottland,
2002). Kurz gesagt priorisiert eine implizite Navigation Bildschirmbereiche,
um die Möglichkeit
einer Mehrdeutigkeit zu minimieren. Ein Benutzerschnittstellenbildschirm
kann in mehrere Bereiche unterteilt werden, die priorisiert werden
bzw. sind. Benutzerinteraktionen und Bildschirmupdates modifizieren
die Priorisierung, um die Benutzerschnittstellen sprachfreundlicher
zu machen.
-
Ein
allgemeiner Zugriff auf Schnittstellenelemente wird durch Adressieren
von Elementen nach Typ bereitgestellt. Um beispielsweise ein Textfeld
in einer gegebenen Anwendung zu erreichen, sagt ein Benutzer einfach „Textfeld". Wenn es mehr als
ein Textfeld in dem aktuellen Fokusbereich gibt, wird diese wie
jede andere Mehrdeutigkeit behandelt; überlagerte Bezeichnungen werden
präsentiert,
um dem Benutzer zu ermöglichen,
das beabsichtigte Ziel auszuwählen.
Obwohl bei diesem Ansatz eine Elementauswahl meistens in zwei Schritten
erfolgt, erlaubt er dem Benutzer, jedes Element auf dem Bildschirm
effizient anzunavigieren. Wenn der Benutzer keines der überlagerten
Elemente auswählen
möchte,
kann der Benutzer die Icons auch verwerfen, indem er „Abbrechen" sagt. Auf Elemente,
auf die durch einen Namen zugegriffen werden kann (beispielsweise
Buttons), kann ebenfalls unter Verwendung dieses gattungsgemäßen bzw.
allgemeinen Verfahrens zugegriffen werden, um eine Schnittstellenkonsistenz
sicherzustellen und Alternativen im Fall einer verschlechterten
Erkennungsleistung zu ermöglichen.
-
Sobald
ein Element ausgewählt
wurde, wenn es ein Icon, Button, Radiobutton oder eine Checkbox ist,
verhält
sich die Schnittstelle so, als ob das Element mit der Maus angeklickt
worden wäre.
Bei Comboboxen bzw. Kombinationsfeldern werden die Optionen in der
Liste angezeigt, so dass der Benutzer eine Auswahl treffen kann.
Textfelder werden durch einen farbigen Rahmen hervorgehoben und
der aktive Cursor wird in diese plaziert, um zu signalisieren, dass
der Benutzer in den Dateneingabemodus für das Feld übergegangen ist.
-
Eine
alternative Lösung
zum Handhaben unbenannter Elemente besteht darin, allen Elementen eindeutige
Namen hinzuzufügen,
wenn die Seite dem Benutzer das erste Mal präsentiert wird, anstatt von
dem Benutzer zu verlangen, zunächst
den Elementtyp zu nennen, um zu bewirken, dass die numerierten überlagerten
Bezeichnungen erscheinen.
-
Ein
Problem, das mit Sprachschnittstellen verbunden ist, besteht darin,
eine Dateneingabe von Befehlen zu unterscheiden. Wenn ein Benutzer
beispielsweise ein mehrzeiliges Textfeld auswählt, kann angenommen werden,
dass der Benutzer in einen Dateneingabemodus übergehen und einen Text eingeben
möchte.
Jedoch ist ein Verfahren zum Bestimmen, wann die Eingabe beendet
ist und der Benutzer die Navigation wieder aufnehmen kann, erforderlich. Dies
kann auf mehrere Arten erreicht werden.
-
Beispielsweise
besteht eine Option darin, einen expliziten Befehl zum Beenden der
Dateneingabe zu verwenden. Dies erfordert die Verwendung eines Codeworts
oder Ausdrucks, wie beispielsweise „Dateneingabe beenden". Bei mehrzeiligen
Textfeldern, wo der Benutzer über
die volle Bearbeitungskontrolle verfügen möchte, kann dies die beste Lösung sein,
da große
Dateneingabetasks dieser Art dann als ein separater Modus behandelt
würden,
der manuell bearbeitet werden muss.
-
Eine
Variante dieser Idee ist es, dass das System auf mehrere Schlüsselwörter hört, wie
beispielsweise die Namen anderer Ziele in der Schnittstelle. Eine
Art, dies zu erreichen, besteht darin, mehrere parallele Erkenner
einzusetzen, wobei jeder Erkenner auf unterschiedliche Schlüsselwörter hört. Dieses
Verfahren erhöht
jedoch die Wahrscheinlichkeit, dass eine Dateneingabe falsch als
Befehl interpretiert wird und der Dateneingabemodus zu früh verlassen
wird.
-
Gleichermaßen kann
eine Pause oder Auszeit zum Beenden der Dateneingabe verwendet werden.
Leider ist dieses Verfahren häufig
schwierig für Benutzer,
da das Ende der Dateneingabe leicht durch eine Denkpause, was man
als nächstes
sagen möchte,
ausgelöst
werden kann. Dieses Verfahren kann nutzbarer gemacht werden, indem
dem Benutzer visuelle Hinweise bereitgestellt werden.
-
Eine
weitere Option besteht darin, Feldern geeignete Grammatiken zuzuordnen,
um den Bedarf eines Diktats wann immer möglich zu eliminieren. Dieses
Verfahren ist in Situationen nützlich,
in denen das Feld etwas Bestimmtes erwartet, beispielsweise ein
Datum. Es erfordert jedoch eine Möglichkeit, den vom Feld erwarteten
Datentyp und das Format, für welches
die Anwendung die zu präsentierenden
Daten erwartet, zu bestimmen. Es muss dann eine geeignete Grammatik
zuordnen, möglicherweise
aus einem Pool gängiger
Grammatiken, und zudem die geeignete, anzuwendende Formatierung
bestimmen, bevor die Daten in das Element eingegeben werden. Dann
kann das System die Schnittstelle automatisch darauf einstellen,
zu erwarten, eine bestimmte Art von Dateneingabe zu hören, sobald
das Feld ausgewählt
ist, und in den standardmäßigen Steuermodus zurückzukehren,
sobald eine Eingabe erfolgt ist.
-
Eine
Erkennungsgrammatik für
ein Textfeld kann ebenfalls während
der Laufzeit von einem Benutzer unter Verwendung eines Verfahrens
von „klebrigen
Grammatik-Vorgaben
bzw. sticky grammar defaults" verwendet
werden. Wenn ein Benutzer beispielsweise das erste Mal auf ein Feld
trifft, kann er angeben, dass eine Datumsgrammatik verwendet werden
soll. Bei einem darauffolgenden Zugriff auf das Feld (selbst während unterschiedlicher
Sitzungen) kann das System dann auf die Datumsgrammatik zurückgreifen,
wenn der Benutzer mit dem gleichen Benutzerschnittstellenelement
interagiert. Bei einigen Implementierungen werden sticky grammar defaults
als eine Datei auf dem lokalen Computer unabhängig von dem Quelldokument
gespeichert, und zwar auf im Wesentlichen die gleiche Art und Weise, wie
ein Browser besuchte Webseiten, Benutzernamen, Passwörter und
andere Daten speichern kann. Bei einer exemplarischen Implementierung
kann die Datei an andere Benutzer verteilt werden.
-
Das
oben beschriebene klebrige Grammatik- bzw. sticky grammar-Verfahren
stützt
sich auf die Verwendung vordefinierter Grammatiken, um eine Spracherkennung
zu verbessern. Eine Grammatik ist eine Spezifikation von Wörtern und/oder
erwarteten Mustern von Wörtern,
auf die ein Spracherkenner hört.
Eine Datumsgrammatik kann beispielsweise einen Monat gefolgt von
einem Tag gefolgt von einem Jahr angeben. Eine Grammatik für die Combobox kann
die in der Combobox auswählbaren
Optionen und eventuell einige Steuerausdrücke enthalten. Durch die Verwendung
von Grammatiken erhöht
sich die Genauigkeit und Effizienz der Spracheingabe erheblich.
Dies ist darauf zurückzuführen, dass
es viel leichter ist zu erkennen, welches von zehn Wörtern gesprochen
wurde, anstatt zu bestimmen, welches von tausend (oder Zehntausenden
von) Wörtern
gesprochen wurde.
-
Sticky
grammar defaults können
von einem Benutzer ausgewählt
und auf eine Art und Weise gespeichert werden, die für das Spracherweiterungsmodul
oder den Browser zugänglich
ist. Klebrige Grammatiken bzw. sticky grammars können auch auf Supportgruppen-,
Orts- oder Globalvorgaben für
einen bestimmten Satz von Anwendungen ausgeweitet werden. Beispielsweise
könnte
ein Benutzer an einem Ort jede Webseite besuchen, die regelmäßig an dem
Ort verwendet wird, indem er die entsprechenden Grammatiken für die Benutzerschnittstellenelemente
auswählt.
Die ausgewählten
Grammatiken können
dann als sticky grammar defaults für zukünftige Benutzer dienen.
-
Die
klebrige, vorgegebene Grammatik bzw. sticky default grammar für ein Schnittstellenelement kann
auch basierend auf Daten ausgewählt
werden, die in das Benutzerschnittstellenelement eingegeben werden.
Dies kann für
Benutzer die Last verringern, jeden Bildschirm individuell anpassen
zu müssen. Wenn
eine bestimmte Anwendung beispielsweise erfordert, dass ein gewisses
Textfeld „Kundenname" lauten soll, dann
kann eine spezifische Eingabegrammatik für dieses Feld festgelegt und
als eine klebrige Vorgabe bzw. sticky default bereitgestellt werden.
Unabhängig
von dem Verfahren, das zum Bestimmen verwendet wird, wann eine Eingabe
endet, können
visuelle Hinweise verwendet werden, um dem Benutzer anzuzeigen,
in welchem Modus er oder sie sich befindet, und vielleicht die erwartete Grammatik
anzuzeigen. Beispielsweise kann ein blauer Rahmen um das Textfeld
gelegt werden, sobald es ausgewählt
wurde, um dem Benutzer anzuzeigen, dass das System eine Eingabe
für das
Feld erwartet. Dies bestätigt
nicht nur die Auswahl eines bestimmten Felds durch den Benutzer,
sondern es erinnert den Benutzer auch daran, dass er oder sie als
nächste
Aktion Daten für
das Feld eingeben muss.
-
Es
können
auch unterschiedliche visuelle Hinweise verwendet werden, um dem
Benutzer eine zusätzliche
Anzeige zu liefern, dass das Datenfeld ein bestimmter bekannter
Typ ist. Wenn ein Benutzer beispielsweise mit einer Textbox bzw.
Textfeld interagiert, kann die Rahmenfarbe um das Datenfeld herum
blau sein, wenn er auf das Datenfeld trifft, oder grau sein, wenn
auf ein freies Textdiktatfeld gegangen wird. Dies kann dem Benutzer
durch Anzeigen des erwarteten Datentyps oder -formats helfen, wenn sticky
defaults verwendet werden. Zusätzliche
Befehle können
dem Benutzer zur Verfügung
stehen, um die sticky default für
ein gegebenes Feld zu ändern. Eine
Dialogbox bzw. Dialogfeld oder andere Interaktionsverfahren können dann
verwendet werden, um den Benutzer darüber zu informieren, welche
Datentypen zur Verfügung
stehen und ihm zu erlauben, den geeignetsten auszuwählen.
-
4 stellt
eine exemplarische Geschäftsanwendungsbenutzerschnittstelle
für eine
Gehen-Anforderungsanwendung unter Verwendung der oben beschriebenen
Verfahren dar. Die Buttons auf dem Bildschirm 400 (help
button bzw. Hilfebutton 402, vacation balance button bzw.
Urlaubskontobutton 404, replace button bzw. Ersetzenbutton 406 und send
button bzw. Sendenbutton 408) können durch Sprechen ihrer Namen
aktiviert werden. Idealerweise sind auch die übrigen Benutzerschnittstellenelemente
durch Nennen ihrer Namen zugreifbar; es ist jedoch häufig schwierig
oder unmöglich,
den geeigneten Text mit dem Schnittstellenelement zu verknüpfen. Die übrigen Felder
(absence type-Feld bzw. Abwesenheitsgrund-Feld 410, absent
from-Feld bzw. Abwesend-von-Feld 412, absent to-Feld bzw.
Abwesend-bis-Feld 414 und note-Feld bzw. Anmerkungsfeld 416)
können
eingebettete Bezeichnungen oder Namen enthalten, die sich von Text
unterscheiden, der nahe den Feldern plaziert wird. Das note-Feld 416 kann
beispielsweise unter Verwendung des folgenden HTML-Codes definiert
werden: „< TEXTAREA NAME = 'ABNOTE' ROWS = 4 COLS =
20 >". Manchmal ist es
nicht möglich,
ein Feld mit einer Bezeichnung auf dem Bildschirm nur durch Parsen
eines HTML-Codes zu verknüpfen.
Es wäre
beispielsweise schwierig für
das System, den „Note"-Text mit dem note-Feld 416 zu
verknüpfen.
In solchen Fällen kann
der Ersteller der Webseite XML oder andere Daten einbeziehen, so
dass das System eine geeignete Spracherkennung für das Feld bestimmen kann.
-
Das
absence type-Feld 410 verwendet eine Dropdown-Liste (Combobox)
zur Dateneingabe. Um dieses spezielle Element zu fokussieren, sagt
der Benutzer „Combobox". Dies wird allgemein
alle Comboboxen mit durchsichtigen Überlagerungen numerieren, um
eine Benutzerauswahl zu ermöglichen.
Da es auf diesem Bildschirm nur eine Combobox gibt, wird der Fokus
automatisch darauf gerichtet bzw. verschoben. Die Liste ist bzw.
wird hervorgehoben und die zur Verfügung stehenden Auswahlen werden
angezeigt. Die Vorgabe für
das System ist es bzw. wird es sein, den nächsten Befehl als eine Option
aus der Liste zu interpretieren.
-
Das
absent from-Feld 412 und absent to-Feld 414 sind
beide im Grunde genommen Textfelder mit verknüpften Infobuttons, welche die
Auswahl aus einem anderen Widget, in diesem Fall einem Kalender,
erlauben. Wenn der Benutzer Text in diese Felder eingeben möchte, kann
er „Textfeld" sagen. Dies bewirkt,
dass durchsichtige Überlagerungen (die
einen identifizierbaren Buchstaben oder eine Zahl enthalten) für alle drei
Textfelder angezeigt werden: die beiden Textfelder, die sich auf
Datumsangaben beziehen, und auch das Textfeld für Anmerkungen. Der Benutzer
wählt eine
Nummer aus, um das gewünschte
Feld zu wählen.
An diesem Punkt liegt der Fokus auf dem Textfeld und der Benutzer
kann das entsprechende Datum, in dieses diktieren.
-
Das
note-Feld 416 kann gleichermaßen unter Verwendung von Sprachbefehlen
aktiviert werden; der Textbereich enthält jedoch auch eine Scrollbar.
Wenn somit das note-Feld 416 aktiviert wird, steht ein
Scrollbar-Sprachbefehl zur Verfügung,
der dem Benutzer ermöglicht,
innerhalb des aktivierten note-Felds 416 hoch und runter
zu scrollen.
-
5 stellt
einen Bildschirm 400 dar, nachdem der Benutzer „Combobox" gesagt hat. Das
Feld wird mit einem visuellen Hinweis aktiviert, in diesem Fall
einer blauen Box, die das Feld umrahmt, und die verfügbaren Optionen
werden dem Benutzer angezeigt. Der Benutzer kann dann eine Option
auswählen,
indem der den angezeigten Text liest. Beispielsweise kann der Benutzer „wedding
day" bzw. „Hochzeitstag" oder „sick day" bzw. „Krankheitstag" sagen, um die entsprechende
Option auszuwählen.
-
Der
Benutzer kann dann Datumsangaben in das absent from-Feld 412 und
das absent to-Feld 414 eingeben, indem er „Textfeld" sagt. Dies bewirkt, dass
die drei Textfelder numeriert oder anderweitig auf dem Bildschirm
hervorgehoben werden, so dass der Benutzer dann das gewünschte Textfeld
auswählen
kann. Das System kann beispielsweise eine durchsichtige Überlagerung
auf die drei Textfelder legen, wobei jede Überlagerung eine Nummer angibt. Der
Benutzer kann dann die Nummer vorlesen, um das gewünschte Feld
auszuwählen.
-
Der
Benutzer kann zum Eingeben eines Datums mit dem System interagieren,
indem er „Textfeld" und „Eins" sagt, um den Fokus
auf das „absent from"-Feld 412 zu
verschieben. Dann kann der Benutzer das Datum angeben, indem er „Oktober
Vier Zwei Tausend Eins" sagt.
Die Spracherkennungsmaschine 210 kann eine Datumserkennungsgrammatik verwenden,
die durch den Übersetzer 204 registriert ist,
um eine Spracheingabe zu erkennen. Der Übersetzer 204 formatiert
dann die erkannten Zahlen in das geeignete Datumsformat zur Verwendung
durch die Anwendung.
-
6 stellt
ein sprachbasiertes System dar. Komplexe sprachbasierte Anwendungen
haben manchmal Schwierigkeiten, Mehrdeutigkeiten von Benutzeraktionen
aufzulösen.
Bei einer physischen Interaktion mit einer Maus oder anderen Zeigevorrichtung
geben Benutzer den Fokus ihrer Aktionen direkt durch Klicken auf
das interessierende Element an. Bei einer sprachbasierten Anwendung
ist es nicht immer einfach, jedes Benutzerschnittstellenelement eindeutig
zu identifizieren. Beispielsweise kann eine Benutzerschnittstelle
mehrere Buttons mit der Bezeichnung „Suchen" oder mehrere Textfelder mit keinen
einfachen Kennungen enthalten. Diese Mehrdeutigkeit wird manchmal
als Zielmehrdeutigkeit bezeichnet, da das Ziel einer Benutzeraktion
mehrdeutig ist und aufgelöst
werden muss.
-
Das
sprachbasierte System verwendet drei Verfahren, um Zielmehrdeutigkeiten
aufzulösen:
(1) visuelle Hinweise identifizieren den aktuellen Fokusbereich;
(2) implizites Scoping bzw. eine implizite Definition priorisiert
Bildschirmbereiche, um die Wahrscheinlichkeit von Mehrdeutigkeiten
zu minimieren; und (3) aufgezählte
Darstellungsbezeichnungen ermöglichen
Benutzern, Mehrdeutigkeiten explizit aufzulösen. Einzeln oder in Kombination
können
diese Verfahren, die unten detaillierter beschrieben werden, Zielmehrdeutigkeiten
bei sprachbasierten Schnittstellen reduzieren oder eliminieren.
-
Visuelle
Hinweise enthalten einen beliebigen Indikator, der zum Reduzieren
einer Zielmehrdeutigkeit verwendet wird. Beispielsweise können ein
Bildschirmbereich oder ein Benutzerschnittstellenelement hervorgehoben,
umrahmt oder anderweitig als das bevorzugte oder erwartete Ziel
visuell identifiziert werden. Zielmehrdeutigkeiten können dann
zu Gunsten des durch einen visuellen Hinweis angezeigten Bildschirmbereichs
oder Benutzerschnittstellenelements aufgelöst werden.
-
Ein
implizites Scoping reduziert Zielmehrdeutigkeiten durch Unterteilen
und Priorisieren von Abschnitten der Benutzerschnittstelle. Eine
komplexe Benutzerschnittstelle kann mehrere Komponenten, einschließlich einer
Navigationsleiste, einer Headerleiste und einen oder mehrere Anwendungsbildschirmbereiche
enthalten. Beispielsweise kann eine Portalwebseite eine Navigationsleiste
auf der linken Seite des Bildschirms, eine Headerleiste oben und mehrere
Anwendungsbildschirmbereiche enthalten, von denen jeder Anwendungsbildschirmbereich
eine Schnittstelle zum Ausführen
unterschiedlicher Tasks bereitstellt. Die verschiedenen Bildschirmbereiche können durch
Priorisieren jedes Bereichs implizit gescopt werden.
-
Bildschirmbereichprioritäten können von dem
Entwickler der Benutzerschnittstelle explizit angegeben werden oder
sie können
automatisch basierend auf Heuristik bzw. irgendeiner Heuristik ausgewählt werden.
Bildschirmbereiche können
beispielsweise in der folgenden Reihenfolge priorisiert werden:
(1) die Anwendungsbildschirmbereiche, von oben nach unten, links
nach rechts priorisiert; (2) die Navigationsleiste; und (3) die
Headerleiste. Somit werden Zielmehrdeutigkeiten zwischen der Navigationsleiste
und der Headerleiste zu Gunsten der Navigationsleiste aufgelöst. Gleichermaßen werden Mehrdeutigkeiten
zwischen der Navigationsleiste und dem Anwendungsbildschirmbereich
zu Gunsten des Anwendungsbildschirmbereichs aufgelöst.
-
Schließlich können aufgezählte Darstellungsbezeichnungen
zum Auflösen
von Mehrdeutigkeiten verwendet werden, die nicht anderweitig aufgelöst werden
können.
Unter Verwendung dieses Verfahrens identifiziert die sprachbasierte
Schnittstelle jedes mögliche
Ziel auf eine Benutzerspracheingabe hin. Die möglichen Ziele werden aufgezählt und
dem Benutzer gegenüber
identifiziert, so dass der Benutzer das gewünschte Ziel auswählen kann.
Wenn beispielsweise drei Textfelder mögliche Ziele sind, können die
Ziele mit „1 ", „2" und „3" numeriert werden.
Die Zahlen werden in der Schnittstelle angezeigt, so dass der Benutzer
dann wählen kann,
welches Textfeld das gewünschte
Ziel ist.
-
Die
aufgezählten
Darstellungsbezeichnungen können
halbdurchsichtige Überlagerungen
sein, die über
die entsprechenden Benutzerschnittstellenelemente gelegt werden.
Die Verwendung halbdurchsichtiger Überlagerungen ermöglicht der
sprachbasierten Schnittstelle, die möglichen Ziele zu identifizieren,
ohne die präsentierte
Schnittstelle wesentlich zu beeinträchtigen, da Benutzer die darunterliegenden
Schnittstelleninformationen durch die halbdurchsichtigen Überlagerungen
sehen können.
-
Mit
Bezug auf 6 kann ein implizites Scoping
implementiert werden, indem Benutzerschnittstellenelemente in eine
oder mehrere Gruppen, wie beispielsweise Bildschirmbereiche, unterteilt
werden (Schritt 602). Jeder Gruppe wird eine relative Priorität zugewiesen,
die zum Auflösen
von Mehrdeutigkeiten verwendet wird (Schritt 604). Jeder
Gruppe kann beispielsweise eine Zahl von Eins bis Zehn zugewiesen werden,
wobei Eins am höchsten
ist. Nur die Benutzerschnittstellenelemente aus der höchstmöglichen Gruppe
werden verwendet.
-
Somit
können
Mehrdeutigkeiten zumindest teilweise durch Ignorieren von Gruppen
von Benutzerschnittstellenelementen mit niedrigerer Priorität aufgelöst werden.
-
Die
Sprachschnittstelle empfängt
eine Spracheingabe (Schritt 606) und bestimmt die Gruppe
mit der höchsten
Priorität
mit Zielen, die mit der Spracheingabe (Schritt 608) übereinstimmen.
Wenn es immer noch Mehrdeutigkeiten in der Gruppe mit der höchsten Priorität und einer Übereinstimmung
gibt (Schritt 610), markiert das System mögliche Zielbenutzerschnittstellenelemente
(Schritt 612). Es können
immer noch Mehrdeutigkeiten bestehen, wenn beispielsweise die Spracheingabe „Textfeld" lautet und es mehrere
Textfelder in der Gruppe mit der höchsten Priorität gibt.
Eine zusätzliche
Spracheingabe wird von dem System empfangen (Schritt 614). Wenn
die Spracheingabe mit einem der markierten möglichen Zielbenutzerschnittstellenelemente übereinstimmt
(Schritt 616), dann wird das Ziel identifiziert (Schritt 618)
und der Vorgang endet.
-
Wenn
die zusätzliche
Spracheingabe mit keinem der markierten Zielbenutzerschnittstellenelemente übereinstimmt
(Schritt 616), dann überprüft das System,
ob die Eingabe mit einem anderen Benutzerschnittstellenelement übereinstimmt
(Schritt 608). Wenn die Eingabe nicht mehrdeutig ist (d.
h. wenn sie ein Benutzerschnittstellenelement in der Gruppe mit
der höchsten
Priorität
und einer Übereinstimmung
eindeutig identifiziert), dann wird das Zielbenutzerschnittstellenelement
identifiziert (Schritt 618) und der Vorgang endet.
-
7–17 beschreiben
eine sprachbasierte, elektronische Zeiterfassungsanwendung, die visuelle
Hinweise, implizites Scopen und aufgezählte Darstellungsbezeichnungen
verwendet, um Zielmehrdeutigkeiten aufzulösen. In 7 ermöglicht ein Webportal
einem Benutzer, verschiedene Anwendungen auszuwählen. Das Anwendungsfenster 700 enthält zwei
Bildschirmbereiche: einen Menübereich 702,
der die verschiedenen Anwendungen auflistet, und einen Anzeigebereich 704.
Das Menü 702 ist
in mehrere Bereich unterteilt, einschließlich „Roles” bzw. Rollen, die dem Benutzer
erlauben, Tasks basierend auf mehreren angegebenen Rollen auszuwählen. Die
Anwendung beginnt damit, dass der Fokusbereich auf das „Rotes"-Menü gerichtet
ist. Der Fokusbereich kann durch einen visuellen Hinweis, wie beispielsweise
einer farbigen, den Fokusbereich umrandenden Linie angezeigt werden.
Der Benutzer kann wählen,
die elektronische Zeiterfassungsanwendung („CATW” genannt) zu starten, indem
er „CATW" sagt. Dieser Befehl
initiiert die Anwendung unter Verwendung eines Anzeigebereichs 704,
wie in 8 gezeigt.
-
Mit
Bezug auf 8 enthält die elektronische Zeiterfassungsanwendung
drei allgemeine Komponenten, die in dem Anzeigebereich 704 angezeigt werden.
Diese Komponenten enthalten folgendes: eine Benutzeridentifikationskomponente 802,
eine Zeitraumkomponente 804 und eine Zeiteingabekomponente 806.
Die Benutzeridentifikationskomponente 802 führt den
Namen und die Personalnummer des Benutzers auf. Die Zeitraumkomponente 804 führt den
angezeigten Zeitraum auf und ermöglicht
dem Benutzer, zu anderen Zeiträumen
zu wechseln. Die Zeiteingabekomponente 806 ermöglicht einem
Benutzer, eine Zeit für
den Zeitraum, der durch die Zeitraumkomponente 804 angezeigt
wird, zu modifizieren und/oder einzugeben. Der visuelle Hinweis
wird zu dem Anzeigebereich 704 bewegt, der anzeigt, dass
dieser Bereich nun eine Priorität
für die
Mehrdeutigkeitsauflösung
und Befehlsinterpretation hat.
-
Die
Zeiteingabekomponente 806 enthält etwas, das aussieht wie
ein Spreadsheet bzw. eine Tabellenkalkulation mit Spalten, die die
Tage in dem Zeitraum anzeigen, und Reihen bzw. Zeilen, die verschiedene
Kategorien von Zeiteingaben anzeigen, wie beispielsweise Jahresurlaub,
Anwesenheitsstunden, Geschäftsreise,
Gleitzeitausgleich, Überstundenausgleich,
Ausbildung/Fortbildung, medizinisch bedingter Familienurlaub, Feiertag,
Geschworenenamt, langfristige Arbeitsunfähigkeit, Besprechung, Privatzeit
bzw. Personalzeit, Abfindung oder kurzfristige Arbeitsunfähigkeit.
Verschiedene Textfelder, die jeder Zeilen/Spaltenkombination entsprechen,
stehen zur Dateneingabe zur Verfügung;
es steht Benutzern jedoch kein offensichtlicher Mechanismus zur Verfügung, um
ein gewünschtes
Zieltextfeld einfach zu identifizieren.
-
Mit
Bezug auf 9 kann ein Benutzer, der Text
in das obere linke Textfeld der Zeiteingabekomponente 806 eingeben
möchte, „Textfeld" sagen. Das System
kann ein Priorisierungsschema verwenden, um beispielsweise den Rahmen
auf der linken Seite von dem Rahmen auf der rechten Seite zu trennen und
nur die aufgezählten
Darstellungsbezeichnungen an dem Rahmen auf der rechten Seite anbringen bzw.
anwenden, der mögliche
Zieltextfelder beinhaltet. Da das System nicht in der Lage ist,
die Mehrdeutigkeit unter Verwendung einer Priorisierung allein aufzulösen, wird
jedes mögliche
Textfeld innerhalb des priorisierten Rahmens durch eine aufgezählte Darstellungsbezeichnung 902 angegeben
(durch Zeigen auf eine der 21 angezeigten, aufgezählten Darstellungsbezeichnungen).
Die Bezeichnung „1" wird in dem Textfeld
in der Zeitraumkomponente 804 plaziert. Die übrigen Bezeichnungen „2–21" werden in den Textfeldern
der Zeiteingabekomponente 806 plaziert. Der Benutzer kann
das Zieltextfeld identifizieren, indem er dessen entsprechende Nummer sagt.
-
Mit
Bezug auf 10 wählt der Benutzer das obere
linke Texteingabefeld 1002 in der Zeiteingabekomponente 806 aus,
indem er „Zwei" sagt. Nach Empfangen
der Benutzereingabe verschwinden die aufgezählten Darstellungsbezeichnungen
und das System bereitet sich eine Dateneingabe in das Textfeld 1002 vor,
indem es in einen Dateneingabemodus übergeht. Ein blauer Rahmen
dient als visueller Hinweis, um dem Benutzer anzuzeigen, dass das
System im Dateneingabemodus ist und alle Daten in das Textfeld mit
dem blauen Rahmen eingeben werden.
-
Mit
Bezug auf 11 kann ein System im Dateneingabemodus
eine zugeordnete Grammatik verwenden, um die Spracherkennungsleistung
zu verbessern. Die elektronische Zeiterfassungsanwendung erwartet,
dass Benutzer die Anzahl gearbeiteter Stunden in jedes Textfeld
der Zeiteingabekomponente 806 eingeben, so dass eine Grammatik
denjenigen Textfeldern zugeordnet werden kann, die Zahlen erkennt.
Der Benutzer kann dann den Inhalt des Textfelds diktieren, indem
er die gewünschte
Zahl sagt. Bei diesem Beispiel sagt der Benutzer „Acht" und das System gibt
die Zahl Acht in das Textfeld 1002 ein und verlässt den
Dateneingabemodus.
-
Mit
Bezug auf 12 kann ein ähnliches Verfahren verwendet
werden, um mit den Comboboxen zu interagieren, die verwendet werden,
um Zeitkategorien in der Zeiteingabekomponente 806 auszuwählen. Ein
Benutzer, der eine Kategorie von „Anwesenheitsstunden" zu „Urlaub" wechseln möchte, kann
dies tun, indem er „Combobox" sagt. Die Anfrage
ist mehrdeutig, da vier mögliche
Comboboxen zur Dateneingabe zur Verfügung stehen, so dass das System
aufgezählte
Darstellungsbezeichnungen 902 anzeigt, um dem Benutzer
zu ermöglichen,
die Mehrdeutigkeit aufzulösen.
Die Comboboxen sind mit Eins bis Vier bezeichnet, um dem Benutzer
zu ermöglichen,
das gewünschte
Ziel zu identifizieren.
-
Mit
Bezug auf 13 wählt der Benutzer eine Combobox
aus, indem er die Zahl der entsprechenden aufgezählten Darstellungsbezeichnung 902 nennt.
Bei diesem Beispiel sagt der Benutzer „Zwei", die Bezeichnungen werden entfernt
und die zweite Combobox wird zur Dateneingabe geöffnet, wobei sie die Liste
mit Auswahlmöglichkeiten
anzeigt, die durch die Combobox gewählt werden können. Der Benutzer
kann dann die gewünschte
Auswahl auswählen,
indem er die gewünschte
Auswahl vorliest.
-
Mit
Bezug auf 14 trifft der Benutzer eine Auswahl,
indem er „Urlaub" sagt, und das System
aktualisiert den Comboboxwert entsprechend. Dann schließt sich
die Combobox und der Fokus wird zurück auf den Anzeigebereich 704 gerichtet.
Der Benutzer kann dann eine Zeit entsprechend der neu gewählten Zeitkategorie
eingeben, indem er das oben mit Bezug auf 9–11 beschriebene
Verfahren verwendet.
-
Mit
Bezug auf 15 sagt der Benutzer „Textfeld" um eine Zeit in
die Zeiteingabekomponente 806 einzugeben. Da das Ziel mehrdeutig
ist, werden aufgezählte
Darstellungsbezeichnungen 902 angezeigt, um dem Benutzer
zu ermöglichen,
jegliche Mehrdeutigkeit explizit aufzulösen. Bei diesem Beispiel möchte der
Benutzer eine Zeit in die Urlaubskategorie für den zweiten Tag eingeben.
-
Mit
Bezug auf 16 sagt der Benutzer „Acht", um das gewünschte Textfeld 1602 zur
Dateneingabe zu identifizieren. Die aufgezählten Darstellungsbezeichnungen werden
entfernt und der Fokus wird auf das ausgewählte Textfeld 1602 gelenkt
bzw. verschoben. Das System geht in den Dateneingabemodus über und
zeigt einen visuellen Hinweise an, so dass der Benutzer weiß, dass
die Dateneingabe beginnen kann.
-
Mit
Bezug auf 17 sagt der Benutzer dann „Acht", um am zweiten Tag
des Zeitraums acht Stunden Urlaubszeit einzugeben. Nach Eingabe
der Daten verlässt
das System den Dateneingabemodus und der Fokus wird zurück auf den
Anzeigebereich 704 gerichtet.
-
Mit
Bezug auf 18 kann der Benutzer Buttons
auswählen,
indem er ihre gedruckten Bezeichnungen vorliest. Beispielsweise
kann der Benutzer „Alle
Details anzeigen" sagen,
um den entsprechenden Button 1702 im unteren Teil des Anzeigebereichs 704 zu
aktivieren. Das System zeigt dann detaillierte Informationen an,
wie es in 18 gezeigt ist. Der Benutzer
kann dann zu dem vorherigen Bildschirm zurückkehren, indem er „Alle Details
verbergen" sagt.
-
7–18 stellen
eine Sprachschnittstelle für
ein elektronisches Zeiterfassungssystem dar, das visuelle Hinweise,
implizites Scoping und aufgezählte
Darstellungsicons verwendet, um Benutzerinteraktionen mit dem System
zu verbessern. Die gleichen Methoden können verwendet werden, um eine Spracheingabe
und -steuerung bei einer beliebigen grafischen Benutzerschnittstelle
bereitzustellen.
-
Eine
Anzahl von Implementierungen wurden beschrieben. Es versteht sich
jedoch, dass verschiedene Modifikationen vorgenommen werden können, ohne
von dem Schutzbereich der Erfindung abzuweichen. Dementsprechend
liegen andere Implementierungen innerhalb des Schutzbereichs der
folgenden Ansprüche.