Spaces:
Paused
Paused
WIP
Browse files
app.py
CHANGED
@@ -45,8 +45,8 @@ def generate_srt(segments):
|
|
45 |
"""Generate SRT format subtitles from transcription segments."""
|
46 |
srt_content = []
|
47 |
for i, segment in enumerate(segments, 1):
|
48 |
-
start_time = format_time(segment["
|
49 |
-
end_time = format_time(segment["
|
50 |
text = segment.get("text", "").strip()
|
51 |
srt_content.append(f"{i}\n{start_time} --> {end_time}\n{text}\n\n")
|
52 |
return "".join(srt_content)
|
@@ -223,7 +223,7 @@ def check_api_health():
|
|
223 |
logger.error(f"Health check failed: {str(e)}")
|
224 |
raise gr.Error("Failed to connect to the API service. Please try again later.")
|
225 |
|
226 |
-
def transcribe_youtube(url, return_timestamps, generate_subs, chunk_length_s=
|
227 |
"""Transcribe audio from YouTube video using URL endpoint."""
|
228 |
logger.info(f"Starting YouTube transcription process for URL: {url}")
|
229 |
logger.info(f"Parameters - return_timestamps: {return_timestamps}, generate_subs: {generate_subs}, chunk_length_s: {chunk_length_s}, batch_size: {batch_size}")
|
@@ -300,7 +300,7 @@ def transcribe_youtube(url, return_timestamps, generate_subs, chunk_length_s=30,
|
|
300 |
logger.exception(f"Error in YouTube transcription: {str(e)}")
|
301 |
raise gr.Error(f"Failed to transcribe YouTube video: {str(e)}")
|
302 |
|
303 |
-
def transcribe(inputs, return_timestamps, generate_subs, chunk_length_s=
|
304 |
"""Transcribe audio input using Whisper API."""
|
305 |
logger.info(f"Starting transcription process for file: {inputs}")
|
306 |
logger.info(f"Parameters - return_timestamps: {return_timestamps}, generate_subs: {generate_subs}, chunk_length_s: {chunk_length_s}, batch_size: {batch_size}")
|
@@ -385,7 +385,7 @@ youtube_transcribe = gr.Interface(
|
|
385 |
gr.Checkbox(label="Include timestamps", value=True),
|
386 |
gr.Checkbox(label="Generate subtitles", value=True),
|
387 |
gr.Slider(minimum=5, maximum=30, value=15, step=5, label="Chunk Length (seconds)"),
|
388 |
-
gr.Slider(minimum=
|
389 |
],
|
390 |
outputs=[
|
391 |
gr.JSON(label="Transcription", open=True),
|
@@ -408,8 +408,8 @@ mf_transcribe = gr.Interface(
|
|
408 |
gr.Audio(sources="microphone", type="filepath"),
|
409 |
gr.Checkbox(label="Include timestamps", value=True),
|
410 |
gr.Checkbox(label="Generate subtitles", value=True),
|
411 |
-
gr.Slider(minimum=5, maximum=30, value=
|
412 |
-
gr.Slider(minimum=
|
413 |
],
|
414 |
outputs=[
|
415 |
gr.JSON(label="Transcription", open=True),
|
@@ -430,7 +430,7 @@ file_transcribe = gr.Interface(
|
|
430 |
gr.Checkbox(label="Include timestamps", value=True),
|
431 |
gr.Checkbox(label="Generate subtitles", value=True),
|
432 |
gr.Slider(minimum=5, maximum=30, value=15, step=5, label="Chunk Length (seconds)"),
|
433 |
-
gr.Slider(minimum=
|
434 |
],
|
435 |
outputs=[
|
436 |
gr.JSON(label="Transcription", open=True),
|
|
|
45 |
"""Generate SRT format subtitles from transcription segments."""
|
46 |
srt_content = []
|
47 |
for i, segment in enumerate(segments, 1):
|
48 |
+
start_time = format_time(segment["start_time"])
|
49 |
+
end_time = format_time(segment["end_time"])
|
50 |
text = segment.get("text", "").strip()
|
51 |
srt_content.append(f"{i}\n{start_time} --> {end_time}\n{text}\n\n")
|
52 |
return "".join(srt_content)
|
|
|
223 |
logger.error(f"Health check failed: {str(e)}")
|
224 |
raise gr.Error("Failed to connect to the API service. Please try again later.")
|
225 |
|
226 |
+
def transcribe_youtube(url, return_timestamps, generate_subs, chunk_length_s=15, batch_size=8):
|
227 |
"""Transcribe audio from YouTube video using URL endpoint."""
|
228 |
logger.info(f"Starting YouTube transcription process for URL: {url}")
|
229 |
logger.info(f"Parameters - return_timestamps: {return_timestamps}, generate_subs: {generate_subs}, chunk_length_s: {chunk_length_s}, batch_size: {batch_size}")
|
|
|
300 |
logger.exception(f"Error in YouTube transcription: {str(e)}")
|
301 |
raise gr.Error(f"Failed to transcribe YouTube video: {str(e)}")
|
302 |
|
303 |
+
def transcribe(inputs, return_timestamps, generate_subs, chunk_length_s=15, batch_size=8):
|
304 |
"""Transcribe audio input using Whisper API."""
|
305 |
logger.info(f"Starting transcription process for file: {inputs}")
|
306 |
logger.info(f"Parameters - return_timestamps: {return_timestamps}, generate_subs: {generate_subs}, chunk_length_s: {chunk_length_s}, batch_size: {batch_size}")
|
|
|
385 |
gr.Checkbox(label="Include timestamps", value=True),
|
386 |
gr.Checkbox(label="Generate subtitles", value=True),
|
387 |
gr.Slider(minimum=5, maximum=30, value=15, step=5, label="Chunk Length (seconds)"),
|
388 |
+
gr.Slider(minimum=8, maximum=64, value=8, step=8, label="Batch Size")
|
389 |
],
|
390 |
outputs=[
|
391 |
gr.JSON(label="Transcription", open=True),
|
|
|
408 |
gr.Audio(sources="microphone", type="filepath"),
|
409 |
gr.Checkbox(label="Include timestamps", value=True),
|
410 |
gr.Checkbox(label="Generate subtitles", value=True),
|
411 |
+
gr.Slider(minimum=5, maximum=30, value=15, step=5, label="Chunk Length (seconds)"),
|
412 |
+
gr.Slider(minimum=8, maximum=64, value=8, step=8, label="Batch Size")
|
413 |
],
|
414 |
outputs=[
|
415 |
gr.JSON(label="Transcription", open=True),
|
|
|
430 |
gr.Checkbox(label="Include timestamps", value=True),
|
431 |
gr.Checkbox(label="Generate subtitles", value=True),
|
432 |
gr.Slider(minimum=5, maximum=30, value=15, step=5, label="Chunk Length (seconds)"),
|
433 |
+
gr.Slider(minimum=8, maximum=64, value=8, step=8, label="Batch Size")
|
434 |
],
|
435 |
outputs=[
|
436 |
gr.JSON(label="Transcription", open=True),
|