Changed how dvae weights are copied.
This commit is contained in:
1 parent
a3f157249c
commit
9f18b24465
1 file changed
+14
-22
+14
-22
@@ -291,12 +291,12 @@ def create_temporary_file(folder, suffix=".wav"):
|
|||||||
unique_filename = f"custom_tempfile_{int(time.time())}_{random.randint(1, 1000)}{suffix}"
|
unique_filename = f"custom_tempfile_{int(time.time())}_{random.randint(1, 1000)}{suffix}"
|
||||||
return os.path.join(folder, unique_filename)
|
return os.path.join(folder, unique_filename)
|
||||||
|
|
||||||
def format_audio_list(target_language, whisper_model, out_path, eval_split_number, gradio_progress=progress):
|
def format_audio_list(target_language, whisper_model, out_path, eval_split_number, speaker_name_input, gradio_progress=progress):
|
||||||
pfc_check_fail()
|
pfc_check_fail()
|
||||||
audio_files = [os.path.join(audio_folder, file) for file in os.listdir(audio_folder) if file.endswith(('.mp3', '.flac', '.wav'))]
|
audio_files = [os.path.join(audio_folder, file) for file in os.listdir(audio_folder) if file.endswith(('.mp3', '.flac', '.wav'))]
|
||||||
buffer=0.2
|
buffer=0.2
|
||||||
eval_percentage = eval_split_number / 100.0
|
eval_percentage = eval_split_number / 100.0
|
||||||
speaker_name="coqui"
|
speaker_name=speaker_name_input
|
||||||
audio_total_size = 0
|
audio_total_size = 0
|
||||||
os.makedirs(out_path, exist_ok=True)
|
os.makedirs(out_path, exist_ok=True)
|
||||||
temp_folder = os.path.join(out_path, "temp") # Update with your folder name
|
temp_folder = os.path.join(out_path, "temp") # Update with your folder name
|
||||||
@@ -837,11 +837,6 @@ def compact_model(xtts_checkpoint_copy):
|
|||||||
|
|
||||||
del checkpoint["optimizer"]
|
del checkpoint["optimizer"]
|
||||||
|
|
||||||
# Extract and save the fine-tuned DVAE weights
|
|
||||||
dvae_state_dict = {key: value for key, value in checkpoint["model"].items() if "dvae" in key}
|
|
||||||
dvae_path = this_dir / "models" / "trainedmodel" / "dvae.pth"
|
|
||||||
torch.save(dvae_state_dict, dvae_path)
|
|
||||||
|
|
||||||
for key in list(checkpoint["model"].keys()):
|
for key in list(checkpoint["model"].keys()):
|
||||||
if "dvae" in key:
|
if "dvae" in key:
|
||||||
del checkpoint["model"][key]
|
del checkpoint["model"][key]
|
||||||
@@ -850,7 +845,7 @@ def compact_model(xtts_checkpoint_copy):
|
|||||||
torch.save(checkpoint, target_dir / "model.pth")
|
torch.save(checkpoint, target_dir / "model.pth")
|
||||||
|
|
||||||
# Specify the files you want to copy
|
# Specify the files you want to copy
|
||||||
files_to_copy = ["vocab.json", "config.json", "speakers_xtts.pth", "mel_stats.pth"]
|
files_to_copy = ["vocab.json", "config.json", "speakers_xtts.pth", "mel_stats.pth", "dvae.pth",]
|
||||||
|
|
||||||
for file_name in files_to_copy:
|
for file_name in files_to_copy:
|
||||||
src_path = this_dir / base_path / base_model_path / file_name
|
src_path = this_dir / base_path / base_model_path / file_name
|
||||||
@@ -901,11 +896,6 @@ def compact_lastfinetuned_model(xtts_checkpoint_copy):
|
|||||||
# Create the target directory if it doesn't exist
|
# Create the target directory if it doesn't exist
|
||||||
target_dir.mkdir(parents=True, exist_ok=True)
|
target_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
# Extract and save the fine-tuned DVAE weights
|
|
||||||
dvae_state_dict = {key: value for key, value in checkpoint["model"].items() if "dvae" in key}
|
|
||||||
dvae_path = this_dir / "models" / "lastfinetuned" / "dvae.pth"
|
|
||||||
torch.save(dvae_state_dict, dvae_path)
|
|
||||||
|
|
||||||
for key in list(checkpoint["model"].keys()):
|
for key in list(checkpoint["model"].keys()):
|
||||||
if "dvae" in key:
|
if "dvae" in key:
|
||||||
del checkpoint["model"][key]
|
del checkpoint["model"][key]
|
||||||
@@ -914,7 +904,7 @@ def compact_lastfinetuned_model(xtts_checkpoint_copy):
|
|||||||
torch.save(checkpoint, target_dir / "model.pth")
|
torch.save(checkpoint, target_dir / "model.pth")
|
||||||
|
|
||||||
# Specify the files you want to copy
|
# Specify the files you want to copy
|
||||||
files_to_copy = ["vocab.json", "config.json", "speakers_xtts.pth", "mel_stats.pth"]
|
files_to_copy = ["vocab.json", "config.json", "speakers_xtts.pth", "mel_stats.pth", "dvae.pth",]
|
||||||
|
|
||||||
for file_name in files_to_copy:
|
for file_name in files_to_copy:
|
||||||
src_path = this_dir / base_path / base_model_path / file_name
|
src_path = this_dir / base_path / base_model_path / file_name
|
||||||
@@ -965,11 +955,6 @@ def compact_custom_model(xtts_checkpoint_copy, folder_path):
|
|||||||
# Create the target directory if it doesn't exist
|
# Create the target directory if it doesn't exist
|
||||||
target_dir.mkdir(parents=True, exist_ok=True)
|
target_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
# Extract and save the fine-tuned DVAE weights
|
|
||||||
dvae_state_dict = {key: value for key, value in checkpoint["model"].items() if "dvae" in key}
|
|
||||||
dvae_path = this_dir / "models" / folder_path / "dvae.pth"
|
|
||||||
torch.save(dvae_state_dict, dvae_path)
|
|
||||||
|
|
||||||
for key in list(checkpoint["model"].keys()):
|
for key in list(checkpoint["model"].keys()):
|
||||||
if "dvae" in key:
|
if "dvae" in key:
|
||||||
del checkpoint["model"][key]
|
del checkpoint["model"][key]
|
||||||
@@ -978,7 +963,7 @@ def compact_custom_model(xtts_checkpoint_copy, folder_path):
|
|||||||
torch.save(checkpoint, target_dir / "model.pth")
|
torch.save(checkpoint, target_dir / "model.pth")
|
||||||
|
|
||||||
# Specify the files you want to copy
|
# Specify the files you want to copy
|
||||||
files_to_copy = ["vocab.json", "config.json", "speakers_xtts.pth", "mel_stats.pth"]
|
files_to_copy = ["vocab.json", "config.json", "speakers_xtts.pth", "mel_stats.pth", "dvae.pth",]
|
||||||
|
|
||||||
for file_name in files_to_copy:
|
for file_name in files_to_copy:
|
||||||
src_path = this_dir / base_path / base_model_path / file_name
|
src_path = this_dir / base_path / base_model_path / file_name
|
||||||
@@ -1384,6 +1369,11 @@ if __name__ == "__main__":
|
|||||||
maximum=95, # Maximum value
|
maximum=95, # Maximum value
|
||||||
step=1, # Increment step
|
step=1, # Increment step
|
||||||
)
|
)
|
||||||
|
speaker_name_input = gr.Textbox(
|
||||||
|
label="The name of the speaker/person you are training",
|
||||||
|
value="personsname",
|
||||||
|
visible=True,
|
||||||
|
)
|
||||||
progress_data = gr.Label(
|
progress_data = gr.Label(
|
||||||
label="Progress:"
|
label="Progress:"
|
||||||
)
|
)
|
||||||
@@ -1395,14 +1385,15 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
prompt_compute_btn = gr.Button(value="Step 1 - Create dataset")
|
prompt_compute_btn = gr.Button(value="Step 1 - Create dataset")
|
||||||
|
|
||||||
def preprocess_dataset(language, whisper_model, out_path, eval_split_number, progress=gr.Progress(track_tqdm=True)):
|
def preprocess_dataset(language, whisper_model, out_path, eval_split_number, speaker_name_input, progress=gr.Progress(track_tqdm=True)):
|
||||||
clear_gpu_cache()
|
clear_gpu_cache()
|
||||||
test_for_audio_files = [file for file in os.listdir(audio_folder) if any(file.lower().endswith(ext) for ext in ['.wav', '.mp3', '.flac'])]
|
test_for_audio_files = [file for file in os.listdir(audio_folder) if any(file.lower().endswith(ext) for ext in ['.wav', '.mp3', '.flac'])]
|
||||||
if not test_for_audio_files:
|
if not test_for_audio_files:
|
||||||
return "I cannot find any mp3, wav or flac files in the folder called 'put-voice-samples-in-here'", "", ""
|
return "I cannot find any mp3, wav or flac files in the folder called 'put-voice-samples-in-here'", "", ""
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
train_meta, eval_meta, audio_total_size = format_audio_list(target_language=language, whisper_model=whisper_model, out_path=out_path, eval_split_number=eval_split_number, gradio_progress=progress)
|
|
||||||
|
train_meta, eval_meta, audio_total_size = format_audio_list(target_language=language, whisper_model=whisper_model, out_path=out_path, eval_split_number=eval_split_number, speaker_name_input=speaker_name_input, gradio_progress=progress)
|
||||||
except:
|
except:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
error = traceback.format_exc()
|
error = traceback.format_exc()
|
||||||
@@ -1817,6 +1808,7 @@ if __name__ == "__main__":
|
|||||||
whisper_model,
|
whisper_model,
|
||||||
out_path,
|
out_path,
|
||||||
eval_split_number,
|
eval_split_number,
|
||||||
|
speaker_name_input,
|
||||||
],
|
],
|
||||||
outputs=[
|
outputs=[
|
||||||
progress_data,
|
progress_data,
|
||||||
|
|||||||
Reference in new issue
Block a user