本项目是一个基于 TensorFlowTTS 的中文语音合成 Demo TensorFlowTTS是一个离线、开源的语音合成(text to speech)模型。它支持多种最前沿的模型选择,具备SOTA级效果。
源项目路径地址为:https://gitee.com/sherlocking_755/tts-demo
项目的参考资料为:一篇文章教你语音合成入门,训练一个中文语音tts
先pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
配置TensorFlowTTS环境
在windows中运行tensorFlowTTS项目会报错:
Traceback (most recent call last):
File "D:\programSoftware\python\anaconda\envs\temp_env\lib\tempfile.py", line 258, in _mkstemp_inner
fd = _os.open(file, flags, 0o600)
PermissionError: [Errno 13] Permission denied: 'D:\\programSoftware\\python\\anaconda\\envs\\temp_env\\lib\\site-packages\\librosa\\util\\__pycache__\\tmpyrv1bpb4'
During handling of the above exception, another exception occurred:
网上说如下修改,但是我改了没效果;
f = tempfile.NamedTemporaryFile(mode='w+', delete=False)
解决方法:
以管理员的身份打开
pycharm
,执行tts_demo.py
时就有权限访问librosa
了,参考https://www.igiftidea.com/article/11061450093.html
这里是在WSL2 + docker Desktop下做的环境配置,即在docker云服务器上拉取Anaconda镜像,并实例化anaconda容器
docker run -it --name="anaconda" -p 8888:8888 continuumio/anaconda3 /bin/bash
接着就是在该容器下配置TensorFlowTTS环境了,直接在linux系统中配置应该也大差不差。
直接pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
即可。
在配置时可能存在以下问题,如果遇到了可以参考下面链接:
如果实在windows端,则将解压好后的nltk_data
放到C:\Users\用户名\AppData\Roaming
如果是在ubuntu中,则将解压好后的nltk_data
放到/root
即可
先将tacotron2.part1.rar
几个模型文件解压到项目根目录下,加载tacotron2
模型
MelGAN模型文件已经在项目根目录中
接着分别修改tacotron2和MelGAN模型配置文件:tacotron2.baker.v1.yaml
和TensorFlowTTS/examples/multiband_melgan/conf/multiband_melgan.baker.v1.yaml
,这里使用默认配置即可
直接在项目路径下运行python tts-demo.py
即可。
在运行项目时,可能遇到如下问题,可以参考下面链接:
运行项目时,numba报错,参考https://blog.csdn.net/qq_41590635/article/details/112499219
TypeError: create_target_machine() got an unexpected keyword argument 'jitdebug'
numba建议不要用tsinghua源,下载的包不对,直接用原来的pip源下即可
运行时提示报错,nltk_data
在/root
文件夹下没找到,将项目中的nltk_data
复制到/root
下即可:
Resource cmudict not found.
Please use the NLTK Downloader to obtain the resource:
>>> import nltk
>>> nltk.download('cmudict')
For more information see: https://www.nltk.org/data.html
Attempted to load corpora/cmudict
Searched in:
- '/root/nltk_data'
- '/opt/conda/nltk_data'
- '/opt/conda/share/nltk_data'
- '/opt/conda/lib/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
**********************************************************************
这里用了下面这4条中文句子进行测试
"枯藤老树昏鸦,小桥流水人家,古道西风瘦马。夕阳西下,断肠人在天涯",
"这是一个开源的端到端中文语音合成系统",
"哈登主动降薪2年1450万美金续留76人队",
"吴啊萍还没找到,玄奘寺传真和尚却让我惊呆了"
语音合成平均耗时:
phoneme seq: sil k u1 #0 t eng2 #0 l ao3 #0 sh u4 #0 h uen1 #0 ^ ia1 #0 x iao3 #0 q iao2 #0 l iou2 #0 sh uei3 #0 r en2 #0 j ia1 #0 g u3 #0 d ao4 #0 x i1 #0 f eng1 #0 sh ou4 #0 m a3 #0 x i1 #0 ^ iang2 #0 x i1 #0 x ia4 #0 d uan4 #0 ch ang2 #0 r en2 #0 z ai4 #0 t ian1 #0 ^ ia2 sil
index = 0, cost = 2.2670693397521973
phoneme seq: sil zh e4 #0 sh iii4 #0 ^ i2 #0 g e4 #0 k ai1 #0 ^ van2 #0 d e5 #0 d uan1 #0 d ao4 #0 d uan1 #0 zh ong1 #0 ^ uen2 #0 ^ v3 #0 ^ in1 #0 h e2 #0 ch eng2 #0 x i4 #0 t ong3 sil
index = 1, cost = 1.7127163410186768
phoneme seq: sil h a1 #0 d eng1 #0 zh u3 #0 d ong4 #0 j iang4 #0 x in1 #0 n ian2 #0 ^ uan4 #0 m ei3 #0 j in1 #0 x v4 #0 l iou2 #0 r en2 #0 d uei4 sil
index = 2, cost = 1.4303524494171143
phoneme seq: sil ^ u2 #0 ^ a5 #0 p ing2 #0 h ai2 #0 m ei2 #0 zh ao3 #0 d ao4 #0 x van2 #0 z ang4 #0 s ii4 #0 ch uan2 #0 zh en1 #0 h e2 #0 sh ang4 #0 q ve4 #0 r ang4 #0 ^ uo3 #0 j ing1 #0 d ai1 #0 l e5 sil
index = 3, cost = 1.7882094383239746
mean cost = 1.7995868921279907
存在问题:无法识别数字,只能识别中文