Diarization / app.py
Merlintxu's picture
Update app.py
174a8ef verified
raw
history blame
1.38 kB
# C贸digo para diarizaci贸n de audio
import os
from pyannote.audio import Pipeline
import gradio as gr
# Cargamos el pipeline preentrenado para diarizaci贸n
try:
pipeline = Pipeline.from_pretrained("pyannote/speaker-diarization")
except Exception as e:
pipeline = None
print(f"Error cargando el pipeline: {e}")
# Funci贸n para realizar la diarizaci贸n de un archivo de audio
def diarize_audio(file_path):
if pipeline is None:
return "Error: El pipeline no se pudo cargar. Verifica las dependencias."
# Realizar la diarizaci贸n del audio
diarization = pipeline(file_path)
# Crear un resultado legible con los segmentos de cada hablante
result = ""
for turn, _, speaker in diarization.itertracks(yield_label=True):
start_time = turn.start
end_time = turn.end
result += f"Speaker {speaker} from {start_time:.1f}s to {end_time:.1f}s\n"
return result
# Interfaz de Gradio
def diarization_interface(file):
return diarize_audio(file.name)
audio_input = gr.Audio(type="file", label="Sube tu archivo de audio")
text_output = gr.Textbox(label="Resultados de la Diarizaci贸n")
gr.Interface(fn=diarization_interface, inputs=audio_input, outputs=text_output, title="Diarizaci贸n de Audio", description="Sube un archivo de audio para obtener los segmentos de los diferentes hablantes.").launch()