Inial commited on
Commit
7cc66cf
·
verified ·
1 Parent(s): d6c031c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -15
app.py CHANGED
@@ -2,33 +2,45 @@ import gradio as gr
2
  import torch
3
  from transformers import AutoProcessor, VitsModel
4
 
 
5
  model_id = "facebook/mms-tts-nko"
6
- device = "cuda" if torch.cuda.is_available() else "cpu"
7
-
8
  processor = AutoProcessor.from_pretrained(model_id)
9
- model = VitsModel.from_pretrained(model_id).to(device)
 
 
 
 
10
 
11
  def tts_nko(text):
12
  try:
13
- inputs = processor(text=text, return_tensors="pt")
14
- input_ids = inputs["input_ids"].to(device).long() # ⚠️ ép kiểu Long
15
- attention_mask = inputs["attention_mask"].to(device)
16
 
 
17
  with torch.no_grad():
18
- output = model(input_ids=input_ids, attention_mask=attention_mask)
 
 
 
 
 
 
 
 
 
 
19
 
20
- waveform = output.waveform[0].cpu().numpy()
21
- return f"✅ Giọng N’Ko (nko)", (waveform, 16000)
22
  except Exception as e:
23
  return f"❌ Lỗi: {str(e)}", None
24
 
 
25
  with gr.Blocks() as demo:
26
- gr.Markdown("# 🔊 NKo TTS (ߒߞߏ /nko/)")
27
- text_input = gr.Textbox(label="Nhập văn bản NKo ߞߏ...)")
28
- output_text = gr.Textbox(label="Trạng thái")
29
- output_audio = gr.Audio(label="Phát âm", type="numpy")
30
- btn = gr.Button("Phát")
31
 
32
- btn.click(fn=tts_nko, inputs=[text_input], outputs=[output_text, output_audio])
33
 
34
  demo.launch()
 
2
  import torch
3
  from transformers import AutoProcessor, VitsModel
4
 
5
+ # Load mô hình và processor
6
  model_id = "facebook/mms-tts-nko"
 
 
7
  processor = AutoProcessor.from_pretrained(model_id)
8
+ model = VitsModel.from_pretrained(model_id)
9
+
10
+ # Đặt thiết bị phù hợp
11
+ device = "cuda" if torch.cuda.is_available() else "cpu"
12
+ model.to(device)
13
 
14
  def tts_nko(text):
15
  try:
16
+ # Xử văn bản bằng processor
17
+ inputs = processor(text=text, return_tensors="pt").to(device)
 
18
 
19
+ # Dự đoán bằng mô hình
20
  with torch.no_grad():
21
+ outputs = model(**inputs)
22
+
23
+ # Xuất audio
24
+ waveform = outputs.audio[0].cpu().numpy()
25
+
26
+ # Lưu file WAV
27
+ from scipy.io.wavfile import write
28
+ output_path = "nko_output.wav"
29
+ write(output_path, rate=model.config.sampling_rate, data=waveform)
30
+
31
+ return "✅ Tạo thành công giọng N'Ko", output_path
32
 
 
 
33
  except Exception as e:
34
  return f"❌ Lỗi: {str(e)}", None
35
 
36
+ # Giao diện Gradio
37
  with gr.Blocks() as demo:
38
+ gr.Markdown("## 🗣️ N'Ko TTS (ߒߞߏ)")
39
+ txt = gr.Textbox(label="Nhập văn bản bằng chữ N'Ko", value="ߞߊߟߊ ߛߌ߬")
40
+ out_txt = gr.Textbox(label="Trạng thái")
41
+ out_audio = gr.Audio(label="Phát âm", type="filepath")
42
+ btn = gr.Button("Chuyển văn bản thành giọng nói")
43
 
44
+ btn.click(fn=tts_nko, inputs=[txt], outputs=[out_txt, out_audio])
45
 
46
  demo.launch()