ai-girlfriend / voice.py
jeevzz's picture
Upload 5 files
4832b3b verified
raw
history blame
1.32 kB
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"},
]