GAS17 commited on
Commit
9951904
verified
1 Parent(s): b4c7d5a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -2
app.py CHANGED
@@ -4,28 +4,43 @@ import replicate
4
  from pydub import AudioSegment
5
  from fpdf import FPDF
6
 
 
 
 
 
 
 
 
7
  def dividir_audio(audio_path, segment_duration_ms=5*60*1000):
8
  audio = AudioSegment.from_file(audio_path)
9
  segments = []
 
10
  for i in range(0, len(audio), segment_duration_ms):
11
  segment = audio[i:i + segment_duration_ms]
12
  segment_path = f"segment_{i // (60 * 1000)}.wav"
13
  segment.export(segment_path, format="wav")
14
  segments.append(segment_path)
 
15
  return segments
16
 
 
17
  def crear_pdf(transcripcion, progress=gr.Progress()):
18
  pdf = FPDF()
19
  pdf.add_page()
 
20
  pdf.set_font("Arial", size=12)
21
  lines = transcripcion.split("\n")
 
 
22
  for i, line in enumerate(lines):
23
  pdf.multi_cell(0, 10, line)
24
- progress(i / len(lines))
 
25
  pdf_path = "/mnt/data/transcripcion_audio.pdf"
26
  pdf.output(pdf_path)
27
  return pdf_path
28
 
 
29
  def transcribe_audio_y_pdf(audio_file, progress=gr.Progress()):
30
  audio = AudioSegment.from_file(audio_file)
31
  if len(audio) > 5 * 60 * 1000:
@@ -48,6 +63,15 @@ def transcribe_audio_y_pdf(audio_file, progress=gr.Progress()):
48
  pdf_path = crear_pdf(full_transcription, progress)
49
  yield full_transcription, pdf_path
50
 
 
 
 
 
 
 
 
 
 
51
  with gr.Blocks() as demo:
52
  gr.Markdown("# Transcriptor con Progreso y Scroll")
53
  audio_input = gr.Audio(type="filepath", label="Sube tu archivo de audio")
@@ -57,7 +81,7 @@ with gr.Blocks() as demo:
57
  transcribe_button = gr.Button("Transcribir y Crear PDF")
58
  transcribe_button.click(fn=transcribe_audio_y_pdf, inputs=audio_input, outputs=[output_text, output_pdf])
59
 
60
- # JavaScript para auto-scroll
61
  demo.load(js=scroll_jscode)
62
 
63
  demo.launch()
 
4
  from pydub import AudioSegment
5
  from fpdf import FPDF
6
 
7
+ # Aseg煤rate de que REPLICATE_API_TOKEN est茅 configurado en las variables de entorno
8
+ replicate_token = os.getenv("REPLICATE_API_TOKEN")
9
+
10
+ if not replicate_token:
11
+ raise ValueError("No se ha encontrado el token de API de Replicate.")
12
+
13
+ # Funci贸n para dividir el archivo de audio en segmentos de duraci贸n definida (en milisegundos)
14
  def dividir_audio(audio_path, segment_duration_ms=5*60*1000):
15
  audio = AudioSegment.from_file(audio_path)
16
  segments = []
17
+
18
  for i in range(0, len(audio), segment_duration_ms):
19
  segment = audio[i:i + segment_duration_ms]
20
  segment_path = f"segment_{i // (60 * 1000)}.wav"
21
  segment.export(segment_path, format="wav")
22
  segments.append(segment_path)
23
+
24
  return segments
25
 
26
+ # Funci贸n para crear el PDF con barra de progreso
27
  def crear_pdf(transcripcion, progress=gr.Progress()):
28
  pdf = FPDF()
29
  pdf.add_page()
30
+
31
  pdf.set_font("Arial", size=12)
32
  lines = transcripcion.split("\n")
33
+
34
+ # Agregar la transcripci贸n al PDF l铆nea por l铆nea con progreso
35
  for i, line in enumerate(lines):
36
  pdf.multi_cell(0, 10, line)
37
+ progress(i / len(lines)) # Actualiza la barra de progreso
38
+
39
  pdf_path = "/mnt/data/transcripcion_audio.pdf"
40
  pdf.output(pdf_path)
41
  return pdf_path
42
 
43
+ # Funci贸n para transcribir los segmentos de audio y generar el PDF
44
  def transcribe_audio_y_pdf(audio_file, progress=gr.Progress()):
45
  audio = AudioSegment.from_file(audio_file)
46
  if len(audio) > 5 * 60 * 1000:
 
63
  pdf_path = crear_pdf(full_transcription, progress)
64
  yield full_transcription, pdf_path
65
 
66
+ # Definir el script JavaScript para auto-scroll
67
+ scroll_jscode = """
68
+ function autoScroll() {
69
+ var textbox = document.getElementById('transcription');
70
+ textbox.scrollTop = textbox.scrollHeight;
71
+ }
72
+ """
73
+
74
+ # Crea la interfaz de Gradio con scroll autom谩tico en el campo de texto
75
  with gr.Blocks() as demo:
76
  gr.Markdown("# Transcriptor con Progreso y Scroll")
77
  audio_input = gr.Audio(type="filepath", label="Sube tu archivo de audio")
 
81
  transcribe_button = gr.Button("Transcribir y Crear PDF")
82
  transcribe_button.click(fn=transcribe_audio_y_pdf, inputs=audio_input, outputs=[output_text, output_pdf])
83
 
84
+ # JavaScript para auto-scroll al final de la caja de texto
85
  demo.load(js=scroll_jscode)
86
 
87
  demo.launch()