mirror of
https://github.com/rany2/edge-tts
synced 2024-11-22 19:16:48 +00:00
4f70613c03
* 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>
33 lines
706 B
Python
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()
|