walidadebayo commited on
Commit
16311fa
Β·
1 Parent(s): fa758b4

Add subtitle generation option and guidance for SRT file creation in text_to_speech

Browse files
Files changed (1) hide show
  1. app.py +21 -2
app.py CHANGED
@@ -223,7 +223,8 @@ async def text_to_speech(text, voice, rate, pitch, generate_subtitles=False, upl
223
  else:
224
  # Use the existing approach for regular text
225
  communicate = edge_tts.Communicate(text, voice_short_name, rate=rate_str, pitch=pitch_str)
226
-
 
227
  if generate_subtitles:
228
  with tempfile.NamedTemporaryFile(delete=False, suffix=".srt") as srt_file:
229
  subtitle_path = srt_file.name
@@ -336,7 +337,6 @@ async def create_demo():
336
  with gr.Column(scale=3):
337
  text_input = gr.Textbox(label="Input Text", lines=5, value="Hello, how are you doing!")
338
  file_input = gr.File(label="Or upload a TXT/SRT file", file_types=[".txt", ".srt"])
339
-
340
  with gr.Column(scale=2):
341
  voice_dropdown = gr.Dropdown(
342
  choices=[""] + list(voices.keys()),
@@ -354,6 +354,25 @@ async def create_demo():
354
  minimum=-20, maximum=20, value=0, label="Pitch Adjustment (Hz)", step=1
355
  )
356
  subtitle_checkbox = gr.Checkbox(label="Generate Subtitles (.srt)", value=False)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
357
 
358
  submit_btn = gr.Button("Convert to Speech", variant="primary")
359
  warning_md = gr.Markdown(visible=False)
 
223
  else:
224
  # Use the existing approach for regular text
225
  communicate = edge_tts.Communicate(text, voice_short_name, rate=rate_str, pitch=pitch_str)
226
+ if not generate_subtitles:
227
+ await communicate.save(audio_path)
228
  if generate_subtitles:
229
  with tempfile.NamedTemporaryFile(delete=False, suffix=".srt") as srt_file:
230
  subtitle_path = srt_file.name
 
337
  with gr.Column(scale=3):
338
  text_input = gr.Textbox(label="Input Text", lines=5, value="Hello, how are you doing!")
339
  file_input = gr.File(label="Or upload a TXT/SRT file", file_types=[".txt", ".srt"])
 
340
  with gr.Column(scale=2):
341
  voice_dropdown = gr.Dropdown(
342
  choices=[""] + list(voices.keys()),
 
354
  minimum=-20, maximum=20, value=0, label="Pitch Adjustment (Hz)", step=1
355
  )
356
  subtitle_checkbox = gr.Checkbox(label="Generate Subtitles (.srt)", value=False)
357
+ gr.Markdown("""
358
+ **πŸ“ Subtitle Timing Tip:**
359
+
360
+ When creating SRT files for continuous speech, avoid exact matching timestamps between segments.
361
+
362
+ **For smoother speech flow:**
363
+ ```
364
+ 1
365
+ 00:00:00,112 --> 00:00:01,647
366
+ Hello how are you doing
367
+
368
+ 2
369
+ 00:00:01,617 --> 00:00:02,000
370
+ I'm fine
371
+ ```
372
+
373
+ βœ… Create a small overlap (20-30ms) between segments to prevent pauses
374
+ ❌ Avoid exact matching timestamps (where end time = next start time) except you want a pause
375
+ """)
376
 
377
  submit_btn = gr.Button("Convert to Speech", variant="primary")
378
  warning_md = gr.Markdown(visible=False)