語音命令定義 (VCD) 元素和屬性 v1.2
注意
消費者和企業 Cortana Skills Kit,以及這些平臺上建置的技能已被取代。
用於語音命令定義 (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.2
(沒有大寫字元) 。 如需符合此架構的範例,請參閱 Cortana 語音命令範例。
元素 | Description | |
---|---|---|
VoiceCommands | 必要。 VCD 檔案的根元素。 包含介於 1 到 15 個 CommandSet 元素之間,每個元素都代表單一語言的語音命令。 | |
CommandSet | VoiceCommands 元素的必要子專案。 應用程式會以必要 xml:lang 屬性所指定語言接受之所有語音命令的容器。 xml:lang 屬性的值在 VoiceCommand 檔中必須是唯一的,而且它是單一特定語言,以語言名稱形式指定,對應至語音控制面板中可用的語言。 注意 系統會忽略 VCD 檔案中指定的語言,但系統不支援。 Name 屬性是選擇性的,可以是任何任意字串;不過,需要 Name 屬性,才能以程式設計方式參考及更新 CommandSet 元素的 PhraseList。 CommandSet 元素包含下列子元素:CommandPrefix (0 或 1) 或 AppName (0 或 1) 、Example (1) 、Command (1 到 100) 、PhraseList 元素 (0 到 10) ,以及 PhraseTopic 元素 (0 到 10) 。 這些子元素必須依照列出的順序發生。 |
|
互斥 | CommandPrefix | CommandSet 元素的選擇性子專案。 如果存在,必須是 CommandSet 元素的第一個子專案。 指定使用者可在提供語音命令時說話之應用程式的用戶易記名稱。 這適用於名稱很長或難以讀出的應用程式。 避免使用與其他啟用語音功能體驗衝突的前置詞。 |
AppName | CommandSet 元素的選擇性子專案。 如果存在,必須是 CommandSet 元素的第一個子專案。 取代 CommandPrefix 並支援 ListenFor 元素的 RequireAppName 屬性和 指定使用者可在提供語音命令時說話之應用程式的用戶易記名稱。 這適用於名稱很長或難以讀出的應用程式。 避免使用與其他啟用語音功能體驗衝突的前置詞。 根據預設, AppName 支援為語音命令中的後綴。 |
|
命令 | CommandSet 元素的必要子專案。 取得 Name 屬性。 定義使用者可以透過說話來起始的應用程式動作,以及使用者可以說出哪些動作來起始動作。 每個 Command 元素都可以與應用程式中的特定頁面相關聯。 包含下列必要子元素: 範例 (剛好 1) 、 ListenFor (1 到 20) 、 意見 反應 (剛好 1) ,而 Navigate (完全 1) 。 這些子元素必須依照列出的順序發生。 |
|
範例 | CommandSet 元素 (1 個) ,而 Command 元素 (1 到 20) 。 提供一個代表的範例,說明使用者可以針對 整個 CommandSet 和個別命令說出的內容。 用戶可以從 [ 我說 什麼] 畫面看到這些範例。 當使用者按下並按住 Windows 手機上的 [搜尋] 按鈕 (時,會顯示此畫面) 或叫用 Cortana,並說出「說明」或「我可以說什麼?」,或點選 [查看更多]。 注意 範例應包含 AppName 或 CommandPrefix。 |
|
ListenFor | Command 元素的必要 (1 到 20) 子元素。 包含您的應用程式會辨識此命令的字組或片語。 這可能包括或為 PhraseList (或 PhraseTopic) 元素的 Label 屬性的參考,該屬性會出現在以大括弧括住的 ListenFor 元素中,例如:{myList}或 {myTopic}。 您可以辨識任何 ListenFor 元素的內容,以啟動命令。 您可以指定選擇性 RequireAppName 屬性,以指出 AppName 元素的值是否可以預先加上、附加或使用內嵌的 ListenFor 元素。 此屬性支援四個值:
在選擇性單字或單字周圍使用括號。 也就是說,可以說出單字或單字,但不需要比對。 例如: 您可以設定通配符功能,方法是在一對大括弧內包含星號字元,例如 |
|
意見反應 | Command 元素的必要子專案。 指定辨識命令時,將向用戶顯示及讀取的文字。 如果 Feedback 元素包含 PhraseList (或 PhraseTopic) 元素之 Label 屬性的參考,則包含 Command 元素中的每個 ListenFor 元素也必須參考 PhraseList (或 PhraseTopic) 元素的相同 Label 屬性。 | |
互斥 | Navigate | Command 元素的必要子元素,除非 Command 元素具有 VoiceCommandService 子元素。 Target 屬性是選擇性屬性,通常用來指定應用程式在啟動時應該巡覽的頁面。 如果您使用 “NavigationTarget” 索引鍵,從 SpeechRecognitionSemanticInterpretation.Properties 字典省略 Target 属性) ,則可以取得 Target 屬性的值 (或空字符串。 |
VoiceCommandService | Command 元素的必要 子專案,除非 Command 元素具有 Navigate 子專案。 這個專案會指定語音命令是透過App Service處理, (查看 Windows.ApplicationModel.AppService) ,並在 Cortana 畫布上顯示意見反應。 Target 屬性是必要屬性,而且必須符合應用程式套件指令清單中 AppService 元素的 Name 屬性值。 | |
PhraseList | CommandSet 元素的選擇性子系。 一個 CommandSet 元素不能包含超過 2,000 個 Item 元素,而 2,000 個項目元素是 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”,則使用者可以說出「開始新遊戲」或「新遊戲」或「開始新遊戲」 (或甚至「開始新遊戲」) 來起始命令。 每個方括弧元素都是獨立的選擇性專案,但必須以正確的順序來讀出它們。 因此,在「新遊戲」範例中,「開始新遊戲」會正常運作,但「開始新遊戲」無法運作,因為宣告它們的順序。 |
另請參閱
Windows.ApplicationModel.VoiceCommands