Blane187 commited on
Commit
d80aa52
·
verified ·
1 Parent(s): 160757f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -28
app.py CHANGED
@@ -1,37 +1,36 @@
1
  import gradio as gr
2
  import edge_tts
3
- import asyncio
4
 
5
- # Define the available voices
6
- voices = {
7
- 'indonesian': {'male': 'id-ID-AriNeural', 'female': 'id-ID-GadisNeural'},
8
- 'korean': {'male': 'ko-KR-InJoonNeural', 'female': 'ko-KR-SunHiNeural'},
9
- 'japanese': {'male': 'ja-JP-KeitaNeural', 'female': 'ja-JP-AoiNeural'},
10
- 'malaysian': {'male': 'my-MM-NiNiNeural', 'female': 'my-MM-ThiHaNeural'}
11
- }
12
-
13
- # TTS function using edge_tts
14
- async def tts(text, language, gender):
15
- voice = voices[language][gender]
16
- communicate = edge_tts.Communicate(text, voice)
17
- await communicate.save("output.mp3")
18
  return "output.mp3"
19
 
20
- def generate_tts(text, language, gender):
21
- loop = asyncio.new_event_loop()
22
- asyncio.set_event_loop(loop)
23
- return loop.run_until_complete(tts(text, language, gender))
 
 
 
 
 
 
 
 
 
 
 
 
24
 
25
- # Gradio interface
26
  with gr.Blocks() as demo:
27
  gr.Markdown("# Blane TTS")
28
- text_input = gr.Textbox(label="Input Text", lines=4, placeholder="Enter text here...")
29
- language = gr.Dropdown(label="Language", choices=list(voices.keys()), value="id")
30
- gender = gr.Dropdown(label="Gender", choices=["male", "female"], value="female")
31
- generate_button = gr.Button("Generate TTS")
32
- audio_output = gr.Audio(label="Generated Speech")
33
-
34
- generate_button.click(generate_tts, inputs=[text_input, language, gender], outputs=audio_output)
35
-
36
 
37
- demo.launch()
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  import edge_tts
 
3
 
4
+ async def tts(text, language):
5
+ tts = edge_tts.Communicate(text, voice=language)
6
+ await tts.save("output.mp3")
 
 
 
 
 
 
 
 
 
 
7
  return "output.mp3"
8
 
9
+ def generate_tts(text, language):
10
+ import asyncio
11
+ return asyncio.run(tts(text, language))
12
+
13
+ # Language options with appropriate Edge TTS voices
14
+ languages = {
15
+ "English": "en-US-JennyNeural",
16
+ "Indonesian": "id-ID-GadisNeural",
17
+ "Korean": "ko-KR-SunHiNeural",
18
+ "Japanese": "ja-JP-NanamiNeural",
19
+ "Malaysian": "ms-MY-OsmanNeural"
20
+ }
21
+
22
+ def get_audio_file(text, lang_key):
23
+ language = languages[lang_key]
24
+ return generate_tts(text, language)
25
 
 
26
  with gr.Blocks() as demo:
27
  gr.Markdown("# Blane TTS")
 
 
 
 
 
 
 
 
28
 
29
+ text_input = gr.Textbox(label="Input Text")
30
+ language_input = gr.Dropdown(list(languages.keys()), label="Select Language")
31
+ tts_button = gr.Button("Generate TTS")
32
+ audio_output = gr.Audio(label="Generated Audio")
33
+
34
+ tts_button.click(get_audio_file, inputs=[text_input, language_input], outputs=audio_output)
35
+
36
+ demo.launch()