GAS17 commited on
Commit
5c66e9e
verified
1 Parent(s): b6453cf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -12
app.py CHANGED
@@ -26,25 +26,27 @@ def dividir_audio(audio_path, segment_duration_ms=5*60*1000):
26
 
27
  return segments
28
 
29
- # Funci贸n para crear el PDF
30
- def crear_pdf(transcripcion):
31
  pdf = FPDF()
32
  pdf.add_page()
33
 
34
  pdf.set_font("Arial", size=12)
35
-
36
- # Agregar la transcripci贸n al PDF l铆nea por l铆nea
37
- for line in transcripcion.split("\n"):
 
38
  pdf.multi_cell(0, 10, line)
39
-
40
- # Guardar el archivo PDF en la carpeta actual
 
41
  pdf_path = "/mnt/data/transcripcion_audio.pdf"
42
  pdf.output(pdf_path)
43
 
44
  return pdf_path
45
 
46
  # Funci贸n para transcribir los segmentos de audio y generar el PDF
47
- def transcribe_audio_y_pdf(audio_file):
48
  # Cargar el archivo de audio completo
49
  audio = AudioSegment.from_file(audio_file)
50
  audio_duration_minutes = len(audio) / (1000 * 60) # Duraci贸n en minutos
@@ -85,24 +87,33 @@ def transcribe_audio_y_pdf(audio_file):
85
  # Combina todas las transcripciones en una sola cadena
86
  full_transcription = "\n".join(all_transcriptions)
87
 
88
- # Crear PDF y devolver la ruta del archivo
89
- pdf_path = crear_pdf(full_transcription)
90
  yield full_transcription, pdf_path
91
 
92
  # Crea la interfaz de Gradio con scroll autom谩tico en el campo de texto
93
  with gr.Blocks() as demo:
94
- gr.Markdown("# Transcriptor de Audio a Texto (con actualizaciones progresivas y PDF)")
95
 
96
  with gr.Row():
97
  audio_input = gr.Audio(type="filepath", label="Sube tu archivo de audio")
98
  transcribe_button = gr.Button("Transcribir y Crear PDF")
99
 
100
  # Caja de texto con scroll para ver la transcripci贸n progresivamente
101
- output_text = gr.Textbox(label="Transcripci贸n (se muestra de a poco)", lines=20, interactive=False)
102
  output_pdf = gr.File(label="Descarga el PDF")
103
 
104
  # Bot贸n de transcripci贸n y conexi贸n con las funciones
105
  transcribe_button.click(fn=transcribe_audio_y_pdf, inputs=audio_input, outputs=[output_text, output_pdf])
106
 
 
 
 
 
 
 
 
 
 
107
  # Ejecuta la aplicaci贸n
108
  demo.launch()
 
26
 
27
  return segments
28
 
29
+ # Funci贸n para crear el PDF con barra de progreso
30
+ def crear_pdf(transcripcion, progress=gr.Progress()):
31
  pdf = FPDF()
32
  pdf.add_page()
33
 
34
  pdf.set_font("Arial", size=12)
35
+ lines = transcripcion.split("\n")
36
+
37
+ # Agregar la transcripci贸n al PDF l铆nea por l铆nea con progreso
38
+ for i, line in enumerate(lines):
39
  pdf.multi_cell(0, 10, line)
40
+ progress(i / len(lines)) # Actualiza la barra de progreso
41
+
42
+ # Guardar el archivo PDF
43
  pdf_path = "/mnt/data/transcripcion_audio.pdf"
44
  pdf.output(pdf_path)
45
 
46
  return pdf_path
47
 
48
  # Funci贸n para transcribir los segmentos de audio y generar el PDF
49
+ def transcribe_audio_y_pdf(audio_file, progress=gr.Progress()):
50
  # Cargar el archivo de audio completo
51
  audio = AudioSegment.from_file(audio_file)
52
  audio_duration_minutes = len(audio) / (1000 * 60) # Duraci贸n en minutos
 
87
  # Combina todas las transcripciones en una sola cadena
88
  full_transcription = "\n".join(all_transcriptions)
89
 
90
+ # Crear PDF con progreso y devolver la ruta del archivo
91
+ pdf_path = crear_pdf(full_transcription, progress)
92
  yield full_transcription, pdf_path
93
 
94
  # Crea la interfaz de Gradio con scroll autom谩tico en el campo de texto
95
  with gr.Blocks() as demo:
96
+ gr.Markdown("# Transcriptor de Audio a Texto (con actualizaciones progresivas, scroll y PDF)")
97
 
98
  with gr.Row():
99
  audio_input = gr.Audio(type="filepath", label="Sube tu archivo de audio")
100
  transcribe_button = gr.Button("Transcribir y Crear PDF")
101
 
102
  # Caja de texto con scroll para ver la transcripci贸n progresivamente
103
+ output_text = gr.Textbox(label="Transcripci贸n (scroll autom谩tico y manual)", lines=20, interactive=True, elem_id="transcripcion")
104
  output_pdf = gr.File(label="Descarga el PDF")
105
 
106
  # Bot贸n de transcripci贸n y conexi贸n con las funciones
107
  transcribe_button.click(fn=transcribe_audio_y_pdf, inputs=audio_input, outputs=[output_text, output_pdf])
108
 
109
+ # JavaScript para hacer el scroll autom谩tico de la caja de texto
110
+ demo.load(js="""
111
+ function autoScroll() {
112
+ const textbox = document.getElementById('transcripcion');
113
+ textbox.scrollTop = textbox.scrollHeight;
114
+ }
115
+ document.addEventListener('gradio:output', autoScroll);
116
+ """)
117
+
118
  # Ejecuta la aplicaci贸n
119
  demo.launch()