Inial commited on
Commit
12ec115
·
verified ·
1 Parent(s): 37aa8c8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +38 -11
app.py CHANGED
@@ -1,17 +1,44 @@
 
1
  from transformers import pipeline
 
 
2
 
3
- def main():
4
- # Dùng model Facebook MMS TTS đa ngôn ngữ
5
- model_name = "facebook/mms-tts-1b"
6
- tts = pipeline("text-to-speech", model=model_name)
7
 
8
- text = "Hello world, this is a multi-language TTS test."
9
- audio = tts(text)
 
 
 
 
 
 
10
 
11
- with open("output.wav", "wb") as f:
12
- f.write(audio["wav"])
 
 
 
 
 
 
 
 
 
13
 
14
- print("TTS thành công, file output.wav đã lưu")
 
 
 
 
 
 
 
 
 
15
 
16
- if __name__ == "__main__":
17
- main()
 
 
1
+ import gradio as gr
2
  from transformers import pipeline
3
+ from huggingface_hub import list_models
4
+ import langcodes
5
 
6
+ # Tự động lấy danh sách tất cả mô hình MMS-TTS
7
+ all_models = list_models(filter="facebook/mms-tts", full=True)
8
+ lang_map = {}
 
9
 
10
+ for model in all_models:
11
+ repo = model.modelId # ví dụ: facebook/mms-tts-kaz
12
+ code = repo.split("-")[-1]
13
+ try:
14
+ name = langcodes.Language.make(language=code).display_name().title()
15
+ except:
16
+ name = code.upper()
17
+ lang_map[name] = code
18
 
19
+ def tts_fn(text, language):
20
+ code = lang_map.get(language)
21
+ if not code:
22
+ return "Unsupported language", None
23
+ model_id = f"facebook/mms-tts-{code}"
24
+ try:
25
+ tts = pipeline("text-to-speech", model=model_id)
26
+ out = tts(text)
27
+ return f"✅ Model: {model_id}", (out["audio"], "output.wav")
28
+ except Exception as e:
29
+ return f"❌ Error: {str(e)}", None
30
 
31
+ with gr.Blocks() as demo:
32
+ gr.Markdown("# 🌐 MMS-TTS: 1100+ Languages (No ISO Code Needed)")
33
+ with gr.Row():
34
+ language = gr.Dropdown(choices=sorted(lang_map.keys()), label="Choose a language")
35
+ text = gr.Textbox(label="Enter your text", placeholder="Type something here...")
36
+ with gr.Row():
37
+ btn = gr.Button("Speak")
38
+ with gr.Row():
39
+ out_text = gr.Textbox(label="Info")
40
+ out_audio = gr.Audio(label="Audio", type="filepath")
41
 
42
+ btn.click(fn=tts_fn, inputs=[text, language], outputs=[out_text, out_audio])
43
+
44
+ demo.launch()