05chatgpt commited on
Commit
6f8e13e
·
verified ·
1 Parent(s): 913505b

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -0
app.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import torch
3
+ from TTS.api import TTS
4
+ import os
5
+
6
+ # Sử dụng GPU nếu có, nếu không thì dùng CPU
7
+ device = "cuda" if torch.cuda.is_available() else "cpu"
8
+
9
+ # Tải mô hình TTS một lần khi ứng dụng khởi động
10
+ print("Đang tải mô hình TTS...")
11
+ tts = TTS("thinhlpg/vixtts-demo").to(device)
12
+ print("Đã tải xong mô hình.")
13
+
14
+ def clone_voice(text, reference_audio):
15
+ if text and reference_audio:
16
+ # Lưu file âm thanh tham chiếu vào một đường dẫn tạm thời
17
+ reference_file_path = reference_audio
18
+
19
+ # Tạo giọng nói và lưu vào file output.wav
20
+ output_file_path = "output.wav"
21
+ tts.tts_to_file(
22
+ text=text,
23
+ speaker_wav=reference_file_path,
24
+ language="vi",
25
+ file_path=output_file_path
26
+ )
27
+ return output_file_path
28
+ return None
29
+
30
+ # Thiết kế giao diện Gradio
31
+ app = gr.Interface(
32
+ fn=clone_voice,
33
+ inputs=[
34
+ gr.Textbox(label="Văn bản cần chuyển đổi"),
35
+ gr.Audio(type="filepath", label="Tải lên tệp âm thanh mẫu (.wav)")
36
+ ],
37
+ outputs=gr.Audio(label="Giọng nói đã nhân bản"),
38
+ title="👩‍💻 Demo nhân bản giọng nói Tiếng Việt",
39
+ description="Nhập một đoạn văn bản và tải lên một file âm thanh mẫu (dưới 15 giây) để tạo ra giọng nói mới.",
40
+ examples=[
41
+ ["Xin chào, đây là một thử nghiệm về nhân bản giọng nói.", None],
42
+ ["Trí tuệ nhân tạo đang thay đổi thế giới của chúng ta.", None]
43
+ ]
44
+ )
45
+
46
+ # Khởi chạy ứng dụng
47
+ app.launch()