CoolFace
Apppublic

Anew511/extras

sourceHugging Facemitupdated 3y agoView on Hugging Face
0likes
tts_edge.py35 linesDownload Raw Back to root
1import io2import edge_tts3import asyncio4 5 6def get_voices():7    voices = asyncio.run(edge_tts.list_voices())8    return voices9 10 11async def _iterate_chunks(audio):12    async for chunk in audio.stream():13        if chunk["type"] == "audio":14            yield chunk["data"]15 16 17async def _async_generator_to_list(async_gen):18    result = []19    async for item in async_gen:20        result.append(item)21    return result22 23 24def generate_audio(text: str, voice: str, rate: int) -> bytes:25    sign = '+' if rate > 0 else '-'26    rate = f'{sign}{abs(rate)}%'27    audio = edge_tts.Communicate(text=text, voice=voice, rate=rate)28    chunks = asyncio.run(_async_generator_to_list(_iterate_chunks(audio)))29    buffer = io.BytesIO()30 31    for chunk in chunks:32        buffer.write(chunk)33 34    return buffer.getvalue()35