欢迎访问我的网站,希望内容对您有用,感兴趣的可以加入我们的社群。

一款文本转语音工具

算法 迷途小书童 2年前 (2023-03-02) 2191次浏览 0个评论

环境

  • 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

这效果也太差了点,看了看 issueshttps://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,文件结构如下

tortoise-tts

喜欢 (0)

您必须 登录 才能发表评论!