十年前老笔记本,纯CPU跑中英混合语音合成,能实现吗?

摘要:特别感谢一下一位大佬:**路遥**。因为前面我以为Kokoro不支持中英混合,所以一开始是准备用MeloTTS的(对CPU要求相对较高),在他的提示下才发现原来Kokoro也可以通过将创建英文和中文两个pipeline来实现中英混合。
上个星期分别测试了一下两个轻量级的语音合成模型,分别是: Kokoro: 加入Kokoro语音合成支持,完全纯本地CPU跑语音合成 MeloTTS: 轻量级TTS:MeloTTS纯CPU跑语音合成指南 其中Kokoro以更低的CPU要求,可完美达成我的小落同学项目的实时语音交互的需求,因此现在我已经将我的小落同学的主打语音合成在OddTTS上切到了kokoro v1.1。 这里要特别感谢一下一位大佬:路遥。因为前面我以为Kokoro不支持中英混合,所以一开始是准备用MeloTTS的(对CPU要求相对较高),在他的提示下才发现原来Kokoro也可以通过将创建英文和中文两个pipeline来实现中英混合。 以下是一些相关的介绍。 一. 安装 OddTTS pip install -i https://pypi.org/simple/ oddtts 二. 启动 OddTTS 在命令行中输入下面的命令即可启动: oddtts 启动后,浏览器打开地址:http://127.0.0.1:9001 默认的参数启动:绑定127.0.0.1环回地址,默认使用9001端口。 自定义参数启动:若要允许其他IP访问,请使用以下命令启动服务,将host设置为0.0.0.0,端口也可以改成你自定义的端口。 oddtts --host 0.0.0.0 --port 8080 启动后,浏览器打开地址:http://your_ip_addr:8080 注: 首先使用需要从huggingface下载模型,模型文件+语音文件大概400M左右,耗时要看你的网速。 国内访问huggingface.co存在问题,可通过在运行 oddtts 命令前在命令行中输入以下命令来绕过。 Windows: set HF_ENDPOINT=https://hf-mirror.com Linux/MacOS: export HF_ENDPOINT=https://hf-mirror.com 三. 使用 OddTTS OddTTS支持自定义协议的API,也支持OpenAI兼容接口的API,一般用户建议用OpenAI兼容接口来使用,三行代码搞定语音合成。 def openai_tts_api_synthesize(voice_id, text_cn_en_mixed): print(f"测试使用语音 {voice_id} 合成文本语音") client = OpenAI(api_key="dummy", base_url="http://localhost:9001/v1") response = client.audio.speech.create(model="oddtts-1", input=text_cn_en_mixed, voice=voice_id, response_format="mp3") response.write_to_file("output.mp3") 其他的API接口可以看OddTTS项目的API接口说明。 四、一些测试数据 1. 合成的语音的效果 合成的语音的效果可以看我之前的测试文章: 正常语速wav格式 正常语速mp3格式 3倍语速mp3格式 2. 合成的速度 这个是在我的这台十年前的老笔记本上跑的数据: 首次运行某一个模型的时间需要下载模型,并初始化模型,可能需要耗时几十秒到几分钟,具体时间跟你的电脑的配置,以及你的网速直接相关。在我的这个老笔记本上首次运行Kokoro耗时42.8秒左右。 若是加载了模型后,再来合成语音速度就上去了,合成我的一个口号:“关注我的公众号:奥德元,一起学习 AI,一起追赶时代。Good good study, day day up.”,耗时约3.5秒。 注:这个3.5秒可认为是首字时延,后面由于合成的速度比播放的速度要快得多的多,所以在长文(需切句子)合成的情况下,实际体验的时延可以做到趋近到500ms以内。 若是合成11字的文字,耗时(首字时延)约在1.6秒左右。 具体如下图所示。
阅读全文