Share via


Cortana 設計方針

警告

自 Windows 10 May 2020 更新版 (版本 2004,代號「20H1」) 起,不再支援此功能。

如需 Cortana 如何轉換新式生產力體驗,請參閱 Microsoft 365 中的 Cortana

這些指導方針和建議說明您的應用程式如何使用 Cortana 與使用者互動、協助他們完成工作,並清楚傳達其發生方式。

Cortana 可讓在背景中執行的應用程式提示使用者確認或釐清,並傳回為使用者提供語音命令狀態的意見反應。 此程序是輕量型、快速且不會強制使用者離開 Cortana 體驗或切換內容至應用程式。

雖然使用者應該覺得 Cortana 正在協助讓程序盡可能輕鬆且簡單,但您可能也希望 Cortana 明確指出它是您的應用程式完成工作。

我們使用整合到 Cortana UI 中的名為 Adventure Works 的旅行規劃和管理應用程式 (如下所示) 來示範我們討論的許多概念和功能。 如需詳細資訊,請參閱 Cortana 語音命令範例

Screenshot of the Cortana canvas

對話式寫入

成功的 Cortana 互動需要您在製作文字到語音轉換 (TTS) 和 GUI 字串時遵循一些基本原則。

準則 不良範例 良好範例

高效率

盡可能使用最少的字組,並將最重要的資訊放在最前面。

當然可以,您今天想搜尋什麼電影? 我們有一個大型集合。

當然,您要找什麼電影?

相關

僅提供工作、內容和內容的相關資訊。

我已將此新增至您的播放清單。 提醒您一下,您的電池電量即將耗盡。

我已將此新增至您的播放清單。

Clear

避免模棱兩可。 使用日常語言,而不是技術術語。

沒有查詢「拉斯維加斯之旅」的結果。

我找不到任何前往拉斯維加斯的旅行。

值得信賴

盡可能準確。 對背景中發生的事情透明—如果工作尚未完成,請不要說它有。 尊重隱私權 — 不要大聲朗讀私人資訊。

我找不到那部電影,它一定還沒有上映。

我在我們的目錄中找不到那部電影。

寫入人們說話的方式。 不要強調文法準確性,而不是聽起來自然。 例如,「想要」或「必須」等熟悉的口語快捷方式適合 TTS 朗讀。

盡可能自然地使用隱含的第一人稱時態。 例如,「尋找您的下一次 Adventure Works 旅行」暗示有人正在尋找,但不使用單字「我」來指定。

使用一些變化來協助讓您的應用程式聽起來更自然。 提供不同版本的 TTS 和 GUI 字串,以有效地說出相同的內容。 例如,「您想看什麼電影?」可以有諸如「您想看什麼電影?」之類的選擇。 人們不會每次都以完全相同的方式說同樣的話。 請務必讓 TTS 和 GUI 版本保持同步。

在回應中明智地使用「OK」和「Alright」等短語。 雖然它們可以提供認可和進度感,但如果使用過於頻繁且沒有變化,它們也可能會變得重複。

注意

只在 TTS 中使用通知片語。 由於 Cortana 畫布上的空間有限,請勿在對應的 GUI 字串中重複這些空間。

在回應中使用收縮,以取得更自然的互動,以及在 Cortana 畫布上節省額外的空間。 例如,「我找不到那部電影」而不是「我無法找到那部電影」。 寫入是為了耳朵,而不是眼睛。

使用系統瞭解的語言。 使用者通常會重複他們呈現的字詞。 知道您顯示的內容。

透過旋轉或隨機選取替代回應集合,在您的回應中使用一些變化。 例如,「您要看哪部電影?」和「您想看哪部電影?」。 這可讓您的應用程式聽起來更自然且獨特。

當地語系化

若要使用語音命令起始動作,您的應用程式必須使用使用者在其裝置上選取的語言註冊語音命令 (設定 > 系統>語音>語音語言)。

您應該將應用程式回應的語音命令當地語系化,以及所有 TTS 和 GUI 字串。

您應該避免冗長的 GUI 字串。 Cortana 畫布提供三行回應,而且會截斷超過該行的字串。

如需詳細資訊,請參閱全球化與當地語系化區段

影像資源和縮放比例

通用 Windows 平台 (UWP) 應用程式可根據特定設定和裝置功能 (高對比度、有效像素、區域設定等) 自動選擇最合適的應用程式標誌影像。 您只需要提供影像,並確定您在應用程式專案中針對不同資源版本使用適當的命名慣例和資料夾組織。 如果您未提供建議的資源版本、協助工具、當地語系化和影像品質可能會受到影響,視使用者的喜好設定、能力、裝置類型和位置而定。

如需高對比度和縮放比例影像資源的詳細資訊,請參閱圖塊和圖示資產的指導方針

您可以使用限定詞來命名資源。 資源限定詞是資料夾和檔名修飾詞,可識別應使用特定資源版本的內容。

標準命名慣例是「foldername/qualifiername-value[_qualifiername-value]/filename.qualifiername-value[_qualifiername-value].ext」。 例如:images/logo.scale-100_contrast-white.png 在程式碼中使用根資料夾和檔案名稱簡單地參考:images/logo.png。 請參閱使用限定詞管理語言和區域和如何命名資源

我們建議您在字串資源檔上標示預設語言 (例如「en-US\resources.resw」) 和影像的預設縮放比例 (例如 「logo.scale-100.png」),即使您目前不打算提供當地語系化或多個解析度資源。 不過,我們建議您至少提供 100、200 和 400 個縮放比例的資產。

重要

Cortana 畫布標題區域中所使用的應用程式圖示是「Package.appxmanifest」檔案中指定的 Square44x44Logo 圖示。

您也可以為使用者查詢的每個結果圖塊指定圖示。 結果圖示的有效影像大小如下:

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

結果圖塊範本

Cortana 畫布上顯示的結果圖塊會提供一組範本。 使用這些範本來指定圖塊標題,以及圖塊是否包含文字和結果圖示影像。 每個圖塊最多可以包含三行文字和一個影像,視指定的範本而定。

以下是支援的範本 (包含範例):

名稱 範例
僅限標題 Screenshot of the Cortana canvas showing Title only
具有文字的標題 Screenshot of the Cortana canvas showing Title with text
標題與 68x68 圖示 無影像
標題與 68x68 圖示和文字 Screenshot of the Cortana canvas showing Title with 68x68 icon and text
標題與 68x92 圖示 無影像
標題與 68x92 圖示和文字 Screenshot of the Cortana canvas showing Title with 68x92 icon and text
標題與 280x140 圖示 無影像
標題與 280x140 圖示和文字 Screenshot of the Cortana canvas showing Title with 280x140 icon and text

如需 Cortana 範本的詳細資訊,請參閱 VoiceCommandContentTileType

範例

此範例示範 Cortana 中背景應用程式的端對端工作流程。 我們使用 Adventure Works 應用程式取消前往拉斯維加斯之旅。 此範例使用「標題與 68x68 圖示和文字」範本。

Screenshot of the Cortana canvas for end to end Cortana background app flow

以下是此影像中所述的步驟:

  1. 使用者點選麥克風以起始 Cortana
  2. 使用者說「取消我的 Adventure Works 維加斯之旅」即可在背景啟動 Adventure Works 應用程式。 應用程式同時使用 Cortana 語音和畫布來與使用者互動。
  3. Cortana 轉換到切換畫面,向使用者提供確認意見反應 (「我將對此進行 Adventure Works」)、狀態列和取消按鈕。
  4. 在此情況下,使用者有多個符合查詢的旅程,因此應用程式會提供可釐清畫面,列出所有相符的結果,並詢問「您要取消哪一個?」
  5. 使用者指定「Vegas Tech Conference」項目。
  6. 由於取消無法復原,應用程式會提供確認畫面,要求使用者確認其意圖。
  7. 使用者說「是」。
  8. 然後,應用程式會提供顯示作業結果的完成畫面。

我們會在此處更詳細地探索這些步驟。

遞交

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks upcoming trip with no handoffAdventureWorks「即將到來的旅行」無切換畫面

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks upcoming trip with handoffAdventureWorks「即將到來的旅行」,具有切換螢幕

需要少於 500 毫秒才能回應應用程式的工作,而且不需要使用者的額外資訊,則不需要 Cortana 進一步參與,而不是顯示完成畫面。

如果您的應用程式需要超過 500 毫秒的回應時間,Cortana 會提供切換畫面。 應用程式圖示和名稱隨即顯示,您必須同時提供 GUI 和 TTS 交接字串,以指出已正確瞭解語音命令。 切換畫面最多會顯示 5 秒;如果您的應用程式在此時間內沒有回應,Cortana 會顯示一般錯誤畫面。

切換畫面的 GUI 和 TTS 指導方針

清楚指出工作正在進行中。

使用目前的時態。

使用動作動詞,確認正在起始哪些工作並參考特定實體。

使用不承諾所請求的、不完整的動作的通用動詞。 例如,「尋找您的旅程」,而不是「取消您的旅程」。 在此情況下,如果未傳回任何結果,使用者不會聽到類似「取消前往拉斯維加斯之旅... 我找不到拉斯維加斯之旅。」

請注意,如果應用程式仍然需要解析所要求的實體,工作尚未執行。 例如,請注意我們如何說「尋找您的旅程」,而不是「取消您的旅程」,因為零或多個旅程可以比對,而且我們還不知道結果。

GUI 和 TTS 字串可以相同,但不需要。 嘗試讓 GUI 字串保持簡短,以避免截斷和重複其他視覺資產。

TTS GUI
尋找您的下一次 Adventure Works 之旅。 尋找您的下一次旅行...
搜尋您的 Adventure Works 前往瀑布城之旅。 正在搜尋瀑布城之旅...

進度

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip progressAdventureWorks「取消旅程」進度

當工作在步驟之間需要一段時間時,您的應用程式必須逐步執行,並在進度畫面上更新使用者。 應用程式圖示隨即顯示,您必須同時提供 GUI 和 TTS 進度字串,以指出工作正在進行中。

您應該提供應用程式的連結,其中包含啟動參數,以適當狀態啟動應用程式。 這可讓使用者自行檢視或完成工作。 Cortana 會提供連結文字 (例如「前往 Adventure Works」)。

進度畫面會分別顯示 5 秒,之後必須接著另一個畫面,否則工作將會逾時。

這些畫面可以遵循進度畫面:

  • 進度
  • 確認 (明確,稍後說明)
  • 消除歧義
  • Completion

進度畫面的 GUI 和 TTS 指導方針

使用目前的時態。

使用確認工作正在進行的動作動詞。

GUI:如果顯示該實體,請使用對其的參考 (「取消此旅程...」);如果未顯示任何實體,請明確指出該實體(「取消『維加斯技術會議』」)。

TTS:您應該只在第一個進度畫面中包含 TTS 字串。 如果需要進一步的進度畫面,請傳送一個空字串 {},做為您的 TTS 字串,並僅提供 GUI 字串。

條件 TTS GUI
先前回合讀取的實體/顯示器上顯示的實體 取消此旅程... 取消此旅程...
先前回合中未讀取的實體/顯示器上顯示的實體 取消前往拉斯維加斯的旅程... 取消此旅程...
未在先前讀取的實體/未顯示實體 取消前往拉斯維加斯的旅程... 取消前往拉斯維加斯的旅程...

確認

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip confirmationAdventureWorks「取消旅程」確認

某些工作可以透過使用者命令的本質隱含地確認;其他人可能更敏感,而且需要明確確認。 以下是使用明確與隱含確認時機的一些指導方針。

確認畫面上的 GUI 和 TTS 字串均由您的應用程式指定,並且會顯示應用程式圖示 (如果提供),而不是 Cortana 頭像。

客戶回應確認之後,您的應用程式必須在 500 毫秒內提供下一個畫面,以避免進入進度畫面。

使用明確時機...

  • 內容離開使用者 (例如簡訊、電子郵件或社群貼文)
  • 無法復原動作 (例如,進行購買或刪除項目)
  • 結果可能令人尷尬 (例如,打電話給錯誤的人)
  • 需要更複雜的辨識 (例如,開放式轉譯)

使用隱含時機...

  • 內容僅供使用者儲存 (例如,記事到自我)
  • 有一個簡單的方法可以退出 (例如,開啟或關閉鬧鐘)
  • 工作需要快速 (例如,在忘記之前快速擷取想法)
  • 精確度很高 (例如簡單的功能表)

確認畫面的 GUI 和 TTS 指導方針

使用目前的時態。

詢問使用者明確的問題,以「是」或「否」回答。 問題應該明確確認使用者嘗試執行的動作,而且應該沒有其他明顯的選項。

提供重新提示的問題變化,以防第一次無法理解語音命令。

GUI:如果顯示實體,請使用它的參考。 如果未顯示任何實體,請明確呼叫實體。

TTS:為了清楚起見,請一律參考特定項目或實體,除非系統在上一個回合中讀出它。

條件 TTS GUI
先前回合中未讀取的實體/顯示器上顯示的實體 您要取消拉斯維加斯技術會議嗎? 取消此旅程嗎?
未在先前讀取的實體/未顯示實體 您要取消拉斯維加斯技術會議嗎? 取消拉斯維加斯技術會議?
在先前回合上讀取的實體/未顯示實體 您要取消此旅程嗎? 取消此旅程嗎?
重新提示並顯示實體 您要取消此旅程嗎? 您要取消此旅程嗎?
重新提示實體未顯示 您要取消此旅程嗎? 您要取消拉斯維加斯技術會議嗎?

消除歧義

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip disambiguationAdventureWorks「取消旅程」消歧義

某些工作可能需要使用者從實體清單中選取以完成工作。

消歧畫面上的 GUI 和 TTS 字串均由您的應用程式指定,並且應用程式圖示 (如果提供) 將顯示而不是 Cortana 頭像。

客戶回答消歧問題後,您的應用程式必須在 500 毫秒內提供下一個畫面,以避免進入進度畫面。

釐清畫面的 GUI 和 TTS 指導方針

使用目前的時態。

詢問使用者一個明確的問題,該問題可以使用所顯示任何實體的標題或文字行來回答。

最多可以顯示10個實體。

每個實體都應該具有唯一的圖塊。

提供重新提示的問題變化,以防第一次無法理解語音命令。

TTS:為了清楚起見,請一律參考特定的項目或實體,除非是在上一回合中說出的。

TTS:除非有三個或更少,而且很短,否則請勿讀出實體清單。

條件 TTS GUI
提示 - 3 或更少項目 您要取消哪一次拉斯維加斯之旅? 拉斯維加斯科技會議或拉斯維加斯派對? 您要取消哪一個?
提示 - 超過 3 個項目 您要取消哪一次拉斯維加斯之旅? 您要取消哪一個?
重新提示 您要取消哪一次拉斯維加斯之旅? 您要取消哪一個?

Completion

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip completionAdventureWorks 「取消旅程」完成

順利完成工作時,您的應用程式應該通知使用者要求的工作已順利完成。

完成畫面上的 GUI 和 TTS 字串均由您的應用程式指定,並且會顯示應用程式圖示 (如果提供),而不是 Cortana 頭像。

您應該提供應用程式的連結,其中包含啟動參數,以適當狀態啟動應用程式。 這可讓使用者自行檢視或完成工作。 Cortana 會提供連結文字 (例如「前往 Adventure Works」)。

完成畫面的 GUI 和 TTS 指導方針

使用過去的時態。

使用動作動詞來明確指出工作已完成。

如果實體已顯示,或已在先前的回合中參考,則只會參考它。

條件 TTS GUI
顯示的實體/先前回合中讀取的實體 我取消了這次旅行。 取消此旅程。
未顯示實體/未在前一個回合讀取的實體 我取消了拉斯維加斯科技會議之旅。 取消「拉斯維加斯科技會議」。

錯誤

Screenshot of the Cortana canvas for end to end Cortana background app flow using AdventureWorks cancel trip errorAdventureWorks 「取消旅程」錯誤

發生下列其中一個錯誤時,Cortana 會顯示相同的一般錯誤訊息。

  • 應用程式服務意外終止。
  • Cortana 無法與應用程式服務通訊。
  • Cortana 顯示切換畫面或進度畫面 5 秒後,應用程式無法提供畫面。