9

一款文本转语音工具 - 迷途小书童的Note迷途小书童的Note

 1 year ago
source link: https://xugaoxiang.com/2023/03/02/tortoise-tts/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
  • 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,文件结构如下

36dcaf7b6990eff1.webp

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK