Blakus commited on
Commit
2974f61
1 Parent(s): 898b7f4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -11
app.py CHANGED
@@ -47,17 +47,18 @@ model.cuda()
47
 
48
  print("Modelo cargado en GPU")
49
 
50
- def predict(prompt, language, reference_audio):
51
  try:
52
  if len(prompt) < 2 or len(prompt) > 600:
53
  return None, "El texto debe tener entre 2 y 600 caracteres."
54
 
55
- # Obtener los parámetros de la configuración JSON
56
- temperature = config.model_args.get("temperature", 0.85)
57
- length_penalty = config.model_args.get("length_penalty", 1.0)
58
- repetition_penalty = config.model_args.get("repetition_penalty", 2.0)
59
- top_k = config.model_args.get("top_k", 50)
60
- top_p = config.model_args.get("top_p", 0.85)
 
61
 
62
  gpt_cond_latent, speaker_embedding = model.get_conditioning_latents(
63
  audio_path=reference_audio
@@ -74,7 +75,9 @@ def predict(prompt, language, reference_audio):
74
  length_penalty=length_penalty,
75
  repetition_penalty=repetition_penalty,
76
  top_k=top_k,
77
- top_p=top_p
 
 
78
  )
79
 
80
  inference_time = time.time() - start_time
@@ -119,6 +122,7 @@ Sintetizador de voz con la voz del locutor argentino Pedro Labattaglia.
119
  ## Cómo usarlo:
120
  - Elija el idioma (Español o Inglés)
121
  - Elija un audio de referencia de la lista
 
122
  - Escriba el texto que desea sintetizar
123
  - Presione generar voz
124
  """
@@ -138,11 +142,12 @@ with gr.Blocks(theme=theme) as demo:
138
  elem_id="image-container"
139
  )
140
 
141
- # Fila para seleccionar idioma, referencia y generar voz
142
  with gr.Row():
143
  with gr.Column(scale=2):
144
  language_selector = gr.Dropdown(label="Idioma", choices=supported_languages)
145
  reference_audio = gr.Dropdown(label="Audio de referencia", choices=reference_audios)
 
146
  input_text = gr.Textbox(label="Texto a sintetizar", placeholder="Escribe aquí el texto que quieres convertir a voz...")
147
  generate_button = gr.Button("Generar voz", variant="primary")
148
 
@@ -150,11 +155,10 @@ with gr.Blocks(theme=theme) as demo:
150
  generated_audio = gr.Audio(label="Audio generado", interactive=False)
151
  metrics_output = gr.Textbox(label="Métricas", value="Tiempo de generación: -- segundos\nFactor de tiempo real: --")
152
 
153
-
154
  # Configuración del botón para generar voz
155
  generate_button.click(
156
  predict,
157
- inputs=[input_text, language_selector, reference_audio],
158
  outputs=[generated_audio, metrics_output]
159
  )
160
 
 
47
 
48
  print("Modelo cargado en GPU")
49
 
50
+ def predict(prompt, language, reference_audio, speed):
51
  try:
52
  if len(prompt) < 2 or len(prompt) > 600:
53
  return None, "El texto debe tener entre 2 y 600 caracteres."
54
 
55
+ # Custom inference parameters for better voice likeness and stability
56
+ temperature = 0.65
57
+ length_penalty = 1.2
58
+ repetition_penalty = 2.2
59
+ top_k = 40
60
+ top_p = 0.75
61
+ enable_text_splitting = True
62
 
63
  gpt_cond_latent, speaker_embedding = model.get_conditioning_latents(
64
  audio_path=reference_audio
 
75
  length_penalty=length_penalty,
76
  repetition_penalty=repetition_penalty,
77
  top_k=top_k,
78
+ top_p=top_p,
79
+ speed=speed,
80
+ enable_text_splitting=enable_text_splitting
81
  )
82
 
83
  inference_time = time.time() - start_time
 
122
  ## Cómo usarlo:
123
  - Elija el idioma (Español o Inglés)
124
  - Elija un audio de referencia de la lista
125
+ - Ajuste la velocidad del habla si lo desea
126
  - Escriba el texto que desea sintetizar
127
  - Presione generar voz
128
  """
 
142
  elem_id="image-container"
143
  )
144
 
145
+ # Fila para seleccionar idioma, referencia, velocidad y generar voz
146
  with gr.Row():
147
  with gr.Column(scale=2):
148
  language_selector = gr.Dropdown(label="Idioma", choices=supported_languages)
149
  reference_audio = gr.Dropdown(label="Audio de referencia", choices=reference_audios)
150
+ speed_slider = gr.Slider(minimum=0.5, maximum=2.0, value=1.0, step=0.1, label="Velocidad del habla")
151
  input_text = gr.Textbox(label="Texto a sintetizar", placeholder="Escribe aquí el texto que quieres convertir a voz...")
152
  generate_button = gr.Button("Generar voz", variant="primary")
153
 
 
155
  generated_audio = gr.Audio(label="Audio generado", interactive=False)
156
  metrics_output = gr.Textbox(label="Métricas", value="Tiempo de generación: -- segundos\nFactor de tiempo real: --")
157
 
 
158
  # Configuración del botón para generar voz
159
  generate_button.click(
160
  predict,
161
+ inputs=[input_text, language_selector, reference_audio, speed_slider],
162
  outputs=[generated_audio, metrics_output]
163
  )
164