查看原文
其他

Github 项目推荐 | 用 Pytorch 实现的 WaveNet-Vocoder

2018-03-05 孔令双 AI研习社

本库是用 Pytorch 实现的 WaveNet-Vocoder。

安装需求:

  • cuda 8.0

  • python 3.6

  • virtualenv

推荐使用内存大于 10GB 的 GPU。

  安装:

$ git clone https://github.com/kan-bayashi/PytorchWaveNetVocoder.git
$ cd PytorchWaveNetVocoder/tools
$ make -j

  示例:

所有的示例都基于 kaldi-style recipe。

# build SD model
$ cd egs/arctic/sd
$ ./run.sh

# build SI-CLOSE model
$ cd egs/arctic/si-close
$ ./run.sh

# build SI-OPEN model
$ cd egs/arctic/si-open
$ ./run.sh

如果你的服务器上安装了 slurm,你可以用 slurm 来运行 recipe。

$ cd egs/arctic/sd

# edit configuration
$ vim cmd.sh # please edit as follows
---
# for local
# export train_cmd="run.pl"
# export cuda_cmd="run.pl --gpu 1"

# for slurm (you can change configuration file "conf/slurm.conf")
export train_cmd="slurm.pl --config conf/slurm.conf"
export cuda_cmd="slurm.pl --gpu 1 --config conf/slurm.conf"
---

$ vim conf/slurm.conf # edit <your_partition_name>
---
command sbatch --export=PATH  --ntasks-per-node=1
option time=* --time $0
option mem=* --mem-per-cpu $0
option mem=0
option num_threads=* --cpus-per-task $0 --ntasks-per-node=1
option num_threads=1 --cpus-per-task 1  --ntasks-per-node=1
default gpu=0
option gpu=0 -p <your_partion_name>
option gpu=* -p <your_partion_name> --gres=gpu:$0 --time 10-00:00:00
---

# run the recipe
$ ./run.sh

最后,你可以在 exp / train _ * / wav_restored 中获取生成的 wav 文件。

  使用预先训练的模型来解码数据

为了合成你的数据,你需要以下东西:

- checkpoint-final.pkl (model parameter file)
- model.conf (model configuration file)
- stats.h5 (feature statistics file)
- *.wav (your own wav file)

过程如下:

$ cd egs/arctic/si-close

# download pre-trained model which trained with 6 arctic speakers
$ wget "https://www.dropbox.com/s/xt7qqmfgamwpqqg/si-close_lr1e-4_wd0_bs20k_ns_up.zip?dl=0" -O si-close_lr1e-4_wd0_bs20k_ns_up.zip

# unzip
$ unzip si-close_lr1e-4_wd0_bs20k_ns_up.zip

# make filelist of your own wav files
$ find <your_wav_dir> -name "*.wav" > wav.scp

# feature extraction
$ . ./path.sh
$ feature_extract.py \
   --waveforms wav.scp \
   --wavdir wav/test \
   --hdf5dir hdf5/test \
   --fs 16000 \
   --shiftms 5 \
   --minf0 <set_appropriate_value> \
   --maxf0 <set_appropriate_value> \
   --mcep_dim 24 \
   --mcep_alpha 0.41 \
   --highpass_cutoff 70 \
   --fftl 1024 \
   --n_jobs 1
   
# make filelist of feature file
$ find hdf5/test -name "*.h5" > feats.scp
   
# decode with pre-trained model
$ decode.py \
   --feats feats.scp \
   --stats si-close_lr1e-4_wd0_bs20k_ns_up/stats.h5 \
   --outdir si-close_lr1e-4_wd0_bs20k_ns_up/wav \
   --checkpoint si-close_lr1e-4_wd0_bs20k_ns_up/checkpoint-final.pkl \
   --config si-close_lr1e-4_wd0_bs20k_ns_up/model.conf \
   --fs 16000 \
   --n_jobs 1 \
   --n_gpus 1

# make filelist of generated wav file
$ find si-close_lr1e-4_wd0_bs20k_ns_up/wav -name "*.wav" > wav_generated.scp

# restore noise shaping
$ noise_shaping.py \
   --waveforms wav_generated.scp \
   --stats si-close_lr1e-4_wd0_bs20k_ns_up/stats.h5 \
   --writedir si-close_lr1e-4_wd0_bs20k_ns_up/wav_restored \
   --fs 16000 \
   --shiftms 5 \
   --fftl 1024 \
   --mcep_dim_start 2 \
   --mcep_dim_end 27 \
   --mcep_alpha 0.41 \
   --mag 0.5 \
   --inv false \
   --n_jobs 1

最后,你可以在 si-close_lr1e-4_wd0_bs20k_ns_up / wav_restored 中找到生成的 wav 文件。

  结果:

NLP 工程师入门实践班:基于深度学习的自然语言处理

三大模块,五大应用,手把手快速入门 NLP

海外博士讲师,丰富项目经验

算法 + 实践,搭配典型行业应用

随到随学,专业社群,讲师在线答疑

▼▼▼





新人福利




关注 AI 研习社(okweiwu),回复  1  领取

【超过 1000G 神经网络 / AI / 大数据,教程,论文】



一次 PyTorch 的踩坑经历,以及如何避免梯度成为NaN

▼▼▼

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存