語音命令定義 (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 元素的 PhraseList。 CommandSet 元素包含下列子元素: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 項目的內容,以啟動命令。 在選擇性的單字或單字周圍使用方括弧。 也就是說,可以說出單字或單字,但不需要比對。 例如: 您可以設定通配符功能,方法是在一對大括弧內加入星號字元,例如 |
|
意見反應 | Command 元素的必要子專案。 指定辨識命令時,將向用戶顯示及讀取的文字。 如果 Feedback 元素包含 PhraseList (或 PhraseTopic) 元素之 Label 屬性的參考,則包含 Command 元素中的每個 ListenFor 元素也必須參考 PhraseList (或 PhraseTopic) 元素的相同 Label 屬性。 | |
Navigate | Command 元素的必要子專案。 Target 屬性是選擇性屬性,通常用來指定應用程式啟動時應該巡覽的頁面。 如果您使用 「NavigationTarget」 索引鍵從 SpeechRecognitionSemanticInterpretation.Properties 字典省略 Target 屬性) ,則可以取得 Target 屬性值 (或空字串。 | |
PhraseList | CommandSet 專案的選擇性子系。 一個 CommandSet 元素不能包含超過 2,000 個 Item 元素,而 2,000 個 Item 元素是 CommandSet 中所有 PhraseList 元素的合併總限制。 每個 項目 都會指定可辨識的字組或片語,以起始參考 PhraseList 的命令。 您可以從應用程式內以程式設計方式更新 Items 內容。 PhraseList 需要 Label 屬性,其值可能會以大括弧括住—放在 ListenFor 或 Feedback 元素內,用來參考 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 屬性,其值可能會以大括弧括住—在 ListenFor 或 Feedback 元素內,用來參考 PhraseTopic。 Scenario 屬性 (預設的 「聽寫」) 指定此 PhraseTopic 的預期案例,這可能會使用 PhraseTopic 優化語音命令的基礎語音辨識,以產生更適合命令所需內容的結果。 有效值為 「自然語言」、「搜尋」、「簡短訊息」、「聽寫」、「命令」和「表單填滿」。 Subject 子元素會指定父 PhraseTopic 之 Scenario 屬性特定的主體,以使用 PhraseTopic 進一步精簡語音命令內語音辨識結果的相關性。 主體會依提供的順序進行評估,且適當時,稍後指定的主體將會限制先前指定的主體。 有效的內部文字值為 “Date/Time”、“Addresses”、“City/State”、“Person Names”、“Movies”、“Music” 和 “Phone Number”。 例如: 在您的應用程式中,若要找出 PhraseTopic 參考所代表 ListenFor 元素子集中所說出的內容,您可以使用索引鍵與 PhraseTopic的 Label 相同的值來存取 SpeechRecognitionSemanticInterpretation.Properties 字典。 |
重要
您無法將下面所列的特殊字元巢狀化。 例如,和 之類的[[start] new game]
[{myPhraseList}]
語句是不可能的。
特殊字元 | Description |
---|---|
{} | 包含要參考之 PhraseList 或 PhraseTopic 的 Label 屬性值,例如:{myList}或 {myTopic}。 用於 ListenFor 或 Feedback 元素。 Feedback 元素中的 PhraseList 或 PhraseTopic 參考必須符合相同命令中 ListenFor 元素中的對應參考。 |
[] | 指定括住的單字或片語是選擇性的。 可以說出封入的文字或片語,但不需要辨識才能起始命令。 例如,如果 ListenFor 元素的內容為 “[start] [begin] new game”,則使用者可以說出“start new game” 或 “new game” 或 “begin new game” (或甚至 “start begin new game”,) 來起始命令。 每個括弧元素都是獨立的選擇性專案,但必須以正確的順序加以辨識。 因此,在「新遊戲」範例中,「開始新遊戲」會正常運作,但「開始新遊戲」無法運作,因為宣告的順序。 |
另請參閱
Windows.ApplicationModel.VoiceCommands
範例