Есть ли способ изменить женский голос на мужской во время разговора в DialogFlow (Api.ai)?

Мы создаем приложение чат-бота для Google Home, используя Api.ai (Dialogflow сейчас), в котором есть исторические фигуры как мужчин, так и женщин. Мы используем Действия в Google. Google позволяет вам по умолчанию использовать мужской или женский голос при развертывании приложения. Есть ли способ динамического переключения между мужским и женским голосом, например, с помощью кода в webhook?

1 ответ

Решение

Может быть Хотя SSML поддерживает <voice> тег, документация для действий не перечисляет его как поддерживаемый. Однако, как вы заметили, похоже, что есть некоторая поддержка. 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. Вот пример, который вы можете использовать, чтобы увидеть, как он звучит, если вы измените высоту звука:

<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>

Вы также можете объединить два тега.

Другие вопросы по тегам