Spaces:
Running
Running
| 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"}, | |
| ] | |