Files
edge-tts/examples/basic_audio_streaming.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

39 lines
957 B
Python

#!/usr/bin/env python3
"""
Basic audio streaming example.
This example shows how to stream the audio data from the TTS engine,
and how to get the WordBoundary events from the engine (which could
be ignored if not needed).
The example streaming_with_subtitles.py shows how to use the
WordBoundary events to create subtitles using SubMaker.
"""
import asyncio
import edge_tts
TEXT = "Hello World!"
VOICE = "en-GB-SoniaNeural"
OUTPUT_FILE = "test.mp3"
async def _main() -> None:
communicate = edge_tts.Communicate(TEXT, VOICE)
with open(OUTPUT_FILE, "wb") as file:
async for chunk in communicate.stream():
if chunk["type"] == "audio":
file.write(chunk["data"])
elif chunk["type"] == "WordBoundary":
print(f"WordBoundary: {chunk}")
if __name__ == "__main__":
loop = asyncio.get_event_loop()
try:
loop.run_until_complete(_main())
finally:
loop.close()