Partager via


Instructions pour la conception de Cortana

Avertissement

Cette fonctionnalité n’est plus prise en charge à partir de la mise à jour Windows 10 Update de mai 2020 (version 2004, nom de code « 20H1 »).

Reportez-vous à Cortana dans Microsoft 365 pour savoir comment Cortana transforme les expériences de productivité modernes.

Ces instructions et recommandations décrivent comment votre application peut utiliser Cortana pour interagir avec l’utilisateur, les aider à accomplir une tâche et communiquer clairement comment elle se passe.

Cortana permet aux applications s’exécutant en arrière-plan d’inviter l’utilisateur à confirmer ou à lever l’ambiguïté et, en retour, à fournir à l’utilisateur des commentaires sur l’état de la commande vocale. Le processus est léger, rapide et ne force pas l’utilisateur à quitter l’expérience Cortana ou à basculer le contexte vers l’application.

Bien que l’utilisateur ait l’impression que Cortana aide à rendre le processus aussi léger et facile que possible, vous souhaitez probablement que Cortana soit également explicite qu’il s’agit de votre application effectuant la tâche.

Nous utilisons une application de planification et de gestion de voyage nommée Adventure Works intégrée à l’interface utilisateur Cortana , présentée ici, pour illustrer la plupart des concepts et fonctionnalités que nous abordons. Pour plus d’informations, consultez l’exemple de commande vocale Cortana.

Capture d’écran du canevas Cortana

Écriture conversationnelle

Les interactions Cortana réussies vous obligent à suivre certains principes fondamentaux lors de la création de chaînes de synthèse vocale (TTS) et d’interface graphique graphique.

Principe Exemple incorrect Bon exemple

Efficace

Utilisez autant de mots que possible et mettez les informations les plus importantes en avant.

Sûr de pouvoir faire, quel film voulez-vous rechercher aujourd’hui ? Nous avons une grande collection.

Quel film cherchez-vous ?

Relevant (pertinentes)

Fournissez des informations pertinentes uniquement pour la tâche, le contenu et le contexte.

J’ai ajouté cela à votre playlist. Alors vous savez, votre batterie est faible.

J’ai ajouté cela à votre playlist.

Clear

Évitez les ambiguïtés. Utilisez la langue quotidienne au lieu du jargon technique.

Aucun résultat pour la requête « Trips to Las Vegas ».

Je n’ai trouvé aucun voyage à Las Vegas.

Fiable

Soyez aussi précis que possible. Soyez transparent sur ce qui se passe en arrière-plan , si une tâche n’a pas encore terminé, ne dites pas qu’elle a. Respectez la confidentialité : ne lisez pas les informations privées à haute voix.

Je ne pouvais pas trouver ce film, il ne doit pas encore être sorti.

Je ne pouvais pas trouver ce film dans notre catalogue.

Écrivez comment les gens parlent. Ne mettez pas l’accent sur l’exactitude grammaticale par rapport à la sonorité naturelle. Par exemple, les raccourcis verbal conviviaux comme « want to » ou « gotta » sont parfaits pour la lecture de TTS.

Utilisez les tensions implicites de la première personne si possible et naturelle. Par exemple, « La recherche de votre prochain voyage Adventure Works » implique que quelqu’un effectue la recherche, mais n’utilise pas le mot « I » pour spécifier.

Utilisez une variante pour vous aider à rendre votre application plus naturelle. Fournissez différentes versions de vos chaînes TTS et GUI pour dire efficacement la même chose. Par exemple, « Quel film voulez-vous voir ? » pourrait avoir des alternatives comme « Quel film voulez-vous regarder ? ». Les gens ne disent pas la même chose exactement de la même façon à chaque fois. Veillez simplement à synchroniser vos versions TTS et GUI.

Utilisez des expressions comme « OK » et « Alright » dans vos réponses judicieusement. Bien qu’ils puissent fournir un accusé de réception et un sentiment de progression, ils peuvent également être répétitifs s’ils sont utilisés trop souvent et sans variante.

Remarque

Utilisez uniquement les expressions d’accusé de réception dans TTS. En raison de l’espace limité sur le canevas Cortana , ne les répétez pas dans les chaînes d’interface utilisateur correspondantes.

Utilisez des contractions dans vos réponses pour des interactions plus naturelles et des économies d’espace supplémentaires sur le canevas Cortana . Par exemple, je ne trouve pas ce film au lieu de « Je n’ai pas pu trouver ce film ». Écrivez pour l’oreille, pas pour l’œil.

Utilisez le langage que le système comprend. Les utilisateurs ont tendance à répéter les termes auxquels ils sont présentés. Sachez ce que vous affichez.

Utilisez une variante de vos réponses en faisant pivoter ou en sélectionnant de façon aléatoire, dans une collection de réponses alternatives. Par exemple, « Quel film voulez-vous voir ? » et « Quel film voulez-vous regarder ? ». Cela rend votre application plus naturelle et unique.

Localisation

Pour lancer une action à l’aide d’une commande vocale, votre application doit inscrire des commandes vocales dans la langue que l’utilisateur a sélectionnée sur son appareil (Paramètres > > du langage Speech > Speech).

Vous devez localiser les commandes vocales auxquelles votre application répond et toutes les chaînes TTS et GUI.

Vous devez éviter de longues chaînes d’interface graphique graphique. Le canevas Cortana fournit trois lignes pour les réponses et tronque les chaînes plus longues que cela.

Pour plus d’informations, consultez la section Globalisation et localisation.

Ressources d’image et mise à l’échelle

les applications plateforme Windows universelle (UWP) peuvent sélectionner automatiquement l’image de logo de l’application la plus appropriée en fonction de paramètres et de fonctionnalités d’appareil spécifiques (contraste élevé, pixels effectifs, paramètres régionaux, etc.). Il vous suffit de fournir les images et de vous assurer que vous utilisez la convention d’affectation de noms et l’organisation de dossiers appropriées au sein du projet d’application pour les différentes versions de ressources. Si vous ne fournissez pas les versions de ressources recommandées, l’accessibilité, la localisation et la qualité de l’image peuvent souffrir, en fonction des préférences, des capacités, du type d’appareil et de l’emplacement de l’utilisateur.

Pour plus d’informations sur les ressources d’image pour les facteurs de contraste et d’échelle élevés, consultez Recommandations pour les ressources de vignette et d’icône.

Vous nommez des ressources à l’aide de qualificateurs. Les qualificateurs de ressources sont des modificateurs de dossier et de nom de fichier qui identifient le contexte dans lequel une version particulière d’une ressource doit être utilisée.

La convention d’affectation de noms standard est « foldername/qualifiername-value[_qualifiername-value]/filename.qualifiername-value[_qualifiername-value].ext ». Par exemple : images/logo.scale-100_contrast-white.png est simplement référencé dans le code à l’aide du dossier racine et du nom de fichier : images/logo.png. Consultez Gérer la langue et la région et comment nommer des ressources à l’aide de qualificateurs.

Nous vous recommandons de marquer la langue par défaut sur les fichiers de ressources de chaîne (par exemple, « en-US\resources.resw ») et le facteur d’échelle par défaut sur les images (par exemple, « logo.scale-100.png »), même si vous ne prévoyez pas actuellement de fournir des ressources localisées ou plusieurs ressources de résolution. Toutefois, au minimum, nous vous recommandons de fournir des ressources pour 100, 200 et 400 facteurs d’échelle.

Important

L’icône d’application utilisée dans la zone de titre du canevas Cortana est l’icône Square44x44Logo spécifiée dans le fichier « Package.appxmanifest ».

Vous pouvez également spécifier une icône pour chaque vignette de résultat pour une requête utilisateur. Les tailles d’image valides pour les icônes de résultats sont les suivantes :

  • 68w x 68h
  • 68w x 92h
  • 280w x 140h

Modèles de vignettes de résultats

Un ensemble de modèles est fourni pour les vignettes de résultats affichées sur le canevas Cortana. Utilisez ces modèles pour spécifier le titre de la vignette et si la vignette inclut du texte et une image d’icône de résultat. Chaque vignette peut inclure jusqu’à trois lignes de texte et une image, selon le modèle spécifié.

Voici les modèles pris en charge (avec des exemples) :

Nom Exemple
Titre uniquement Capture d’écran du canevas Cortana montrant le titre uniquement
Titre avec du texte Capture d’écran du canevas Cortana montrant titre avec du texte
Titre avec l’icône 68x68 aucune image
Titre avec l’icône et le texte 68x68 Capture d’écran du canevas Cortana montrant titre avec l’icône et le texte 68x68
Titre avec l’icône 68x92 aucune image
Titre avec l’icône et le texte 68x92 Capture d’écran du canevas Cortana montrant titre avec l’icône et le texte 68x92
Titre avec l’icône 280x140 aucune image
Titre avec l’icône et le texte 280x140 Capture d’écran du canevas Cortana montrant titre avec l’icône et le texte 280x140

Pour plus d’informations sur les modèles Cortana, consultez VoiceCommandContentTileType .

Exemple

Cet exemple illustre un flux de tâches de bout en bout pour une application en arrière-plan dans Cortana. Nous utilisons l’application Adventure Works pour annuler un voyage à Las Vegas. Cet exemple utilise le modèle « Title with 68x68 icon and text ».

Capture d’écran du canevas Cortana pour le flux d’application en arrière-plan Cortana de bout en bout

Voici les étapes décrites dans cette image :

  1. L’utilisateur appuie sur le microphone pour lancer Cortana.
  2. L’utilisateur indique « Annuler mon voyage Adventure Works à Vegas » pour lancer l’application Adventure Works en arrière-plan. L’application utilise à la fois la reconnaissance vocale Cortana et le canevas pour interagir avec l’utilisateur.
  3. Cortana passe à un écran de transfert qui donne à l’utilisateur des commentaires d’accusé de réception (« J’obtiendrai Adventure Works sur cela. »), une barre d’état et un bouton Annuler.
  4. Dans ce cas, l’utilisateur a plusieurs voyages qui correspondent à la requête, de sorte que l’application fournit un écran d’ambiguïté qui répertorie tous les résultats correspondants et demande : « Qu’est-ce que vous voulez annuler ? »
  5. L’utilisateur spécifie l’élément « Vegas Tech Conference ».
  6. Comme l’annulation ne peut pas être annulée, l’application fournit un écran de confirmation qui demande à l’utilisateur de confirmer son intention.
  7. L’utilisateur indique « Oui ».
  8. L’application fournit ensuite un écran de saisie semi-automatique qui affiche le résultat de l’opération.

Nous explorons ces étapes plus en détail ici.

Handoff

Capture d’écran du canevas Cortana pour le flux d’application en arrière-plan Cortana de bout en bout à l’aide d’AdventureWorks à venir sans transfertAdventureWorks « Upcoming trip » sans écran de transfert

Capture d’écran du canevas Cortana pour le flux d’application en arrière-plan Cortana de bout en bout à l’aide d’AdventureWorks à venir avec transfertAdventureWorks « Voyage à venir » avec écran de transfert

Les tâches qui prennent moins de 500 ms pour que votre application réponde et ne nécessitent aucune information supplémentaire de l’utilisateur, peuvent être effectuées sans participation supplémentaire de Cortana, autre que l’affichage de l’écran d’achèvement.

Si votre application nécessite plus de 500 ms pour répondre, Cortana fournit un écran de transfert. L’icône et le nom de l’application sont affichés, et vous devez fournir à la fois des chaînes de transfert gui et TTS pour indiquer que la commande vocale a été correctement comprise. L’écran de transfert s’affiche pendant jusqu’à 5 secondes ; si votre application ne répond pas dans ce délai, Cortana présente un écran d’erreur générique.

Recommandations en matière d’interface graphique graphique et TTS pour les écrans de transfert

Indiquez clairement que la tâche est en cours.

Utilisez les tensions actuelles.

Utilisez un verbe d’action qui confirme la tâche qui lance et référence l’entité spécifique.

Utilisez un verbe générique qui ne s’engage pas dans l’action demandée et incomplète. Par exemple, « Recherche de votre voyage » au lieu de « Annuler votre voyage ». Dans ce cas, si aucun résultat n’est retourné, l’utilisateur n’entend pas quelque chose comme « Annulation de votre voyage à Las Vegas... Je ne pouvais pas trouver un voyage à Las Vegas".

N’oubliez pas que la tâche n’a pas déjà eu lieu si l’application doit toujours résoudre l’entité demandée. Par exemple, notez comment nous disons « Rechercher votre voyage » au lieu de « Annuler votre voyage », car zéro ou plusieurs voyages peuvent être mis en correspondance, et nous ne savons pas encore le résultat.

Les chaînes GUI et TTS peuvent être identiques, mais n’ont pas besoin d’être. Essayez de raccourcir la chaîne d’interface graphique graphique pour éviter la troncation et la duplication d’autres ressources visuelles.

TTS Interface graphique utilisateur
Vous cherchez votre prochain voyage Adventure Works. Vous cherchez votre prochain voyage...
Recherchez votre voyage Adventure Works à Falls City. Recherche de voyage à Falls City...

Progress

Capture d’écran du canevas Cortana pour le flux d’application en arrière-plan Cortana de bout en bout à l’aide de la progression de l’annulation de voyage AdventureWorksProgression d’AdventureWorks « Annuler le voyage »

Lorsqu’une tâche prend un certain temps entre les étapes, votre application doit passer à pas et mettre à jour l’utilisateur sur ce qui se passe sur un écran de progression. L’icône de l’application s’affiche et vous devez fournir à la fois des chaînes de progression de l’interface graphique utilisateur et TTS pour indiquer que la tâche est en cours.

Vous devez fournir un lien vers votre application avec des paramètres de lancement pour démarrer l’application dans l’état approprié. Cela permet à l’utilisateur d’afficher ou de terminer la tâche elle-même. Cortana fournit le texte du lien (par exemple, « Accéder à Adventure Works »).

Les écrans de progression s’affichent pendant 5 secondes chacune, après quoi ils doivent être suivis d’un autre écran ou la tâche expire.

Ces écrans peuvent suivre un écran de progression :

  • Progress
  • Confirmation (explicite, décrite plus loin)
  • Lever les ambiguïtés
  • Completion

Recommandations en matière d’interface graphique graphique et de TTS pour les écrans de progression

Utilisez les tensions actuelles.

Utilisez un verbe d’action qui confirme que la tâche est en cours.

GUI : Si l’entité est affichée, utilisez une référence à celle-ci (« Annulation de ce voyage... ») ; si aucune entité n’est affichée, appelez explicitement l’entité (« Annulation de « Vegas Tech Conference »).

TTS : Vous ne devez inclure qu’une chaîne TTS sur le premier écran de progression. Si d’autres écrans de progression sont requis, envoyez une chaîne vide, {}en tant que chaîne TTS et fournissez une chaîne d’interface graphique utilisateur uniquement.

Conditions TTS Interface graphique utilisateur
ENTITY READ ON PRIOR TURN / ENTITY SHOWN ON DISPLAY Annulation de ce voyage... Annulation de ce voyage...
ENTITÉ NON LUE LORS DE L’ACTIVATION PRÉCÉDENTE/ ENTITÉ AFFICHÉE SUR L’AFFICHAGE Annulation de votre voyage à Vegas... Annulation de ce voyage...
ENTITÉ NON LUE LORS DE L’ACTIVATION PRÉCÉDENTE/ ENTITÉ NON AFFICHÉE Annulation de votre voyage à Vegas... Annulation de votre voyage à Vegas...

Confirmation

Capture d’écran du canevas Cortana pour le flux d’application en arrière-plan Cortana de bout en bout à l’aide de la confirmation de l’annulation de voyage AdventureWorksConfirmation d’AdventureWorks « Annuler le voyage »

Certaines tâches peuvent être implicitement confirmées par la nature de la commande de l’utilisateur ; d’autres sont potentiellement plus sensibles et nécessitent une confirmation explicite. Voici quelques instructions relatives à l’utilisation d’une confirmation explicite ou implicite.

Les chaînes GUI et TTS sur l’écran de confirmation sont spécifiées par votre application et l’icône de l’application, le cas échéant, est affichée au lieu de l’avatar Cortana .

Une fois que le client répond à la confirmation, votre application doit fournir l’écran suivant dans un délai de 500 ms pour éviter d’accéder à un écran de progression.

Utilisez une utilisation explicite quand...

  • Le contenu quitte l’utilisateur (par exemple, un sms, un e-mail ou un billet social)
  • Une action ne peut pas être annulée (par exemple, effectuer un achat ou supprimer quelque chose)
  • Le résultat pourrait être embarrassant (par exemple, appeler la mauvaise personne)
  • Une reconnaissance plus complexe est requise (par exemple, la transcription ouverte)

Utilisez implicitement quand...

  • Le contenu est enregistré uniquement pour l’utilisateur (par exemple, une note à l’auto)
  • Il existe un moyen simple de se retirer (par exemple, activer ou désactiver une alarme)
  • La tâche doit être rapide (par exemple, capturer rapidement une idée avant d’oublier)
  • La précision est élevée (par exemple, un menu simple)

Recommandations en matière d’interface graphique graphique et TTS pour les écrans de confirmation

Utilisez les tensions actuelles.

Posez à l’utilisateur une question non ambiguë qui peut être répondue avec « Oui » ou « Non ». La question doit confirmer explicitement ce que l’utilisateur essaie de faire et il ne doit y avoir aucune autre option évidente.

Fournissez une variante de la question pour une nouvelle invite, si la commande vocale n’est pas comprise la première fois.

GUI : Si l’entité est affichée, utilisez une référence à celle-ci. Si aucune entité n’est affichée, appelez explicitement l’entité.

TTS : Pour plus de clarté, référencez toujours l’élément ou l’entité spécifique, sauf s’il a été lu par le système au tour précédent.

Conditions TTS Interface graphique utilisateur
ENTITÉ NON LUE LORS DE L’ACTIVATION PRÉCÉDENTE/ ENTITÉ AFFICHÉE SUR L’AFFICHAGE Voulez-vous annuler Vegas Tech Conference ? Annuler ce voyage ?
ENTITÉ NON LUE LORS DE L’ACTIVATION PRÉCÉDENTE/ ENTITÉ NON AFFICHÉE Voulez-vous annuler Vegas Tech Conference ? Annuler Vegas Tech Conference ?
ENTITY READ ON PRIOR TURN / ENTITY NOT SHOWN Voulez-vous annuler ce voyage ? Annuler ce voyage ?
REPROMPT AVEC L’ENTITÉ AFFICHÉE Voulez-vous annuler ce voyage ? Voulez-vous annuler ce voyage ?
REPROMPT AVEC L’ENTITÉ NON AFFICHÉE Voulez-vous annuler ce voyage ? Voulez-vous annuler Vegas Tech Conference ?

Lever les ambiguïtés

Capture d’écran du canevas Cortana pour le flux d’application en arrière-plan Cortana de bout en bout à l’aide de l’annulation de voyage AdventureWorks annuler l’ambiguïtéDéambiguation d’AdventureWorks « Cancel trip »

Certaines tâches peuvent obliger l’utilisateur à sélectionner dans une liste d’entités pour terminer la tâche.

Les chaînes GUI et TTS de l’écran d’ambiguïté sont spécifiées par votre application et l’icône de l’application, le cas échéant, est affichée au lieu de l’avatar Cortana .

Une fois que le client répond à la question d’ambiguïté, votre application doit fournir l’écran suivant dans les 500 ms pour éviter d’accéder à un écran de progression.

Recommandations en matière d’interface graphique graphique et de TTS pour les écrans d’ambiguïté

Utilisez les tensions actuelles.

Posez à l’utilisateur une question non ambiguë qui peut être répondue avec le titre ou la ligne de texte de n’importe quelle entité affichée.

Jusqu’à 10 entités peuvent être affichées.

Chaque entité doit avoir un titre unique.

Fournissez une variante de la question pour une nouvelle invite, si la commande vocale n’est pas comprise la première fois.

TTS : Pour plus de clarté, référencez toujours l’élément ou l’entité spécifique, sauf s’il a été parlé au tour précédent.

TTS : ne lisez pas la liste d’entités, sauf s’il y a trois ou moins et qu’ils sont courts.

Conditions TTS Interface graphique utilisateur
INVITE - 3 ÉLÉMENTS OU MOINS Quel voyage de Vegas voulez-vous annuler ? Vegas Tech Conference ou Party à Vegas ? Laquelle voulez-vous annuler ?
INVITE - PLUS DE 3 ÉLÉMENTS Quel voyage de Vegas voulez-vous annuler ? Laquelle voulez-vous annuler ?
REPROMPT Quel voyage de Vegas voulez-vous annuler ? Laquelle voulez-vous annuler ?

Completion

Capture d’écran du canevas Cortana pour le flux d’application en arrière-plan Cortana de bout en bout à l’aide de l’achèvement de l’annulation de voyage AdventureWorksAchèvement d’AdventureWorks « Annuler le voyage »

Une fois la tâche terminée, votre application doit informer l’utilisateur que la tâche demandée a été effectuée correctement.

Les chaînes GUI et TTS sur l’écran de saisie semi-automatique sont spécifiées par votre application et l’icône de l’application, le cas échéant, est affichée au lieu de l’avatar Cortana .

Vous devez fournir un lien vers votre application avec des paramètres de lancement pour démarrer l’application dans l’état approprié. Cela permet à l’utilisateur d’afficher ou de terminer la tâche elle-même. Cortana fournit le texte du lien (par exemple, « Accéder à Adventure Works »).

Recommandations en matière d’interface graphique graphique et de TTS pour les écrans d’achèvement

Utilisez le passé tendu.

Utilisez un verbe d’action pour indiquer explicitement que la tâche est terminée.

Si l’entité est affichée ou qu’elle a été référencée au préalable, référencez-la uniquement.

Conditions TTS Interface graphique utilisateur
ENTITÉ AFFICHÉE / LECTURE D’ENTITÉ LORS DE L’ACTIVATION PRÉCÉDENTE J’ai annulé ce voyage. Annulé ce voyage.
ENTITÉ NON AFFICHÉE / ENTITÉ NON LUE LORS DE L’ACTIVATION PRÉCÉDENTE J’ai annulé votre voyage De Vegas Tech Conference. Annulé « Vegas Tech Conference ».

Erreur

Capture d’écran du canevas Cortana pour le flux d’application en arrière-plan Cortana de bout en bout à l’aide de l’erreur d’annulation de voyage AdventureWorksErreur AdventureWorks « Annuler le voyage »

Lorsque l’une des erreurs suivantes se produit, Cortana affiche le même message d’erreur générique.

  • Le service d’application s’arrête de façon inattendue.
  • Cortana ne parvient pas à communiquer avec le service d’application.
  • L’application ne parvient pas à fournir un écran après que Cortana affiche un écran de transfert ou un écran de progression pendant 5 secondes.