【语音合成】TensorFlowTTS 中文文本转语音

【语音合成】TensorFlowTTS 中文文本转语音

文章目录

  • 【语音合成】TensorFlowTTS 中文文本转语音
    • 简介
    • 环境配置
      • 1、windows端
      • 2、ubuntu端(可行)
    • 程序运行
      • 1、加载数据
      • 2、加载模型
      • 3、可能存在的问题
    • 测试效果

简介

本项目是一个基于 TensorFlowTTS 的中文语音合成 Demo TensorFlowTTS是一个离线、开源的语音合成(text to speech)模型。它支持多种最前沿的模型选择,具备SOTA级效果。

源项目路径地址为:https://gitee.com/sherlocking_755/tts-demo

项目的参考资料为:一篇文章教你语音合成入门,训练一个中文语音tts

环境配置

1、windows端

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

2、ubuntu端(可行)

这里是在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即可。

在配置时可能存在以下问题,如果遇到了可以参考下面链接:

  • 安装 llvmlite 报错:参考https://blog.csdn.net/qq_41977618/article/details/119572879,https://www.cnblogs.com/kele-dad/p/12955804.html
  • 安装 pyaudio 报错:参考https://www.csdn.net/tags/MtjaYgysNjcxODQtYmxvZwO0O0OO0O0O.html

程序运行

1、加载数据

如果实在windows端,则将解压好后的nltk_data放到C:\Users\用户名\AppData\Roaming

如果是在ubuntu中,则将解压好后的nltk_data放到/root即可

2、加载模型

先将tacotron2.part1.rar几个模型文件解压到项目根目录下,加载tacotron2模型

MelGAN模型文件已经在项目根目录中

接着分别修改tacotron2和MelGAN模型配置文件:tacotron2.baker.v1.yamlTensorFlowTTS/examples/multiband_melgan/conf/multiband_melgan.baker.v1.yaml,这里使用默认配置即可

直接在项目路径下运行python tts-demo.py即可。

3、可能存在的问题

在运行项目时,可能遇到如下问题,可以参考下面链接:

  • 运行项目时,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

存在问题:无法识别数字,只能识别中文

你可能感兴趣的:(机器学习,语音识别,人工智能)