Spaces:
Running
Running
File size: 888 Bytes
0925810 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import os
import typing as t
from dotenv import load_dotenv
from elevenlabs.client import AsyncElevenLabs, ElevenLabs
load_dotenv()
ELEVEN_CLIENT = ElevenLabs(api_key=os.getenv("11LABS_API_KEY"))
ELEVEN_CLIENT_ASYNC = AsyncElevenLabs(api_key=os.getenv("11LABS_API_KEY"))
def tts_stream(voice_id: str, text: str) -> t.Iterator[bytes]:
async_iter = ELEVEN_CLIENT.text_to_speech.convert(voice_id=voice_id, text=text)
for chunk in async_iter:
if chunk:
yield chunk
def tts(voice_id: str, text: str):
tts_iter = tts_stream(voice_id=voice_id, text=text)
combined = b"".join(tts_iter)
return combined
async def tts_astream(voice_id: str, text: str) -> t.AsyncIterator[bytes]:
async_iter = ELEVEN_CLIENT_ASYNC.text_to_speech.convert(voice_id=voice_id, text=text)
async for chunk in async_iter:
if chunk:
yield chunk
|