Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add sync versions of stream and save methods #215

Merged
merged 2 commits into from
Apr 21, 2024
Merged

Conversation

lzieniew
Copy link
Contributor

This pull request should solve the issue: #194
The implementation is a bit more complicated than the simplest asyncio.run() of the save and stream methods.
That's because I've wanted to use this synchronous interface in my Fastapi app, and simple asyncio.run() would give me errors that the event loop is alread running. That's because Fastapi is itself async, and I would run synchronous function inside async fastapi handler, and then from this synchronous function I wanted to call edge-tts generation. I've reproduced similar scenario in two example files: examples/sync_audio_generation_in_async_context.py and examples/sync_audio_stream_in_async_context.py.
I've roughly checked the performance of my solution and from what I've saw there should be no visible performance hit when using ThreadPoolExecutor instead of just asyncio.run().

@lzieniew lzieniew force-pushed the master branch 2 times, most recently from 8704a73 to 1899609 Compare April 21, 2024 09:34
In order to provide synchronous interface to the library
@rany2 rany2 merged commit 6355b32 into rany2:master Apr 21, 2024
2 checks passed
@rany2
Copy link
Owner

rany2 commented Apr 21, 2024

Thank you for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants