summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/voice_conversion_test.py19
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))