このリポジトリは、Become Yukarin: 誰でも好きなキャラの声になれるリポジトリの、 第1段階の学習コードを拡張したものです。
- Linux OS
- Python 3.6
pip install -r requirements.txt
このリポジトリのコードを実行するには、yukarin
ライブラリをパス(PYTHONPATH)に通す必要があります。
例えばscripts/foo.py
を実行するには、以下のように書いて、パスを通します。
PYTHONPATH=`pwd` python scripts/foo.py
入力音声データと、目標音声データを大量に用意し、別々のディレクトリ(例:input_wav
とtarget_wav
)に配置します。
ファイル名は同じである必要があります。
入力と目標の音声データそれぞれの音響特徴量ファイルを出力します。
python scripts/extract_acoustic_feature.py \
-i './input_wav/*' \
-o './input_feature/'
python scripts/extract_acoustic_feature.py \
-i './target_wav/*' \
-o './target_feature/'
入力と目標の音響特徴量を時間方向に揃えます。
次の例では、input_feature
とtarget_feature
のアライメントデータをaligned_indexes
に出力します。
python scripts/extract_align_indexes.py \
-i1 './input_feature/*.npy' \
-i2 './target_feature/*.npy' \
-o './aligned_indexes/'
声の高さの変換に必要な周波数の統計量を、入力・目標データそれぞれに対して求めます。
python scripts/extract_f0_statistics.py \
-i './input_feature/*.npy' \
-o './input_statistics.npy'
python scripts/extract_f0_statistics.py \
-i './target_feature/*.npy' \
-o './target_statistics.npy'
sample_config.json
のinput_glob
、target_glob
、indexes_glob
を変更すればとりあえず動きます。
python train.py \
sample_config.json \
./model_stage1/
テスト用の入力音声データをディレクトリ(例:test_wav
)に配置し、voice_change.py
を実行します。
python scripts/voice_change.py \
--model_dir './model_stage1' \
--config_path './model_stage1/config.json' \
--input_statistics 'input_statistics.npy' \
--target_statistics 'target_statistics.npy' \
--output_sampling_rate 24000 \
--disable_dataset_test \
--test_wave_dir './test_wav/' \
--output_dir './output/'
Become Yukarinの第2段階モデルを使えば、 変換結果の音声の品質を上げることができます。
Become Yukarinの第2段階の学習を参考に、 第2段階モデルを学習します。
テスト用の入力音声データをディレクトリ(例:test_wav
)に配置し、voice_change_with_second_stage.py
を実行します。
python scripts/voice_change_with_second_stage.py \
--voice_changer_model_dir './model_stage1' \
--voice_changer_config './model_stage1/config.json' \
--super_resolution_model './model_stage2/' \
--super_resolution_config './model_stage2/config.json' \
--input_statistics 'input_statistics.npy' \
--target_statistics 'target_statistics.npy' \
--out_sampling_rate 24000 \
--disable_dataset_test \
--dataset_target_wave_dir '' \
--test_wave_dir './test_wav' \
--output_dir './output/'