happy0708/minnan_test
0
1import gradio as gr2import torch3from transformers import AutoTokenizer, VitsModel4 5 6MODEL_NAME = "facebook/mms-tts-nan"7 8print("Loading model...")9 10tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)11 12model = VitsModel.from_pretrained(MODEL_NAME)13model.eval()14 15 16def tts(text):17 18 text = text.strip()19 20 if not text:21 return None22 23 inputs = tokenizer(24 text,25 return_tensors="pt"26 )27 28 with torch.inference_mode():29 output = model(**inputs)30 31 waveform = output.waveform.squeeze().numpy()32 33 return (34 model.config.sampling_rate,35 waveform36 )37 38# -----------------------------39# Gradio UI40# -----------------------------41demo = gr.Interface(42 fn=tts,43 inputs=gr.Textbox(44 label="輸入文字",45 placeholder="請輸入閩南語文字"46 ),47 outputs=gr.Audio(48 label="生成語音",49 type="numpy"50 ),51 title="Taiwanese TTS",52 description="facebook/mms-tts-nan"53)54 55demo.queue()56 57demo.launch()