Blakus commited on
Commit
5923399
·
verified ·
1 Parent(s): de99eb0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -74
app.py CHANGED
@@ -81,7 +81,6 @@ def predict(prompt, language, reference_audio):
81
 
82
  output_path = "pedro_labattaglia_TTS.wav"
83
  # Guardar el audio directamente desde el output del modelo
84
- import scipy.io.wavfile as wavfile
85
  wavfile.write(output_path, config.audio["output_sample_rate"], out["wav"])
86
 
87
  audio_length = len(out["wav"]) / config.audio["output_sample_rate"] # duración del audio en segundos
@@ -96,79 +95,21 @@ def predict(prompt, language, reference_audio):
96
  print(f"Error detallado: {str(e)}")
97
  return None, f"Error: {str(e)}"
98
 
99
- # Configuración de la interfaz de Gradio
100
- supported_languages = ["es", "en"]
101
- reference_audios = [
102
- "serio.wav",
103
- "neutral.wav",
104
- "alegre.wav",
105
- "neutral_ingles.wav"
106
- ]
107
-
108
- theme = gr.themes.Soft(
109
- primary_hue="blue",
110
- secondary_hue="gray",
111
- ).set(
112
- body_background_fill='*neutral_100',
113
- body_background_fill_dark='*neutral_900',
114
  )
115
 
116
- description = """
117
- # Sintetizador de voz de Pedro Labattaglia 🎙️
118
-
119
- Sintetizador de voz con la voz del locutor argentino Pedro Labattaglia.
120
-
121
- ## Cómo usarlo:
122
- - Elija el idioma (Español o Inglés)
123
- - Elija un audio de referencia de la lista
124
- - Escriba el texto que desea sintetizar
125
- - Presione generar voz
126
- """
127
-
128
- # Interfaz de Gradio
129
- with gr.Blocks(theme=theme) as demo:
130
- gr.Markdown(description)
131
-
132
- # Fila para centrar la imagen
133
- with gr.Row():
134
- with gr.Column(equal_height=True): # Esto centra la imagen en la fila
135
- gr.Image(
136
- "https://www.labattaglia.com.ar/images/about_me_pic2.jpg",
137
- label="",
138
- show_label=False,
139
- container=False, # Esto permite que la imagen se ajuste al contenedor
140
- elem_id="image-container" # Asigna un ID CSS para agregar estilos personalizados
141
- )
142
-
143
- # Fila para seleccionar idioma, referencia y generar voz
144
- with gr.Row():
145
- with gr.Column(scale=2):
146
- language_selector = gr.Dropdown(label="Idioma", choices=supported_languages)
147
- reference_audio = gr.Dropdown(label="Audio de referencia", choices=reference_audios)
148
- input_text = gr.Textbox(label="Texto a sintetizar", placeholder="Escribe aquí el texto que quieres convertir a voz...")
149
- generate_button = gr.Button("Generar voz", variant="primary")
150
-
151
- with gr.Column(scale=1):
152
- generated_audio = gr.Audio(label="Audio generado", interactive=False)
153
- metrics_output = gr.Textbox(label="Métricas", value="Tiempo de generación: -- segundos\nFactor de tiempo real: --")
154
-
155
- # Configuración del botón para generar voz
156
- generate_button.click(
157
- predict,
158
- inputs=[input_text, language_selector, reference_audio],
159
- outputs=[generated_audio, metrics_output]
160
- )
161
-
162
- # Estilos CSS personalizados
163
- demo.css = """
164
- #image-container img {
165
- display: block;
166
- margin-left: auto;
167
- margin-right: auto;
168
- max-width: 256px; /* Ancho máximo de 256px */
169
- height: auto; /* Mantener la relación de aspecto */
170
- }
171
- """
172
-
173
  if __name__ == "__main__":
174
- demo.launch(share=True)
 
81
 
82
  output_path = "pedro_labattaglia_TTS.wav"
83
  # Guardar el audio directamente desde el output del modelo
 
84
  wavfile.write(output_path, config.audio["output_sample_rate"], out["wav"])
85
 
86
  audio_length = len(out["wav"]) / config.audio["output_sample_rate"] # duración del audio en segundos
 
95
  print(f"Error detallado: {str(e)}")
96
  return None, f"Error: {str(e)}"
97
 
98
+ # Interfaz de Gradio para el backend
99
+ iface = gr.Interface(
100
+ fn=predict,
101
+ inputs=[
102
+ gr.Textbox(label="Texto a sintetizar"),
103
+ gr.Dropdown(label="Idioma", choices=["es", "en"]),
104
+ gr.Dropdown(label="Audio de referencia", choices=["serio.wav", "neutral.wav", "alegre.wav", "neutral_ingles.wav"])
105
+ ],
106
+ outputs=[
107
+ gr.Audio(label="Audio generado"),
108
+ gr.Textbox(label="Métricas")
109
+ ],
110
+ title="Backend API para Sintetizador de Voz de Pedro Labattaglia",
111
+ description="API para generar voz sintética usando el modelo de Pedro Labattaglia"
 
112
  )
113
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114
  if __name__ == "__main__":
115
+ iface.launch()