From d08888e60329347ee6878ac3b4c306eb9c1215c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20G=C3=B6lge?= Date: Wed, 21 Apr 2021 13:12:11 +0200 Subject: [PATCH] formating speakers.py --- TTS/tts/utils/speakers.py | 46 +++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/TTS/tts/utils/speakers.py b/TTS/tts/utils/speakers.py index 0e0a7674..ef6bf243 100644 --- a/TTS/tts/utils/speakers.py +++ b/TTS/tts/utils/speakers.py @@ -16,15 +16,12 @@ def make_speakers_json_path(out_path): def load_speaker_mapping(out_path): """Loads speaker mapping if already present.""" - try: - if os.path.splitext(out_path)[1] == ".json": - json_file = out_path - else: - json_file = make_speakers_json_path(out_path) - with open(json_file) as f: - return json.load(f) - except FileNotFoundError: - return {} + if os.path.splitext(out_path)[1] == ".json": + json_file = out_path + else: + json_file = make_speakers_json_path(out_path) + with open(json_file) as f: + return json.load(f) def save_speaker_mapping(out_path, speaker_mapping): @@ -52,28 +49,35 @@ def parse_speakers(c, args, meta_data_train, OUT_PATH): print( "WARNING: speakers.json was not found in restore_path, trying to use CONFIG.external_speaker_embedding_file" ) - speaker_mapping = load_speaker_mapping(c.external_speaker_embedding_file) + speaker_mapping = load_speaker_mapping( + c.external_speaker_embedding_file) if not speaker_mapping: raise RuntimeError( "You must copy the file speakers.json to restore_path, or set a valid file in CONFIG.external_speaker_embedding_file" ) - speaker_embedding_dim = len(speaker_mapping[list(speaker_mapping.keys())[0]]["embedding"]) + speaker_embedding_dim = len(speaker_mapping[list( + speaker_mapping.keys())[0]]["embedding"]) elif ( - not c.use_external_speaker_embedding_file + not c.use_external_speaker_embedding_file ): # if restore checkpoint and don't use External Embedding file prev_out_path = os.path.dirname(args.restore_path) speaker_mapping = load_speaker_mapping(prev_out_path) speaker_embedding_dim = None - assert all(speaker in speaker_mapping for speaker in speakers), ( - "As of now you, you cannot " "introduce new speakers to " "a previously trained model." - ) + assert all( + speaker in speaker_mapping + for speaker in speakers), ("As of now you, you cannot " + "introduce new speakers to " + "a previously trained model.") + elif (c.use_external_speaker_embedding_file + and c.external_speaker_embedding_file + ): # if start new train using External Embedding file + speaker_mapping = load_speaker_mapping( + c.external_speaker_embedding_file) + speaker_embedding_dim = len(speaker_mapping[list( + speaker_mapping.keys())[0]]["embedding"]) elif ( - c.use_external_speaker_embedding_file and c.external_speaker_embedding_file - ): # if start new train using External Embedding file - speaker_mapping = load_speaker_mapping(c.external_speaker_embedding_file) - speaker_embedding_dim = len(speaker_mapping[list(speaker_mapping.keys())[0]]["embedding"]) - elif ( - c.use_external_speaker_embedding_file and not c.external_speaker_embedding_file + c.use_external_speaker_embedding_file + and not c.external_speaker_embedding_file ): # if start new train using External Embedding file and don't pass external embedding file raise "use_external_speaker_embedding_file is True, so you need pass a external speaker embedding file, run GE2E-Speaker_Encoder-ExtractSpeakerEmbeddings-by-sample.ipynb or AngularPrototypical-Speaker_Encoder-ExtractSpeakerEmbeddings-by-sample.ipynb notebook in notebooks/ folder" else: # if start new train and don't use External Embedding file