Freigeben über


Spracheingabeereignisse

[Microsoft Agent ist ab Windows 7 veraltet und in nachfolgenden Versionen von Windows möglicherweise nicht verfügbar.]

Zusätzlich zur Befehlsereignisbenachrichtigung benachrichtigt der Agent den eingabeaktiven Client, wenn der Server den Lauschmodus mithilfe der Ereignisse ListenStart und ListenComplete (IAgentNotifySinkEx::ListeningState) ein- oder ausschaltet. Wenn der Benutzer jedoch die Taste für den Lauschmodus drückt und keine entsprechende Spracherkennungs-Engine für das oberste Zeichen des eingabeaktiven Clients verfügbar ist, startet der Server das Timeout des Listen-Hotkey-Modus, generiert aber kein ListenStart-Ereignis für den aktiven Client des Zeichens. Wenn der Benutzer vor Abschluss des Timeouts ein anderes Zeichen mit Unterstützung der Spracherkennungs-Engine aktiviert, versucht der Server, die Spracheingabe zu aktivieren, und generiert das ListenStart-Ereignis .

Wenn ein Client versucht, den Lauschmodus mithilfe der Listen-Methode zu aktivieren, und kein entsprechendes Spracherkennungsmodul verfügbar ist, schlägt der Aufruf fehl, und der Server generiert kein ListenStart-Ereignis. Im Microsoft Agent-Steuerelement gibt die Listen-MethodeFalse zurück, aber der Aufruf löst keinen Fehler aus.

Wenn der Modus "Listening Key" aktiviert ist und der Benutzer zu einem Zeichen wechselt, das eine andere Spracherkennungs-Engine verwendet, wechselt der Server zu und aktiviert dieses Modul und löst ein ListenComplete - und dann ein ListenStart-Ereignis aus. Wenn das aktivierte Zeichen nicht über eine Spracherkennungs-Engine verfügt (da eine nicht installiert ist oder keine der Sprach-ID-Einstellung des aktivierten Zeichens entspricht), löst der Server das ListenComplete-Ereignis für das zuvor aktivierte Zeichen aus und übergibt einen Wert im Cause-Parameter . Der Server generiert jedoch keine ListenStart - oder ListenComplete-Ereignisse für die Clients, die keine Spracherkennungsunterstützung haben.

Wenn ein Client die Listen-Methode erfolgreich aufruft und ein Zeichen ohne Unterstützung der Spracherkennungs-Engine eingabeaktiv wird, bevor das Timeout des Lauschmodus abgeschlossen ist, und der Benutzer dann zurück zum Zeichen des ursprünglichen Clients wechselt, generiert der Server ein ListenStart-Ereignis für diesen Client.

Wenn der eingabeaktive Client die Spracherkennungs-Engines wechselt, indem SRModeID im Lauschmodus geändert wird, wechselt der Server zu und aktiviert diese Engine, ohne das ListenStart-Ereignis erneut auszulösen. Wenn das angegebene Modul jedoch nicht verfügbar ist, schlägt der Aufruf fehl (löst einen Fehler im Steuerelement aus), und der Server ruft auch das ListenComplete-Ereignis auf.