Spaces:
Running
Running
Update GPT_SoVITS/app.py
Browse files- GPT_SoVITS/app.py +21 -13
GPT_SoVITS/app.py
CHANGED
@@ -682,9 +682,10 @@ def html_left(text, label='p'):
|
|
682 |
|
683 |
|
684 |
with gr.Blocks(title="GPT-SoVITS WebUI") as app:
|
685 |
-
gr.Markdown(
|
686 |
-
|
687 |
-
)
|
|
|
688 |
with gr.Group():
|
689 |
gr.Markdown(html_center(i18n("模型切换"),'h3'))
|
690 |
with gr.Row():
|
@@ -694,11 +695,11 @@ with gr.Blocks(title="GPT-SoVITS WebUI") as app:
|
|
694 |
refresh_button.click(fn=change_choices, inputs=[], outputs=[SoVITS_dropdown, GPT_dropdown])
|
695 |
gr.Markdown(html_center(i18n("*请上传并填写参考信息"),'h3'))
|
696 |
with gr.Row():
|
697 |
-
inp_ref = gr.Audio(label=i18n("请上传3~10
|
698 |
with gr.Column(scale=13):
|
699 |
ref_text_free = gr.Checkbox(label=i18n("开启无参考文本模式。不填参考文本亦相当于开启。"), value=False, interactive=True, show_label=True)
|
700 |
gr.Markdown(html_left(i18n("使用无参考文本模式时建议使用微调的GPT,听不清参考音频说的啥(不晓得写啥)可以开。<br>开启后无视填写的参考文本。")))
|
701 |
-
prompt_text = gr.Textbox(label=i18n("
|
702 |
prompt_language = gr.Dropdown(
|
703 |
label=i18n("参考音频的语种"), choices=list(dict_language.keys()), value=i18n("中文"), scale=14
|
704 |
)
|
@@ -706,10 +707,10 @@ with gr.Blocks(title="GPT-SoVITS WebUI") as app:
|
|
706 |
gr.Markdown(html_center(i18n("*请填写需要合成的目标文本和语种模式"),'h3'))
|
707 |
with gr.Row():
|
708 |
with gr.Column(scale=13):
|
709 |
-
text = gr.Textbox(label=i18n("
|
710 |
with gr.Column(scale=7):
|
711 |
text_language = gr.Dropdown(
|
712 |
-
label=i18n("需要合成的语种")+i18n("
|
713 |
)
|
714 |
how_to_cut = gr.Dropdown(
|
715 |
label=i18n("怎么切"),
|
@@ -720,17 +721,17 @@ with gr.Blocks(title="GPT-SoVITS WebUI") as app:
|
|
720 |
gr.Markdown(value=html_center(i18n("语速调整,高为更快")))
|
721 |
if_freeze=gr.Checkbox(label=i18n("是否直接对上次合成结果调整语速和音色。防止随机性。"), value=False, interactive=True,show_label=True, scale=1)
|
722 |
speed = gr.Slider(minimum=0.6,maximum=1.65,step=0.05,label=i18n("语速"),value=1,interactive=True, scale=1)
|
723 |
-
gr.Markdown(html_center(i18n("GPT采样参数(无参考文本时不要太低。不懂就用默认):")))
|
724 |
-
top_k = gr.Slider(minimum=1,maximum=100,step=1,label=i18n("top_k"),value=15,interactive=True, scale=1)
|
725 |
-
top_p = gr.Slider(minimum=0,maximum=1,step=0.05,label=i18n("top_p"),value=1,interactive=True, scale=1)
|
726 |
-
temperature = gr.Slider(minimum=0,maximum=1,step=0.05,label=i18n("temperature"),value=1,interactive=True, scale=1)
|
727 |
# with gr.Column():
|
728 |
# gr.Markdown(value=i18n("手工调整音素。当音素框不为空时使用手工音素输入推理,无视目标文本框。"))
|
729 |
# phoneme=gr.Textbox(label=i18n("音素框"), value="")
|
730 |
# get_phoneme_button = gr.Button(i18n("目标文本转音素"), variant="primary")
|
731 |
with gr.Row():
|
732 |
-
inference_button = gr.Button(i18n("
|
733 |
-
output = gr.Audio(label=i18n("
|
734 |
|
735 |
inference_button.click(
|
736 |
get_tts_wav,
|
@@ -740,6 +741,13 @@ with gr.Blocks(title="GPT-SoVITS WebUI") as app:
|
|
740 |
SoVITS_dropdown.change(change_sovits_weights, [SoVITS_dropdown,prompt_language,text_language], [prompt_language,text_language,prompt_text,prompt_language,text,text_language])
|
741 |
GPT_dropdown.change(change_gpt_weights, [GPT_dropdown], [])
|
742 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
743 |
# gr.Markdown(value=i18n("文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。"))
|
744 |
# with gr.Row():
|
745 |
# text_inp = gr.Textbox(label=i18n("需要合成的切分前文本"), value="")
|
|
|
682 |
|
683 |
|
684 |
with gr.Blocks(title="GPT-SoVITS WebUI") as app:
|
685 |
+
gr.Markdown("# <center>🌊💕🎶 第二代[GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS) 更大更强、完美复刻</center>")
|
686 |
+
gr.Markdown("## <center>🌟 只需1分钟音频,超拟人真实声音复刻,支持中日英韩粤语,最强开源模型!</center>")
|
687 |
+
gr.Markdown("### <center>🤗 更多精彩,尽在[滔滔AI](https://www.talktalkai.com/);滔滔AI,为爱滔滔!💕</center>")
|
688 |
+
|
689 |
with gr.Group():
|
690 |
gr.Markdown(html_center(i18n("模型切换"),'h3'))
|
691 |
with gr.Row():
|
|
|
695 |
refresh_button.click(fn=change_choices, inputs=[], outputs=[SoVITS_dropdown, GPT_dropdown])
|
696 |
gr.Markdown(html_center(i18n("*请上传并填写参考信息"),'h3'))
|
697 |
with gr.Row():
|
698 |
+
inp_ref = gr.Audio(label=i18n("请上传3~10秒的参考音频,超过会报错!"), type="filepath", scale=13)
|
699 |
with gr.Column(scale=13):
|
700 |
ref_text_free = gr.Checkbox(label=i18n("开启无参考文本模式。不填参考文本亦相当于开启。"), value=False, interactive=True, show_label=True)
|
701 |
gr.Markdown(html_left(i18n("使用无参考文本模式时建议使用微调的GPT,听不清参考音频说的啥(不晓得写啥)可以开。<br>开启后无视填写的参考文本。")))
|
702 |
+
prompt_text = gr.Textbox(label=i18n("参考音频对应的文本内容"), value="", lines=3, max_lines=3)
|
703 |
prompt_language = gr.Dropdown(
|
704 |
label=i18n("参考音频的语种"), choices=list(dict_language.keys()), value=i18n("中文"), scale=14
|
705 |
)
|
|
|
707 |
gr.Markdown(html_center(i18n("*请填写需要合成的目标文本和语种模式"),'h3'))
|
708 |
with gr.Row():
|
709 |
with gr.Column(scale=13):
|
710 |
+
text = gr.Textbox(label=i18n("请填写您想要合成的文本"), placeholder="想说却还没说的,还很多...", lines=6)
|
711 |
with gr.Column(scale=7):
|
712 |
text_language = gr.Dropdown(
|
713 |
+
label=i18n("需要合成的语种")+i18n("限制范围越小判别效果越好。"), choices=list(dict_language.keys()), value=i18n("中文"), scale=1
|
714 |
)
|
715 |
how_to_cut = gr.Dropdown(
|
716 |
label=i18n("怎么切"),
|
|
|
721 |
gr.Markdown(value=html_center(i18n("语速调整,高为更快")))
|
722 |
if_freeze=gr.Checkbox(label=i18n("是否直接对上次合成结果调整语速和音色。防止随机性。"), value=False, interactive=True,show_label=True, scale=1)
|
723 |
speed = gr.Slider(minimum=0.6,maximum=1.65,step=0.05,label=i18n("语速"),value=1,interactive=True, scale=1)
|
724 |
+
#gr.Markdown(html_center(i18n("GPT采样参数(无参考文本时不要太低。不懂就用默认):")))
|
725 |
+
top_k = gr.Slider(minimum=1,maximum=100,step=1,label=i18n("top_k"),value=15,interactive=True, scale=1, visible=False)
|
726 |
+
top_p = gr.Slider(minimum=0,maximum=1,step=0.05,label=i18n("top_p"),value=1,interactive=True, scale=1, visible=False)
|
727 |
+
temperature = gr.Slider(minimum=0,maximum=1,step=0.05,label=i18n("temperature"),value=1,interactive=True, scale=1, visible=False)
|
728 |
# with gr.Column():
|
729 |
# gr.Markdown(value=i18n("手工调整音素。当音素框不为空时使用手工音素输入推理,无视目标文本框。"))
|
730 |
# phoneme=gr.Textbox(label=i18n("音素框"), value="")
|
731 |
# get_phoneme_button = gr.Button(i18n("目标文本转音素"), variant="primary")
|
732 |
with gr.Row():
|
733 |
+
inference_button = gr.Button(i18n("开启声音复刻之旅吧💕"), variant="primary", size='lg', scale=25)
|
734 |
+
output = gr.Audio(label=i18n("为您合成的专属音频🎶"), scale=14)
|
735 |
|
736 |
inference_button.click(
|
737 |
get_tts_wav,
|
|
|
741 |
SoVITS_dropdown.change(change_sovits_weights, [SoVITS_dropdown,prompt_language,text_language], [prompt_language,text_language,prompt_text,prompt_language,text,text_language])
|
742 |
GPT_dropdown.change(change_gpt_weights, [GPT_dropdown], [])
|
743 |
|
744 |
+
gr.Markdown("### <center>注意❗:请不要生成会对个人以及组织造成侵害的内容,此程序仅供科研、学习及个人娱乐使用。请自觉合规使用此程序,程序开发者不负有任何责任。</center>")
|
745 |
+
gr.HTML('''
|
746 |
+
<div class="footer">
|
747 |
+
<p>🌊🏞️🎶 - 江水东流急,滔滔无尽声。 明·顾璘
|
748 |
+
</p>
|
749 |
+
</div>
|
750 |
+
''')
|
751 |
# gr.Markdown(value=i18n("文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。"))
|
752 |
# with gr.Row():
|
753 |
# text_inp = gr.Textbox(label=i18n("需要合成的切分前文本"), value="")
|