edge-tts/examples/dynamic_voice_selection.py
RaSan 4f70613c03
Fix Waiting before exiting in #78 (#79)
* Fix Waiting before exiting

The eventloop is not closed and waits a second on every call (idk the reason)

* Refactor

---------

Co-authored-by: rany2 <rany2@riseup.net>
2023-04-27 00:38:47 +03:00

33 lines
706 B
Python

#!/usr/bin/env python3
"""
Example of dynamic voice selection using VoicesManager.
"""
import asyncio
import random
import edge_tts
from edge_tts import VoicesManager
TEXT = "Hoy es un buen día."
OUTPUT_FILE = "spanish.mp3"
async def _main() -> None:
voices = await VoicesManager.create()
voice = voices.find(Gender="Male", Language="es")
# Also supports Locales
# voice = voices.find(Gender="Female", Locale="es-AR")
communicate = edge_tts.Communicate(TEXT, random.choice(voice)["Name"])
await communicate.save(OUTPUT_FILE)
if __name__ == "__main__":
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(_main())
finally:
loop.close()