Freigeben über


Unterstützung der Spracheingabe

[Der Microsoft-Agent ist ab Windows 7 veraltet und kann in nachfolgenden Versionen von Windows nicht verfügbar sein.]

Zusätzlich zur Unterstützung der Maus- und Tastaturinteraktion bietet Microsoft Agent direkte Unterstützung für die Spracheingabe. Da die Unterstützung von Microsoft Agent für die Spracheingabe auf Microsoft SAPI (Speech Application Programming Interface) basiert, können Sie Microsoft Agent mit Spracherkennungsbefehls- und Steuerungsmodulen verwenden, die die SAPI-erforderliche Unterstützung enthalten. Weitere Informationen zu den Anforderungen des Sprachmoduls finden Sie unter Supportanforderungen des Sprachmoduls.

Microsoft bietet ein Spracherkennungsmodul mit Befehl und Steuerung, das Sie mit Microsoft Agent verwenden können. Weitere Informationen finden Sie unter Auswahl des Sprachmoduls.

Der Benutzer kann die Spracheingabe initiieren, indem er die Push-to-Talk-Hotkey gedrückt hält. Wenn das Sprachmodul im Modus "Überwachung" den Anfang der gesprochenen Eingabe empfängt, wird der Audiokanal geöffnet, bis das Ende der Äußerung erkannt wird. Wenn jedoch keine Eingabe empfangen wird, wird die Audioausgabe nicht blockiert. Dadurch kann der Benutzer mehrere Sprachbefehle ausgeben, während er die Taste gedrückt hält, und das Zeichen kann reagieren, wenn der Benutzer nicht spricht.

Der Überwachungsmodus ist nicht mehr vorhanden, sobald der Benutzer die Überwachungsschlüssel loslässt. Der Benutzer kann das Timeout für diesen Modus mithilfe der erweiterten Zeichenoptionen anpassen. Sie können dieses Timeout von Ihrem Clientanwendungscode nicht festlegen.

Wenn ein Zeichen versucht, zu sprechen, während der Benutzer spricht, schlägt die hörbare Ausgabe des Zeichens fehl, obwohl Text möglicherweise weiterhin in seiner Wortsprechblase angezeigt wird. Wenn das Zeichen den Audiokanal hat, während die Hörtaste gedrückt wird, überträgt der Server die Steuerung automatisch zurück an den Benutzer, nachdem der Text in der Speak-Methode verarbeitet wurde. Ein optionaler MIDI-Ton wird wiedergegeben, damit der Benutzer mit dem Sprechen beginnen kann. Dadurch kann der Benutzer Eingaben bereitstellen, auch wenn die Anwendung, die das Zeichen antreibt, keine logischen Pausen in der Ausgabe bereitstellt.

Sie können auch die Listen--Methode verwenden, um die Spracheingabe zu initiieren. Durch Aufrufen dieser Methode wird die Spracherkennung für einen vordefinierten Zeitraum aktiviert. Wenn während dieses Intervalls keine Eingabe vorhanden ist, deaktiviert der Microsoft-Agent automatisch das Spracherkennungsmodul und gibt den Audiokanal frei. Dadurch wird verhindert, dass Eingaben oder Ausgaben vom Audiogerät blockiert und der Prozessoraufwand minimiert wird, den die Spracherkennung verwendet, wenn sie aktiviert ist. Sie können auch die Listen--Methode verwenden, um die Spracheingabe zu deaktivieren. Beachten Sie jedoch, dass der Effekt möglicherweise nicht unmittelbar ist, da das Spracherkennungsmodul asynchron funktioniert. Daher ist es möglich, ein Command-Ereignis zu empfangen, auch nachdem Ihr Code Hören aufgerufen hat, die Spracheingabe zu deaktivieren.

Um die Spracheingabe zu unterstützen, definieren Sie eine Grammatik-, eine Gruppe von Wörtern, die das Spracherkennungsmodul als einstellung für die Voice- für eine Command in Ihrer Commands Collection hören und abgleichen soll. Sie können optionale und alternative Wörter und wiederholte Sequenzen in Ihre Grammatik einschließen. Beachten Sie, dass der Agent den Zuhören-Hotkey erst aktiviert, wenn einer seiner Clients ein Sprachmodul erfolgreich geladen hat oder ein Voice- für eines seiner Command-Objekte erstellt hat.

Unabhängig davon, ob der Benutzer den Zuhören-Hotkey drückt oder ihre Clientanwendung die Listen Methode aufruft, um die Spracheingabe zu initiieren, versucht das Spracherkennungsmodul, die Eingabe einer Äußerung mit der Grammatik für die definierten Befehle abzugleichen und die Informationen an den Server zurückzugeben. Der Server benachrichtigt dann die Clientanwendung mithilfe des Command-Ereignisses (IAgentNotifySink::Command); Übergeben des UserInput--Objekts, das die Befehls-ID der besten Übereinstimmung und die nächsten zwei alternativen Übereinstimmungen (falls vorhanden), einen Konfidenzwert und den übereinstimmenden Text für jede Übereinstimmung enthält.

Der Server benachrichtigt Ihre Clientanwendung auch, wenn sie mit der Spracheingabe mit einem der angegebenen Befehle übereinstimmt. Während die Befehls-ID NULL-ist, erhalten Sie trotzdem die Konfidenzbewertung und den Text. Wenn sich der Server im Überwachungsmodus befindet, gibt der Server automatisch die Animation wieder, die dem zustand des Zeichens zugewiesen ist. Wenn dann tatsächlich eine Äußerung erkannt wird, gibt der Server die Hören Zustandsanimation des Zeichens wieder. Der Server behält das Zeichen in einem aufmerksamen Zustand, bis die Äußerung beendet wurde. Dies stellt das entsprechende feedback für soziale Netzwerke bereit, um den Benutzer zur Eingabe zu hinweisen.

Wenn der Benutzer die Spracheingabe in den erweiterten Zeichenoptionen deaktiviert, wird auch der Zuhören-Hotkey deaktiviert. Ebenso führt der Versuch, die Listen--Methode aufzurufen, wenn die Spracheingabe deaktiviert ist, zu einem Fehler der Methode.