使用SSML(interpret-as =“characters”)删除标点符号

时间:2017-12-06 09:43:11

标签: actions-on-google google-home google-assistant-sdk

如果我在语音响应中使用<say-as interpret-as="characters"></say-as>标记,Google帮助会突然以不同方式发出整个响应。听起来好像谷歌助手没有任何理由删除标点符号。由“。”启动的暂停突然消失。

要重现此行为,只需在Google模拟器上启动操作,选择“英语(美国)”作为语言并听取此音频片段:

<speak>This is a test with number spelled as digit. The number is <say-as interpret-as="characters">12345</say-as>. Ask me "What to do with this number?" if you'd like to have more information.</speak>

如果您删除<say-as interpret-as="characters"></say-as>标记,则代词会再次发挥作用:

<speak>This is a test with number spelled as digit. The number is 12345. Ask me "What to do with this number?" if you'd like to have more information.</speak>

这听起来应该听起来像。如果您完全忽略speak标记,则会得到相同的结果。

在德语中,这个问题更为重要。在德语语音响应中使用<say-as interpret-as="characters"></say-as>会导致回应,这实际上几乎无法理解。

1 个答案:

答案 0 :(得分:1)

这是因为&#34;文本规范化&#34;在Google智能助理的TTS流程中。

正因为如此,如果您使用<s>之类的嵌入式标记,那么不使用<say-as>元素的SSML将始终按照您所期望的停顿执行。

以下是使用<s>在TTS中提供预期暂停的示例:

<speak>
  This is a test with number spelled as digit.
  <s>The number is <say-as interpret-as="characters">12345</say-as>.</s>
  Ask me "What to do with this number?" if you'd like to have more information.
</speak>

您仍然可以随意将多个以句点分隔的句子输入SSML,而无需<s>分隔句子,只要您不使用<say-as>之类的嵌入式标记,就让Google智能助理处理中断生成

有关<s>元素的更多信息可以在文档中找到<p>,<s> https://developers.google.com/actions/reference/ssml

它会链接到W3C spec on those elements