有没有办法在DialogFlow(Api.ai)的对话中改变女性对男性的声音

时间:2017-11-15 11:40:15

标签: voice dialogflow actions-on-google

我们正在使用Api.ai(现在是Dialogflow)为Google Home构建一个聊天机器人应用程序,其中包含男性和女性历史人物。我们在谷歌上使用动作。 Google可让您在部署应用时默认使用男声或女声。有没有办法动态切换男性和女性的声音,例如,使用webhook中的代码?

1 个答案:

答案 0 :(得分:8)

也许。虽然SSML支持<voice>标记,但操作文档并未将其列为受支持。但是,正如您所指出的那样,似乎有一些支持。 gendervariant属性似乎有效,至少对于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>

您也可以合并这两个标签。