Tortoise TTS简介
Tortoise TTS是一个开源的文本转语音(TTS)系统,由James Betker开发。它的主要特点包括:
- 强大的多声音能力
- 高度逼真的韵律和语调
Tortoise TTS的名字来源于莫哈韦沙漠的动植物,寓意这个模型运行速度较慢。它同时使用了自回归解码器和扩散解码器,这两种方法都以低采样率而闻名。不过,最新版本的Tortoise TTS在性能上有了很大提升,在4GB显存的设备上可以达到0.25-0.3的实时率,使用流式处理可以将延迟降低到500毫秒以下。
安装和使用
安装
Tortoise TTS需要NVIDIA GPU才能在本地运行。推荐使用Conda进行安装,步骤如下:
- 安装Miniconda
- 创建并激活conda环境
- 安装PyTorch
- 克隆Tortoise TTS代码库
- 运行安装脚本
具体命令如下:
conda create --name tortoise python=3.9 numba inflect
conda activate tortoise
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
conda install transformers=4.29.2
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
python setup.py install
使用方法
Tortoise TTS提供了多种使用接口:
- 命令行脚本:
- do_tts.py: 用单个或多个声音说出一句话
- read.py: 读取大量文本
- API接口: 可以通过编程方式使用Tortoise TTS,例如:
reference_clips = [utils.audio.load_audio(p, 22050) for p in clips_paths]
tts = api.TextToSpeech()
pcm_audio = tts.tts_with_preset("your text here", voice_samples=reference_clips, preset='fast')
- 在线演示: Hugging Face Spaces上提供了Tortoise TTS的在线演示: https://huggingface.co/spaces/Manmay/tortoise-tts
技术原理
Tortoise TTS的核心是一个类似GPT的自回归声学模型,它将输入文本转换为离散的声学标记。然后使用扩散模型将这些标记转换为梅尔频谱图帧,最后通过Univnet声码器将频谱图转换为最终的音频信号。
主要组成部分包括:
- 自回归解码器
- 扩散模型
- Univnet声码器
这种架构设计使Tortoise TTS能够生成高质量、富有表现力的语音,但也导致了较慢的生成速度。
语音克隆和自定义
Tortoise TTS支持语音克隆功能。用户可以提供3-5个约10秒长的目标说话人音频样本,系统就能模仿该说话人的声音特征。此外,Tortoise TTS还提供了随机生成声音的功能,可以创造出不存在的独特声音。
伦理考虑
语音克隆技术可能被滥用,因此开发者提供了一个分类器模型,可以检测音频是否由Tortoise TTS生成。同时,开发者也呼吁用户负责任地使用这项技术。
未来展望
Tortoise TTS的开发者认为,通过增加模型参数和训练数据,该系统还有很大的提升空间。他们希望能够与拥有更多计算资源的机构合作,探索更大规模模型的潜力。
总结
Tortoise TTS作为一个开源的文本转语音系统,展现了强大的多声音能力和高质量的语音合成效果。尽管在速度上还有提升空间,但其灵活的使用方式和语音克隆功能使其成为一个极具潜力的TTS解决方案。随着技术的不断发展和社区的持续贡献,我们可以期待Tortoise TTS在未来带来更多令人兴奋的进展。