【发布时间】:2018-04-28 14:57:21
【问题描述】:
我们使用 Api.ai(现在是 Dialogflow)为 Google Home 构建了一个聊天机器人应用程序,其中包含男性和女性的历史人物。我们在 google 上使用 Actions。 Google 允许您在部署应用程序时默认使用男性或女性声音。有没有办法在男声和女声之间动态切换,例如使用 webhook 中的代码?
【问题讨论】:
标签: voice dialogflow-es actions-on-google
我们使用 Api.ai(现在是 Dialogflow)为 Google Home 构建了一个聊天机器人应用程序,其中包含男性和女性的历史人物。我们在 google 上使用 Actions。 Google 允许您在部署应用程序时默认使用男性或女性声音。有没有办法在男声和女声之间动态切换,例如使用 webhook 中的代码?
【问题讨论】:
标签: voice dialogflow-es actions-on-google
也许。尽管SSML 支持<voice> 标记,但Actions 的文档并未将其列为受支持。但是,正如您所指出的,似乎有一些支持。 gender 和 variant 属性似乎有效,至少对于 en-US 而言。 languages 属性似乎不是。所以这样的事情可能会起作用:
<speech>
<voice gender="male" variant="1">male</voice>
<voice gender="male" variant="2">male</voice>
<voice gender="female" variant="1">female</voice>
<voice gender="female" variant="2">female</voice>
</speech>
然而记录的工作是使用<prosody>SSML tag调整默认语音的音高(无论您选择哪个)。下面是一个例子,你可以用它来看看你改变音高时的声音:
<speech>
test
<prosody pitch="-1st">test</prosody>
<prosody pitch="-2st">test</prosody>
<prosody pitch="-3st">test</prosody>
<prosody pitch="-4st">test</prosody>
<prosody pitch="-5st">test</prosody>
<prosody pitch="-6st">test</prosody>
<prosody pitch="-7st">test</prosody>
<prosody pitch="-8st">test</prosody>
<prosody pitch="-9st">test</prosody>
<prosody pitch="+1st">test</prosody>
<prosody pitch="+2st">test</prosody>
<prosody pitch="+3st">test</prosody>
<prosody pitch="+4st">test</prosody>
<prosody pitch="+5st">test</prosody>
<prosody pitch="+6st">test</prosody>
<prosody pitch="+7st">test</prosody>
<prosody pitch="+8st">test</prosody>
<prosody pitch="+9st">test</prosody>
</speech>
你也可以把这两个标签组合起来。
【讨论】: