Alp commited on
Commit
9502afd
·
1 Parent(s): 3b33912

d vectors doesn't work

Browse files
Files changed (1) hide show
  1. app.py +23 -28
app.py CHANGED
@@ -67,44 +67,33 @@ def load_model(language):
67
  speakers_file = hf_hub_download(repo_id=model_repo, filename=speakers_filename)
68
  language_ids_file = hf_hub_download(repo_id=model_repo, filename=language_ids_filename)
69
 
70
- # Update ALL paths to point to the downloaded files - this is the key fix
 
 
 
 
 
 
 
71
  config["speakers_file"] = speakers_file
72
  config["language_ids_file"] = language_ids_file
73
  config["model_args"]["speakers_file"] = speakers_file
74
  config["model_args"]["language_ids_file"] = language_ids_file
75
 
76
- # THIS IS THE CRITICAL FIX - update d_vector_file paths
77
- if "d_vector_file" in config:
78
- if isinstance(config["d_vector_file"], list):
79
- config["d_vector_file"] = [speakers_file] # Point to the same downloaded speakers file
80
- else:
81
- config["d_vector_file"] = speakers_file
82
 
83
- if "model_args" in config and "d_vector_file" in config["model_args"]:
84
- if isinstance(config["model_args"]["d_vector_file"], list):
85
- config["model_args"]["d_vector_file"] = [speakers_file]
86
- else:
87
- config["model_args"]["d_vector_file"] = speakers_file
88
 
89
- # Also check for speaker_encoder paths that might reference local files
90
  if "model_args" in config:
91
  if "speaker_encoder_config_path" in config["model_args"]:
92
- # Try to download speaker_encoder config if it exists, otherwise remove the path
93
- try:
94
- se_config_filename = os.path.basename(config["model_args"]["speaker_encoder_config_path"])
95
- se_config_file = hf_hub_download(repo_id=model_repo, filename=se_config_filename)
96
- config["model_args"]["speaker_encoder_config_path"] = se_config_file
97
- except:
98
- # If it doesn't exist, remove the path to avoid errors
99
- config["model_args"]["speaker_encoder_config_path"] = ""
100
-
101
  if "speaker_encoder_model_path" in config["model_args"]:
102
- try:
103
- se_model_filename = os.path.basename(config["model_args"]["speaker_encoder_model_path"])
104
- se_model_file = hf_hub_download(repo_id=model_repo, filename=se_model_filename)
105
- config["model_args"]["speaker_encoder_model_path"] = se_model_file
106
- except:
107
- config["model_args"]["speaker_encoder_model_path"] = ""
108
 
109
  # Save the updated config to a temporary file
110
  import tempfile
@@ -112,6 +101,11 @@ def load_model(language):
112
  json.dump(config, temp_config, indent=2)
113
  temp_config.close()
114
 
 
 
 
 
 
115
  # Load TTS model with specific model and config paths
116
  loaded_models[language] = TTS(model_path=model_path,
117
  config_path=temp_config.name,
@@ -127,6 +121,7 @@ def load_model(language):
127
  return None
128
 
129
  return loaded_models[language]
 
130
  def update_speakers(language):
131
  """Update speaker dropdown based on selected language"""
132
  if language in MODELS:
 
67
  speakers_file = hf_hub_download(repo_id=model_repo, filename=speakers_filename)
68
  language_ids_file = hf_hub_download(repo_id=model_repo, filename=language_ids_filename)
69
 
70
+ # CRITICAL FIX: Remove problematic d_vector configurations
71
+ # Based on the error, the speakers.pth format is incompatible with d_vector loading
72
+ if "d_vector_file" in config:
73
+ del config["d_vector_file"]
74
+ if "model_args" in config and "d_vector_file" in config["model_args"]:
75
+ del config["model_args"]["d_vector_file"]
76
+
77
+ # Update the remaining paths to point to the downloaded files
78
  config["speakers_file"] = speakers_file
79
  config["language_ids_file"] = language_ids_file
80
  config["model_args"]["speakers_file"] = speakers_file
81
  config["model_args"]["language_ids_file"] = language_ids_file
82
 
83
+ # Set use_d_vector_file to False to avoid d_vector loading issues
84
+ config["use_d_vector_file"] = False
85
+ config["model_args"]["use_d_vector_file"] = False
 
 
 
86
 
87
+ # Ensure speaker embedding is enabled the correct way
88
+ config["use_speaker_embedding"] = True
89
+ config["model_args"]["use_speaker_embedding"] = True
 
 
90
 
91
+ # Remove speaker encoder paths that might cause issues
92
  if "model_args" in config:
93
  if "speaker_encoder_config_path" in config["model_args"]:
94
+ config["model_args"]["speaker_encoder_config_path"] = ""
 
 
 
 
 
 
 
 
95
  if "speaker_encoder_model_path" in config["model_args"]:
96
+ config["model_args"]["speaker_encoder_model_path"] = ""
 
 
 
 
 
97
 
98
  # Save the updated config to a temporary file
99
  import tempfile
 
101
  json.dump(config, temp_config, indent=2)
102
  temp_config.close()
103
 
104
+ print(f"Loading {language} model with config:")
105
+ print(f"- use_speaker_embedding: {config.get('use_speaker_embedding')}")
106
+ print(f"- use_d_vector_file: {config.get('use_d_vector_file')}")
107
+ print(f"- speakers_file: {config.get('speakers_file')}")
108
+
109
  # Load TTS model with specific model and config paths
110
  loaded_models[language] = TTS(model_path=model_path,
111
  config_path=temp_config.name,
 
121
  return None
122
 
123
  return loaded_models[language]
124
+
125
  def update_speakers(language):
126
  """Update speaker dropdown based on selected language"""
127
  if language in MODELS: