为弹幕姬 ReTTS-Cat 插件搭建自定义 tts 引擎
上回说到,在 huggingface 搭建好 vits server 后,平时直播的弹幕语音靠 bilive_dm 播报,有时候口糊听不清还要切窗口看一眼。然后看到弹幕姬有个自定义 tts 引擎,故考虑接入试试。
Re: TTSCat
开幕 archived 问题不大。

插件页面有自定义 tts 引擎 url 的参考格式,怎么简单怎么来(GET)。

在临时目录添加一个 mp3 文件并启动 http 服务器
|
|
语音成功播放后感觉 so easy,然后如无意外的出现意外了。
踩坑
fastapi 写个简单 get 接口。
|
|
发送弹幕后什么都没有发生,打开调试模式看看怎么回事。

一切正常,还是什么都没有发生。

在缓存目录下找到 get 获取到的音频文件,直接播放没有问题。
坑1
切换到 dotNet 引擎,找到缓存下的文件,然后用回 python http 服务器测试,无声音。
切换到 百度 引擎得到音频文件后测试正常播放,迷惑。
坑2
已知 vits 语音合成使用了 scipy 库,默认生成的是 wav 格式的音频。感觉是格式问题,然后就犯了个错误:图省事直接用 scipy.io.write 方法生成 mp3 文件。
结果无法播放,调试选项依旧不报错。
Google Search
即便是谷歌搜索,在遇到冷门问题时也不一定有替代方案,不过万幸还是找到一个:MsTtsForBiliLiveDm。

仓库 archived 是因为微软关停了免费的网页 tts 服务(被短视频合成语音薅怕了估计)。

项目原理是通过微软免费的网页 tts 下载对应音频后接入弹幕姬。但是这更疑惑了,都是生成的 mp3 格式,为什么 vits 后端生成的音频就播放不了呢?
还是直接联系一下作者吧,熟练的 git clone、git log,然后:
|
|
这倒是提醒我也该设置邮箱隐私保护了,继续谷歌。


要是作者不用相同 ID,这篇文章就出不来了(
私信后问题解决了,得用原生 mp3 格式。所以坑2偷懒直接生成 mp3 是不行的,得 wav 转 mp3。

后面又翻了下 NAudio Wiki,是支持 wav 和 mp3 的。

Re-TTS CAT 的实现看上去也没问题,大概是 bug 吧。

wav to mp3
ffmpeg yes!
|
|
坑3
本地测试正常了,DockerFile 加个 ffmpeg 的依赖,代码一加直接往 huggingface 推送,然后报了 Permission Denied 错误。
|
|
一开始直接 chmod 777 /ttscache 还是会报错,然后官方文档建议新增一个用户并挂载目录,这样就没有读写权限问题了。

ffmpeg 正常转码输出 mp3 文件
