diff options
| author | Hiroshiba Kazuyuki <kazuyuki_hiroshiba@dwango.co.jp> | 2018-01-25 18:21:39 +0900 |
|---|---|---|
| committer | Hiroshiba Kazuyuki <kazuyuki_hiroshiba@dwango.co.jp> | 2018-01-25 18:21:39 +0900 |
| commit | 3ecf878ec5f35c8242b0b5e488d8f8d1f50e9aaf (patch) | |
| tree | f743d7cc093d2a3a1437e303811910efd7dc64a7 /scripts | |
| parent | b0e8f8594c5f37d60773fa36d2643789fafcaf86 (diff) | |
既存モデルを参照してアライメント
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/voice_conversion_test.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/scripts/voice_conversion_test.py b/scripts/voice_conversion_test.py index 24982ea..43c66d5 100644 --- a/scripts/voice_conversion_test.py +++ b/scripts/voice_conversion_test.py @@ -8,7 +8,7 @@ from pathlib import Path import librosa import numpy -from become_yukarin import VoiceChanger +from become_yukarin import AcousticConverter from become_yukarin.config.config import create_from_json as create_config parser = argparse.ArgumentParser() @@ -16,10 +16,12 @@ parser.add_argument('model_names', nargs='+') parser.add_argument('-md', '--model_directory', type=Path, default=Path('/mnt/dwango/hiroshiba/become-yukarin/')) parser.add_argument('-iwd', '--input_wave_directory', type=Path, default=Path('/mnt/dwango/hiroshiba/become-yukarin/dataset/hiho-wave/hiho-pause-atr503-subset/')) +parser.add_argument('-g', '--gpu', type=int) args = parser.parse_args() model_directory = args.model_directory # type: Path input_wave_directory = args.input_wave_directory # type: Path +gpu = args.gpu paths_test = list(Path('./test_data/').glob('*.wav')) @@ -29,12 +31,12 @@ def extract_number(f): return int(s[-1]) if s else -1 -def process(p: Path, voice_changer: VoiceChanger): +def process(p: Path, acoustic_converter: AcousticConverter): try: if p.suffix in ['.npy', '.npz']: p = glob.glob(str(input_wave_directory / p.stem) + '.*')[0] p = Path(p) - wave = voice_changer(p) + wave = acoustic_converter(p) librosa.output.write_wav(str(output / p.stem) + '.wav', wave.wave, wave.sampling_rate, norm=True) except: import traceback @@ -54,13 +56,16 @@ for model_name in args.model_names: model_paths = base_model.glob('predictor*.npz') model_path = list(sorted(model_paths, key=extract_number))[-1] print(model_path) - voice_changer = VoiceChanger(config, model_path) + acoustic_converter = AcousticConverter(config, model_path, gpu=gpu) output = Path('./output').absolute() / base_model.name output.mkdir(exist_ok=True) paths = [path_train, path_test] + paths_test - process_partial = partial(process, voice_changer=voice_changer) - pool = multiprocessing.Pool() - pool.map(process_partial, paths) + process_partial = partial(process, acoustic_converter=acoustic_converter) + if gpu is None: + pool = multiprocessing.Pool() + pool.map(process_partial, paths) + else: + list(map(process_partial, paths)) |
