import edge_tts import tempfile import os async def generate_audio(text: str, voice: str) -> str: communicate = edge_tts.Communicate(text, voice) # Create a temporary file # In production/spaces, we might want to manage this differently fd, path = tempfile.mkstemp(suffix=".mp3") os.close(fd) await communicate.save(path) return path def get_voices(): # Return a list of available voices (simplified) return [ {"name": "Ana (Female)", "id": "en-US-AnaNeural"}, {"name": "Andrew (Male)", "id": "en-US-AndrewMultilingualNeural"}, {"name": "Aria (Female)", "id": "en-US-AriaNeural"}, {"name": "Ava (Female)", "id": "en-US-AvaMultilingualNeural"}, {"name": "Brian (Male)", "id": "en-US-BrianMultilingualNeural"}, {"name": "Christopher (Male)", "id": "en-US-ChristopherNeural"}, {"name": "Emma (Female)", "id": "en-US-EmmaMultilingualNeural"}, {"name": "Eric (Male)", "id": "en-US-EricNeural"}, {"name": "Guy (Male)", "id": "en-US-GuyNeural"}, {"name": "Jenny (Female)", "id": "en-US-JennyNeural"}, {"name": "Michelle (Female)", "id": "en-US-MichelleNeural"}, {"name": "Roger (Male)", "id": "en-US-RogerNeural"}, {"name": "Steffan (Male)", "id": "en-US-SteffanNeural"}, ]