IAgentCommand::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  // voice text setting for Command
);

Définit la propriété Voice pour une commande.

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

bszVoice

BSTR qui spécifie le texte de la propriété Voice d’une commande.

Une commande doit avoir sa propriété Voice et la propriété Enabled définies pour être accessibles par la voix. Sa propriété VoiceCaption doit également être définie pour apparaître dans la fenêtre Commandes vocales. (Pour la compatibilité descendante, s’il n’existe pas de VoiceCaption, le paramètre Caption est utilisé.)

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 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 souhaiterez 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 les 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 ). Par conséquent, le moteur de reconnaissance vocale reconnaît uniquement des mots spécifiques dans la chaîne, quel que soit le 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, faites attention à 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, veillez toujours à inclure 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 la représentation numérique. 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.

La définition de la propriété Voix pour une commande active automatiquement les services vocaux de l’Agent, ce qui rend la clé d’écoute et le conseil d’écoute disponibles. Toutefois, il ne charge pas le moteur de reconnaissance vocale.

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 IAgentCharacterEx::SRModeID pour spécifier un moteur.

 

Voir aussi

IAgentCommand::GetVoice, IAgentCommand::SetCaption, IAgentCommand::SetEnabled, IAgentCommands::Add, IAgentCommands::Insert