最近在测试轻量级TTS引擎Kokoro时,发现它的表现远超预期。这个引擎不仅支持8种不同音色,还能完全在CPU上运行,速度快得让人惊喜。测试结果让我迫不及待地想把它整合到我的OddTTS项目中。经过周末的努力,现在这个功能已经成功部署在我的"小落同学"项目上了。
Kokoro引擎最吸引人的地方在于它的轻量化和高效率。相比其他需要GPU加速的TTS方案,Kokoro仅需CPU就能流畅运行,这大大降低了使用门槛。实测下来,合成一段10秒的语音只需要不到1秒的时间,而且音质相当不错,特别是对中文的支持非常到位。
Kokoro是一个基于深度学习的轻量级语音合成引擎,它的核心优势在于:
将Kokoro集成到OddTTS项目中,主要做了以下几方面的改进:
在开始使用前,需要确保系统满足以下要求:
安装OddTTS非常简单,只需执行以下命令:
bash复制pip install -i https://pypi.org/simple/ oddtts
这个命令会从PyPI官方源安装OddTTS及其所有依赖项。如果安装过程中遇到网络问题,可以尝试使用国内镜像源:
bash复制pip install -i https://pypi.tuna.tsinghua.edu.cn/simple oddtts
安装完成后,可以通过以下命令启动服务:
bash复制oddtts
默认配置会绑定到127.0.0.1的9001端口。启动后,在浏览器中访问http://127.0.0.1:9001即可看到Web界面。
如果需要允许其他设备访问,可以使用以下命令:
bash复制oddtts --host 0.0.0.0 --port 8080
这样服务会监听所有网络接口的8080端口,其他设备可以通过http://your_ip_addr:8080访问。
OddTTS提供了兼容OpenAI的API接口,使用起来非常方便。以下是一个完整的Python调用示例:
python复制from openai import OpenAI
base_url = "http://localhost:9001/v1"
model = "oddtts-1"
api_key = "dummy"
voice = "zf_xiaobei"
text = "欢迎关注我的公众号: 奥德元。一起学习AI,一起追赶时代!Good good study, day day up!"
def test_openai_tts_api(voice_id):
client = OpenAI(
api_key=api_key,
base_url=base_url
)
response = client.audio.speech.create(
model=model,
input=text,
voice=voice_id,
response_format="mp3"
)
response.write_to_file("output.mp3")
if __name__ == "__main__":
test_openai_tts_api(voice)
这个示例展示了如何使用OpenAI兼容接口调用OddTTS服务,并将合成的语音保存为MP3文件。
Kokoro的模型存储在Hugging Face上,国内用户可能会遇到下载困难。可以通过设置环境变量来解决:
Windows系统:
cmd复制set HF_ENDPOINT=https://hf-mirror.com
set HF_HOME=F:/ai_share/models
Linux/MacOS系统:
bash复制export HF_ENDPOINT=https://hf-mirror.com
export HF_HOME=/opt/ai_share/models
如果遇到WAV格式正常但MP3转换失败的情况,可能是FFmpeg相关的问题。解决方法:
bash复制pip install ffmpeg-python
如果服务无法启动,可以按照以下步骤排查:
OddTTS支持多种TTS引擎,可以通过修改配置文件来切换:
oddtts_config.py文件tts_type配置项OddTTS支持多种音频输出格式,包括:
可以通过API的response_format参数指定输出格式。
虽然Kokoro是轻量级引擎,但在处理长文本时仍可能占用较多内存。建议:
OddTTS默认是单线程处理,如果需要支持高并发:
在我的"小落同学"项目中,OddTTS+Kokoro的组合实现了以下功能:
这个方案特别适合教育类应用:
在实际开发过程中,我总结了以下几点经验:
对于想要尝试语音合成开发的同行,我的建议是: