Spaces:
Runtime error
Runtime error
| import os | |
| import gradio as gr | |
| import random | |
| os.system("pip install kantts -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html") | |
| os.system("pip install numpy==1.22.0") | |
| from modelscope.models.audio.tts import SambertHifigan | |
| from modelscope.pipelines import pipeline | |
| from modelscope.utils.constant import Tasks | |
| # model_0 | |
| model_dir = os.path.abspath("./pretrain_work_dir") | |
| custom_infer_abs = { | |
| 'voice_name': | |
| 'F7', | |
| 'am_ckpt': | |
| os.path.join(model_dir, 'tmp_am', 'ckpt'), | |
| 'am_config': | |
| os.path.join(model_dir, 'tmp_am', 'config.yaml'), | |
| 'voc_ckpt': | |
| os.path.join(model_dir, 'orig_model', 'basemodel_16k', 'hifigan', 'ckpt'), | |
| 'voc_config': | |
| os.path.join(model_dir, 'orig_model', 'basemodel_16k', 'hifigan', | |
| 'config.yaml'), | |
| 'audio_config': | |
| os.path.join(model_dir, 'data', 'audio_config.yaml'), | |
| 'se_file': | |
| os.path.join(model_dir, 'data', 'se', 'se.npy') | |
| } | |
| kwargs = {'custom_ckpt': custom_infer_abs} | |
| model_id = SambertHifigan(os.path.join(model_dir, "orig_model"), **kwargs) | |
| inference = pipeline(task=Tasks.text_to_speech, model=model_id) | |
| # model_1 | |
| model_dir1 = os.path.abspath("./jay/pretrain_work_dir") | |
| custom_infer_abs1 = { | |
| 'voice_name': | |
| 'F7', | |
| 'am_ckpt': | |
| os.path.join(model_dir1, 'tmp_am', 'ckpt'), | |
| 'am_config': | |
| os.path.join(model_dir1, 'tmp_am', 'config.yaml'), | |
| 'voc_ckpt': | |
| os.path.join(model_dir1, 'orig_model', 'basemodel_16k', 'hifigan', 'ckpt'), | |
| 'voc_config': | |
| os.path.join(model_dir1, 'orig_model', 'basemodel_16k', 'hifigan', | |
| 'config.yaml'), | |
| 'audio_config': | |
| os.path.join(model_dir1, 'data', 'audio_config.yaml'), | |
| 'se_file': | |
| os.path.join(model_dir1, 'data', 'se', 'se.npy') | |
| } | |
| kwargs1 = {'custom_ckpt': custom_infer_abs1} | |
| model_id1 = SambertHifigan(os.path.join(model_dir1, "orig_model"), **kwargs1) | |
| inference1 = pipeline(task=Tasks.text_to_speech, model=model_id1) | |
| # functions | |
| def infer(text): | |
| output = inference(input=text) | |
| filename = str(random.randint(1, 1000000000000)) | |
| with open(filename + "myfile.wav", mode='bx') as f: | |
| f.write(output["output_wav"]) | |
| return filename + "myfile.wav" | |
| def infer1(text): | |
| output = inference1(input=text) | |
| filename = str(random.randint(1, 1000000000000)) | |
| with open(filename + "file.wav", mode='bx') as f: | |
| f.write(output["output_wav"]) | |
| return filename + "file.wav" | |
| app = gr.Blocks() | |
| with app: | |
| gr.HTML("<center>" | |
| "<h1>🥳🎶🎡 - KanTTS中文声音克隆</h1>" | |
| "</center>") | |
| gr.Markdown("## <center>🌊 - 更多精彩应用,敬请关注[滔滔AI](http://www.talktalkai.com);滔滔AI,为爱滔滔!💕</center>") | |
| with gr.Row(): | |
| with gr.Column(): | |
| inp = gr.Textbox(lines=5, label="请填写您想要转换的中文文本") | |
| with gr.Row(): | |
| btn = gr.Button("使用AI娜娜的声音") | |
| btn1 = gr.Button("使用AI小杰的声音") | |
| out = gr.Audio(label="为您生成的专属音频", type="filepath") | |
| btn.click(fn=infer, inputs=[inp], outputs=[out]) | |
| btn.click(fn=infer1, inputs=[inp], outputs=[out]) | |
| app.launch(show_error=True) |