Éléments et attributs d’un fichier VCD v1.2

Notes

Les Cortana Skills Kit pour les consommateurs et les entreprises, ainsi que les compétences créées sur ces plateformes, ont été dépréciées.

Documentation de référence pour les éléments de balisage XML et les attributs utilisés dans les fichiers de définition de commande vocale (VCD) pour spécifier les contraintes de reconnaissance.

Utilisez des commandes vocales pour lancer une application et spécifier une action ou une commande à exécuter. Par exemple, un utilisateur peut appuyer sur le bouton Démarrer et dire « Widgets Contoso, afficher les meilleurs vendeurs » pour lancer l’application Widgets Contoso et accéder à une page « best sellers ».

Éléments et attributs

Comme pour tout fichier XML, un fichier VCD doit commencer par une déclaration XML qui spécifie à la fois la version XML et l’encodage de caractères.

<?xml version="1.0" encoding="utf-8"?>

L’élément racine est l’élément VoiceCommands et son attribut xmlns doit être défini sur http://schemas.microsoft.com/voicecommands/1.2 (pas de caractères majuscules). Pour obtenir un exemple conforme à ce schéma, consultez l’exemple De commande vocale Cortana.

Élément Description
VoiceCommands Obligatoire. Élément racine d’un fichier VCD. Contient entre 1 et 15 éléments CommandSet , chacun représentant les commandes vocales d’une seule langue.
CommandSet Élément enfant obligatoire de l’élément VoiceCommands . Conteneur pour toutes les commandes vocales qu’une application accepte dans la langue spécifiée par l’attribut xml :lang requis.

La valeur de l’attribut xml :lang doit être unique dans le document VoiceCommand , et il s’agit d’une seule langue spécifique, spécifiée dans le formulaire de nom de langue, qui correspond à une langue disponible dans le panneau de configuration Speech .

Note Les langues spécifiées dans le fichier VCD, mais non prises en charge sur le système, sont ignorées.

L’attribut Name est facultatif et peut être n’importe quelle chaîne arbitraire ; Toutefois, l’attribut Name est nécessaire pour référencer et mettre à jour par programmation la propriété PhraseList d’un élément CommandSet. L’élément CommandSet contient les éléments enfants suivants : Éléments CommandPrefix (0 ou 1) ou AppName (0 ou 1), Exemple (exactement 1), Command (1 à 100), Éléments PhraseList (0 à 10) et Éléments PhraseTopic (0 à 10). Ces éléments enfants doivent se produire dans l’ordre indiqué.

Mutuellement CommandPrefix

Élément enfant facultatif de l’élément CommandSet . Le cas échéant, doit être le premier élément enfant de l’élément CommandSet .

Spécifie un nom convivial pour une application qu’un utilisateur peut parler lors de l’exécution d’une commande vocale. Cela est utile pour les applications dont les noms sont longs ou difficiles à prononcer.

Évitez d’utiliser des préfixes qui entrent en conflit avec d’autres expériences vocales.

AppName

Élément enfant facultatif de l’élément CommandSet . Le cas échéant, doit être le premier élément enfant de l’élément CommandSet .

Remplace CommandPrefix et prend en charge l’attribut et {builtin:AppName} l’expression RequireAppName de l’élément ListenFor.

Spécifie un nom convivial pour une application qu’un utilisateur peut parler lors de l’exécution d’une commande vocale. Cela est utile pour les applications dont les noms sont longs ou difficiles à prononcer.

Évitez d’utiliser des préfixes qui entrent en conflit avec d’autres expériences vocales.

Par défaut, appName est pris en charge en tant que suffixe dans la commande vocale.

Commande

Élément enfant obligatoire de l’élément CommandSet .

Prend l’attribut Name . Définit une action d’application que les utilisateurs peuvent lancer en parlant et ce que les utilisateurs peuvent dire pour lancer l’action. Chaque élément Command peut être associé à une page spécifique dans votre application. Contient les éléments enfants requis suivants : Example (exactement 1), ListenFor (1 à 20), Feedback (exactement 1) et Navigate (exactement 1). Ces éléments enfants doivent se produire dans l’ordre indiqué.

Exemple Enfant obligatoire de l’élément CommandSet (exactement 1) et de l’élément Command (1 à 20). Donne un exemple représentatif de ce qu’un utilisateur peut dire pour un CommandSet dans son ensemble et pour une commande individuelle. Ces exemples seront visibles par un utilisateur à partir de l’écran Que puis-je dire . Cet écran s’affiche lorsqu’un utilisateur appuie sur le bouton Rechercher (sur les téléphones Windows) ou appelle Cortana et dit « Aide » ou « Que puis-je dire ? », ou appuie sur Afficher plus.

Note Les exemples doivent inclure AppName ou CommandPrefix.

ListenFor

Élément enfant obligatoire (1 à 20) de l’élément Command .

Contient un mot ou une expression que votre application reconnaîtra pour cette commande. Cela peut inclure ou être une référence à l’attribut Label d’un élément PhraseList (ou PhraseTopic), qui apparaît dans l’élément ListenFor entouré d’accolades, par exemple : {myList}, ou {myTopic}.

Le contenu de n’importe quel élément ListenFor peut être reconnu pour activer la commande.

Un attribut RequireAppName facultatif peut être spécifié pour indiquer si la valeur de l’élément AppName peut être ajoutée, ajoutée ou utilisée en ligne avec l’élément ListenFor .

Cet attribut prend en charge quatre valeurs :

  • BeforePhrase

    L’utilisateur doit indiquer appName avant l’expression ListenFor .

  • AfterPhrase

    L’utilisateur doit dire « In|Activé|Utilisation de|With » AppName après l’expression ListenFor .

  • BeforeOrAfterPhrase

    L’utilisateur doit indiquer appName avant ou après l’expression ListenFor .

  • ExplicitlySpecified

    AppName est explicitement référencé dans ListenFor, à l’aide {builtin:AppName}de . L’utilisateur n’est pas tenu de dire appName avant ou après l’expression ListenFor .

Utilisez des crochets autour d’un ou plusieurs mots facultatifs. Autrement dit, le ou les mots peuvent être prononcés, mais ne sont pas nécessaires pour une correspondance. Par exemple : <ListenFor>[Show] {options}</ListenFor>.

Vous pouvez configurer des fonctionnalités génériques en incluant un astérisque à l’intérieur d’une paire d’accolades, telles que <ListenFor> Find {*} </ListenFor>. Dans cet exemple, la commande vocale correspond tant que l’utilisateur parle « Rechercher », éventuellement suivi de tout autre mot ou expression. Si la commande vocale d’un élément ListenFor avec caractère générique est mise en correspondance, la propriété SpeechRecognitionResult.Text contient la chaîne « ... » dans la même position que le caractère générique.

Commentaires Élément enfant obligatoire de l’élément Command . Spécifie le texte qui sera affiché et lu à l’utilisateur lorsque la commande sera reconnue. Si l’élément Feedback inclut une référence à un attribut Label d’un élément PhraseList (ou PhraseTopic), chaque élément ListenFor de l’élément Command contenant doit également référencer le même attribut Label de l’élément PhraseList (ou PhraseTopic).
Mutuellement NaviguerÉlément enfant obligatoire de l’élément Command , sauf si l’élément Command a un élément enfant VoiceCommandService . L’attribut Target est facultatif et est généralement utilisé pour spécifier la page vers laquelle l’application doit accéder lorsqu’elle démarre. Vous pouvez obtenir la valeur de l’attribut Target (ou de la chaîne vide si vous omettez l’attribut Target ) à partir du dictionnaire SpeechRecognitionSemanticInterpretation.Properties à l’aide de la clé « NavigationTarget ».
VoiceCommandService Élément enfant obligatoire de l’élément Command , sauf si l’élément Command a un élément enfant Navigate . Cet élément spécifie que la commande vocale est gérée via un service d’application (voir Windows.ApplicationModel.AppService) avec des commentaires affichés sur le canevas Cortana . L’attribut Target est obligatoire et doit correspondre à la valeur de l’attribut Name de l’élément AppService dans le manifeste du package d’application.
PhraseList

Enfant facultatif de l’élément CommandSet . Un élément CommandSet ne peut pas contenir plus de 2 000 éléments Item , et 2 000 éléments Item constituent la limite totale combinée de tous les éléments PhraseList dans un CommandSet. Chaque élément spécifie un mot ou une expression qui peut être reconnu pour lancer la commande qui fait référence à PhraseList. Le contenu des éléments peut être mis à jour par programmation à partir de votre application. Un Objet PhraseList nécessite l’attribut Label , dont la valeur peut apparaître (entourée d’accolades) à l’intérieur des éléments ListenFor ou Feedback , et est utilisé pour faire référence à PhraseList.

PhraseList a un attribut Disambiguate facultatif (valeur true par défaut), qui spécifie si cette PhraseList génère une levée d’ambiguïté de l’utilisateur lorsque plusieurs éléments de la liste sont reconnus simultanément. Si la valeur est false, cette PhraseList est également inutilisable à partir des éléments Feedback et ne produit pas de paramètres pour votre application. Cela est utile pour les expressions qui sont d’autres façons de dire la même chose, mais qui ne nécessitent aucune action spécifique.

Dans votre application, pour savoir quelle expression de la liste a été parlée, vous pouvez accéder au dictionnaire SpeechRecognitionSemanticInterpretation.Properties à l’aide d’une clé avec la même valeur que l’étiquette de phraseList.

Élément Enfant facultatif de l’élément PhraseList . Un des multiples mots ou expressions qui peuvent être reconnus pour lancer une commande. Un CommandSet ne peut pas contenir plus de 2 000 éléments Item dans tous ses éléments PhraseList enfants.
PhraseTopic

Enfant facultatif de l’élément CommandSet . Spécifie une rubrique pour la reconnaissance de vocabulaire volumineux. La rubrique peut spécifier un attribut scénario unique (0 ou 1) et plusieurs (0 à 20) éléments enfants d’objet pour le scénario, qui peuvent être utilisés pour améliorer la pertinence de la reconnaissance obtenue. Une phraseTopic nécessite l’attribut Label, dont la valeur peut apparaître, entourée d’accolades, à l’intérieur des éléments ListenFor ou Feedback, et est utilisé pour référencer l’élément PhraseTopic.

L’attribut Scenario (par défaut « Dictée ») spécifie le scénario souhaité pour cette PhraseTopic, qui peut optimiser la reconnaissance vocale sous-jacente des commandes vocales à l’aide de PhraseTopic pour produire des résultats mieux adaptés au contexte souhaité de la commande. Les valeurs valides sont « Natural Language », « Search », « Short Message », « Dictée », « Commands » et « Form Filling ».

Les éléments enfants Subject spécifient un sujet spécifique à l’attribut Scenario de l’expressionTopic parente pour affiner davantage la pertinence des résultats de la reconnaissance vocale dans les commandes parlées à l’aide de PhraseTopic. Les sujets seront évalués dans l’ordre fourni et, le cas échéant, les sujets spécifiés ultérieurement limiteront ceux spécifiés précédemment. Les valeurs de texte interne valides sont « Date/Heure », « Adresses », « Ville/État », « Noms de personne », « Films », « Musique » et « Numéro de téléphone ». Par exemple : <Subject>Phone Number</Subject>

Dans votre application, pour connaître le contenu parlé dans le sous-ensemble d’un élément ListenFor représenté par une référence PhraseTopic, vous pouvez accéder au dictionnaire SpeechRecognitionSemanticInterpretation.Properties à l’aide d’une clé avec la même valeur que l’étiquette de PhraseTopic.

Important

Il n’est pas possible d’imbriquer les caractères spéciaux répertoriés ci-dessous. Par exemple, les instructions telles que [[start] new game] et [{myPhraseList}] ne sont pas possibles.

Caractère spécial Description
{} Contient la valeur de l’attribut Label pour phraseList ou PhraseTopic à référencer, par exemple : {myList}, ou {myTopic}. Utilisé dans un élément ListenFor ou Feedback . Une référence PhraseList ou PhraseTopic dans un élément Feedback doit correspondre à une référence correspondante dans un élément ListenFor dans la même commande.
[]Désigne que le mot ou l’expression joint est facultatif. Le mot ou l’expression joint peut être prononcé, mais il n’est pas nécessaire d’être reconnu pour lancer la commande. Par exemple, si le contenu d’un élément ListenFor est « [start] [begin] new game », l’utilisateur peut parler « start new game » ou « new game » ou « begin new game » (ou même « start begin new game ») pour lancer la commande. Chaque élément entre crochets est facultatif indépendamment, mais il doit être prononcé dans l’ordre correct pour être reconnu. Ainsi, dans l’exemple « nouveau jeu », « commencer un nouveau jeu » fonctionnerait, mais « commencer le nouveau jeu » ne fonctionnerait pas en raison de l’ordre dans lequel ils ont été déclarés.

Voir aussi

Windows.ApplicationModel.VoiceCommands

Interactions avec Cortana

Exemples
Exemple de commande vocale Cortana