Home Assistant的Template sentence syntax把一个语句模板描述为同时表达许多句子的资料。[1] 因而,模板不是只保存一次说话的原样文本。文档将替代项解释为几种文字中的选择,也允许这种变化发生在一个词内部;可选部分则是某个词、词组或词的一部分可以出现,也可以省略。选择哪一个与是否出现,表达的是两种语言变化,不能仅凭模板匹配了不止一句话,就把所有变化都称为同一类。
列表在句子中承担另一项工作。官方说,列表匹配其中一个值,并将该值放入同名slot;列表名称与槽位名称不同的情形,也可另作对应。[1] 列表因此既关联输入中能匹配的内容,又关联结果保存在哪个槽位。一个名称指出候选值的集合,另一个指出匹配值在语句结果中的位置,两者有联系,却不需要永远使用同一个名称。
这项结果位置解释了列表的限制。文档明确说,列表不能位于替代项或可选部分里面,因为模板必须始终填入同样的槽位。此前Slot combinations又说明,一个组合中各句应填声明的槽位,不多也不少。[1] 语句中的礼貌词可以有无,并不意味着携带目标信息的槽位也可任意消失。文字形式的变化,与结果保留哪些信息,是模板同时约束的两层内容。
列表本身分为固定值、数值范围和wildcard三种。[1] 固定值提供明确候选词,数值范围表达可匹配的数字内容,wildcard则匹配任意文本。它们不是把一份固定词表越写越长的三个规模等级:范围与通配的内容组织方式不同。文档对数字范围还同时接受数字写法与数字词,这说明输入文字的外观不同,仍可能被归到同一类数值内容。
固定词值也不必原样传到后续处理。官方用荷兰语颜色词说明in与out的关系:输入匹配rood时,可传出英文red;页面同时说,in可以带替代项,out还可以是数值。[1] 输入一侧因此负责表达某种语言怎样称呼它,输出一侧负责保留处理方期待的值。若只摘下英文输出,便无法说明本地语言词怎样被匹配;反过来,只保留本地词,也未留下结果采用哪个值。
通配文本的例子采用音乐资料。页面中的一句英文请求,分别让album取得the white album,让artist取得the beatles。[1] 两段文字都不是在本文中实际播放或识别得到的结果,而是官方用来说明槽位分工的文字例。album与artist同为通配列表,仍分别承接专辑和艺人内容;同样采用通配方式,不会让两个槽位变成可互换的一份任意文本。
共享范围又依赖列表种类。文档说,数字范围与wildcard不需要翻译,可以供各语言共享;带固定value词的列表不能如此共享,因为值本身是某种语言的词。[1] 这里区分的是资料是否需要逐语言表达,不能由共享清单推定所有语言具有相同识别效果。页面还将response模板另列为Jinja2格式,与句子模板不同:理解输入和表达响应并非同一份模板职责。本文采用标明使用hassil 3的现存文档,首次发布日期未知,未编写配置、测试语音或执行设备控制。
信息来源
本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。