有没有办法在 DialogFlow 的对话中将女声改为男声 (Api.ai)

Is there a way to have change female to male voice during the conversation in DialogFlow (Api.ai)

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

可能。虽然 SSML 支持 <voice> 标签,但 Actions 的文档并未将其列为受支持。但是,正如您所指出的,似乎有一些支持。 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>

您也可以将这两个标签结合起来。