Peca33's picture
borrado de la actualizacion de traduccion
c6699ff verified
raw
history blame
2.02 kB
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-small y bark
transcribir = pipeline("automatic-speech-recognition", model="openai/whisper-small")
bark = pipeline("text-to-speech", model="suno/bark")
# Funci贸n para transcribir el audio y traducir el audio de entrada
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 y traducci贸n con Whisper
transcripcion_traducida = transcribir(audio_file)["text"]
# Paso 2: Generaci贸n de audio con Bark
audio_sintetizado = generar_audio(transcripcion_traducida)
return transcripcion_traducida, audio_sintetizado
# 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()