Javitron4257 commited on
Commit
204641d
verified
1 Parent(s): 0250b6d

This is the version 1.0 of the main file

Browse files
Files changed (1) hide show
  1. app.py +33 -0
app.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import pipeline
2
+ import numpy as np
3
+ import gradio as gr
4
+
5
+ transcriber = pipeline("automatic-speech-recognition", model="openai/whisper-base", device=-1) # Para generar el texto a aprtir del audio
6
+ tts = pipeline("text-to-speech", model="suno/bark-small", device=-1) # Para generar audio a partir del texto
7
+
8
+ def transcribe(audio):
9
+ sr, y = audio # Ahora se obtiene el sample rate y el array con el audio de nuevo_fragmento
10
+ # Pasamos el array de muestras a tipo NumPy de 32 bits porque el m茅todo pipeline espera que le pasemos un array
11
+ y = y.astype(np.float32)
12
+ y /= np.max(np.abs(y)) # Normalizamos el audio para evitar problemas de distorsi贸n o saturaci贸n. Para ello encontramos el valor m谩ximo del array "y" y dividimos todos los valores de "y" por ese valor para que est茅n en un rago entre -1 y 1
13
+
14
+ text_generated = transcriber({"sampling_rate": sr, "raw": y})["text"] # Generamos el texto a partir del audio
15
+ audio_generated = tts(text_generated) # Generamos el audio a partir del texto del paso anterior
16
+
17
+ audio_returned = audio_generated["sampling_rate"],audio_generated["audio"][0]
18
+
19
+ return [text_generated, audio_returned] # Devolvemos el texto y el audio generado
20
+
21
+
22
+ demo = gr.Interface(
23
+ transcribe,
24
+ inputs=gr.Audio(sources=["microphone"]),
25
+ outputs=[
26
+ gr.Text(label="texto generado"),
27
+ gr.Audio(label="audio generado")
28
+ ],
29
+ title="De audio a Whisper y TTS",
30
+ description="Transcribe el audio y luego sintetiza el texto en audio"
31
+ )
32
+
33
+ demo.launch()