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