Partager via


Prise en charge des entrées vocales

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

Outre la prise en charge de l’interaction avec la souris et le clavier, Microsoft Agent inclut la prise en charge directe de l’entrée vocale. Étant donné que la prise en charge de l’entrée vocale de Microsoft Agent est basée sur Microsoft SAPI (Interface de programmation d’applications speech), vous pouvez utiliser Microsoft Agent avec les moteurs de commande et 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 de reconnaissance vocale, consultez Configuration requise pour la 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 la touche d’accès rapide d’écoute push-to-talk. Dans ce mode d’écoute, si le moteur de reconnaissance vocale reçoit le début de l’entrée parlée, il conserve le canal audio ouvert jusqu’à ce qu’il détecte la fin de l’énoncé. Toutefois, lorsqu’elle ne reçoit pas d’entrée, elle 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ées. 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 être affiché dans sa bulle de mots. Si le caractère a le canal audio pendant que la touche d’écoute est enfoncée, le serveur transfère automatiquement le contrôle à l’utilisateur après avoir traité le texte dans la méthode Speak. Une tonalité MIDI facultative est jouée 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 des pauses logiques dans sa sortie.

Vous pouvez également utiliser la méthode Listen pour lancer l’entrée 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, sachez que, étant donné que le moteur de reconnaissance vocale fonctionne de façon 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é Listen pour désactiver l’entrée vocale.

Pour prendre en charge l’entrée vocale, vous définissez une de grammaire, un ensemble de mots que vous souhaitez que le moteur de reconnaissance vocale écoute et corresponde comme paramètre Voice pour unecommandedans votre collection Commands. 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 d’accès à l’écoute tant que l’un de ses clients n’a pas correctement chargé un moteur de reconnaissance vocale ou a créé un vocal pour l’un de ses objets Command.

Que l’utilisateur appuie sur la touche d’accès rapide d’écoute ou 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énementcommand(IAgentNotifySink ::Command) ; renvoyer l’objet UserInput qui inclut l’ID de commande de la meilleure correspondance et 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 correspond à l’entrée vocale à l’une de ses commandes fournies. Alors que l’ID de commande est NULL, vous obtenez toujours le score de confiance et le texte mis en correspondance. En mode d’écoute, le serveur lit automatiquement l’animation affectée à l’état d’écoute du caractère. Ensuite, lorsqu’un énoncé est réellement détecté, le serveur lit l’animation d’état de l’audition du personnage. Le serveur conserve le caractère dans un état attentif jusqu’à la fin de l’énoncé. Cela fournit les commentaires sociaux appropriés pour faire part à l’utilisateur de l’entrée.

Si l’utilisateur désactive l’entrée vocale dans options de caractères avancés, la touche d’accès à l’écoute est également désactivée. 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.