Helena commited on
Commit
18be831
1 Parent(s): 1f9b51b

Add application file

Browse files
Files changed (1) hide show
  1. app.py +80 -0
app.py ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Proyecto 2: Modelos de IA
2
+ Traducci贸n de audio en espa帽ol a audio en ingl茅s
3
+ Modelo para la recogida del audio: https://huggingface.co/openai/whisper-large-v3-turbo
4
+ Modelo texto-audio:
5
+ """
6
+
7
+ import whisper
8
+ from transformers import pipeline
9
+ import gradio as gr
10
+ import numpy as np
11
+ import torch
12
+ from bark import generate_audio
13
+ from scipy.io.wavfile import write
14
+ import tempfile
15
+
16
+
17
+
18
+
19
+ # Cargar el modelo Whisper-large-v3-turbo
20
+ transcribir = pipeline("automatic-speech-recognition", model="openai/whisper-small")
21
+ bark = pipeline("text-to-speech", model="suno/bark")
22
+
23
+ # Funci贸n para transcribir el audio
24
+ def transcribir_audio(audio):
25
+ # Usamos el pipeline de Hugging Face para la transcripci贸n
26
+ result = transcribir_audio(audio)
27
+ return result["text"]
28
+
29
+ #Funci贸n para generar el audio
30
+ def generar_audio(text):
31
+ #Generar audio con Bark
32
+ audio_array = generate_audio(text)
33
+
34
+ # Normalizar el array de audio (opcional si Bark ya devuelve datos normalizados)
35
+ audio_array = np.clip(audio_array, -1.0, 1.0) # Asegurar que los valores est茅n en [-1.0, 1.0]
36
+
37
+ # Crear un archivo temporal para almacenar el audio
38
+ temp_wav = tempfile.NamedTemporaryFile(delete=False, suffix=".wav")
39
+ write(temp_wav.name, 24000, (audio_array * 32767).astype(np.int16)) # Guardar el archivo como WAV
40
+
41
+ return temp_wav.name
42
+
43
+
44
+ def process_audio(audio_file):
45
+ # Paso 1: Transcripci贸n con Whisper
46
+ transcripcion = transcribir(audio_file)["text"]
47
+
48
+ # Paso 2: Generaci贸n de audio con Bark
49
+ audio_sintetizado = generar_audio(transcripcion)
50
+
51
+ return transcripcion, audio_sintetizado
52
+
53
+
54
+ """# Crear la interfaz de usuario con Gradio
55
+ iface = gr.Interface(
56
+ fn=transcribir_audio,
57
+ inputs=gr.Audio(type="filepath"), # Permite cargar o grabar audio
58
+ outputs=gr.Audio(type="filepath", label="Tus palabras... pero en ingl茅s"), # Mostrar la transcripci贸n
59
+ title="Traductor de voz",
60
+ description="Carga o graba tu audio para traducirlo al ingl茅s."
61
+ )
62
+
63
+ # Iniciar la interfaz
64
+ iface.launch()"""
65
+
66
+ # Crear interfaz Gradio
67
+ with gr.Blocks() as demo:
68
+ gr.Markdown("### Transcripci贸n y S铆ntesis de Voz")
69
+
70
+ with gr.Row():
71
+ input_audio = gr.Audio(label="Sube tu archivo de audio", type="filepath")
72
+ transcription_output = gr.Textbox(label="Texto transcrito")
73
+ output_audio = gr.Audio(label="Audio generado")
74
+
75
+ process_button = gr.Button("Procesar")
76
+ process_button.click(process_audio, inputs=input_audio, outputs=[transcription_output, output_audio])
77
+
78
+ # Lanzar la app
79
+ demo.launch()
80
+