Spaces:
Build error
Build error
| 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.") | |