IAgentCommand::SetVoice

[Microsoft Agent est déconseillé depuis Windows 7 et peut être indisponible 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éfinie pour être accessible en 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 De légende est utilisé.)

L’expression BSTR que vous fournissez peut inclure des caractères entre crochets ([ ]) pour indiquer des mots facultatifs et des caractères à barres verticales (|) 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 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 », avec des itérations illimitées de « please » :

   "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 génère « 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 de l’Agent.

Vous pouvez également utiliser des points de suspension (...) pour prendre en charge la détection de mots, c’est-à-dire indiquer au moteur de reconnaissance vocale d’ignorer les mots prononcés dans 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 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, soyez prudent à l’aide de 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 pour votre commande, veillez toujours à inclure 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’écrire le mot plutôt que d’utiliser la représentation numérique. 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 seule commande peut entraîner l’échec de la compilation de la grammaire pour toutes vos commandes. Enfin, rendez votre paramètre vocal aussi distinct que raisonnablement possible des autres commandes vocales que vous définissez. Plus la similarité entre la grammaire vocale des 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.

La définition de la propriété Voice pour une commande active automatiquement les services vocaux de l’Agent, ce qui rend la clé d’écoute et l’info-bulle 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 vérifier auprès du fournisseur du moteur pour déterminer quelles options de grammaire sont prises en charge. Utilisez IAgentCharacterEx::SRModeID pour spécifier un moteur.

 

Voir aussi

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