Spaces:
Running
Running
File size: 1,323 Bytes
4832b3b |
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 |
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"},
]
|