Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
#
|
56 |
-
temperature =
|
57 |
-
length_penalty =
|
58 |
-
repetition_penalty =
|
59 |
-
top_k =
|
60 |
-
top_p =
|
|
|
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 |
|