Files
edge-tts/examples/streaming_with_subtitles.py
Rany 144215496a Cleanup subtitle related code and make it easier to use SubMaker (#329)
Also don't output subtitles to STDERR by default.

Signed-off-by: rany <rany2@riseup.net>
2024-11-22 22:57:54 +02:00

37 lines
887 B
Python

#!/usr/bin/env python3
"""
Streaming TTS example with subtitles.
This example is similar to the example basic_audio_streaming.py, but it shows
WordBoundary events to create subtitles using SubMaker.
"""
import asyncio
import edge_tts
TEXT = "Hello World!"
VOICE = "en-GB-SoniaNeural"
OUTPUT_FILE = "test.mp3"
SRT_FILE = "test.srt"
async def amain() -> None:
"""Main function"""
communicate = edge_tts.Communicate(TEXT, VOICE)
submaker = edge_tts.SubMaker()
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":
submaker.feed(chunk)
with open(SRT_FILE, "w", encoding="utf-8") as file:
file.write(submaker.get_srt())
if __name__ == "__main__":
asyncio.run(amain())