|
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() |
|
|