猴哥的第 169 期分享,欢迎追看
前段时间,分享了低延迟小智AI服务端搭建的 ASR、LLM 和 TTS 部分:
这三个环节中,成本最高的当属 TTS 。
上篇是本地TTS篇的第一篇:
低延迟小智AI服务端搭建-本地TTS篇:fishspeech流式推理
本篇,实测本地部署的 CosyVoice2.0。
- 关于 CosyVoice2.0
本地部署 cosyvoice2.0 并搭建音色克隆服务,笔者之前有分享过:阿里 CosyVoice 再升级!语音克隆玩出新花样,支持流式输出。
相比 fishspeech,CosyVoice 可玩性更强,支持可控音频生成``语速调节等等。
不过,我们更关心的是 如何降低推理延时?
- 加速推理
CosyVoice 官方仓库提供了 tensorrt 的加速方案,只需在模型加载时传参load\_trt=True:
# Load model
cosyvoice = CosyVoice2('../pretrained\_models/CosyVoice2-0.5B', load\_trt=True, fp16=True)
此外,模型每次推理都需要处理参考音频和参考文本,这部分显然可以剥离开,提前处理好,并加入缓存。
为此,可以在 CosyVoice 实例中,新增注册音色的函数:
def register\_voice(self, voice\_id, voice\_text, ref\_audio):
st = time.time()
prompt\_speech = load\_wav(ref\_audio, 16000)
prompt\_text = self.frontend.text\_normalize(voice\_text, split=False, text\_frontend=True)
output = self.frontend.frontend\_prompt(prompt\_text, prompt\_speech, self.sample\_rate)
self.speaker[voice\_id] = output
print(f"register voice {voice\_id} time: {time.time() - st}")
以注册 11s 的音频为例,需要 1.65s :
register voice zh\_female\_wanwanxiaohe\_moon\_bigtts time: 1.656615972518921
下面,一起来看下注册音色带来的加速效果:
- 原始推理 :
- 注册音色后 :
可以发现,同样一段语音合成,首段音频合成的 rtf 可从 2.8 降到 1.6!
- 流式推理服务
之前的教程中已提供 fastapi 封装的服务端部署:
阿里 CosyVoice 再升级!语音克隆玩出新花样,支持流式输出。
这里只需新增注册音色的接口:
@app.post("/register-voice")
async def register\_voice(request: TTSRequest):
cosyvoice.register\_voice(
voice\_id=request.voice\_id,
voice\_text=request.voice\_text,
ref\_audio=os.path.join(local\_voice\_dir, f"{request.voice\_id}.wav"),
)
return {"status": "success"}
@app.get("/list-voice")
async def list\_voice():
keys = cosyvoice.speaker.keys()
return {"speakers": list(keys)}
为了和云端 TTS 的 API 接口对齐,还需封装一个 webscoket 服务,接收 fastapi 服务输出的音频流,并发送给客户端。
实现思路和上篇一样,不再赘述。
- 硬件配置和响应延时
服务启动后的显存占用情况:
因为启用了 tensorrt 引擎,显存占用高了一倍,相比上篇的 fishspeech,性价比顿无!
以下是在 RTX 4080 显卡上,流式推理,首个音频包到达客户端的延时情况。
在进行 tensorrt 加速,参考音频编码缓存的情况下,首包延时高达 1.3s :
最后,我们把接收到的 pcm 数据转成 wav,来感受一下音质。
参考音频来自小智火爆出圈的
台湾腔女生-湾湾小何
ffmpeg -f s16le -ar 24000 -ac 1 -i tts.pcm tts.wav
和上篇的 fishspeech 对比下呢:
写在最后
本文分享了小智AI服务端 本地TTS的实现,对cosyvoice的首包延时进行了实测。
如果对你有帮助,欢迎点赞收藏 备用。
下篇,继续实测支持流式推理的 TTS 模型。
为方便大家交流,新建了一个 AI 交流群,公众号后台「联系我」,拉你进群。
👇 关注猴哥,快速入门AI工具
# AI 工具:
盘点9家免费且靠谱的AI大模型 API,统一封装,任性调用!
免费GPU算力本地跑DeepSeek R1,无惧官方服务繁忙!
# AI应用** :**
弃坑 Coze,我把 Dify 接入了个人微信,AI小助理太强了
我把「FLUX」接入了「小爱」,微信直接出图,告别一切绘画软件!
