|
import gradio as gr |
|
import hashlib |
|
import tempfile |
|
from TTS.utils.manage import ModelManager |
|
from TTS.utils.synthesizer import Synthesizer |
|
def fx(x:str): |
|
hash=hashlib.md5() |
|
hash.update(x.encode(encoding='utf-8')) |
|
return hash.hexdigest() |
|
|
|
manager = ModelManager() |
|
model_path, config_path, model_item = manager.download_model("tts_models/zh-CN/baker/tacotron2-DDC-GST") |
|
synthesizer = Synthesizer( |
|
model_path, config_path, None, None, None, |
|
) |
|
|
|
|
|
def inference(text: str): |
|
wavs = synthesizer.tts(text) |
|
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp: |
|
synthesizer.save_wav(wavs, fp) |
|
return fp.name |
|
|
|
demo=gr.Blocks() |
|
with demo: |
|
with gr.Column(): |
|
text_input=gr.Textbox(placeholder='请输入测试字符串',label="请输入需要MD5加密的测试内容") |
|
text_output=gr.Textbox(label="输出",visible=False) |
|
text_input.submit(fn=lambda visible: gr.update(visible=True), inputs=text_input, outputs=text_output) |
|
bb_button=gr.Button("运行") |
|
bb_button.click(fx, inputs=text_input, outputs=text_output,api_name='md5') |
|
with gr.Column(): |
|
gr.Markdown("# TTS文本字符串转语音合成训练") |
|
TTS_input=gr.Textbox(label="输入文本",default="你好吗?我很好。") |
|
TTS_button=gr.Button("合成") |
|
TTS_button.click(inference, inputs=TTS_input, outputs=gr.Audio(label="输出合成结果"),api_name='tts') |
|
demo.launch() |
|
|