Spaces:
Sleeping
Sleeping
File size: 1,735 Bytes
3c1ea6f 209a96c 3c1ea6f 209a96c 3c1ea6f 209a96c 3c1ea6f 209a96c 3c1ea6f 209a96c 3c1ea6f 209a96c 3c1ea6f 209a96c 3c1ea6f 209a96c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
import gradio as gr
from transformers import pipeline
import requests
import os
# Inicializa el pipeline de transcripción sin usar el parámetro `sampling_rate` fertert
asr_pipeline = pipeline("automatic-speech-recognition", model="facebook/wav2vec2-large-960h")
# Función para descargar el archivo si se provee una URL
def download_from_url(url):
local_filename = url.split('/')[-1]
with requests.get(url, stream=True) as r:
r.raise_for_status()
with open(local_filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=8192):
f.write(chunk)
return local_filename
# Función para procesar el archivo o la URL
def transcribe_audio(file_or_url):
try:
# Si el input es una URL, descargamos el archivo
if isinstance(file_or_url, str) and file_or_url.startswith("http"):
file_path = download_from_url(file_or_url)
else:
file_path = file_or_url
# Realiza la transcripción
result = asr_pipeline(file_path)
transcription = result['text']
return transcription
except Exception as e:
return f"Error durante la transcripción: {str(e)}"
# Interfaz de Gradio
iface = gr.Interface(
fn=transcribe_audio,
inputs=[
gr.Audio(source="upload", type="filepath", label="Sube un archivo de audio o vídeo (mp3, mp4, wav, etc.)"),
gr.Textbox(lines=1, placeholder="O pega un enlace de audio/vídeo aquí", label="URL de audio o vídeo (opcional)")
],
outputs="text",
title="Transcriptor de Audio & Vídeo",
description="Sube un archivo de audio o vídeo o proporciona un enlace. Los archivos pueden estar en español o inglés."
)
iface.launch()
|