天天看点

Tacotron1 + WaveRNN 以及Tacotron2 + WaveNet 使用总结接下来是从空用户开始安装环境, 测试Tensorflow+Pytorch 版本Tacotron2 (Mel) + WaveNet接下来是从空用户开始安装环境, 测试Pytorch 版本Tacotron1 + WaveRNN

  1. 系统本身配好了cuda10.1和pytorch1.10.  原来import torch, 尴尬 =.= 但是为了自己方便, 还是装个Anaconda吧.

    在使用anaconda装python时,有时候路径可能没有加入到系统路径中,要手动加入:

    #将anaconda的bin目录加入PATH,根据版本不同。确定anaconda的名字,如果是默认的,python3.7生成anaconda3
    $ echo 'export PATH="~/anaconda3/bin:$PATH"'>>~/.bashrc
    #然后更新bashrc,即可立即生效,不用关机,source ~/.bashrc用来重启环境变量。
    $ source ~/.bashrc
               
  2. 如何create 虚拟环境:

    conda create -n env_name python=3.7

  3. conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
               
  4. 可能需要换conda源.
  5. 但是没有在环境中装上!不知道为啥.
  6. (一)删除整个anaconda目录:

        由于Anaconda的安装文件都包含在一个目录中,所以直接将该目录删除即可。到包含整个anaconda目录的文件夹下,删除整个Anaconda目录:

        rm -rf anaconda文件夹名

    (二)建议清理下.bashrc中的Anaconda路径:

       1.到根目录下,打开终端并输入:

          sudo gedit ~/.bashrc

       2.在.bashrc文件末尾用#号注释掉之前添加的路径(或直接删除):

          #export PATH=/home/lq/anaconda3/bin:$PATH

          保存并关闭文件

       3.使其立即生效,在终端执行:

          source ~/.bashrc

       4.关闭终端,然后再重启一个新的终端,这一步很重要,不然在原终端上还是绑定有anaconda.

  7. sudo pacman -S jupyter

    无法从 mirrors6.tuna.tsinghua.edu.cn : The requested URL returned error: 4                                                                                                         04 获取文件 'mathjax-2.7.6-1-any.pkg.tar.xz'

  8. 重新来https://zhuanlan.zhihu.com/p/52498335
  9. 小龙:

    - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

      3   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

      4   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

      5   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

      6   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

      7   - defaults

  10. 星辰:

    宋星辰:

    把-c去掉就行,-channel 

    宋星辰:

    强制用pytorch的源安装pytorch

接下来是从空用户开始安装环境, 测试Tensorflow+Pytorch 版本Tacotron2 (Mel) + WaveNet

github代码地址: https://github.com/r9y9/wavenet_vocoder

colab代码地址: https://colab.research.google.com/github/r9y9/Colaboratory/blob/master/Tacotron2_and_WaveNet_text_to_speech_demo.ipynb#scrollTo=0n4h5aa51dHS

  • sudo pacman -S python-pip
  • pip install --user pysptk==0.1.17
  • 然后把requirement和setup自己用pip install --usr 安装, 但是pysptk >= 0.1.9 不知道哪个大.
  • 运行cell, 但是:
    • tf版本还是不照应, 不过不改TF版本, 而是改代码, custom_decoder.py / 47, 48 line,  if not rnn_cell_impl.......rnn_like, 注释掉.
    • https://github.com/librosa/librosa/issues/826
    • https://github.com/r9y9/gantts/issues/2
  • 现在弄不清用了几块gpu, 加速怎么样, 需要详细来看.
  • 预先训练的模型怎么用, 而且有两个预训练好的模型, 怎么协同使用?
  • 统计时间, 直观角度和合成sample比例角度.
    • 合成Mel的时间, 大约0.6s, 很快.需测试.
    • 合成Wave的时间, 太慢
      2 I try lots of vocoders, some of them are too slow, another of them can not produce good quality voice.
                 
      100%|██████████| 133376/133376 [26:05<00:00, 85.20it/s]
                 
  • 声音结果在googleDrive中: Tacotron2_and_WaveNet_text_to_speech_demo文件夹下.
  • 整理代码, 为平时TTS可用的脚本.TTS_Tacotron2_and_WaveNet_LJSpeech.ipynb 在任何地方都能用, 会chdir到用户根目录. 
  • 对比Mel直接合成的声音和WaveNet的区别, 其实韵律是一致的, 只是音质不同, 完全可以用了, 平时短时间, sample时用WaveNet. 而且启发一个修复音质的思路.
  • 本子上有不明白的代码部分, 要解决, csdn上传图片不好传, 可能要换了.
  • 只是真正用在网络实时系统的时候还不行. 需要思考应该怎么办.

接下来是从空用户开始安装环境, 测试Pytorch 版本Tacotron1 + WaveRNN

github代码地址: https://github.com/fatchord/WaveRNN

colab代码地址: 自己写一个, 先不用这个版本, 期待WaveRNN能实时, 目前研究先用T2+WaveNet版本吧.

  • pip install --user pysptk==0.1.17
  • pip install -r requirements.txt. 使用pip install --user, 把文件里面的拆开安装. 
  • 单独安装jypyter: sudo pacman -S jupyter
  • python quick_start.py -u --input_text "What will happen if I run this command?" 直接可以执行, 60s, 0.9kHZ
  • python quick_start.py -b --input_text "What will happen if I run this command?" 很快了, 13s, 4.5kHZ, 音质差不多, 但不理解这个参数的具体含义.

总结:

Sentence: I try lots of vocoders, some of them are too slow, another of them can not produce good quality voice.

approximate time of sentence:  0.06s

Tacotron2-model1__WaveNet:

  • Taccotron2-model1__WaveNet.wav
  • Synthesis time 26min

Tacotron2-model1__Mel:

  • Taccotron2-model1__Mel.wav
  • Synthesis time 0.6s

Tacotron1-model2__WaveRNN-u:

  • Tacotron1-model2__WaveRNN-u.wav
  • Synthesis time 3min

Tacotron1-model2__WaveRNN-b:

  • Tacotron1-model2__WaveRNN-b.wav
  • Synthesis time 13s

Tacotron2-model3__Linear:

  • Tacotron2-model3__Linear.wav
  • Synthesis time about 0.6s

Tacotron2-model3__Mel:

  • Tacotron2-model3__Mel.wav
  • Synthesis time about 0.6s

Tacotron2-model4__Mel:

  • TTacotron2-model3__Linear.wav
  • Synthesis time about 0.6s

model1, model2: pre-trained model, 180k steps.

model3: 100ksteps, trained with the latest version code.

model4: 80ksteps, trained with 2018-10 version code.