本人用的pycharm
环境:Windows+SDK+visual studio (待运行)
Mac :pycharm(可以运行)
ubuntu:pycharm(可以运行)
1.下载代码
https://github.com/Rayhane-mamah/Tacotron-2
2.配置环境
按照requirement.txt的要求进行配置相关环境
falcon==1.2.0
inflect==0.2.5
audioread==2.1.5
librosa==0.5.1
matplotlib==2.0.2
numpy==1.14.0
scipy==1.0.0
tqdm==4.11.2
Unidecode==0.4.20
pyaudio==0.2.11
sounddevice==0.3.10
lws
keras
配置环境出现的问题:
1.Windows情况:对应的版本有时候下载不下来,比如matplotlib、numpy等,但是至少版本高于requirement
2.librosa这个版本会出现问题,我用的是0.6.2
3.Mac和Linux下对于lws:pip install lws 就可以
4.Windows的lws需要先下载vs,比较麻烦
5.pyaudio:windows:下载wheel文件-cd进入-下载-pip
Mac:brew命令
Linux:自行百度,很方便
3.readme.txt
这个 github 包含了对该论文的其他改进和尝试
, 因此我们使用paper_hparams.py文件,该文件保存精确的超参数以重现了
paper的结果,而无需任何额外的附加功能。默认使用的建议hparams.py文件包含带有额外内容的超参数,在大多数情况下可以提供更好的结果
。 按照自己的需要随意修改参数
Tacotron-2
├── datasets
├── en_UK (0)
│ └── by_book
│ └── female
├── en_US (0)
│ └── by_book
│ ├── female
│ └── male
├── LJSpeech-1.1 (0)
│ └── wavs
├── logs-Tacotron (2)
│ ├── eval_-dir
│ │ ├── plots
│ │ └── wavs
│ ├── mel-spectrograms
│ ├── plots
│ ├── taco_pretrained
│ ├── metas
│ └── wavs
├── logs-Wavenet (4)
│ ├── eval-dir
│ │ ├── plots
│ │ └── wavs
│ ├── plots
│ ├── wave_pretrained
│ ├── metas
│ └── wavs
├── logs-Tacotron-2 ( * )
│ ├── eval-dir
│ │ ├── plots
│ │ └── wavs
│ ├── plots
│ ├── taco_pretrained
│ ├── wave_pretrained
│ ├── metas
│ └── wavs
├── papers
├── tacotron
│ ├── models
│ └── utils
├── tacotron_output (3)
│ ├── eval
│ ├── gta
│ ├── logs-eval
│ │ ├── plots
│ │ └── wavs
│ └── natural
├── wavenet_output (5)
│ ├── plots
│ └── wavs
├── training_data (1)
│ ├── audio
│ ├── linear
│ └── mels
└── wavenet_vocoder
└── models
上一棵树显示了存储库的当前状态(单独训练,一次仅一步)。
步骤(0):获取您的数据集,这里我设置了Ljspeech,en_US和en_UK的示例(来自M-AILABS)。
步骤(1):预处理您的数据。这将为您提供training_data文件夹。
步骤(2):训练您的Tacotron模型。产生logs-Tacotron文件夹。
步骤(3):综合/评估Tacotron模型。给出tacotron_output文件夹。
步骤(4):训练Wavenet模型。产生logs-Wavenet文件夹。
步骤(5):使用Wavenet模型合成音频。给出wavenet_output文件夹。
注意:对于Tacotron和WaveNet(Tacotron-2,步骤(*)),都可以通过简单的运行来进行步骤2、3和4。
注意:
我们的预处理仅支持Ljspeech和类似Ljspeech的数据集(M-AILABS语音数据)!如果在以不同方式存储的数据集上运行,则可能需要制作自己的预处理脚本。
在上一棵树中,未表示文件,为简单起见,最大深度设置为3。
如果您同时运行两个模型的训练,则存储库结构将有所不同。
4.运行步骤
step1.首先进行数据预处理
Python preprocess.py
生成如下:
step2:进行模型训练:
1.python train.py --model=‘Tacotron-2’;
2.python train.py --model=‘Tacotron’;
3.python train.py --model=‘wave-net’;
出现问题的排查very import
1.出现下面错误
ValueError: operands could not be broadcast together with shapes (1,1025) (0,)
此错误困扰了我好几天,以为是维度等等问题,结果最后发现
In my case it was because librosa version specified in requirements.txt (0.5.1 ) was not compatible with numpy 1.16.3 (which I had already installed) So I upgraded librosa to 0.6.2 and it solved the problem.
2.问题pyaudio安装问题
1.Windows :需要先下载wheel
2.Mac: 需要安装homebrew 可以搜索
3.Windows好像无lws库
待解决,但是我的Mac有