在澳大利亚,语音助手用户说出带有"双"和"三倍"的数字字符串是完全正常的。(在英国也是如此 - 他们有时也使用"高音"(
所以"8845"就说成"双八四五"。 "6663"常说成"三六三"。
对于任何旨在理解说一串数字的用户的系统数字字符串实体,Dialogflow 似乎都不支持这一点。
那么,有人知道如何在对话流中的数字字符串中支持"双倍"和"三倍"吗?
我必须"自己滚动"吗?
要处理这些情况,您可以创建一个开发映射实体(我们称之为"数字额外"(:
reference value synonyms
88 double eight
666 triple six
由于只有 10 个"双倍"或"三重"变体(每个数字一个(,因此您可以为每个变体创建一个映射(11、22、33 等(。
您还需要一个复合实体(我们称之为"数字"(:
@numbers-extra
@sys.number
两个实体都应返回字符串,因此复合实体中不会出现不一致,并且引用值应该易于在后端处理。
您还应该添加使用这些实体的培训短语,例如"我的地址是三六三主街",并相应地注释实体。这为您的模型提供了有关如何使用这些实体的更多信息,并将提高准确性。
此建议也可以推广到其他系统实体。想念城市?为城市创建一个实体,并将其与复合实体中的@sys.geo-city组合在一起。缺少名字?相同的程序。
您可以使用 SSML 和一些逻辑来完成此操作。
将"468826661"解析为四六双八二三六一,然后在<speak></speak>
标签中像这样发送。
这是这方面的文档。