Google Cloud Text-to-Speech 的离线替代方案
Google Cloud Text-to-Speech、Amazon Polly 和 Azure AI Speech 都是云端 API:每次请求都会把你的文字发送给服务商,超出免费额度的用量按字符计费,而且需要账号、密钥和网络连接。SuperClonica 提供同类的组件,但运行在你自己的机器上。请注意:Supertonic 3 暂不支持中文。
本页诚实地比较两种方式,说明什么时候云端 API 更合适,并介绍如何把云端调用换成本地调用。
云端 API 还是自己运行的声音
云端 API 上手更容易,能扩展到任意负载;本地引擎则以此换取隐私和固定成本。
- 云端 TTS:托管服务器、众多语言和声音、按用量计费,文字会发送给服务商。
- SuperClonica:带 HTTP 接口的 Docker 镜像、Python 库和命令行工具,全部在本地运行。
- 模型(约 385 MB)只需下载一次,之后服务器无需联网。
- 声音是 JSON 文件:十个内置声音、目录中的声音,或用你自己的录音训练的声音。
什么时候云端 API 更合适
如果你需要中文或非常多的语言和地区变体、SSML 控制、带服务保障的托管扩展,或者根本不想维护服务器,请选择云端 API。SuperClonica 支持 31 种语言,没有 SSML,运行在你自己管理的硬件上。
什么时候 SuperClonica 更合适
在我们的测试中,一句短句在 RTX 5070 Ti 上耗时 0.12 秒,在 Ryzen 7 5800X 的四个线程上耗时 0.43 秒。
- 文字需要保密:医疗记录、内部文档、尚未发布的游戏台词。
- 需要离线或在封闭网络中运行。
- 用量很大或难以预测,按字符计费会随之增长。
- 想要角色声音、用自家播音员训练的品牌声音,以及在 31 种语言中保持同一个声音。
替换 API 调用
在任何 CPU 上启动服务器:docker run -d --name tts -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu。当 GET http://localhost:8000/health 有响应后,发送请求:curl -X POST http://localhost:8000/synthesize -H "Content-Type: application/json" -d '{"text": "Hello from my own server!", "voice": "F1", "lang": "en"}' -o hello.wav。POST /synthesize 接受 text、voice、lang、seed 和 normalize,返回 16 位单声道 WAV。设置 SUPERCLONICA_API_KEY 即可要求 Authorization 请求头,并请把服务器放在 HTTPS 之后或私有网络中。自定义声音以其 JSON 对象的形式放进请求。
费用与许可证
SuperClonica 引擎和 Docker 镜像以 Apache License 2.0 发布。Supertonic 3 模型采用 OpenRAIL-M 许可,这是一种免费许可,在其禁止用途清单范围内允许商用。内置声音和目录中的若干声音免费,其他声音一次购买。比较之前,请到各云服务商官网查看当前价格。