Spaces:
Sleeping
Sleeping
"""Proyecto 2: Modelos de IA | |
Traducci贸n de audio en espa帽ol a audio en ingl茅s | |
Modelo para la recogida del audio: https://huggingface.co/openai/whisper-large-v3-turbo | |
Modelo texto-audio: | |
""" | |
import whisper | |
from transformers import pipeline | |
import gradio as gr | |
import numpy as np | |
import torch | |
from bark import generate_audio | |
from scipy.io.wavfile import write | |
import tempfile | |
# Cargar el modelo Whisper-large-v3-turbo | |
transcribir = pipeline("automatic-speech-recognition", model="openai/whisper-small") | |
bark = pipeline("text-to-speech", model="suno/bark") | |
# Funci贸n para transcribir el audio | |
def transcribir_audio(audio): | |
# Usamos el pipeline de Hugging Face para la transcripci贸n | |
result = transcribir_audio(audio) | |
return result["text"] | |
#Funci贸n para generar el audio | |
def generar_audio(text): | |
#Generar audio con Bark | |
audio_array = generate_audio(text) | |
# Normalizar el array de audio (opcional si Bark ya devuelve datos normalizados) | |
audio_array = np.clip(audio_array, -1.0, 1.0) # Asegurar que los valores est茅n en [-1.0, 1.0] | |
# Crear un archivo temporal para almacenar el audio | |
temp_wav = tempfile.NamedTemporaryFile(delete=False, suffix=".wav") | |
write(temp_wav.name, 24000, (audio_array * 32767).astype(np.int16)) # Guardar el archivo como WAV | |
return temp_wav.name | |
def process_audio(audio_file): | |
# Paso 1: Transcripci贸n con Whisper | |
transcripcion = transcribir(audio_file)["text"] | |
# Paso 2: Generaci贸n de audio con Bark | |
audio_sintetizado = generar_audio(transcripcion) | |
return transcripcion, audio_sintetizado | |
"""# Crear la interfaz de usuario con Gradio | |
iface = gr.Interface( | |
fn=transcribir_audio, | |
inputs=gr.Audio(type="filepath"), # Permite cargar o grabar audio | |
outputs=gr.Audio(type="filepath", label="Tus palabras... pero en ingl茅s"), # Mostrar la transcripci贸n | |
title="Traductor de voz", | |
description="Carga o graba tu audio para traducirlo al ingl茅s." | |
) | |
# Iniciar la interfaz | |
iface.launch()""" | |
# Crear interfaz Gradio | |
with gr.Blocks() as demo: | |
gr.Markdown("### Transcripci贸n y S铆ntesis de Voz") | |
with gr.Row(): | |
input_audio = gr.Audio(label="Sube tu archivo de audio", type="filepath") | |
transcription_output = gr.Textbox(label="Texto transcrito") | |
output_audio = gr.Audio(label="Audio generado") | |
process_button = gr.Button("Procesar") | |
process_button.click(process_audio, inputs=input_audio, outputs=[transcription_output, output_audio]) | |
# Lanzar la app | |
demo.launch() | |