指南

流式语音合成 API:最快 300 毫秒听到第一个声音

返回完整文件的语音合成 API 会让听众等完整段文本。对聊天机器人、游戏角色或长文章来说,这段等待就是“立刻回答的应用”和“还在思考的应用”之间的差别。请注意:Supertonic 3 暂不支持中文,可朗读英语、日语、韩语等 31 种语言。

SuperClonica 语音合成 API 可以流式返回:发送 "stream": true,音频边生成边送达。在我们对线上服务的测量中,第一个声音最快在请求后 300 毫秒到达,长文本也不会推迟它,因为文本被分块朗读,第一块最先发出。

这里的流式是如何工作的

文本在句子边界处切分,各块同时在多个 worker 上朗读。第一块很短,并且在队列中优先于其他一切,所以无论后面还有什么,它都很快就绪。服务器按顺序把各块拼成一条 Ogg 流,每块一就绪就发送,其余部分仍在朗读中。

  • 第一个声音:我们测量中最快 300 毫秒,计到第一批音频字节。
  • 3839 字符的文本:第一个声音约 0.5 秒,完整文件 5.6 秒。
  • 约 16000 字符、15.6 分钟语音:完整文件 25.6 秒。
  • 时间取决于当时的负载;负载很高时,请求会在公平队列中等待。

如何调用

在工作区的 API 部分创建密钥,然后带上 "stream": true 发送文本。在 curl 中用 -N 关闭缓冲,就能把流直接交给播放器:

curl -N https://superclonica.com/api/v1/speech -H "Authorization: Bearer $SUPERCLONICA_KEY" -H "Content-Type: application/json" -d '{"text": "Hello! This sentence plays while the next one is made.", "voice": "F1", "language": "en", "stream": true}' | ffplay -nodisp -autoexit -

在 Python 中,requests 的 stream=True 配合 iter_content 可以边到边取字节;在浏览器中,把 audio 元素指向你自己的、负责转发流的端点。

使用前需要知道的

默认格式 Ogg Vorbis 在任何长度下都会流式传输;mp3 和 wav 在文本超过约半分钟语音时流式传输,否则作为一个完整文件返回。如果在第一个声音之前出错,返回的是带状态码的普通错误;之后出错则传输会提前结束,因此请把中断的流视为失败并重新发送文本。503 表示队列已满:等待 Retry-After 头中的秒数,然后用同一个 Idempotency-Key 重新发送。

其他服务领先的地方

ElevenLabs 和 Cartesia 还能通过 WebSocket 流式接收文本本身,适合在语言模型仍在输出时就开口说话的语音代理。SuperClonica API 在一次请求中接收完整文本。Supertonic 3 尚不支持中文,大型云服务还提供 SSML 和逐词时间戳。如果你需要这些,它们是更好的选择;如果你需要快速的第一个声音和大量便宜的时长,可以在免费套餐上试试我们的 API。