awacke1 commited on
Commit
ea1b6ee
·
verified ·
1 Parent(s): 83a9d2e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -3
app.py CHANGED
@@ -357,6 +357,7 @@ def clean_for_speech(text: str) -> str:
357
  text = re.sub(r"\s+", " ", text).strip()
358
  return text
359
 
 
360
  async def edge_tts_generate_audio(text, voice="en-US-AriaNeural", rate=0, pitch=0, file_format="mp3"):
361
  """Async TTS generation with edge-tts library."""
362
  text = clean_for_speech(text)
@@ -364,15 +365,43 @@ async def edge_tts_generate_audio(text, voice="en-US-AriaNeural", rate=0, pitch=
364
  return None
365
  rate_str = f"{rate:+d}%"
366
  pitch_str = f"{pitch:+d}Hz"
367
- communicate = edge_tts.Communicate(text, voice, rate=rate_str, pitch=pitch_str)
368
  out_fn = generate_filename(text, text, file_type=file_format)
369
  await communicate.save(out_fn)
370
  return out_fn
371
 
372
  def speak_with_edge_tts(text, voice="en-US-AriaNeural", rate=0, pitch=0, file_format="mp3"):
373
  """Wrapper for the async TTS generate call."""
374
- # asyncio.run(edge_tts_generate_audio(text, voice, rate, pitch, file_format))
375
- await edge_tts_generate_audio(text, voice, rate, pitch, file_format)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
376
  return
377
 
378
  def play_and_download_audio(file_path, file_type="mp3"):
 
357
  text = re.sub(r"\s+", " ", text).strip()
358
  return text
359
 
360
+
361
  async def edge_tts_generate_audio(text, voice="en-US-AriaNeural", rate=0, pitch=0, file_format="mp3"):
362
  """Async TTS generation with edge-tts library."""
363
  text = clean_for_speech(text)
 
365
  return None
366
  rate_str = f"{rate:+d}%"
367
  pitch_str = f"{pitch:+d}Hz"
368
+ communicate = Communicate(text, voice, rate=rate_str, pitch=pitch_str)
369
  out_fn = generate_filename(text, text, file_type=file_format)
370
  await communicate.save(out_fn)
371
  return out_fn
372
 
373
  def speak_with_edge_tts(text, voice="en-US-AriaNeural", rate=0, pitch=0, file_format="mp3"):
374
  """Wrapper for the async TTS generate call."""
375
+ try:
376
+ loop = asyncio.get_event_loop()
377
+ except RuntimeError:
378
+ # No event loop running, create one
379
+ loop = asyncio.new_event_loop()
380
+ asyncio.set_event_loop(loop)
381
+
382
+ try:
383
+ result = loop.run_until_complete(edge_tts_generate_audio(text, voice, rate, pitch, file_format))
384
+ return result
385
+ finally:
386
+ if not asyncio.get_event_loop().is_running():
387
+ loop.close()
388
+
389
+
390
+ async def edge_tts_generate_audio0(text, voice="en-US-AriaNeural", rate=0, pitch=0, file_format="mp3"):
391
+ """Async TTS generation with edge-tts library."""
392
+ text = clean_for_speech(text)
393
+ if not text.strip():
394
+ return None
395
+ rate_str = f"{rate:+d}%"
396
+ pitch_str = f"{pitch:+d}Hz"
397
+ communicate = edge_tts.Communicate(text, voice, rate=rate_str, pitch=pitch_str)
398
+ out_fn = generate_filename(text, text, file_type=file_format)
399
+ await communicate.save(out_fn)
400
+ return out_fn
401
+
402
+ def speak_with_edge_tts0(text, voice="en-US-AriaNeural", rate=0, pitch=0, file_format="mp3"):
403
+ """Wrapper for the async TTS generate call."""
404
+ asyncio.run(edge_tts_generate_audio(text, voice, rate, pitch, file_format))
405
  return
406
 
407
  def play_and_download_audio(file_path, file_type="mp3"):