共用方式為


語音命令定義 (VCD) 元素和屬性 v1.1

注意

消費者和企業 Cortana Skills Kit,以及在這些平臺上建置的技能已被取代。

請參閱 語音命令定義 (VCD) 元素和屬性 v1.2 的最新版本。

用於 VCD 檔案中用來指定辨識條件約束之 XML 標記項目和屬性的參考檔。

使用語音命令啟動應用程式,並指定要執行的動作或命令。 例如,使用者可以點選 [ 開始 ] 按鈕,並說出 「Contoso Widgets,顯示最佳銷售人員」,以啟動 Contoso Widgets 應用程式,並流覽至「最佳銷售人員」頁面。

元素和屬性

如同任何 XML 檔案,VCD 檔案的開頭應該是指定 XML 版本和字元編碼的 XML 宣告。

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

根元素是 VoiceCommands 元素,而且其 xmlns 屬性必須設定為 http://schemas.microsoft.com/voicecommands/1.1 (沒有大寫字元) 。 如需符合此架構的範例,請參閱 Cortana 語音命令範例

元素Description
VoiceCommands 必要。 VCD 檔案的根元素。 包含介於 1 到 15 個 CommandSet 元素之間,每個元素都代表單一語言的語音命令。
CommandSet VoiceCommands 元素的必要子專案。 應用程式將接受所需 xml:lang 屬性所指定語言之所有語音命令的容器。 xml:lang 屬性的值在 VoiceCommand 檔中必須是唯一的,而且它是以語言名稱形式指定的單一特定語言,對應至語音控制面板中可用的語言。 Name 屬性是選擇性的,可以是任何任意字串;不過,需要 Name 屬性,才能以程式設計方式參考和更新 CommandSet 元素的 PhraseListCommandSet 元素包含下列子元素:CommandPrefix (0 或 1) 、範例 (剛好 1) 、Command (1 到 100) 、PhraseList 元素 (0 到 10) ,以及 PhraseTopic 元素 (0 到 10) 。 這些子元素必須依照列出的順序發生。
CommandPrefix CommandSet 元素的選擇性子專案。 如果存在,必須是 CommandSet 元素的第一個子專案。 指定使用者可在提供語音命令時說話之應用程式的用戶易記名稱。 這適用於名稱很長或難以讀出的應用程式。 避免使用與其他啟用語音功能體驗衝突的前置詞。
命令

CommandSet 元素的必要子專案。

接受 Name 屬性。 定義用戶可藉由說話來起始的應用程式動作,以及使用者可以說出哪些動作來起始動作。 每個 Command 元素都可以與應用程式中的特定頁面相關聯。 包含下列必要子元素: 範例 (剛好 1) 、 ListenFor (1 到 10) 、 意見 反應 (剛好 1) ,以及 [流覽 (剛好 1) 。 這些子元素必須依照列出的順序發生。

範例 CommandSet 元素和 Command 元素的必要子系。 提供一個代表的範例,說明使用者可以針對 整體 CommandSet 和個別命令說出的內容。 在手機上檢視 [ 我可以說 什麼] 畫面時,使用者會看到這些範例。 當使用者按下並按住 [ 搜尋 ] 按鈕並顯示「說明」或「我可以說什麼?」,或點選 [ 查看更多] 時,就會顯示此畫面。 範例不應包含應用程式的名稱或前置詞,因為系統會自動處理。
ListenFor

需要 (1 到 10) Command 元素的子元素。

包含您的應用程式會辨識此命令的字組或片語。 這可能包括 或成為 PhraseList (或 PhraseTopic) 元素的 Label 屬性的參考,該屬性會出現在以大括弧括住的 ListenFor 元素中,例如:{myList}或 {myTopic}。

您可以辨識任何 ListenFor 項目的內容,以啟動命令。

在選擇性的單字或單字周圍使用方括弧。 也就是說,可以說出單字或單字,但不需要比對。 例如: <ListenFor>[Show] {options}</ListenFor>

您可以設定通配符功能,方法是在一對大括弧內加入星號字元,例如 <ListenFor> Find {*} </ListenFor>。 在此範例中,只要使用者說出 「Find」,語音命令就會比對,並選擇性地接著任何其他單字或片語。 如果符合啟用通配符的 ListenFor 元素的語音命令, SpeechRecognitionResult.Text 屬性將會包含字符串 “...”與通配符位於相同的位置。

意見反應 Command 元素的必要子專案。 指定辨識命令時,將向用戶顯示及讀取的文字。 如果 Feedback 元素包含 PhraseList (或 PhraseTopic) 元素之 Label 屬性的參考,則包含 Command 元素中的每個 ListenFor 元素也必須參考 PhraseList (或 PhraseTopic) 元素的相同 Label 屬性。
NavigateCommand 元素的必要子專案。 Target 屬性是選擇性屬性,通常用來指定應用程式啟動時應該巡覽的頁面。 如果您使用 「NavigationTarget」 索引鍵從 SpeechRecognitionSemanticInterpretation.Properties 字典省略 Target 屬性) ,則可以取得 Target 屬性值 (或空字串。
PhraseList

CommandSet 專案的選擇性子系。 一個 CommandSet 元素不能包含超過 2,000 個 Item 元素,而 2,000 個 Item 元素是 CommandSet 中所有 PhraseList 元素的合併總限制。 每個 項目 都會指定可辨識的字組或片語,以起始參考 PhraseList 的命令。 您可以從應用程式內以程式設計方式更新 Items 內容。 PhraseList 需要 Label 屬性,其值可能會以大括弧括住—放在 ListenForFeedback 元素內,用來參考 PhraseList。

PhraseList 具有選擇性 的 Disambiguate 屬性, (預設為 true) ,指定當同時辨識清單中的多個專案時,此 PhraseList 是否會產生使用者混淆。 若為 false,此 PhraseList 也將無法從 Feedback 元素內使用,且不會產生應用程式的參數。 這對於說出相同事物的替代方式的片語很有用,但不需要任何特定的動作。

在您的應用程式中,若要找出清單中說出哪一個片語,您可以使用與 PhraseList標籤相同的值來存取 SpeechRecognitionSemanticInterpretation.Properties 字典。

項目 PhraseList 元素的選擇性子系。 可以辨識以起始命令的多個單字或片語之一。 CommandSet 在其所有子 PhraseList 元素中不能包含超過 2,000 個專案
PhraseTopic

CommandSet 專案的選擇性子系。 指定大型詞彙辨識的主題。 本主題可能會針對案例指定單一 (0 或 1) Scenario 屬性,以及數個 (0 到 20) Subject 子元素,可用來改善所達成辨識的相關性。 PhraseTopic 需要 Label 屬性,其值可能會以大括弧括住—在 ListenForFeedback 元素內,用來參考 PhraseTopic

Scenario 屬性 (預設的 「聽寫」) 指定此 PhraseTopic 的預期案例,這可能會使用 PhraseTopic 優化語音命令的基礎語音辨識,以產生更適合命令所需內容的結果。 有效值為 「自然語言」、「搜尋」、「簡短訊息」、「聽寫」、「命令」和「表單填滿」。

Subject 子元素會指定父 PhraseTopicScenario 屬性特定的主體,以使用 PhraseTopic 進一步精簡語音命令內語音辨識結果的相關性。 主體會依提供的順序進行評估,且適當時,稍後指定的主體將會限制先前指定的主體。 有效的內部文字值為 “Date/Time”、“Addresses”、“City/State”、“Person Names”、“Movies”、“Music” 和 “Phone Number”。 例如:<Subject>Phone Number</Subject>

在您的應用程式中,若要找出 PhraseTopic 參考所代表 ListenFor 元素子集中所說出的內容,您可以使用索引鍵與 PhraseTopic的 Label 相同的值來存取 SpeechRecognitionSemanticInterpretation.Properties 字典。

重要

您無法將下面所列的特殊字元巢狀化。 例如,和 之類的[[start] new game][{myPhraseList}]語句是不可能的。

特殊字元 Description
{} 包含要參考之 PhraseListPhraseTopicLabel 屬性值,例如:{myList}或 {myTopic}。 用於 ListenForFeedback 元素。 Feedback 元素中的 PhraseListPhraseTopic 參考必須符合相同命令中 ListenFor 元素中的對應參考。
[] 指定括住的單字或片語是選擇性的。 可以說出封入的文字或片語,但不需要辨識才能起始命令。 例如,如果 ListenFor 元素的內容為 “[start] [begin] new game”,則使用者可以說出“start new game” 或 “new game” 或 “begin new game” (或甚至 “start begin new game”,) 來起始命令。 每個括弧元素都是獨立的選擇性專案,但必須以正確的順序加以辨識。 因此,在「新遊戲」範例中,「開始新遊戲」會正常運作,但「開始新遊戲」無法運作,因為宣告的順序。

另請參閱

Windows.ApplicationModel.VoiceCommands

VCD 元素和屬性 v1.2

Cortana 互動

範例

Cortana 語音命令範例