Partager via


IAgentCommands ::SetVoice

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

HRESULT SetVoice(
   BSTR bszVoice  // the Voice setting for Command collection
);

Définit la propriété de texteVoicepour unecommande.

  • Retourne S_OK pour indiquer que l’opération a réussi.

bszVoice

BSTR qui spécifie la valeur de la propriété de texte Voice d’une collection Commands.

Une collection Commands doit avoir sa propriété de texte Voice définie pour être accessible en voix. Elle doit également avoir sa propriété VoiceCaption ou Caption définie pour apparaître dans la fenêtre Commandes vocales et sa propriété Visible définie sur True pour apparaître dans le menu contextuel du caractère.

L’expression BSTR que vous fournissez peut inclure des caractères entre crochets ([ ]) pour indiquer des mots facultatifs et des caractères de barre verticale (|) pour indiquer d’autres chaînes. Les alternatives doivent être placées entre parenthèses. Par exemple, « (hello [there] | hi) » indique au moteur de reconnaissance vocale d’accepter « hello », « hello there » ou « hi » pour la commande. N’oubliez pas d’inclure les espaces appropriés entre les mots que vous incluez entre crochets ou parenthèses, ainsi que d’autres textes. N’oubliez pas d’inclure les espaces appropriés entre le texte entre crochets ou parenthèses et le texte qui n’est pas entre crochets ou parenthèses.

Vous pouvez utiliser l’opérateur étoile (*) pour spécifier zéro ou plusieurs instances des mots inclus dans le groupe ou l’opérateur plus (+) pour spécifier une ou plusieurs instances. Par exemple, les résultats suivants donnent une grammaire qui prend en charge « try this », « please try this » et « please try this », with unlimited its of « please » (s’il vous plaît) :

   "please* try this"

Le format de grammaire suivant exclut « try this » car l’opérateur + définit au moins une instance de « please » :

   "please+ try this"

Les opérateurs de répétition suivent les règles normales de précédence et s’appliquent à l’élément de texte précédent immédiatement. Par exemple, la grammaire suivante entraîne « New York » et « New York York », mais pas « New York New York » :

   "New York+"

Par conséquent, vous souhaitez généralement utiliser ces opérateurs avec les caractères de regroupement. Par exemple, la grammaire suivante inclut à la fois « New York » et « New York New York » :

   "(New York)+"

Les opérateurs de répétition sont utiles lorsque vous souhaitez composer une grammaire qui inclut une séquence répétée telle qu’un numéro de téléphone ou une spécification d’une liste d’éléments :

   "call (one|two|three|four|five|six|seven|eight|nine|zero|oh)*"
   "I'd like (cheese|pepperoni|pineapple|canadian bacon|mushrooms|and)+"

Bien que les opérateurs puissent également être utilisés avec des crochets (caractère de regroupement facultatif), cela peut réduire l’efficacité du traitement de l’agent de la grammaire.

Vous pouvez également utiliser des points de suspension (...) pour prendre en charge spotting de mots, autrement dit, en indiquant au moteur de reconnaissance vocale d’ignorer les mots prononcés dans cette position dans l’expression (parfois appelée garbage mots). Lorsque vous utilisez des points de suspension, le moteur de reconnaissance vocale reconnaît uniquement des mots spécifiques dans la chaîne, quel que soit le moment où il est parlé avec des mots ou expressions adjacents. Par exemple, si vous définissez cette propriété sur « [...] » check mail [...] » le moteur de reconnaissance vocale correspond à des expressions telles que « veuillez vérifier le courrier » ou « vérifier le courrier s’il vous plaît » à cette commande. Les points de suspension peuvent être utilisés n’importe où dans une chaîne. Toutefois, faites attention à l’utilisation de cette technique en tant que paramètres vocaux avec des points de suspension peuvent augmenter le potentiel des correspondances indésirables.

Lorsque vous définissez les mots et la grammaire pour votre commande, incluez au moins un mot requis ; autrement dit, évitez de fournir uniquement des mots facultatifs. En outre, assurez-vous que le mot inclut uniquement des mots et des lettres prononcés. Pour les nombres, il est préférable d’expliquer le mot plutôt que d’utiliser une représentation ambiguë. Par exemple, « 345 » n’est pas une bonne forme de grammaire. De même, au lieu de « IEEE », utilisez « I triple E ». En outre, omettez toutes les ponctuations ou symboles. Par exemple, au lieu de « la pizza #1 $ 10 ! », utilisez « la pizza numéro 10 dollar ». L’inclusion de caractères ou de symboles non prononcés pour une commande peut entraîner l’échec du moteur de reconnaissance vocale pour compiler la grammaire de toutes vos commandes. Enfin, faites en sorte que votre paramètre vocal soit aussi distinct que possible des autres commandes vocales que vous définissez. Plus la similarité entre la grammaire vocale pour les commandes est élevée, plus le moteur de reconnaissance vocale génère une erreur de reconnaissance. Vous pouvez également utiliser les scores de confiance pour mieux faire la distinction entre deux commandes qui peuvent avoir une grammaire vocale similaire ou similaire.

Vous pouvez inclure dans vos mots de grammaire sous la forme «text\prononciation», où « text » est le texte affiché et « prononciation » est du texte qui clarifie la prononciation. Par exemple, la grammaire « 1st\first » est reconnue lorsque l’utilisateur indique « first », mais l’événement Command retourne le texte « 1st\first ». Vous pouvez également utiliser IPA (Alphabet phonétique international) pour spécifier une prononciation en commençant la prononciation par un caractère de signe dièse (« # »), puis le texte représentant la prononciation IPA.

Pour les moteurs de reconnaissance vocale japonaise, vous pouvez définir la grammaire sous la forme «kana\kanji», réduisant les prononciations alternatives et augmentant la précision. (L’ordre est inversé pour la compatibilité descendante.) Ceci est particulièrement important pour la prononciation des noms appropriés dans Kanji. Toutefois, vous pouvez simplement passer « kanji », sans le Kana, auquel cas le moteur doit écouter toutes les prononciations acceptables pour le Kanji. Vous pouvez également passer juste Kana.

À l’exception des erreurs utilisant les caractères de mise en forme de regroupement ou de répétition, Microsoft Agent ne signale pas d’erreurs dans votre grammaire, sauf si le moteur lui-même signale l’erreur. Si vous transmettez du texte dans votre grammaire que le moteur ne parvient pas à compiler, mais que le moteur ne gère pas et ne retourne pas en tant qu’erreur, Agent ne peut pas signaler l’erreur. Par conséquent, l’application cliente doit être attentive à définir la grammaire de la propriétéVoice.

Note

Les fonctionnalités grammaticales disponibles peuvent dépendre du moteur de reconnaissance vocale. Vous pouvez vérifier auprès du fournisseur du moteur pour déterminer quelles options de grammaire sont prises en charge. Utilisez le SRModeID pour utiliser un moteur spécifique.

 

L’opération de cette propriété dépend de l’état de l’état de reconnaissance vocale du serveur Microsoft Agent. Par exemple, si la reconnaissance vocale est désactivée ou non installée, cette fonction n’a aucun effet immédiat. Si la reconnaissance vocale est activée pendant une session, toutefois, la commande devient accessible lorsque son application cliente est active en entrée.

Voir aussi

IAgentCommands ::GetVoice, IAgentCommands ::SetCaption, IAgentCommands ::SetVisible