add streaming_tts.py example

This commit is contained in:
rany2 2023-01-05 01:29:55 +02:00
parent 39f0441aba
commit 8a2f37d964

34
examples/streaming_tts.py Normal file
View File

@ -0,0 +1,34 @@
#!/usr/bin/env python3
"""
Streaming TTS 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_tts_with_subtitles.py shows how to use the
WordBoundary events to create subtitles using SubMaker.
"""
import asyncio
import edge_tts
async def main() -> None:
TEXT = "Hello World!"
VOICE = "en-GB-SoniaNeural"
OUTPUT_FILE = "test.mp3"
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__":
asyncio.get_event_loop().run_until_complete(main())