Partager via


IAgentCommands::SetVoice

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

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

Définit la propriété Texte vocal pour une commande.

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

bszVoice

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

La propriété texte d’une collection Commands doit être définie pour être accessible par la voix. Il 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 substitutions 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 des espaces appropriés entre les mots que vous incluez entre crochets ou parenthèses, ainsi que d’autres textes. N’oubliez pas d’inclure des 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 star (*) 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 please try this », avec des itérations illimitées de « please » :

   "please* try this"

Le format de grammaire suivant exclut « essayez ceci », 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 de précédence normales et s’appliquent à l’élément de texte qui précède immédiatement. Par exemple, la grammaire suivante donne « 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 la grammaire par Agent.

Vous pouvez également utiliser des points de suspension (...) pour prendre en charge la détection des mots, c’est-à-dire indiquer au moteur de reconnaissance vocale d’ignorer les mots prononcés à cette position dans l’expression (parfois appelées mots de mémoire ). Lorsque vous utilisez des points de suspension, le moteur de reconnaissance vocale reconnaît uniquement des mots spécifiques dans la chaîne, indépendamment du moment où ils sont prononcés avec des mots ou des expressions adjacentes. Par exemple, si vous définissez cette propriété sur « [...] case activée courrier [...] », le moteur de reconnaissance vocale met en correspondance des expressions telles que « s’il vous plaît case activée courrier » ou « case activée courrier s’il vous plaît » à cette commande. Les points de suspension peuvent être utilisés n’importe où dans une chaîne. Toutefois, soyez prudent en utilisant cette technique, car les paramètres vocaux avec des points de suspension peuvent augmenter le risque de correspondances indésirables.

Lorsque vous définissez les mots et la grammaire de votre commande, incluez au moins un mot requis ; c’est-à-dire éviter de fournir uniquement des mots facultatifs. En outre, assurez-vous que le mot inclut uniquement des mots et des lettres prononçables. Pour les nombres, il est préférable d’écrire le mot plutôt que d’utiliser une représentation ambiguë. Par exemple, « 345 » n’est pas une bonne forme grammaticale. De même, au lieu de « IEEE », utilisez « I triple E ». Omettez également toute ponctuation ou tout symbole. Par exemple, au lieu de « la pizza #10 $ 10 ! », utilisez « la pizza numéro un dix dollars ». L’inclusion de caractères ou de symboles non prononçables pour une commande peut entraîner l’échec de la compilation de la grammaire par le moteur vocal pour 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 similitude entre la grammaire vocale des commandes est élevée, plus le moteur de reconnaissance vocale est susceptible de créer une erreur de reconnaissance. Vous pouvez également utiliser les scores de confiance pour mieux distinguer 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 dit « 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 », en réduisant les prononciations alternatives et en augmentant la précision. (Le classement est inversé pour la compatibilité descendante.) Ceci est particulièrement important pour la prononciation des noms propres en 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 à 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 les 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 définir avec soin la grammaire de la propriété Voice .

Notes

Les fonctionnalités grammaticales disponibles peuvent dépendre du moteur de reconnaissance vocale. Vous pouvez case activée avec le fournisseur du moteur pour déterminer quelles options grammaticales sont prises en charge. Utilisez srModeID pour utiliser un moteur spécifique.

 

Le fonctionnement de cette propriété dépend 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. Toutefois, si la reconnaissance vocale est activée pendant une session, la commande devient accessible lorsque son application cliente est active en entrée.

Voir aussi

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