Spaces:
Build error
Build error
File size: 2,590 Bytes
e539326 | 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 50 51 52 53 54 55 56 57 | import os
import streamlit as st
from utils_hf import download_youtube_audio, diarize_full_audio, process_transcripts, summarize_speaker_transcripts, transcribir_segmentos
st.title("Transcripci贸n y Diarizaci贸n de YouTube")
url = st.text_input("URL de YouTube:")
if st.button("Transcribir y Diarizar"):
if url:
progress_bar = st.progress(0)
with st.spinner("Descargando ..."):
try:
audio_path = download_youtube_audio(url, progress_bar)
if os.path.exists(audio_path):
st.success("Video descargado con 茅xito.")
else:
st.error(f"Error al descargar el video de YouTube:")
st.stop()
except Exception as e:
st.error(f"Error al procesar el video de YouTube: {e}")
st.stop()
with st.spinner("Realizando diarizaci贸n..."):
try:
diarization_segments, diarization_text, speakers = diarize_full_audio(audio_path)
if diarization_text:
st.text_area("Diarizaci贸n", diarization_text, height=200)
st.success(f"Diarizaci贸n completada. N煤mero de hablantes detectados: {len(speakers)}")
else:
st.error("No se pudo realizar la diarizaci贸n.")
except Exception as e:
st.error(f"Error al realizar la diarizaci贸n: {e}")
with st.spinner("Transcribiendo segmentos de audio..."):
try:
trancription_text = transcribir_segmentos(diarization_segments, audio_path)
st.success("Transcripci贸n completada.")
st.text_area("Diarizaci贸n y Transcripci贸n:", trancription_text)
st.success("Diarizaci贸n y transcripci贸n guardadas en diarization_transcription.txt")
except Exception as e:
st.error(f"Error al transcribir los segmentos de audio: {e}")
with st.spinner("Resumiendo hablantes..."):
try:
speaker_transcripts = process_transcripts(trancription_text, speakers)
summaries = summarize_speaker_transcripts(speaker_transcripts)
for speaker, summary in summaries.items():
st.text_area(f"Resumen del Hablante {speaker}", summary, height=200)
except Exception as e:
st.error(f"Error al resumir por hablante: {e}")
else:
st.warning("Por favor, ingresa una URL de YouTube.")
|