跳到主要内容

如何使用插件

Runtime Text To Speech 插件使用可下载的语音模型将文本合成为语音。这些模型在编辑器内的插件设置中进行管理、下载,并打包以供运行时使用。按照以下步骤开始使用。

编辑器端

按照此处所述,为您的项目下载合适的语音模型。您可以同时下载多个语音模型。

运行时

使用 CreateRuntimeTextToSpeech 函数创建合成器。确保保持对其的引用(例如,在Blueprint中作为单独的变量或在 C++ 中为 UPROPERTY)以防止其被垃圾回收。

在Blueprint中创建 Runtime Text To Speech 合成器的示例

一旦合成器创建完成,你可以调用以下任意功能来合成文本:

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

按名称

UE 5.4 开始,Text To Speech (By Name) 函数在Blueprint中更为方便。它允许您从已下载模型的下拉列表中选择语音模型。在 低于 5.3 的 UE 版本 中,此下拉列表不会出现,因此如果您使用的是旧版本,您需要手动遍历 GetDownloadedVoiceModels 返回的语音模型数组,以选择您需要的模型。

在Blueprint中按名称使用文本转语音的例子

按对象

Text To Speech (By Object) 函数适用于所有版本的 Unreal Engine,但将语音模型作为资产引用的下拉列表显示,直观性较差。此方法适用于 UE 5.3 及更早版本,或在项目中因任何原因需要直接引用语音模型资产的情况。

在 Blueprints 中使用按对象文本转语音的示例

如果您已下载模型但无法看到它们,请打开 Voice Model 下拉菜单,点击设置(齿轮图标),然后启用 Show Plugin ContentShow Engine Content 以使模型可见。

发言者选择

两个文本到语音功能都接受一个可选的发言者 ID 参数,当使用支持多个发言者的语音模型时,这个参数非常有用。您可以使用 GetSpeakerCountFromVoiceModelGetSpeakerCountFromModelName 函数检查所选语音模型是否支持多个发言者。如果可以选择多个发言者,只需在调用文本到语音功能时指定您想要的发言者 ID。一些语音模型提供了丰富的选项,例如,English LibriTTS 就包含了 超过 900 个不同的发言者 可供选择。

播放

On Speech Result 委托提供了合成后音频的 PCM 数据,以 float 格式(在 Blueprints 中为字节数组或在 C++ 中为 TArray<uint8>),以及 Sample RateNum Of Channels。您可以根据需要处理这些数据。

为了播放,推荐使用 Runtime Audio Importer 插件将原始音频数据转换为可播放的声音波。不过这不是必须的,您也可以用自己的解决方案处理原始 PCM 音频数据。

要使用 Runtime Audio Importer,调用 Import Audio From RAW Buffer,传入 RAW Buffer(来自 On Speech Result 委托)、Sample RateNum Of Channels 以生成一个声音波。

一旦您有了声音波,就可以像在 Unreal Engine 中的任何常规声音波一样使用它——播放它,将其保存到存档文件,或进一步处理。

以下是如何将文本合成为语音并播放音频的 Blueprint 节点示例(可复制的节点):

Runtime Audio Importer 插件还提供了额外的功能,如将音频数据导出到文件、传递给 SoundCue、MetaSound 等。有关更多详细信息,请查看 Runtime Audio Importer 文档