Cortana-Entwurfsrichtlinien
Warnung
Diese Funktion wird seit dem Windows 10 Mai 2020 Update (Version 2004, Codename „20H1“) nicht mehr unterstützt.
Diese Richtlinien und Empfehlungen beschreiben, wie Ihre App Cortana am besten für die Interaktion mit dem Benutzer verwenden kann, ihnen dabei helfen, eine Aufgabe zu erledigen und klar zu kommunizieren, wie alles geschieht.
Mit Cortana können Anwendungen, die im Hintergrund ausgeführt werden, den Benutzer zur Bestätigung oder Mehrdeutigkeit auffordern und dem Benutzer im Gegenzug Feedback zum Status des Sprachbefehls geben. Der Prozess ist einfach, schnell und erzwingt nicht, dass der Benutzer die Cortana-Oberfläche verlässt oder den Kontext zur Anwendung wechselt.
Während der Benutzer das Gefühl hat, Dass Cortana dabei hilft, den Prozess so leicht und einfach wie möglich zu machen, möchten Sie wahrscheinlich, dass Cortana auch explizit sein soll, dass dies Ihre App für die Aufgabe ist.
Wir verwenden eine Reiseplanungs- und Verwaltungs-App namens Adventure Works , die in die Cortana-Benutzeroberfläche integriert ist, die hier gezeigt wird, um viele der konzepte und Features zu veranschaulichen, die wir diskutieren. Weitere Informationen finden Sie im Cortana-Sprachbefehlsbeispiel.
Unterhaltungsschreiben
Erfolgreiche Cortana-Interaktionen erfordern, dass Sie beim Erstellen von Text-zu-Sprache -Zeichenfolgen (TEXT-to-Speech, TTS) und GUI-Zeichenfolgen einige grundlegende Prinzipien befolgen.
Prinzip | Schlechtes Beispiel | Gutes Beispiel |
---|---|---|
|
Sie können wissen, welchen Film möchten Sie heute suchen? Wir haben eine große Sammlung. |
Sicher, nach welchem Film suchen Sie? |
|
Ich habe dies zu Ihrer Wiedergabeliste hinzugefügt. Genau so wissen Sie, dass ihre Batterie niedrig wird. |
Ich habe dies zu Ihrer Wiedergabeliste hinzugefügt. |
|
Keine Ergebnisse für die Abfrage "Trips to Las Vegas". |
Ich konnte keine Reisen nach Las Vegas finden. |
|
Ich konnte diesen Film nicht finden, es darf noch nicht veröffentlicht worden sein. |
Ich konnte diesen Film in unserem Katalog nicht finden. |
Schreiben Sie, wie Die Leute sprechen. Heben Sie die Grammatikgenauigkeit nicht auf natürliche Klangqualität hervor. Zum Beispiel sind ohrfreundliche Verbalverknüpfungen wie "Willen" oder "Gotta" für TTS-Vorlesen in Ordnung.
Verwenden Sie die implizierte Erste Person, sofern möglich und natürlich. Beispielsweise bedeutet "Suchen nach Ihrer nächsten Adventure Works-Reise", dass jemand die Suche ausführt, aber nicht das Wort "I" verwendet, um anzugeben.
Verwenden Sie einige Variationen, um ihren App-Sound natürlicher zu gestalten. Stellen Sie verschiedene Versionen Ihrer TTS- und GUI-Zeichenfolgen bereit, um dasselbe zu sagen. Beispielsweise könnte "Welcher Film möchten Sie sehen?" Alternativen wie "Welchen Film möchten Sie sehen?". Die Leute sagen nicht immer das gleiche. Stellen Sie einfach sicher, dass Ihre TTS- und GUI-Versionen synchronisiert bleiben.
Verwenden Sie Ausdrücke wie "OK" und "Recht" in Ihren Antworten sorgfältig. Sie können zwar Anerkennung und ein Gefühl des Fortschritts bieten, aber sie können sich auch wiederholen, wenn sie zu oft und ohne Variation verwendet werden.
Hinweis
Verwenden Sie nur Bestätigungsausdrücke in TTS. Aufgrund des begrenzten Platzes auf der Cortana-Canvas wiederholen Sie sie nicht in den entsprechenden GUI-Zeichenfolgen.
Verwenden Sie Kontraktionen in Ihren Antworten für natürlichere Interaktionen und zusätzliche Platzeinsparungen auf der Cortana-Canvas . Beispielsweise kann ich diesen Film nicht finden" anstelle von "Ich konnte diesen Film nicht finden". Schreiben Sie für das Ohr, nicht das Auge.
Verwenden Sie die Sprache, die das System versteht. Benutzer neigen dazu, die Begriffe zu wiederholen, mit denen sie präsentiert werden. Wissen Sie, was Sie anzeigen.
Verwenden Sie einige Variationen in Ihren Antworten, indem Sie eine Sammlung alternativer Antworten drehen oder zufällig auswählen. Beispiel: "Welchen Film möchten Sie sehen?" und "Welchen Film möchten Sie sehen?". Dadurch klingt Ihre App natürlicher und einzigartig.
Lokalisierung
Um eine Aktion mithilfe eines Sprachbefehls zu initiieren, muss Ihre App Sprachbefehle in der Sprache registrieren, die der Benutzer auf dem Gerät ausgewählt hat (Einstellungen > für die Spracherkennungssprache > des Systems>).
Sie sollten die Sprachbefehle lokalisieren, auf die Ihre App reagiert, und alle TTS- und GUI-Zeichenfolgen.
Sie sollten lange GUI-Zeichenfolgen vermeiden. Der Cortana-Zeichenbereich stellt drei Zeilen für Antworten bereit und schneidet Zeichenfolgen ab, die länger sind als dies.
Weitere Informationen finden Sie im Abschnitt "Globalisierung und Lokalisierung".
Bildressourcen und Skalierung
Universelle Windows-Plattform (UWP)-Apps können automatisch das am besten geeignete App-Logobild basierend auf bestimmten Einstellungen und Gerätefunktionen (hoher Kontrast, effektive Pixel, Gebietsschema usw.) auswählen. Sie müssen lediglich die Bilder bereitstellen und sicherstellen, dass Sie die entsprechende Benennungskonvention und Ordnerorganisation innerhalb des App-Projekts für die verschiedenen Ressourcenversionen verwenden. Wenn Sie nicht die empfohlenen Ressourcenversionen, Barrierefreiheit, Lokalisierung und Bildqualität bereitstellen, kann abhängig von den Vorlieben, Fähigkeiten, Gerätetyp und Standort des Benutzers leiden.
Weitere Details zu Bildressourcen für hohe Kontrast- und Skalierungsfaktoren finden Sie in den Richtlinien für Kachel- und Symbolressourcen.
Sie benennen Ressourcen mithilfe von Qualifizierern. Ressourcenqualifizierer sind Ordner- und Dateinamenmodifizierer, die den Kontext identifizieren, in dem eine bestimmte Version einer Ressource verwendet werden soll.
Die Standardbenennungskonvention ist "foldername/qualifiername-value[_qualifiername-value]/filename.qualifiername-value[_qualifiername-value].ext". Beispiel: Images/logo.scale-100_contrast-white.png wird einfach im Code mithilfe des Stammordners und des Dateinamens "images/logo.png" bezeichnet. Siehe "Sprache und Region verwalten " und "Benennen von Ressourcen mithilfe von Qualifizierern".
Es wird empfohlen, die Standardsprache für Zeichenfolgenressourcendateien (z. B. "en-US\resources.resw") und den Standardskalierungsfaktor für Bilder (z. B. "logo.scale-100.png") zu markieren, auch wenn Sie derzeit keine lokalisierten oder mehrere Auflösungsressourcen bereitstellen möchten. Es wird jedoch empfohlen, Ressourcen für 100, 200 und 400 Skalierungsfaktoren bereitzustellen.
Wichtig
Das app-Symbol, das im Titelbereich der Cortana-Canvas verwendet wird, ist das in der Datei "Package.appxmanifest" angegebene Symbol "Square44x44Logo".
Sie können auch ein Symbol für jede Ergebniskachel für eine Benutzerabfrage angeben. Gültige Bildgrößen für Ergebnissymbole sind:
- 68w x 68h
- 68w x 92h
- 280w x 140h
Ergebniskachelvorlagen
Es werden eine Reihe von Vorlagen für die Ergebniskacheln bereitgestellt, die auf der Cortana-Canvas angezeigt werden. Verwenden Sie diese Vorlagen, um den Kacheltitel anzugeben und anzugeben, ob die Kachel Text und ein Ergebnissymbolbild enthält. Jede Kachel kann je nach der angegebenen Vorlage bis zu drei Textzeilen und ein Bild enthalten.
Hier sind die unterstützten Vorlagen (mit Beispielen):
Name | Beispiel |
---|---|
Nur Titel | |
Titel mit Text | |
Titel mit 68 x 68 Symbol | kein Bild |
Titel mit 68 x 68 Symbol und Text | |
Titel mit 68x92-Symbol | kein Bild |
Titel mit Symbol und Text von 68 x 92 | |
Titel mit 280x140-Symbol | kein Bild |
Titel mit Symbol und Text von 280 x 140 |
Weitere Informationen zu Cortana-Vorlagen finden Sie unter VoiceCommandContentTileType .
Beispiel
In diesem Beispiel wird ein End-to-End-Aufgabenfluss für eine Hintergrund-App in Cortana veranschaulicht. Wir verwenden die Adventure Works-App , um eine Reise nach Las Vegas abzubrechen. In diesem Beispiel wird die Vorlage "Titel mit 68 x 68 Symbol und Text" verwendet.
Die folgenden Schritte sind in dieser Abbildung beschrieben:
- Der Benutzer tippt auf das Mikrofon, um Cortana zu initiieren.
- Der Benutzer sagt "Meine Adventure Works-Reise nach Vegas abbrechen", um die Adventure Works-App im Hintergrund zu starten. Die App verwendet sowohl Cortana-Spracherkennung als auch Canvas, um mit dem Benutzer zu interagieren.
- Cortana wechselt zu einem Übergabebildschirm, der dem Benutzer Bestätigungsfeedback gibt ("Ich erhalte Adventure Works dazu."), eine Statusleiste und eine Schaltfläche "Abbrechen".
- In diesem Fall verfügt der Benutzer über mehrere Reisen, die der Abfrage entsprechen. Daher stellt die App einen Mehrdeutigkeitsbildschirm bereit, der alle übereinstimmenden Ergebnisse auflistet und fragt: "Welche möchten Sie abbrechen?"
- Der Benutzer gibt das Element "Vegas Tech Conference" an.
- Da der Abbruch nicht rückgängig gemacht werden kann, stellt die App einen Bestätigungsbildschirm bereit, der den Benutzer auffordern, seine Absicht zu bestätigen.
- Der Benutzer sagt "Ja".
- Die App stellt dann einen Abschlussbildschirm bereit, der das Ergebnis des Vorgangs anzeigt.
Wir untersuchen diese Schritte hier ausführlicher.
Handoff
AdventureWorks "Bevorstehende Reise" ohne Übergabebildschirm
AdventureWorks „Bevorstehende Reise“ mit Übergabebildschirm
Aufgaben, die weniger als 500 ms benötigen, damit Ihre App reagiert, und keine zusätzlichen Informationen vom Benutzer benötigen, können ohne weitere Teilnahme von Cortana abgeschlossen werden, außer der Anzeige des Abschlussbildschirms.
Wenn Ihre Anwendung mehr als 500 ms benötigt, um zu reagieren, stellt Cortana einen Übergabebildschirm bereit. Das App-Symbol und der Name werden angezeigt, und Sie müssen sowohl GUI- als auch TTS-Übergabezeichenfolgen angeben, um anzugeben, dass der Sprachbefehl richtig verstanden wurde. Der Übergabebildschirm wird für bis zu 5 Sekunden angezeigt. Wenn Ihre App innerhalb dieses Zeitraums nicht reagiert, zeigt Cortana einen generischen Fehlerbildschirm an.
GUI- und TTS-Richtlinien für Übergabebildschirme
Geben Sie eindeutig an, dass der Vorgang ausgeführt wird.
Verwenden Sie "Präsens".
Verwenden Sie ein Aktionsverb, das bestätigt, welche Aufgabe initiiert wird, und verweisen Sie auf die bestimmte Entität.
Verwenden Sie ein generisches Verb, das keinen Commit auf die angeforderte, unvollständige Aktion ausführt. Beispiel: "Suchen Sie nach Ihrer Reise" statt "Ihre Reise stornieren". Wenn in diesem Fall keine Ergebnisse zurückgegeben werden, hört der Benutzer etwas wie "Stornieren Ihrer Reise nach Las Vegas... Ich konnte eine Reise nach Las Vegas nicht finden".
Stellen Sie sicher, dass die Aufgabe noch nicht ausgeführt wurde, wenn die App die angeforderte Entität noch auflösen muss. Beachten Sie beispielsweise, wie wir "Suchen nach Ihrer Reise" anstelle von "Stornieren Ihrer Reise" sagen, da null oder mehr Reisen übereinstimmen können, und wir wissen das Ergebnis noch nicht.
Die GUI- und TTS-Zeichenfolgen können identisch sein, müssen aber nicht sein. Versuchen Sie, die GUI-Zeichenfolge kurz zu halten, um das Abschneiden und Duplizieren anderer visueller Ressourcen zu vermeiden.
TTS | GUI |
---|---|
Suchen Sie nach Ihrer nächsten Adventure Works-Reise. | Suchen Sie nach Ihrer nächsten Reise... |
Suchen Sie nach Ihrer Adventure Works-Reise nach Falls City. | Suche nach Einer Reise nach Falls City... |
Status
Fortschritt "Reise abbrechen" in AdventureWorks
Wenn eine Aufgabe eine Weile zwischen den Schritten dauert, muss Ihre App den Benutzer auf einem Statusbildschirm schrittweise ein- und aktualisieren. Das App-Symbol wird angezeigt, und Sie müssen sowohl GUI- als auch TTS-Statuszeichenfolgen angeben, um anzugeben, dass die Aufgabe ausgeführt wird.
Sie sollten einen Link zu Ihrer App mit Startparametern bereitstellen, um die App im entsprechenden Zustand zu starten. Auf diese Weise kann der Benutzer die Aufgabe selbst anzeigen oder abschließen. Cortana stellt den Linktext bereit (z. B. "Gehe zu Adventure Works").
Statusbildschirme werden jeweils für 5 Sekunden angezeigt, nach denen sie von einem anderen Bildschirm gefolgt werden müssen, oder die Aufgabe wird timeout.
Diese Bildschirme können einem Statusbildschirm folgen:
- Status
- Bestätigung (explizit, später beschrieben)
- Mehrdeutigkeitsvermeidung
- Completion
GUI- und TTS-Richtlinien für Statusbildschirme
Verwenden Sie "Präsens".
Verwenden Sie ein Aktionsverb, das bestätigt, dass die Aufgabe ausgeführt wird.
GUI: Wenn die Entität angezeigt wird, verwenden Sie einen Verweis darauf ("Diese Reise wird abgebrochen..."); wenn keine Entität angezeigt wird, rufen Sie die Entität explizit auf ("Cancelling 'Vegas Tech Conference'").
TTS: Sie sollten nur eine TTS-Zeichenfolge auf dem ersten Statusbildschirm einschließen. Wenn weitere Statusbildschirme erforderlich sind, senden Sie eine leere Zeichenfolge, {}als TTS-Zeichenfolge, und geben Sie nur eine GUI-Zeichenfolge an.
Bedingungen | TTS | GUI |
---|---|---|
ENTITÄT LESEN VOR DEM AKTIVIEREN / ENTITÄT, DIE ANGEZEIGT WIRD | Diese Reise wird storniert... | Diese Reise wird storniert... |
ENTITY NOT READ ON PRIOR TURN / ENTITY SHOWN ON DISPLAY | Ihre Reise nach Vegas stornieren... | Diese Reise wird storniert... |
ENTITÄT NICHT GELESEN BEI VORHERIGER AKTIVIERUNG / ENTITÄT NICHT ANGEZEIGT | Ihre Reise nach Vegas stornieren... | Ihre Reise nach Vegas stornieren... |
Bestätigung
Bestätigung von AdventureWorks "Reise stornieren"
Einige Aufgaben können implizit durch die Art des Befehls des Benutzers bestätigt werden; andere personen sind potenziell sensibler und erfordern eine explizite Bestätigung. Hier sind einige Richtlinien für die Verwendung expliziter und impliziter Bestätigungen.
Sowohl GUI- als auch TTS-Zeichenfolgen auf dem Bestätigungsbildschirm werden von Ihrer App angegeben, und das App-Symbol (sofern angegeben) wird anstelle des Cortana-Avatars angezeigt.
Nachdem der Kunde auf die Bestätigung geantwortet hat, muss Ihre Anwendung den nächsten Bildschirm innerhalb von 500 ms bereitstellen, um zu vermeiden, dass sie zu einem Statusbildschirm wechseln.
Explizite Verwendung, wenn...
- Inhalte verlassen den Benutzer (z. B. eine Sms, E-Mail oder soziale Beiträge)
- Eine Aktion kann nicht rückgängig gemacht werden (z. B. einen Kauf tätigen oder löschen)
- Das Ergebnis könnte peinlich sein (z. B. das Aufrufen der falschen Person)
- Komplexere Erkennung ist erforderlich (z. B. offene Transkription)
Implizite Verwendung, wenn...
- Inhalte werden nur für den Benutzer gespeichert (z. B. eine Notiz-zu-Selbst-
- Es gibt eine einfache Möglichkeit, sich zurückzuschalten (z. B. Ein- oder Ausschalten eines Alarms)
- Die Aufgabe muss schnell sein (z. B. schnelles Erfassen einer Idee vor dem Vergessen)
- Genauigkeit ist hoch (z. B. ein einfaches Menü)
GUI- und TTS-Richtlinien für Bestätigungsbildschirme
Verwenden Sie "Präsens".
Stellen Sie dem Benutzer eine eindeutige Frage, die mit "Ja" oder "Nein" beantwortet werden kann. Die Frage sollte explizit bestätigen, was der Benutzer zu tun versucht, und es sollten keine anderen offensichtlichen Optionen vorhanden sein.
Stellen Sie eine Variante der Frage für eine erneute Eingabeaufforderung bereit, falls der Sprachbefehl beim ersten Mal nicht verstanden wird.
GUI: Wenn die Entität angezeigt wird, verwenden Sie einen Verweis darauf. Wenn keine Entität angezeigt wird, rufen Sie die Entität explizit auf.
TTS: Verweisen Sie aus Gründen der Übersichtlichkeit immer auf das bestimmte Element oder die bestimmte Entität, es sei denn, sie wurde vom System im vorherigen Turn vorgelesen.
Bedingungen | TTS | GUI |
---|---|---|
ENTITY NOT READ ON PRIOR TURN / ENTITY SHOWN ON DISPLAY | Möchten Sie Vegas Tech Conference abbrechen? | Diese Reise stornieren? |
ENTITÄT NICHT GELESEN BEI VORHERIGER AKTIVIERUNG / ENTITÄT NICHT ANGEZEIGT | Möchten Sie Vegas Tech Conference abbrechen? | Vegas Tech Conference abbrechen? |
ENTITÄT LESEN VOR DEM AKTIVIEREN / ENTITÄT NICHT ANGEZEIGT | Möchten Sie diese Reise stornieren? | Diese Reise stornieren? |
ERNEUTER VORSCHREIBEN DER ANGEZEIGTEN ENTITÄT | Möchten Sie diese Reise stornieren? | Möchten Sie diese Reise stornieren? |
ERNEUTER VORSCHREIBEN VON ENTITÄTEN, DIE NICHT ANGEZEIGT WERDEN | Möchten Sie diese Reise stornieren? | Wollten Sie Vegas Tech Conference abbrechen? |
Mehrdeutigkeitsvermeidung
Mehrdeutige Mehrdeutigkeit von AdventureWorks "Cancel trip"
Bei einigen Aufgaben muss der Benutzer möglicherweise aus einer Liste der Entitäten auswählen, um die Aufgabe abzuschließen.
Sowohl GUI- als auch TTS-Zeichenfolgen auf dem Mehrdeutigkeitsbildschirm werden von Ihrer App angegeben, und das App-Symbol (sofern angegeben) wird anstelle des Cortana-Avatars angezeigt.
Nachdem der Kunde auf die Mehrdeutigkeitsfrage geantwortet hat, muss Ihre Anwendung den nächsten Bildschirm innerhalb von 500 ms bereitstellen, um zu vermeiden, dass sie zu einem Statusbildschirm wechseln.
GUI- und TTS-Richtlinien für Mehrdeutigkeitsbildschirme
Verwenden Sie "Präsens".
Stellen Sie dem Benutzer eine eindeutige Frage, die mit dem Titel oder der Textzeile jeder angezeigten Entität beantwortet werden kann.
Bis zu 10 Entitäten können angezeigt werden.
Jede Entität sollte über einen eindeutigen Titel verfügen.
Stellen Sie eine Variante der Frage für eine erneute Eingabeaufforderung bereit, falls der Sprachbefehl beim ersten Mal nicht verstanden wird.
TTS: Verweisen Sie zur Übersichtlichkeit immer auf das bestimmte Element oder die bestimmte Entität, es sei denn, sie wurde im vorherigen Schritt gesprochen.
TTS: Lesen Sie die Entitätsliste nicht aus, es sei denn, es gibt drei oder weniger und sind kurz.
Bedingungen | TTS | GUI |
---|---|---|
EINGABEAUFFORDERUNG – 3 ODER WENIGER ELEMENTE | Welche Vegas-Reise möchten Sie stornieren? Vegas Tech Conference oder Party in Vegas? | Welche möchten Sie abbrechen? |
EINGABEAUFFORDERUNG – MEHR ALS 3 ELEMENTE | Welche Vegas-Reise möchten Sie stornieren? | Welche möchten Sie abbrechen? |
REPROMPT | Welche Vegas-Reise wollten Sie stornieren? | Welche möchten Sie abbrechen? |
Completion
Abschluss von AdventureWorks "Reise abbrechen"
Nach erfolgreichem Abschluss der Aufgabe sollte Die App den Benutzer darüber informieren, dass die angeforderte Aufgabe erfolgreich abgeschlossen wurde.
Sowohl GUI- als auch TTS-Zeichenfolgen auf dem Abschlussbildschirm werden von Ihrer App angegeben, und das App-Symbol (sofern angegeben) wird anstelle des Cortana-Avatars angezeigt.
Sie sollten einen Link zu Ihrer App mit Startparametern bereitstellen, um die App im entsprechenden Zustand zu starten. Auf diese Weise kann der Benutzer die Aufgabe selbst anzeigen oder abschließen. Cortana stellt den Linktext bereit (z. B. "Gehe zu Adventure Works").
GUI- und TTS-Richtlinien für Abschlussbildschirme
Verwenden Sie vergangenes Präsens.
Verwenden Sie ein Aktionsverb, um explizit anzugeben, dass die Aufgabe abgeschlossen wurde.
Wenn die Entität angezeigt wird oder auf sie zuvor verwiesen wurde, verweisen Sie nur darauf.
Bedingungen | TTS | GUI |
---|---|---|
ENTITÄT ANGEZEIGT/ ENTITÄT GELESEN BEIM VORHERIGEN AKTIVIEREN | Ich habe diese Reise storniert. | Diese Reise wurde storniert. |
ENTITÄT NICHT ANGEZEIGT/ ENTITÄT NICHT GELESEN BEIM VORHERIGEN AKTIVIEREN | Ich habe Ihre Vegas Tech Conference Reise storniert. | "Vegas Tech Conference" wurde abgebrochen. |
Fehler
AdventureWorks -Fehler "Reise abbrechen"
Wenn einer der folgenden Fehler auftritt, zeigt Cortana dieselbe allgemeine Fehlermeldung an.
- Der App-Dienst wird unerwartet beendet.
- Cortana kommuniziert nicht mit dem App-Dienst.
- Die App kann keinen Bildschirm bereitstellen, nachdem Cortana einen Übergabebildschirm oder einen Statusbildschirm für 5 Sekunden anzeigt.
Verwandte Artikel
Windows developer