Inial commited on
Commit
4616768
·
verified ·
1 Parent(s): b0c9535

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -13
app.py CHANGED
@@ -2,25 +2,35 @@ 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
- # Tạo bản đồ tên ngôn ngữ (title case) → mã ISO
11
  for model in all_models:
12
- repo = model.modelId # ví dụ: facebook/mms-tts-kaz
13
- code = repo.split("-")[-1]
14
- try:
15
- name = langcodes.Language.make(language=code).display_name().title()
16
- except:
17
- name = code.upper()
18
- lang_map[name.title()] = code # Đảm bảo lưu tên ở dạng Title Case
 
 
 
 
 
 
 
 
 
19
 
20
  def tts_fn(text, language):
21
- # Normalize input language: bỏ khoảng trắng, viết lại dạng Title Case
22
- language_clean = language.strip().title()
23
- code = lang_map.get(language_clean)
24
  if not code:
25
  return f"❌ Unsupported language name: '{language}'", None
26
  model_id = f"facebook/mms-tts-{code}"
@@ -34,7 +44,7 @@ def tts_fn(text, language):
34
  with gr.Blocks() as demo:
35
  gr.Markdown("# 🌐 MMS-TTS: 1100+ Languages (No ISO Code Needed)")
36
  with gr.Row():
37
- language = gr.Textbox(label="Enter language name (e.g., Meadow Mari)")
38
  text = gr.Textbox(label="Enter your text", placeholder="Type something here...")
39
  with gr.Row():
40
  btn = gr.Button("Speak")
 
2
  from transformers import pipeline
3
  from huggingface_hub import list_models
4
  import langcodes
5
+ import re
6
 
7
+ # Lấy danh sách tất cả mô hình MMS-TTS
8
  all_models = list_models(filter="facebook/mms-tts", full=True)
9
+
10
  lang_map = {}
11
 
12
+ # Duyệt từng hình
13
  for model in all_models:
14
+ repo = model.modelId # ví dụ: facebook/mms-tts-eng
15
+ code = repo.split("-")[-1].lower()
16
+
17
+ # Tên ngôn ngữ từ metadata hoặc fallback
18
+ name = ""
19
+ if model.cardData and "language" in model.cardData:
20
+ name = model.cardData["language"]
21
+ else:
22
+ try:
23
+ name = langcodes.Language.make(language=code).display_name()
24
+ except:
25
+ name = code
26
+
27
+ # Chuẩn hóa tên ngôn ngữ (thường hóa + bỏ khoảng trắng thừa)
28
+ name_clean = re.sub(r"\s+", " ", name.strip().lower())
29
+ lang_map[name_clean] = code
30
 
31
  def tts_fn(text, language):
32
+ lang_input = re.sub(r"\s+", " ", language.strip().lower())
33
+ code = lang_map.get(lang_input)
 
34
  if not code:
35
  return f"❌ Unsupported language name: '{language}'", None
36
  model_id = f"facebook/mms-tts-{code}"
 
44
  with gr.Blocks() as demo:
45
  gr.Markdown("# 🌐 MMS-TTS: 1100+ Languages (No ISO Code Needed)")
46
  with gr.Row():
47
+ language = gr.Textbox(label="Enter language name (e.g., English, Meadow Mari)")
48
  text = gr.Textbox(label="Enter your text", placeholder="Type something here...")
49
  with gr.Row():
50
  btn = gr.Button("Speak")