Spaces:
Running
Running
Javitron4257
commited on
This is the version 1.0 of app.py
Browse files
app.py
ADDED
@@ -0,0 +1,31 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from transformers import AutoProcessor, BarkModel # Para poder seleccionar voz de hombre o de mujer y poder seleccionar el idioma
|
2 |
+
import gradio as gr
|
3 |
+
|
4 |
+
model_name="suno/bark-small"
|
5 |
+
|
6 |
+
processor = AutoProcessor.from_pretrained(model_name)
|
7 |
+
model = BarkModel.from_pretrained(model_name)
|
8 |
+
|
9 |
+
# Selecci贸n de voz - Valores: https://suno-ai.notion.site/8b8e8749ed514b0cbf3f699013548683
|
10 |
+
voice_preset = "v2/es_speaker_0"
|
11 |
+
|
12 |
+
def tts(frase):
|
13 |
+
# Obtenemos el procesador
|
14 |
+
inputs = processor(frase, voice_preset=voice_preset) # la frase de entrada se procesa usando la voz seleccionada
|
15 |
+
|
16 |
+
# Realiza la inferencia a partir de procesador y el modelo
|
17 |
+
audio_array = model.generate(**inputs, pad_token_id=100) # El modelo genera el audio a partir de los inputs procesados. Pad_token es el relleno que sirve para cuando trabajamos con secuencias de texto de diferentes longitudes y transformarlas para que todas tengan la misma longitud y poder procesarlas en lotes. Pad_token_id=100 especifica el identificador del token de relleno
|
18 |
+
audio_array = audio_array.cpu().numpy().squeeze() # El array del audio se castea a un array de numpy
|
19 |
+
|
20 |
+
sample_rate = model.generation_config.sample_rate # Obtenemos la tasa de muestreo
|
21 |
+
|
22 |
+
return sample_rate,audio_array
|
23 |
+
|
24 |
+
demo = gr.Interface(
|
25 |
+
tts,
|
26 |
+
inputs=gr.Text(label="Teclea el texto a pronunciar"), # Entrada campo de texto
|
27 |
+
outputs=gr.Audio(label="audio generado"), # Salida audio
|
28 |
+
title="De texto a voz",
|
29 |
+
)
|
30 |
+
|
31 |
+
demo.launch()
|