Hiroshiba / become-yukarin

Convert your voice to favorite voice
https://hiroshiba.github.io/blog/became-yuduki-yukari-with-deep-learning-power/
MIT License
576 stars 88 forks source link

windowsでのvoice_conversion_test.pyの実行エラーについて #34

Closed feathVR closed 6 years ago

feathVR commented 6 years ago

環境: windows10

問題点: コマンド実行: PS D:\work\become-yukarin-master> python .\scripts\voice_conversion_test.py result_1 -md .\ -iwd .\firstData\test\ 結果:

C:\Users\f\AppData\Roaming\Python\Python36\site-packages\h5py__init.py:36: FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type. from ._conv import register_converters as _register_converters result_1\predictor_415000.npz C:\Users\f\AppData\Roaming\Python\Python36\site-packages\h5py\init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type. from ._conv import register_converters as _register_converters

C:\Users\f\AppData\Roaming\Python\Python36\site-packages\h5py__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from float to np.floating is deprecated. In future, it will be treated as np.float64 == np.dtype(float).type. from ._conv import register_converters as _register_converters error! firstData\firstOutputMyVoice\003.npy error! firstData\firstOutputMyVoice\013.npy

要望: voice_conversion_test.pyを実行するとエラーが発生するのですが、エラー文があまりに短く原因の特定ができずにいます。 どのようにすれば改善してエラー無くコマンドを実行できるでしょうか。

補足:

33 のイシューからここまで来るまでに実施したことについて、かいつまんで説明します。

・train.py実行時、pickle使用時にAttributeErrorが発生する windows環境ではmultiprocessingの開始にはspawnを使用する必要があります。 https://docs.python.jp/3/library/multiprocessing.html おそらくこのプログラムはforkを前提として記載しているため、spawnでpickleを使用する際にエラーが発生します。 この点を改善するために、pickleではなくdillを使用するようにしてpickle使用時のエラーに対応しました。

・train.py実行時、if name == 'main' が無いというエラーが発生する。 こちらもmultiprocessingに関連するエラーのようです。 どの部分をif name == 'main'で囲めばよいのか分からないため全体を囲ってから実行しました。

・train.pyが終わらない おそらく強制終了させない限り終わらないようにプログラムされているからだと認識しています。 predictor_415000.npzが作成された後に強制終了をかけており、こちらのファイルを用いてvoice_conversion_test.pyを実行しました。

・voice_conversion_test.py実行時、if name == 'main' が無いというエラーが発生する。 同様に、全体をif name == 'main'で囲いました。

trainのconfig.jsonの設定値はこのようにしています。

"train": { "batchsize": 8, "gpu": 0, "log_iteration": 250, "snapshot_iteration": 5000 }

Hiroshiba commented 6 years ago

該当箇所で、エラー文をprintするようにできていませんでした。

https://github.com/Hiroshiba/become-yukarin/blob/7d1fae329b67acdb356aca60fc6323b0ad51662f/scripts/voice_conversion_test.py#L46

上記箇所は、print(traceback.format_exc())が正しいです。 修正してcommitします。

補足ありがとうございます。 (これらのコードはwindows環境で試していないため、unix推奨という形にしています。)

このIssueは一度閉じますが、適宜また開いて頂ければと思います。