Перейти к основному содержимому

Как использовать плагин

Плагин Runtime Text To Speech синтезирует текст в речь с использованием загружаемых моделей голоса. Эти модели управляются в настройках плагина внутри редактора, загружаются и упаковываются для использования во время выполнения. Следуйте приведенным ниже шагам, чтобы начать работу.

Со стороны редактора

Загрузите соответствующие модели голоса для вашего проекта, как описано здесь. Вы можете загрузить несколько моделей голоса одновременно.

Со стороны выполнения

Создайте синтезатор, используя функцию CreateRuntimeTextToSpeech. Убедитесь, что у вас есть ссылка на него (например, как отдельная переменная в Blueprints или UPROPERTY в C++), чтобы предотвратить его сборку мусора.

Пример создания синтезатора Runtime Text To Speech в Blueprints

После создания синтезатора вы можете вызвать одну из следующих функций для синтеза текста:

  • Text To Speech (By Name) (TextToSpeechByName in C++)
  • Text To Speech (By Object) (TextToSpeechByObject in C++)

По имени

Функция Text To Speech (By Name) стала более удобной в Blueprints начиная с UE 5.4. Она позволяет выбрать голосовые модели из выпадающего списка загруженных моделей. В UE версиях ниже 5.3 этот выпадающий список не отображается, поэтому, если вы используете более старую версию, вам нужно вручную перебрать массив голосовых моделей, возвращаемый GetDownloadedVoiceModels, чтобы выбрать нужную.

Пример использования Text To Speech по имени в Blueprints

По Объекту

Функция Text To Speech (By Object) работает во всех версиях Unreal Engine, но предоставляет модели голосов в виде выпадающего списка ссылок на активы, что является менее интуитивным. Этот метод идеален для UE 5.3 и более ранних версий, или если вашему проекту требуются прямые ссылки на активы моделей голоса по какой-либо причине.

Пример использования Text To Speech по Объекту в Blueprints

Если вы скачали модели, но не видите их, откройте выпадающий список Voice Model, нажмите настройки (иконка шестеренки) и включите Show Plugin Content и Show Engine Content, чтобы модели стали видимыми.

Выбор диктора

Обе функции Text To Speech принимают необязательный параметр ID диктора, который полезен при работе с голосовыми моделями, поддерживающими нескольких дикторов. Вы можете использовать функции GetSpeakerCountFromVoiceModel или GetSpeakerCountFromModelName, чтобы проверить, поддерживает ли ваша выбранная голосовая модель несколько дикторов. Если доступно несколько дикторов, просто укажите желаемый ID диктора при вызове функций Text To Speech. Некоторые голосовые модели предлагают большое разнообразие — например, English LibriTTS включает более 900 различных дикторов на выбор.

Воспроизведение

Делегат On Speech Result предоставляет синтезированные аудиоданные в формате PCM в виде данных в формате float (как массив байт в Blueprints или TArray<uint8> в C++), а также Sample Rate и Num Of Channels. Вы можете обработать эти данные по мере необходимости.

Для воспроизведения рекомендуется использовать плагин Runtime Audio Importer для преобразования необработанных аудиоданных в звуковую волну, пригодную для воспроизведения. Однако это необязательно, и вы можете обработать необработанные PCM аудиоданные с помощью собственного решения, если хотите.

Чтобы использовать Runtime Audio Importer, вызовите Import Audio From RAW Buffer с RAW Buffer (из делегата On Speech Result), Sample Rate и Num Of Channels, чтобы создать звуковую волну.

Как только у вас будет звуковая волна, вы можете использовать её, как любую обычную звуковую волну в Unreal Engine — воспроизводя, сохраняя в файл сохранения игры или проводя дальнейшую обработку.

Вот пример того, как могут выглядеть ноды Blueprint для синтеза текста и воспроизведения аудио (Копируемые ноды):

Плагин Runtime Audio Importer также предоставляет дополнительные функции, такие как экспорт аудиоданных в файл, передача их в SoundCue, MetaSound и многое другое. Для получения дополнительной информации ознакомьтесь с документацией по Runtime Audio Importer.