Remsky commited on
Commit
4574599
·
1 Parent(s): 678b137

Refactor voice selection logic to use updated model initialization in version change handler

Browse files
Files changed (1) hide show
  1. app.py +9 -3
app.py CHANGED
@@ -37,8 +37,12 @@ def initialize_model(version="v1.0.0"):
37
  if not voices:
38
  raise gr.Error("No voices found. Please check the voices directory.")
39
 
 
 
 
 
 
40
  default_voice = 'af_sky' if 'af_sky' in voices else voices[0] if voices else None
41
-
42
  return gr.update(choices=voices, value=default_voice)
43
  except Exception as e:
44
  raise gr.Error(f"Failed to initialize model: {str(e)}")
@@ -425,10 +429,12 @@ with gr.Blocks(title="Kokoro TTS Demo", css=styling) as demo:
425
 
426
  def on_version_change(version):
427
  voices = initialize_model(version)
428
- # Disable multiselect for v1.0.0 since it doesn't support voice mixing yet
429
  if version == "v1.0.0":
430
  return gr.update(choices=voices.choices, value=voices.value, multiselect=False)
431
- return gr.update(choices=voices.choices, value=voices.value, multiselect=True)
 
 
432
 
433
  version_dropdown.change(
434
  fn=on_version_change,
 
37
  if not voices:
38
  raise gr.Error("No voices found. Please check the voices directory.")
39
 
40
+ # For v0.19, return raw list of voices
41
+ if version == "v0.19":
42
+ return voices
43
+
44
+ # For v1.0.0, return gr.update object
45
  default_voice = 'af_sky' if 'af_sky' in voices else voices[0] if voices else None
 
46
  return gr.update(choices=voices, value=default_voice)
47
  except Exception as e:
48
  raise gr.Error(f"Failed to initialize model: {str(e)}")
 
429
 
430
  def on_version_change(version):
431
  voices = initialize_model(version)
432
+ # For v1.0.0, voices is already a gr.update() object
433
  if version == "v1.0.0":
434
  return gr.update(choices=voices.choices, value=voices.value, multiselect=False)
435
+ # For v0.19, voices is a list of voice names
436
+ default_voice = 'af_sky' if 'af_sky' in voices else voices[0] if voices else None
437
+ return gr.update(choices=voices, value=default_voice, multiselect=True)
438
 
439
  version_dropdown.change(
440
  fn=on_version_change,