免费文字转语音 API:无密钥、无配额,运行在你自己的服务器上
大多数文字转语音 API 只在一定程度内免费:注册、拿到 API 密钥、用带月度配额和速率限制的免费档,之后按字符计费。做原型没问题,但对说话很多的应用、机器人或要生成成千上万句台词的流程来说,就很吃力。请注意:Supertonic 3 暂不支持中文。
SuperClonica 走的是另一条路:语音服务器是一个免费的 Docker 镜像,在你自己的电脑或服务器上运行。不用申请密钥,也没有配额,只取决于你的硬件。本指南介绍如何启动、如何用 curl、Python 和 JavaScript 调用,以及“免费”实际要花多少。
免费档及其限制
各云服务商的最新条款请自行确认:免费档和价格都会变化。
- 云端免费档通常需要账号和 API 密钥,并有月度字符配额和速率限制。
- 每次请求,你的文字都会发给服务商。
- 自托管服务器既不需要密钥也不需要账号,没有配额。
- SuperClonica 服务器支持 31 种语言,有十个免费标准声音和 170 多个目录声音。
在线免费试听声音
在任意声音页面输入 30 到 100 个字符的句子,选择语言并点击生成按钮。几秒后就能听到 API 将返回的效果,无需注册。
启动 API 并调用
响应是 16 位单声道 WAV;响应头 X-Sample-Rate 和 X-Duration-Seconds 描述了它,GET /voices 会列出声音和语言。
- 启动服务器:docker run -d -p 8000:8000 -v superclonica-models:/models superclonica/superclonica:cpu。首次启动会下载模型,约 385 MB。
- 用 curl 调用:curl -X POST http://localhost:8000/synthesize -H "Content-Type: application/json" -d '{"text": "Hello from a free API!", "voice": "F1", "lang": "en"}' -o hello.wav
- 在 Python 中,无需额外的包:import json, urllib.request; req = urllib.request.Request('http://localhost:8000/synthesize', data=json.dumps({'text': 'Hello', 'voice': 'F1', 'lang': 'en'}).encode(), headers={'Content-Type': 'application/json'}); open('hello.wav', 'wb').write(urllib.request.urlopen(req).read())
- 在 JavaScript 或 Node.js 中:const r = await fetch('http://localhost:8000/synthesize', {method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify({text: 'Hello', voice: 'F1', lang: 'en'})}); const wav = await r.arrayBuffer();
密钥、限制与扩展
在你自己的机器上不需要密钥。如果服务器能从网络访问,请设置 SUPERCLONICA_API_KEY 并通过 Authorization: Bearer 发送该密钥,或者让服务器保持私有。默认每个请求最多 5000 个字符,可用 SUPERCLONICA_MAX_TEXT 修改,SUPERCLONICA_LANES 可让多个请求同时处理。对外开放前,请用任意反向代理在前面加上 HTTPS。
“免费”的真实成本
软件是免费的:引擎和镜像采用 Apache 2.0 许可,Supertonic 3 模型采用 OpenRAIL-M 许可,允许在限制范围内商业使用。你要付的是机器:CPU 处理一句短话远不到一秒,同时用户很多时 GPU 更快。目录中的声音一次购买即可,十个标准声音免费。