CongBang's picture
Upload 86 files
051f5c6 verified
import gradio as gr
import subprocess
import os
from datetime import datetime
def run_infer_cli(ref_audio, ref_text, gen_text):
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
output_dir = "gradio_output"
output_path = f"{output_dir}/gen_{timestamp}.wav"
os.makedirs(output_dir, exist_ok=True)
cmd = [
"python", "src/f5_tts/infer/infer_cli.py",
"--model", "F5TTS_Base",
"--ref_audio", ref_audio,
"--ref_text", ref_text,
"--gen_text", gen_text,
"--speed", "1.0",
"--vocoder_name", "vocos",
"--vocab_file", "data/viVoice/vocab.txt",
"--ckpt_file", "ckpts/viVoice/model_last.pt",
"--output_dir", output_dir,
"--output_file", f"gen_{timestamp}.wav"
]
try:
subprocess.run(cmd, check=True)
return output_path
except subprocess.CalledProcessError as e:
return f"Lỗi khi chạy infer_cli.py: {e}"
with gr.Blocks() as demo:
gr.Markdown("## 🔉 Tạo giọng nói bằng F5-TTS (dùng infer_cli.py)")
ref_audio = gr.Audio(label="📁 Giọng tham chiếu (.wav)", type="filepath")
ref_text = gr.Textbox(label="📝 Văn bản tham chiếu", lines=2)
gen_text = gr.Textbox(label="📄 Văn bản cần sinh", lines=3)
output_audio = gr.Audio(label="🎧 Kết quả", type="filepath")
run_btn = gr.Button("🚀 Sinh giọng")
run_btn.click(run_infer_cli, inputs=[ref_audio, ref_text, gen_text], outputs=output_audio)
demo.launch()