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

WIN+PhothonでAttributeErrorが出て困っています。 #18

Closed BURI55 closed 6 years ago

BURI55 commented 6 years ago

WIN+PhothonでAttributeErrorが出て困っています。 解決済

回答 1

投稿 2018/03/09 13:16 ・編集 2018/03/09 14:26

評価 0 クリップ 0 VIEW 95 BURI55 BURI55

score 3

前提・実現したいこと Phythonで機械学習の声質変換システムを動かそうとしています。 Githubからのクローン、学習データの用意、環境整備は終わりました。音響特徴量の切り出しを行いたいと、 extract_acoustic_feature.pyの実行中に次のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

C:\become-yukarin\become-yukarin\scripts>extract_acoustic_feature.py C:\Anaconda3\lib\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 ['class', 'contains', 'delattr', 'dict', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'init_subclass', 'le', 'lt', 'module', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook', 'weakref__', '_get_args', '_get_kwargs', 'alpha', 'disable_alignment', 'enable_overwrite', 'f0_ceil1', 'f0_ceil2', 'f0_estimating_method', 'f0_floor1', 'f0_floor2', 'frame_period', 'ignore_feature', 'input1_directory', 'input2_directory', 'order', 'output1_directory', 'output2_directory', 'pad_second', 'pre_converter1_config', 'pre_converter1_model', 'sample_rate', 'top_db'] Traceback (most recent call last): File "C:\become-yukarin\become-yukarin\scripts\extract_acoustic_feature.py", line 206, in main() File "C:\become-yukarin\become-yukarin\scripts\extract_acoustic_feature.py", line 191, in main paths1 = list(sorted(arguments.input1_directory.glob('\become-yukarin\My_ATR503'))) AttributeError: 'NoneType' object has no attribute 'glob' 該当のソースコード・コマンド おそらくパス指定してる部分で指示されていないためエラーが出るのかと思いました。

def main(): paths1 = list(sorted(arguments.input1_directory.glob(''))) paths2 = list(sorted(arguments.input2_directory.glob(''))) assert len(paths1) == len(paths2)

arguments.output1_directory.mkdir(exist_ok=True)
arguments.output2_directory.mkdir(exist_ok=True)

pool = multiprocessing.Pool()
pool.starmap(generate_feature, zip(paths1, paths2), chunksize=16)

generate_mean_var(arguments.output1_directory)
generate_mean_var(arguments.output2_directory)

コンフィグファイルにあるこのディレクトリ指示部分が怪しいと思っているのですが。

{ "dataset": { "input_glob": "C:/become-yukarin/dataset/aligned-feature/aligned-yukari-pause-hiho-pause-atr-topdb40-smart/hiho-pause/atr.npy", "input_mean_path": "C:/become-yukarin/dataset/aligned-feature/aligned-yukari-pause-hiho-pause-atr-topdb40-smart/hiho-pause/mean.npy", "input_var_path": "C:/become-yukarin/dataset/aligned-feature/aligned-yukari-pause-hiho-pause-atr-topdb40-smart/hiho-pause/var.npy", "target_glob": "C:/become-yukarin/dataset/aligned-feature/aligned-yukari-pause-hiho-pause-atr-topdb40-smart/yukari-pause/atr.npy", "target_mean_path": "C:/become-yukarin/dataset/aligned-feature/aligned-yukari-pause-hiho-pause-atr-topdb40-smart/yukari-pause/mean.npy", "target_var_path": "C:/become-yukarin/dataset/aligned-feature/aligned-yukari-pause-hiho-pause-atr-topdb40-smart/yukari-pause/var.npy", "features": [ "f0", "mfcc" ],

引数付けて実行しました。

C:\become-yukarin\become-yukarin>python scripts/extract_acoustic_feature.py -i1 C:become-yukarin\become-yukarin\My_ATR503 -i2 C:\become-yukarin\become-yukarin\Sasara_ATR503 C:\Anaconda3\lib\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 ['class', 'contains', 'delattr', 'dict', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'init_subclass', 'le', 'lt', 'module', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook', 'weakref__', '_get_args', '_get_kwargs', 'alpha', 'disable_alignment', 'enable_overwrite', 'f0_ceil1', 'f0_ceil2', 'f0_estimating_method', 'f0_floor1', 'f0_floor2', 'frame_period', 'ignore_feature', 'input1_directory', 'input2_directory', 'order', 'output1_directory', 'output2_directory', 'pad_second', 'pre_converter1_config', 'pre_converter1_model', 'sample_rate', 'top_db'] Traceback (most recent call last): File "scripts/extract_acoustic_feature.py", line 208, in main() File "scripts/extract_acoustic_feature.py", line 193, in main paths1 = list(sorted( arguments.input1_directory.lob(''))) AttributeError: 'WindowsPath' object has no attribute 'lob' 試したこと glob('')のアスタリスクにパスを入れてみる。 引数付けて実行する

使い方 必要なライブラリのインストール

pip install -r requirements.txt 学習させる 学習用のPythonスクリプトを実行するには、become_yukarinライブラリをパス(PYTHONPATH)に通す必要があります。 例えばscripts/extract_acoustic_feature.pyを以下のように書いて、パスを通しつつ実行します。

PYTHONPATH=pwd python scripts/extract_acoustic_feature.py --- 第1段階の学習 音声データを用意する 2つのディレクトリに、入出力の音声データを置く(ファイル名を揃える) 音響特徴量切り出しをする scripts/extract_acoustic_feature.py 補足情報(FW/ツールのバージョンなど) Python3.6(Anaconda)

BURI55 commented 6 years ago

readme.mdに下記のような実行例があると思います。argumentsは引数解析の結果のようですので、下記の六つは少なくとも引数で指定する必要がありそうです。

parser.add_argument('--input1_directory', '-i1', type=Path) parser.add_argument('--input2_directory', '-i2', type=Path) parser.add_argument('--output1_directory', '-o1', type=Path) parser.add_argument('--output2_directory', '-o2', type=Path) parser.add_argument('--pre_converter1_config', type=Path) parser.add_argument('--pre_converter1_model', type=Path) つまり、

python scripts/extract_acoustic_feature.py -i1 xxx -i2 yyy...

など。