mirror of
https://github.com/rany2/edge-tts
synced 2024-11-22 01:45:02 +00:00
8d12741673
This typo does not cause any errors but it is better to fix it. Signed-off-by: rany2 <rany2@riseup.net>
43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
#!/usr/bin/env python3
|
|
|
|
"""
|
|
This example shows the sync version of stream function which also
|
|
works when run from a sync function called itself from an async function.
|
|
"""
|
|
|
|
import asyncio
|
|
|
|
import edge_tts
|
|
|
|
TEXT = "Hello World!"
|
|
VOICE = "en-GB-SoniaNeural"
|
|
OUTPUT_FILE = "test.mp3"
|
|
|
|
|
|
def main() -> None:
|
|
"""Main function to process audio and metadata synchronously."""
|
|
communicate = edge_tts.Communicate(TEXT, VOICE)
|
|
with open(OUTPUT_FILE, "wb") as file:
|
|
for chunk in communicate.stream_sync():
|
|
if chunk["type"] == "audio":
|
|
file.write(chunk["data"])
|
|
elif chunk["type"] == "WordBoundary":
|
|
print(f"WordBoundary: {chunk}")
|
|
|
|
|
|
async def amain() -> None:
|
|
"""
|
|
Async main function to call sync main function
|
|
|
|
This demonstrates that this works even when called from an async function.
|
|
"""
|
|
main()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
loop = asyncio.get_event_loop_policy().get_event_loop()
|
|
try:
|
|
loop.run_until_complete(amain())
|
|
finally:
|
|
loop.close()
|