LOST IN BLUE


Wavenetを実装し学習してみたので結果をまとめて置きます. メルスペクトログラムを入力として波形を推定するvocoderとして実装しました. 今回は単一話者・mu-law量子化で学習したデータです.

データセットはjsutを使用させていただきました.

学習に使っていない発話を使用していくつか生成しました. 左が生成音声,右がオリジナル音声です. オリジナル音声は[-1.0, 1.0]となるように処理してあります.

この他にも合成した音声をドライブ,そのオリジナル音声をドライブにそれぞれアップロードしています.

細かい学習条件は以下の通りです.

hparam value
データセット jsut
language 日本語
Input type mu-law quantize
Sampling rate 22050
Local Conditioning 80次元メルスペクトログラム
Global Conditioning なし(単一話者)
n_layer 10
n_loop 2
kernel_size 3
dropout 0.05
residual channels 128
dilated channels 256
skip out channels 128
upsample type PixelShuffler(SubPixel Convolution)
upsample scales [11, 25]
max time steps 8000
batch_size 8
train/eval/test 6945発話/367発話/385発話

学習はP100を用いて1週間ほど合計1200000iter回しました. mu-lawのせいかところどころノイズのようなものがあり,ガウシアンにすればまた変わってきそうです.

まだmu-law量子化のモデルしか学習・推論まで確認していないのでガウス分布のほうも GPUが空き次第学習・推論して確認してソースも公開します.(少しかかるかもしれません…)

追記

WaveNetのソースを公開しました ガウシアンの設定でも動くのは確認しているのでとりあえず公開しました.

以下のソース・ページを実装の参考にしました.ありがとうございました. Tacotron-2のソースは前処理なども含めて非常に参考になりました.

日本語音声のオープンのコーパスを用いて学習したWavenetの参考になれば幸いです.

最後に,jsutコーパスはデータ数が多く,品質も高いため良い音声合成ができました.ありがとうございました.