Partager via


Prise en charge de l’entrée vocale

[Microsoft Agent est déconseillé à partir de Windows 7 et peut être indisponible dans les versions ultérieures de Windows.]

En plus de prendre en charge l’interaction entre la souris et le clavier, Microsoft Agent inclut une prise en charge directe de l’entrée vocale. Étant donné que la prise en charge de Microsoft Agent pour l’entrée vocale est basée sur Microsoft SAPI (Speech Application Programming Interface), vous pouvez utiliser Microsoft Agent avec des commandes et des moteurs de contrôle de reconnaissance vocale qui incluent la prise en charge requise par SAPI. Pour plus d’informations sur la configuration requise pour le moteur speech, consultez Exigences de prise en charge du moteur speech.

Microsoft fournit un moteur de reconnaissance vocale de commande et de contrôle que vous pouvez utiliser avec Microsoft Agent. Pour plus d’informations, consultez Sélection du moteur speech.

L’utilisateur peut lancer l’entrée vocale en appuyant et en maintenant enfoncée le raccourci push-to-talk Listening. Dans ce mode d’écoute, si le moteur vocal reçoit le début de l’entrée parlée, il maintient le canal audio ouvert jusqu’à ce qu’il détecte la fin de l’énoncé. Toutefois, lorsque vous ne recevez pas d’entrée, il ne bloque pas la sortie audio. Cela permet à l’utilisateur d’émettre plusieurs commandes vocales tout en maintenant la touche enfoncée, et le caractère peut répondre lorsque l’utilisateur ne parle pas.

Le mode d’écoute expire une fois que l’utilisateur libère la clé d’écoute. L’utilisateur peut ajuster le délai d’attente pour ce mode à l’aide des options de caractères avancés. Vous ne pouvez pas définir ce délai d’attente à partir du code de votre application cliente.

Si un caractère tente de parler pendant que l’utilisateur parle, la sortie audible du caractère échoue, même si le texte peut toujours s’afficher dans sa bulle de mots. Si le caractère a le canal audio alors que la touche Listening est enfoncée, le serveur transfère automatiquement le contrôle à l’utilisateur après avoir traité le texte dans la méthode Speak . Un ton MIDI facultatif est lu pour que l’utilisateur commence à parler. Cela permet à l’utilisateur de fournir une entrée même si l’application qui pilote le caractère n’a pas pu fournir de pauses logiques dans sa sortie.

Vous pouvez également utiliser la méthode Listen pour lancer la saisie vocale. L’appel de cette méthode active la reconnaissance vocale pendant une période prédéfinie. S’il n’y a pas d’entrée pendant cet intervalle, Microsoft Agent désactive automatiquement le moteur de reconnaissance vocale et libère le canal audio. Cela évite de bloquer l’entrée ou la sortie de l’appareil audio et réduit la surcharge du processeur utilisée par la reconnaissance vocale lorsqu’elle est activée. Vous pouvez également utiliser la méthode Listen pour désactiver l’entrée vocale. Toutefois, n’oubliez pas que, étant donné que le moteur de reconnaissance vocale fonctionne de manière asynchrone, l’effet peut ne pas être immédiat. Par conséquent, il est possible de recevoir un événement Command même après que votre code appelé Écouter pour désactiver l’entrée vocale.

Pour prendre en charge l’entrée vocale, vous définissez une grammaire, un ensemble de mots que vous souhaitez que le moteur de reconnaissance vocale écoute et corresponde en tant que paramètre Voix pour une commande dans votre collection Commandes . Vous pouvez inclure des mots facultatifs et alternatifs et des séquences répétées dans votre grammaire. Notez que l’Agent n’active pas la touche de raccourci Listening tant que l’un de ses clients n’a pas correctement chargé un moteur de reconnaissance vocale ou qu’il n’a pas créé une voix pour l’un de ses objets Command .

Que l’utilisateur appuie sur la touche de raccourci Listening ou que votre application cliente appelle la méthode Listen pour lancer l’entrée vocale, le moteur de reconnaissance vocale tente de faire correspondre l’entrée d’un énoncé à la grammaire des commandes qui ont été définies et transmet les informations au serveur. Le serveur avertit ensuite l’application cliente à l’aide de l’événement Command (IAgentNotifySink::Command) ; retour de l’objet UserInput qui inclut l’ID de commande de la meilleure correspondance et les deux correspondances alternatives suivantes (le cas échéant), un score de confiance et le texte correspondant pour chaque correspondance.

Le serveur avertit également votre application cliente lorsqu’elle fait correspondre l’entrée vocale à l’une de ses commandes fournies. Bien que l’ID de commande ait la valeur NULL, vous obtenez toujours le score de confiance et le texte correspondant. En mode Écoute, le serveur lit automatiquement l’animation affectée à l’état d’écoute du caractère. Ensuite, lorsqu’un énoncé est effectivement détecté, le serveur lit l’animation d’état d’audition du personnage. Le serveur maintient le caractère dans un état attentif jusqu’à la fin de l’énoncé. Cela fournit les commentaires sociaux appropriés pour l’indication de l’utilisateur pour l’entrée.

Si l’utilisateur désactive l’entrée vocale dans Options avancées de caractères, le raccourci clavier d’écoute est également désactivé. De même, la tentative d’appel de la méthode Listen lorsque l’entrée vocale est désactivée entraîne l’échec de la méthode.