yukarinライブラリの備忘録（書きかけ）

#初めに

https://qiita.com/yuki_2020/items/ecb3448c375ba0bec510

こちらである程度windowsで学習環境が整ったので、実際に学習することにした。

それについて書いていたのだが、やる気がなくなってしまったので、できたところまで書いておく。

#データ作成

1段階のデータセットは、audacityを使用して録音した。


音声は無料で使おうと思い、ハーメルンの読み上げを使用した。

https://www.nicovideo.jp/watch/sm37618920

ランキング一位のものを読み上げた
利用規約は確認中










2段階のデータセットは、購入していないため、いろいろなところから集めた。


utau音源+utau+唄詠+texttowavなど考えたが、理想の声ではなかった。
やはりvoiceloidでないとダメそうだ。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/993303/68a9584d-490a-613e-6de7-f9c29976fc89.png)

http://jukenki.com/contents/other/virtualbox/clone-virtualbc.html

https://onoredekaiketsu.com/copy-and-paste-with-virtualbox/


クリップボードの共有がうまくいかないので、共有フォルダを作る

https://www.sejuku.net/blog/75265

永続にチェック

いろいろソフトをダウンロード

https://www.npmjs.com/package/command-line-args/v/0.5.4


https://avinton.com/academy/extending-virtualbox-virtual-drive/

http://shinta.coresv.com/software/utayomi_jpn/





#フォルダの作成など事前準備

##visual sudio

https://mebee.info/2020/07/18/post-13597/


これに従ってインストール

##cuda

gpuで学習するため、以下に従ってcuda10.0をダウンロード

https://qiita.com/yuki_2020/items/d6db0d965c7eabcfb5b6


##ライブラリのインストール

```
conda create -n kiri python==3.7
conda activate kiri


pip install numpy
pip install librosa
pip install pysptk
pip install pyworld
pip install fastdtw
pip install matplotlib
pip install tqdm
pip install world4py
pip install git+https://github.com/Hiroshiba/become-yukarin
pip install git+https://github.com/Hiroshiba/yukarin
pip install numba==0.48

pip install cupy-cuda100==5.4.0
pip install git+https://github.com/neka-nat/tensorboard-chainer
pip install numpy==1.20.2
pip install dill==0.3.0
```

https://qiita.com/yuki_2020/items/ecb3448c375ba0bec510#pickle%E5%95%8F%E9%A1%8C



##dillの変更

https://github.com/chainer/chainerrl/issues/175

これによって変更すると特徴量抽出はできなくなる。








##フォルダの作成

```

mkdir deep_yukarin
cd deep_yukarin

mkdir test_data
mkdir output
mkdir output/1st_yukari_model_by
mkdir test_data_sr

mkdir dat
mkdir dat\1st_models_by
mkdir dat\2nd_models_by
mkdir dat\1st_models_y

mkdir dat\1st_models_by\yukari
mkdir dat\1st_models_by\yukari\npy_pair


mkdir dat\1st_models_by\yukari\voice_pair

mkdir dat\2nd_models_by\yukari
mkdir dat\2nd_models_by\yukari\npy_single

mkdir dat\1st_models_y\yukari
mkdir dat\1st_models_y\yukari\aligned_indexes
mkdir dat\1st_models_y\yukari\aligned_wav
mkdir dat\1st_models_y\yukari\statistics
mkdir dat\1st_models_y\yukari\npy_pair

mkdir dat\input
mkdir dat\output

mkdir dat\voice_src
mkdir dat\voice_src\voice_24000
mkdir dat\voice_src\voice_44100

mkdir dat\voice_src\voice_24000\yukari_pair
mkdir dat\voice_src\voice_24000\yukari_pair\own
mkdir dat\voice_src\voice_24000\yukari_pair\target
mkdir dat\voice_src\voice_24000\yukari_single

mkdir dat\voice_src\voice_44100\yukari_pair
mkdir dat\voice_src\voice_44100\yukari_pair\own
mkdir dat\voice_src\voice_44100\yukari_pair\target
mkdir dat\voice_src\voice_44100\yukari_single

git clone https://github.com/Hiroshiba/yukarin.git
git clone https://github.com/Hiroshiba/become-yukarin.git

```


#become-yukarin二段階の音声抽出
24000Hz16bitの音声はできるだけ短くした音声を使用して、以下の-iのフォルダに入れた。

次に以下を実行

```
python become-yukarin/scripts/extract_spectrogram_pair.py -i dat/voice_src/voice_24000/yukari_single -o dat/2nd_models_by/yukari/npy_single
```


なおpickleをdillにしていると動かないが、直すと動く。


#二段階学習

```
copy become-yukarin\recipe\config_sr.json dat\2nd_models_by\yukari\
```

次に


```
 "input_glob": "dat/2nd_models_by/yukari/npy_single/*.npy",
 "batchsize": 自分のgpuに合わせて適切な値rtx2070の8GBだと4が妥当
 "log_iteration": 5,#細かく知りたいため小さく
 "snapshot_iteration": 50
```

このままだと動かないので、dillをやる
dill==0.3.0意外だと動かなかった(0.3.3)


```
python become-yukarin/train_sr.py dat/2nd_models_by/yukari/config_sr.json dat/2nd_models_by/yukari/2nd_yukari_model_by
```



#セーブ機能をつける
うまくいかないのでテスト部分をなくす

現在やっているのは、
1.明治大学のsingingデータセット
2.utauの元の声となったもの
3.voiceloidを録音したenola


#これらでの学習はうまくいかないため、変えてみる

#



```
python check.py  --input_path input.wav     --input_time_length 5     --output_path output.wav    --input_statistics_path sample/input_statistics.npy     --target_statistics_path sample/target_statistics.npy    --stage1_model_path sample/model_stage1/predictor.npz     --stage1_config_path sample/model_stage1/config.json    --stage2_model_path sample/model_stage2/predictor.npz     --stage2_config_path sample/model_stage2/config.json

```