Spaces:
Running
Running
Commit
•
625ce8a
1
Parent(s):
989f4af
Update app.py
Browse files
app.py
CHANGED
@@ -91,6 +91,9 @@ BandList = {
|
|
91 |
"Morfonica":["ましろ","瑠唯","つくし","七深","透子"],
|
92 |
"MyGo":["燈","愛音","そよ","立希","楽奈"],
|
93 |
"AveMujica":["祥子","睦","海鈴","にゃむ","初華"],
|
|
|
|
|
|
|
94 |
"圣翔音乐学园":["華戀","光","香子","雙葉","真晝","純那","克洛迪娜","真矢","奈奈"],
|
95 |
"凛明馆女子学校":["珠緒","壘","文","悠悠子","一愛"],
|
96 |
"弗隆提亚艺术学校":["艾露","艾露露","菈樂菲","司","靜羽"],
|
@@ -873,7 +876,116 @@ if __name__ == "__main__":
|
|
873 |
label="文本输入,可用'|'分割说话人和文本,注意换行",
|
874 |
info="输入纯日语或者中文",
|
875 |
placeholder=f"{name}|你觉得你是职业歌手吗\n真白|我觉得我是",
|
876 |
-
value=f"私は{name}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
877 |
)
|
878 |
style_text = gr.Textbox(
|
879 |
label="情感辅助文本",
|
|
|
91 |
"Morfonica":["ましろ","瑠唯","つくし","七深","透子"],
|
92 |
"MyGo":["燈","愛音","そよ","立希","楽奈"],
|
93 |
"AveMujica":["祥子","睦","海鈴","にゃむ","初華"],
|
94 |
+
}
|
95 |
+
|
96 |
+
SchoolLilst = {
|
97 |
"圣翔音乐学园":["華戀","光","香子","雙葉","真晝","純那","克洛迪娜","真矢","奈奈"],
|
98 |
"凛明馆女子学校":["珠緒","壘","文","悠悠子","一愛"],
|
99 |
"弗隆提亚艺术学校":["艾露","艾露露","菈樂菲","司","靜羽"],
|
|
|
876 |
label="文本输入,可用'|'分割说话人和文本,注意换行",
|
877 |
info="输入纯日语或者中文",
|
878 |
placeholder=f"{name}|你觉得你是职业歌手吗\n真白|我觉得我是",
|
879 |
+
value=f"私は{name}です。 "
|
880 |
+
)
|
881 |
+
style_text = gr.Textbox(
|
882 |
+
label="情感辅助文本",
|
883 |
+
info="语言保持跟主文本一致,文本可以参考训练集:https://huggingface.co/spaces/Mahiruoshi/BangDream-Bert-VITS2/blob/main/filelists/Mygo.list)",
|
884 |
+
placeholder="使用辅助文本的语意来辅助生成对话(语言保持与主文本相同)\n\n"
|
885 |
+
"**注意**:不要使用**指令式文本**(如:开心),要使用**带有强烈情感的文本**(如:我好快乐!!!)"
|
886 |
+
)
|
887 |
+
style_weight = gr.Slider(
|
888 |
+
minimum=0,
|
889 |
+
maximum=1,
|
890 |
+
value=0.7,
|
891 |
+
step=0.1,
|
892 |
+
label="Weight",
|
893 |
+
info="主文本和辅助文本的bert混合比率,0表示仅主文本,1表示仅辅助文本",
|
894 |
+
)
|
895 |
+
btn = gr.Button("点击生成", variant="primary")
|
896 |
+
audio_output = gr.Audio(label="Output Audio")
|
897 |
+
btntran = gr.Button("快速中翻日")
|
898 |
+
translateResult = gr.TextArea(label="使用百度翻译",placeholder="从这里复制翻译后的文本")
|
899 |
+
btntran.click(translate, inputs=[text], outputs = [translateResult])
|
900 |
+
btn.click(
|
901 |
+
generate_audio,
|
902 |
+
inputs=[
|
903 |
+
inputFile,
|
904 |
+
groupSize,
|
905 |
+
filepath,
|
906 |
+
silenceTime,
|
907 |
+
speakerList,
|
908 |
+
text,
|
909 |
+
sdp_ratio,
|
910 |
+
noise_scale,
|
911 |
+
noise_scale_w,
|
912 |
+
length_scale,
|
913 |
+
speaker,
|
914 |
+
style_text,
|
915 |
+
style_weight,
|
916 |
+
language,
|
917 |
+
mode,
|
918 |
+
sentence_mode,
|
919 |
+
skip_start,
|
920 |
+
skip_end
|
921 |
+
],
|
922 |
+
outputs=[audio_output],
|
923 |
+
)
|
924 |
+
for band in SchoolLilst:
|
925 |
+
with gr.TabItem(band):
|
926 |
+
for name in BandList[band]:
|
927 |
+
with gr.TabItem(name):
|
928 |
+
with gr.Row():
|
929 |
+
with gr.Column():
|
930 |
+
with gr.Row():
|
931 |
+
gr.Markdown(
|
932 |
+
'<div align="center">'
|
933 |
+
f'<img style="width:auto;height:400px;" src="https://mahiruoshi-bangdream-bert-vits2.hf.space/file/image/{name}.png">'
|
934 |
+
'</div>'
|
935 |
+
)
|
936 |
+
with gr.Accordion(label="参数设定", open=False):
|
937 |
+
sdp_ratio = gr.Slider(
|
938 |
+
minimum=0, maximum=1, value=0.5, step=0.01, label="SDP/DP混合比"
|
939 |
+
)
|
940 |
+
noise_scale = gr.Slider(
|
941 |
+
minimum=0.1, maximum=2, value=0.6, step=0.01, label="Noise:感情调节"
|
942 |
+
)
|
943 |
+
noise_scale_w = gr.Slider(
|
944 |
+
minimum=0.1, maximum=2, value=0.667, step=0.01, label="Noise_W:音素长度"
|
945 |
+
)
|
946 |
+
skip_start = gr.Checkbox(label="skip_start")
|
947 |
+
skip_end = gr.Checkbox(label="skip_end")
|
948 |
+
speaker = gr.Dropdown(
|
949 |
+
choices=speakers, value=name, label="说话人"
|
950 |
+
)
|
951 |
+
length_scale = gr.Slider(
|
952 |
+
minimum=0.1, maximum=2, value=1, step=0.01, label="语速调节"
|
953 |
+
)
|
954 |
+
language = gr.Dropdown(
|
955 |
+
choices=languages, value="Auto", label="语言选择,若不选自动则会将输入语言翻译为日语或中文"
|
956 |
+
)
|
957 |
+
mode = gr.Dropdown(
|
958 |
+
choices=modes, value="pyopenjtalk-V2.3-Katakana", label="TTS模式,合成少歌角色需要切换成 pyopenjtalk-V2.3-Katakana "
|
959 |
+
)
|
960 |
+
sentence_mode = gr.Dropdown(
|
961 |
+
choices=sentence_modes, value="sentence", label="文本合成模式"
|
962 |
+
)
|
963 |
+
with gr.Accordion(label="扩展选项", open=False):
|
964 |
+
inputFile = gr.UploadButton(label="txt文件输入")
|
965 |
+
speakerList = gr.TextArea(
|
966 |
+
label="角色对应表,如果你记不住角色名可以这样,左边是你想要在每一句话合成中用到的speaker(见角色清单)右边是你上传文本时分隔符左边设置的说话人:{ChoseSpeakerFromConfigList}|{SeakerInUploadText}",
|
967 |
+
value = "ましろ|真白\n七深|七深\n透子|透子\nつくし|筑紫\n瑠唯|瑠唯\nそよ|素世\n祥子|祥子",
|
968 |
+
)
|
969 |
+
groupSize = gr.Slider(
|
970 |
+
minimum=10, maximum=1000 if torch.cuda.is_available() else 50,value = 50, step=1, label="单个音频文件包含的最大句子数"
|
971 |
+
)
|
972 |
+
filepath = gr.TextArea(
|
973 |
+
label="本地合成时的音频存储文件夹(会清空文件夹,别把C盘删了)",
|
974 |
+
value = "D:/audiobook/book1",
|
975 |
+
)
|
976 |
+
silenceTime = gr.Slider(
|
977 |
+
minimum=0, maximum=1, value=0.5, step=0.01, label="句子的间隔"
|
978 |
+
)
|
979 |
+
modelstrs = gr.Dropdown(label = "模型", choices = modelPaths, value = modelPaths[0], type = "value")
|
980 |
+
btnMod = gr.Button("载入模型")
|
981 |
+
statusa = gr.TextArea(label = "模型加载状态")
|
982 |
+
btnMod.click(loadmodel, inputs=[modelstrs], outputs = [statusa])
|
983 |
+
with gr.Column():
|
984 |
+
text = gr.TextArea(
|
985 |
+
label="文本输入,可用'|'分割说话人和文本,注意换行",
|
986 |
+
info="输入纯日语或者中文",
|
987 |
+
placeholder=f"{name}|你觉得你是职业歌手吗\n真白|我觉得我是",
|
988 |
+
value=f"私は{name}です。 "
|
989 |
)
|
990 |
style_text = gr.Textbox(
|
991 |
label="情感辅助文本",
|