环境
- ubuntu 18.04 64bit
- Nvidia GTX 1070Ti 8G
简介
Tortoise
是一个开源的 Text-To-Speech
程序,具有强大的文本转语音功能和高度逼真的语音和语调。
搭建
创建一个全新的 python
虚拟环境
conda create -n tts python=3.8
conda activate tts
然后,拉取源码,安装依赖
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
pip install -r requirements.txt
python setup.py install
测试
将单句文本转换成语音
python tortoise/do_tts.py --text "I'm going to speak this" --voice random --preset fast
脚本执行成功后,在文件夹 results
会生成3个音频 wav
文件,声音是随机匹配的,生成的音频,大家可以听听,感受一下效果
当前系统中所有的可用声音都存放在目录 tortoise/voices
下面,如果中意哪个人的声音,可以在脚本参数中指定, train_
打头的效果会更好
python tortoise/do_tts.py --text "I'm going to speak this" --voice tom --preset fast
tom
版的声音也感受一下
如果有很多的文本需要处理,可以将它们放在一个文本文件里,比如
Hello world.
Hello Rust.
Nice to meet you.
然后执行脚本
python tortoise/read.py --textfile test.txt --voice random
脚本会将文本文件分解成一个个的句子,然后分别将它们转换为语音。待所有的语句都生成后,再将它们组合成一个文件并输出
最后,来看看中文的表现
python tortoise/do_tts.py --text "你好,世界" --voice random --preset fast
这效果也太差了点,看了看 issues
,https://github.com/neonbjb/tortoise-tts/issues/5,目前官方还不支持其它语言,需要自己去训练 wav2vec
模型
自定义声音
如果想把特定的声音加入到 tortoise
中,需要如下步骤
- 搜集特定人的音频片段
- 将音频整理成大概10秒左右的一个个小片段,至少需要3个片段,越多越好
- 音频片段使用
wav
格式,采样率 22050 - 在目录
tortoise/voices
下创建一个新的文件夹,以声音人名命名,方便记忆,比如zhangsan
,然后将上面整理好的wav
文件拷贝进来 - 最后的使用就是在脚本中参数
--voice
指定为zhangsan
模型下载
脚本运行期间,会从 huggingface
站点上下载一堆的模型文件,这里打包了一下,存放在了云盘里,自取
链接:https://pan.baidu.com/s/1EJD4N2yamDNh6X_0GtoaRQ
提取码:3qrq
下载后,解压缩后拷贝到目录 ~/.cache
,文件结构如下