| import gradio as gr |
| import edge_tts |
|
|
| async def tts(text, language): |
| tts = edge_tts.Communicate(text, voice=language) |
| await tts.save("output.mp3") |
| return "output.mp3" |
|
|
| def generate_tts(text, language): |
| import asyncio |
| return asyncio.run(tts(text, language)) |
|
|
| languages = { |
| "English": "en-US-JennyNeural", |
| "Indonesian": "id-ID-GadisNeural", |
| "Korean": "ko-KR-SunHiNeural", |
| "Japanese": "ja-JP-NanamiNeural", |
| "Malaysian": "ms-MY-OsmanNeural" |
| } |
|
|
| def get_audio_file(text, lang_key): |
| language = languages[lang_key] |
| return generate_tts(text, language) |
|
|
| with gr.Blocks(theme="Blane187/fuchsia") as demo: |
| gr.Markdown("# Blane TTS") |
| |
| text_input = gr.Textbox(label="Input Text", lines=4) |
| language_input = gr.Dropdown(list(languages.keys()), label="Select Language") |
| tts_button = gr.Button("Generate TTS") |
| audio_output = gr.Audio(label="Generated Audio") |
|
|
| tts_button.click(get_audio_file, inputs=[text_input, language_input], outputs=audio_output) |
|
|
| demo.launch() |
|
|