rany2 / edge-tts

Use Microsoft Edge's online text-to-speech service from Python WITHOUT needing Microsoft Edge or Windows or an API key
https://pypi.org/project/edge-tts/
GNU General Public License v3.0
4.21k stars 444 forks source link

how to save the memory stream? #196

Closed lonngxiang closed 3 months ago

lonngxiang commented 4 months ago

not save to disk; then can read memory to play audio

rany2 commented 3 months ago
import asyncio

import edge_tts

TEXT = "Hello World!"
VOICE = "en-GB-SoniaNeural"

async def amain() -> None:
    communicate = edge_tts.Communicate(TEXT, VOICE)
    out = b""
    async for chunk in communicate.stream():
        if chunk["type"] == "audio":
            out += chunk["data"])
     .... do something with `out` variable (contains mp3 data) ...

if __name__ == "__main__":
    loop = asyncio.get_event_loop_policy().get_event_loop()
    try:
        loop.run_until_complete(amain())
    finally:
        loop.close()