ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

【Quick Start】ディープラーニングで結月ゆかりの声になる on Ubuntu18.04

「ディープラーニングの力で結月ゆかりの声になる」ための基礎知識とコマンド操作 - Qiita この記事を参考にしてやってみたが、なんだかんだエラーが出てくるのでメモ。

Windowsで自分の音声を録音する

https://github.com/YoshikazuOota/become-yukarin をダウンロードします。
become-yukarin/dat/in_1st_yukari_wav/
に入っている音声を聞いて、
become-yukarin/dat/in_1st_my_wav/
に自分の声を録音したファイルを保存します。
(ファイル名は同一にする(v_801.wav ...))

録音ソフトはAudacityを使用しました。

素のUbuntu18.04から構築

Prerequirement1(NvidiaGPUを使用している場合)

Nviida Driverをインストールする。

$ sudo ubuntu-drivers autoinstall
$ sudo reboot

CUDA10とcuDnnをインストール

qiita.com

Prerequirement2

$ git clone https://github.com/YoshikazuOota/become-yukarin
$ cd become-yukarin
$ sudo apt install python3-pip
$ pip3 install -r requirements.txt  //※1

npy生成

$ PYTHONPATH=`pwd` python3 scripts/extract_acoustic_feature.py -i1 dat/in_1st_my_wav -i2 dat/in_1st_yukari_wav -o1 dat/out_1st_my_npy  -o2 dat/out_1st_yukari_npy  
※2

学習

dat/config.jsonを適宜編集してください。
今回はGPUを使うので下のように書き換えました。

line:40 "gpu": 0
(cpuを使う場合はそのまま-1でオッケー)

実行

$ python3 train.py dat/config.json dat/model/yukari_1st
※3

進捗確認

dat/model/yukari_1st/logを直接開くか、
ターミナルでwatchする場合は下記を実行します。

$ watch -n (何秒毎) tail -(行数) dat/model/yukari_1st/log
(ex.)$ watch -n 10 tail -30 dat/model/yukari_1st/log

生成されたモデルデータはdat/model/yukari_1stに保存されます。
学習を止めないとpredictor_xxxx.npzが無限に生成されますので、適当なところで止めてください。(私はGPUで10時間やってしまった)

$ python3 scripts/voice_conversion_test.py yukari_1st -iwd dat/in_1st_yukari_wav -md dat/model -it 15000

エラーが出ましたが(librosa.util.exceptions.ParameterError: Audio buffer is not finite everywhere)アウトプットはされていたので無視。

高音質化のためのモデル作成

$ python3 scripts/extract_spectrogram_pair.py -i dat/in_2nd_yukari_many_wav -o dat/out_2nd_yukari_many_npy
※4

test_data_srにoutput_yukari_1stにある音声を置く。 高音質化

$ python3 scripts/super_resolution_test.py yukari_2nd -md dat/model -iwd dat/in_2nd_yukari_many_wav

output/yukari_2nd に高音質化したゆかり音声が入る。

...暇さえあれば詳しく調べて改善してみたい。

エラー対処

※1 Failed building wheel for pyworld

$ pip3 install pyworld


※2 No module named 'world4py'

$ git clone https://github.com/yamachu/WORLD4py.git $ cd WORLD4py
$ sudo python3 setup.py install


※3 Object of type 'PosixPath' is not JSON serializable

$ pip3 install chainerui==0.3


※4 No module named 'tqdm'

$ pip3 install tqdm

参考

「ディープラーニングの力で結月ゆかりの声になる」ための基礎知識とコマンド操作 - Qiita