Godot 文字转语音:游戏台词与运行时语音
Godot 游戏常常由一个人或小团队制作,配音往往是预算里最难挤出的部分。文字转语音能在台词写好的当天就配上声音:用于原型、临时对白、教程,也适合有意保留合成声音的游戏。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。
免费的 SuperClonica 引擎在普通处理器上离线朗读文本。本指南介绍在 Godot 中使用它的两种方式(预先生成的 WAV 文件和从 GDScript 发起的运行时语音),以及哪些声音可以用于正式发布。
为 Godot 游戏配音的两种方式
玩家的电脑不会运行语音服务器,所以正式发布的单机游戏应该随附文件。
- 预先生成的文件:在开发阶段为每句台词生成语音,把 WAV 放进项目。它们会像其他声音一样随游戏导出。
- 运行时语音:游戏把文本发送到 SuperClonica 服务器并播放返回的音频。适合编辑器工具、原型以及有自己服务器的在线游戏。
- 两种方式都在普通处理器上运行,不按字符收费。
- 模型支持 31 种语言,暂不支持中文。
免费挑选声音
在任意声音页面输入一句角色台词,30 到 100 个字符,选择语言并点击生成按钮。几秒后就能听出声音是否合适,无需注册。
提前生成对白
相同的文本、声音和 seed 总会得到相同的音频,所以只需重新生成改动过的台词,仓库里保存脚本而不是音频。
- 安装引擎:python -m pip install superclonica-cpu。
- 把台词放在一张表里:ID、语言和文本。
- 用一个短脚本逐行处理:superclonica --text "Welcome to the village!" --voice npc.json --lang en --output voice/npc_greeting_01.wav。
- Godot 会自动导入项目中的新 WAV 文件;用 AudioStreamPlayer 播放。
从 GDScript 在运行时朗读
在任意处理器上启动服务器:docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu。在 Godot 4.4 或更新版本中,内置的 HTTPRequest 节点和 AudioStreamWAV.load_from_buffer 无需保存文件即可播放返回的音频:var http := HTTPRequest.new(); add_child(http); http.request_completed.connect(_on_voice); http.request("http://localhost:8000/synthesize", ["Content-Type: application/json"], HTTPClient.METHOD_POST, JSON.stringify({"text": "Welcome back!", "voice": "F1", "lang": "en"}))。在同一脚本中:func _on_voice(result, code, headers, body): $Voice.stream = AudioStreamWAV.load_from_buffer(body); $Voice.play()。在处理器上,短句大约需要半秒;重复出现的台词请缓存音频流。不要把 API 密钥放进导出的游戏中,玩家可以把它提取出来;应由你自己的游戏服务器去调用语音服务器。
可以用于发布的声音
原型阶段可以使用目录中的任何声音。正式发布的游戏请使用你拥有权利的声音:模型自带的十个标准声音 M1–M5、F1–F5,用征得同意的演员 5 到 10 秒的干净录音、在配有 NVIDIA 显卡的电脑上用 SuperClonica 工作室训练出的你自己的声音,或在交易所定制的声音。粉丝制作的角色声音适用于恶搞和同人游戏,而不适用于商业游戏。