语音命令定义 (VCD) 元素和属性 v1.2
注意
消费者和企业Cortana Skills Kit以及基于这些平台构建的技能已弃用。
语音命令定义中使用的 XML 标记元素和属性的参考文档 (VCD) 文件以指定识别约束。
使用语音命令启动应用并指定要执行的操作或命令。 例如,用户可以点击“ 开始 ”按钮并说出“Contoso 小组件,显示畅销书”,以启动 Contoso 小组件应用并导航到“畅销书”页面。
元素和属性
与任何 XML 文件一样,VCD 文件应以 XML 声明开头,该声明同时指定 XML 版本和字符编码。
<?xml version="1.0" encoding="utf-8"?>
根元素是 VoiceCommands 元素,其 xmlns 属性必须设置为 http://schemas.microsoft.com/voicecommands/1.2
() 没有大写字符。 有关符合此架构的示例,请参阅 Cortana Voice Command 示例。
元素 | 说明 | |
---|---|---|
VoiceCommands | 必需。 VCD 文件的根元素。 包含 1 到 15 个 CommandSet 元素,每个元素表示单种语言的语音命令。 | |
CommandSet | VoiceCommands 元素的必需子元素。 应用将使用所需 xml:lang 属性指定的语言接受的所有语音命令的容器。 xml:lang 属性的值在 VoiceCommand 文档中必须是唯一的,它是在语言名称窗体中指定的单个特定语言,对应于语音控制面板中可用的语言。 注意 将忽略 VCD 文件中指定但系统不支持的语言。 Name 属性是可选的,可以是任意字符串;但是,需要 Name 属性才能以编程方式引用和更新 CommandSet 元素的 PhraseList。 CommandSet 元素包含以下子元素:CommandPrefix (0 或 1) 或 AppName (0 或 1) ,示例 (正好 1 ) ,Command (1 到 100 ) ,PhraseList 元素 (0 到 10 ) ,PhraseTopic 元素 (0 到 10) 。 这些子元素必须按列出的顺序出现。 |
|
互斥 | CommandPrefix | CommandSet 元素的可选子元素。 如果存在,必须是 CommandSet 元素的第一个子元素。 指定应用的用户友好名称,用户可以在发出语音命令时说出该名称。 这对于名称较长或难以发音的应用非常有用。 避免使用与其他启用语音的体验冲突的前缀。 |
应用名称 | CommandSet 元素的可选子元素。 如果存在,必须是 CommandSet 元素的第一个子元素。 替换 CommandPrefix 并支持 ListenFor 元素的 RequireAppName 属性和 指定应用的用户友好名称,用户可以在发出语音命令时说出该名称。 这对于名称较长或难以发音的应用非常有用。 避免使用与其他启用语音的体验冲突的前缀。 默认情况下,在语音命令中支持 将 AppName 作为后缀。 |
|
命令 | CommandSet 元素的必需子元素。 采用 Name 属性。 定义用户可以通过说话启动的应用操作,以及用户可以说什么来启动操作。 每个 Command 元素都可以与应用中的特定页面相关联。 包含以下必需的子元素: 示例 (正好 1 ) ,ListenFor (1 到 20) , 反馈 (正好 1) , 导航 (正好 1) 。 这些子元素必须按列出的顺序出现。 |
|
示例 | CommandSet 元素的必需子元素 (正好 1 ) ,Command 元素 (1 到 20) 。 提供一个具有代表性的示例,说明用户可以对 CommandSet 作为一个整体和单个命令说什么。 用户可以从“ 我能说什么” 屏幕中看到这些示例。 当用户在 Windows 手机上按下并按住“ 搜索 ”按钮 () 或调用 Cortana 并说“帮助”或“我可以说什么?”或点击“ 查看更多”时,将显示此屏幕。 注意 示例应包括 AppName 或 CommandPrefix。 |
|
ListenFor | 需要 (1 到 20) Command 元素的子元素。 包含应用将为此命令识别的单词或短语。 这可能包括或引用 PhraseList (或 PhraseTopic) 元素的 Label 属性,该属性显示在用大括号括起来的 ListenFor 元素中,例如:{myList}或 {myTopic}。 可以识别任何 ListenFor 元素的内容以激活命令。 可以指定可选的 RequireAppName 属性,以指示 AppName 元素的值是可以预先添加、追加还是与 ListenFor 元素一起使用。 此属性支持四个值:
在可选字词周围使用括号。 也就是说,一个或多个单词可以说出来,但不需要匹配。 例如 可以通过在一对大括号内包括星号字符来设置通配符功能,例如 |
|
反馈 | Command 元素的必需子元素。 指定在识别命令时显示并读回用户的文本。 如果 Feedback 元素包含对 PhraseList (或 PhraseTopic) 元素的 Label 属性的引用,则包含 Command 元素的每个 ListenFor 元素还必须引用 PhraseList (或 PhraseTopic) 元素的同一 Label 属性。 | |
互斥 | 导航 | Command 元素的必需子元素,除非 Command 元素具有 VoiceCommandService 子元素。 Target 属性是可选的,通常用于指定应用在启动时应导航到的页面。 如果使用“NavigationTarget”键从 SpeechRecognitionSemanticInterpretation.Properties 字典中省略 Target 属性) ,则可以获取目标属性的值 (或空字符串。 |
VoiceCommandService | Command 元素的必需子元素,除非 Command 元素具有 Navigate 子元素。 此元素指定通过应用服务处理语音命令, (查看 Windows.ApplicationModel.AppService) 并在 Cortana 画布上显示反馈。 Target 属性是必需的,并且必须与应用包清单中 AppService 元素的 Name 属性的值匹配。 | |
PhraseList | CommandSet 元素的可选子元素。 一个 CommandSet 元素可以包含不超过 2,000 个 Item 元素,而 2,000 个 Item 元素是 CommandSet 中所有 PhraseList 元素的总组合限制。 每个 项 指定可识别的单词或短语,以启动引用 PhraseList 的命令。 可以从应用程序中以编程方式更新 Items 内容。 PhraseList 需要 Label 属性,其值可能会出现在 ListenFor 或 Feedback 元素内(由大括号括起来),并用于引用 PhraseList。 PhraseList 具有可选的 消除歧义 属性 (默认 true) ,该属性指定当同时识别列表中的多个项时, 此 PhraseList 是否会产生用户消除歧义。 如果为 false,则此 PhraseList 也将在 Feedback 元素中不可用,并且不会为应用程序生成参数。 这对于表示相同事情的替代方式的短语很有用,但不需要任何特定操作。 在应用中,若要找出列表中的短语,可以使用与 PhraseList标签相同的值键访问 SpeechRecognitionSemanticInterpretation.Properties 字典。 |
|
项 | PhraseList 元素的可选子元素。 可以识别以启动命令的多个字词或短语之一。 CommandSet 在其所有子 PhraseList 元素中不能包含超过 2,000 个 Item 元素。 | |
PhraseTopic | CommandSet 元素的可选子元素。 指定用于大型词汇识别的主题。 本主题可以为方案指定单个 (0 或 1) 方案 属性和多个 (0 到 20,) 主题 子元素,这些元素可用于改进已实现的识别的相关性。 PhraseTopic 需要 Label 属性,其值可能会出现在 ListenFor 或 Feedback 元素中(由大括号括起来),并用于引用 PhraseTopic。 Scenario 属性 (默认的“听写”) 指定此 PhraseTopic 的所需方案,该方案可以使用 PhraseTopic 优化语音命令的基础语音识别,以生成更适合命令所需上下文的结果。 有效值为“自然语言”、“搜索”、“短消息”、“听写”、“命令”和“表单填充”。 Subject 子元素指定特定于父 PhraseTopic 的 Scenario 属性的主题,以使用 PhraseTopic 进一步优化语音命令中语音识别结果的相关性。 将按提供的顺序评估使用者,并在适当时,稍后指定的主题将约束先前指定的主题。 有效的内部文本值为“日期/时间”、“地址”、“城市/州”、“人员姓名”、“电影”、“音乐”和“电话号码”。 例如: 在应用中,若要找出由 PhraseTopic 引用表示的 ListenFor 元素子集中讲的内容,可以使用与 PhraseTopic的 Label 值相同的键访问 SpeechRecognitionSemanticInterpretation.Properties 字典。 |
重要
无法嵌套下面列出的特殊字符。 例如,不能使用 和 [{myPhraseList}]
等[[start] new game]
语句。
特殊字符 | 说明 |
---|---|
{} | 包含用于引用的 PhraseList 或 PhraseTopic 的 Label 属性的值,例如:{myList}或 {myTopic}。 在 ListenFor 或 Feedback 元素中使用。 Feedback 元素中的 PhraseList 或 PhraseTopic 引用必须与同一命令中的 ListenFor 元素中的相应引用匹配。 |
[] | 指定封闭的单词或短语是可选的。 可以说出封闭的单词或短语,但不需要识别即可启动命令。 例如,如果 ListenFor 元素的内容为“[start] [begin] [begin] new game”,则用户可以说出“开始新游戏”或“新游戏”或“开始新游戏” (甚至“开始新游戏”) 来启动命令。 每个括号元素都是独立的可选元素,但必须按正确的顺序进行朗读才能识别它们。 因此,在“新游戏”示例中,“开始开始新游戏”将正常工作,但“开始开始新游戏”将不起作用,因为它们的声明顺序。 |
另请参阅
Windows.ApplicationModel.VoiceCommands