mirror of
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git
synced 2026-01-19 18:41:52 +00:00
add localization(添加本地化) (#35)
* add i18n * Add gui.py as target * update * Update extract_locale.py
This commit is contained in:
216
infer-web.py
216
infer-web.py
@@ -5,6 +5,8 @@ from subprocess import Popen
|
||||
from time import sleep
|
||||
import torch, os,traceback,sys,warnings,shutil,numpy as np
|
||||
import faiss
|
||||
from webui_locale import I18nAuto
|
||||
i18n = I18nAuto()
|
||||
#判断是否有能用来训练和加速推理的N卡
|
||||
ncpu=cpu_count()
|
||||
ngpu=torch.cuda.device_count()
|
||||
@@ -457,22 +459,22 @@ def change_info_(ckpt_path):
|
||||
|
||||
|
||||
with gr.Blocks() as app:
|
||||
gr.Markdown(value="""
|
||||
gr.Markdown(value=i18n("""
|
||||
本软件以MIT协议开源,作者不对软件具备任何控制力,使用软件者、传播软件导出的声音者自负全责。<br>
|
||||
如不认可该条款,则不能使用或引用软件包内任何代码和文件。详见根目录"使用需遵守的协议-LICENSE.txt"。
|
||||
""")
|
||||
"""))
|
||||
with gr.Tabs():
|
||||
with gr.TabItem("模型推理"):
|
||||
with gr.TabItem(i18n("模型推理")):
|
||||
with gr.Row():
|
||||
sid0 = gr.Dropdown(label="推理音色", choices=sorted(names))
|
||||
refresh_button = gr.Button("刷新音色列表", variant="primary")
|
||||
sid0 = gr.Dropdown(label=i18n("推理音色"), choices=sorted(names))
|
||||
refresh_button = gr.Button(i18n("刷新音色列表"), variant="primary")
|
||||
refresh_button.click(
|
||||
fn=change_choices,
|
||||
inputs=[],
|
||||
outputs=[sid0]
|
||||
)
|
||||
clean_button = gr.Button("卸载音色省显存", variant="primary")
|
||||
spk_item = gr.Slider(minimum=0, maximum=2333, step=1, label='请选择说话人id', value=0, visible=False, interactive=True)
|
||||
clean_button = gr.Button(i18n("卸载音色省显存"), variant="primary")
|
||||
spk_item = gr.Slider(minimum=0, maximum=2333, step=1, label=i18n("请选择说话人id"), value=0, visible=False, interactive=True)
|
||||
clean_button.click(
|
||||
fn=clean,
|
||||
inputs=[],
|
||||
@@ -484,169 +486,169 @@ with gr.Blocks() as app:
|
||||
outputs=[spk_item],
|
||||
)
|
||||
with gr.Group():
|
||||
gr.Markdown(value="""
|
||||
gr.Markdown(value=i18n("""
|
||||
男转女推荐+12key,女转男推荐-12key,如果音域爆炸导致音色失真也可以自己调整到合适音域。
|
||||
""")
|
||||
"""))
|
||||
with gr.Row():
|
||||
with gr.Column():
|
||||
vc_transform0 = gr.Number(label="变调(整数,半音数量,升八度12降八度-12)", value=0)
|
||||
input_audio0 = gr.Textbox(label="输入待处理音频文件路径(默认是正确格式示例)",value="E:\codes\py39\\vits_vc_gpu_train\\todo-songs\冬之花clip1.wav")
|
||||
f0method0=gr.Radio(label="选择音高提取算法,输入歌声可用pm提速,harvest低音好但巨慢无比", choices=["pm","harvest"],value="pm", interactive=True)
|
||||
vc_transform0 = gr.Number(label=i18n("变调(整数,半音数量,升八度12降八度-12)"), value=0)
|
||||
input_audio0 = gr.Textbox(label=i18n("输入待处理音频文件路径(默认是正确格式示例)"),value="E:\codes\py39\\vits_vc_gpu_train\\todo-songs\冬之花clip1.wav")
|
||||
f0method0=gr.Radio(label=i18n("选择音高提取算法,输入歌声可用pm提速,harvest低音好但巨慢无比"), choices=["pm","harvest"],value="pm", interactive=True)
|
||||
with gr.Column():
|
||||
file_index1 = gr.Textbox(label="特征检索库文件路径",value="E:\codes\py39\\vits_vc_gpu_train\logs\mi-test-1key\\added_IVF677_Flat_nprobe_7.index", interactive=True)
|
||||
file_big_npy1 = gr.Textbox(label="特征文件路径",value="E:\codes\py39\\vits_vc_gpu_train\logs\mi-test-1key\\total_fea.npy", interactive=True)
|
||||
file_index1 = gr.Textbox(label=i18n("特征检索库文件路径"),value="E:\codes\py39\\vits_vc_gpu_train\logs\mi-test-1key\\added_IVF677_Flat_nprobe_7.index", interactive=True)
|
||||
file_big_npy1 = gr.Textbox(label=i18n("特征文件路径"),value="E:\codes\py39\\vits_vc_gpu_train\logs\mi-test-1key\\total_fea.npy", interactive=True)
|
||||
index_rate1 = gr.Slider(minimum=0, maximum=1,label='检索特征占比', value=1,interactive=True)
|
||||
f0_file = gr.File(label="F0曲线文件,可选,一行一个音高,代替默认F0及升降调")
|
||||
but0=gr.Button("转换", variant="primary")
|
||||
f0_file = gr.File(label=i18n("F0曲线文件,可选,一行一个音高,代替默认F0及升降调"))
|
||||
but0=gr.Button(i18n("转换"), variant="primary")
|
||||
with gr.Column():
|
||||
vc_output1 = gr.Textbox(label="输出信息")
|
||||
vc_output2 = gr.Audio(label="输出音频(右下角三个点,点了可以下载)")
|
||||
vc_output1 = gr.Textbox(label=i18n("输出信息"))
|
||||
vc_output2 = gr.Audio(label=i18n("输出音频(右下角三个点,点了可以下载)"))
|
||||
but0.click(vc_single, [spk_item, input_audio0, vc_transform0,f0_file,f0method0,file_index1,file_big_npy1,index_rate1], [vc_output1, vc_output2])
|
||||
with gr.Group():
|
||||
gr.Markdown(value="""
|
||||
gr.Markdown(value=i18n("""
|
||||
批量转换,输入待转换音频文件夹,或上传多个音频文件,在指定文件夹(默认opt)下输出转换的音频。
|
||||
""")
|
||||
"""))
|
||||
with gr.Row():
|
||||
with gr.Column():
|
||||
vc_transform1 = gr.Number(label="变调(整数,半音数量,升八度12降八度-12)", value=0)
|
||||
opt_input = gr.Textbox(label="指定输出文件夹",value="opt")
|
||||
f0method1=gr.Radio(label="选择音高提取算法,输入歌声可用pm提速,harvest低音好但巨慢无比", choices=["pm","harvest"],value="pm", interactive=True)
|
||||
vc_transform1 = gr.Number(label=i18n("变调(整数,半音数量,升八度12降八度-12)"), value=0)
|
||||
opt_input = gr.Textbox(label=i18n("指定输出文件夹"),value="opt")
|
||||
f0method1=gr.Radio(label=i18n("选择音高提取算法,输入歌声可用pm提速,harvest低音好但巨慢无比"), choices=["pm","harvest"],value="pm", interactive=True)
|
||||
with gr.Column():
|
||||
file_index2 = gr.Textbox(label="特征检索库文件路径",value="E:\codes\py39\\vits_vc_gpu_train\logs\mi-test-1key\\added_IVF677_Flat_nprobe_7.index", interactive=True)
|
||||
file_big_npy2 = gr.Textbox(label="特征文件路径",value="E:\codes\py39\\vits_vc_gpu_train\logs\mi-test-1key\\total_fea.npy", interactive=True)
|
||||
index_rate2 = gr.Slider(minimum=0, maximum=1,label='检索特征占比', value=1,interactive=True)
|
||||
file_index2 = gr.Textbox(label=i18n("特征检索库文件路径"),value="E:\codes\py39\\vits_vc_gpu_train\logs\mi-test-1key\\added_IVF677_Flat_nprobe_7.index", interactive=True)
|
||||
file_big_npy2 = gr.Textbox(label=i18n("特征文件路径"),value="E:\codes\py39\\vits_vc_gpu_train\logs\mi-test-1key\\total_fea.npy", interactive=True)
|
||||
index_rate2 = gr.Slider(minimum=0, maximum=1,label=i18n("检索特征占比"), value=1,interactive=True)
|
||||
with gr.Column():
|
||||
dir_input = gr.Textbox(label="输入待处理音频文件夹路径(去文件管理器地址栏拷就行了)",value="E:\codes\py39\\vits_vc_gpu_train\\todo-songs")
|
||||
inputs = gr.File(file_count="multiple", label="也可批量输入音频文件,二选一,优先读文件夹")
|
||||
but1=gr.Button("转换", variant="primary")
|
||||
vc_output3 = gr.Textbox(label="输出信息")
|
||||
dir_input = gr.Textbox(label=i18n("输入待处理音频文件夹路径(去文件管理器地址栏拷就行了)"),value="E:\codes\py39\\vits_vc_gpu_train\\todo-songs")
|
||||
inputs = gr.File(file_count="multiple", label=i18n("也可批量输入音频文件,二选一,优先读文件夹"))
|
||||
but1=gr.Button(i18n("转换"), variant="primary")
|
||||
vc_output3 = gr.Textbox(label=i18n("输出信息"))
|
||||
but1.click(vc_multi, [spk_item, dir_input,opt_input,inputs, vc_transform1,f0method1,file_index2,file_big_npy2,index_rate2], [vc_output3])
|
||||
with gr.TabItem("伴奏人声分离"):
|
||||
with gr.TabItem(i18n("伴奏人声分离")):
|
||||
with gr.Group():
|
||||
gr.Markdown(value="""
|
||||
gr.Markdown(value=i18n("""
|
||||
人声伴奏分离批量处理,使用UVR5模型。<br>
|
||||
不带和声用HP2,带和声且提取的人声不需要和声用HP5<br>
|
||||
合格的文件夹路径格式举例:E:\codes\py39\\vits_vc_gpu\白鹭霜华测试样例(去文件管理器地址栏拷就行了)
|
||||
""")
|
||||
"""))
|
||||
with gr.Row():
|
||||
with gr.Column():
|
||||
dir_wav_input = gr.Textbox(label="输入待处理音频文件夹路径",value="E:\codes\py39\\vits_vc_gpu_train\\todo-songs")
|
||||
wav_inputs = gr.File(file_count="multiple", label="也可批量输入音频文件,二选一,优先读文件夹")
|
||||
dir_wav_input = gr.Textbox(label=i18n("输入待处理音频文件夹路径"),value="E:\codes\py39\\vits_vc_gpu_train\\todo-songs")
|
||||
wav_inputs = gr.File(file_count="multiple", label=i18n("也可批量输入音频文件,二选一,优先读文件夹"))
|
||||
with gr.Column():
|
||||
model_choose = gr.Dropdown(label="模型", choices=uvr5_names)
|
||||
opt_vocal_root = gr.Textbox(label="指定输出人声文件夹",value="opt")
|
||||
opt_ins_root = gr.Textbox(label="指定输出乐器文件夹",value="opt")
|
||||
but2=gr.Button("转换", variant="primary")
|
||||
vc_output4 = gr.Textbox(label="输出信息")
|
||||
model_choose = gr.Dropdown(label=i18n("模型"), choices=uvr5_names)
|
||||
opt_vocal_root = gr.Textbox(label=i18n("指定输出人声文件夹"),value="opt")
|
||||
opt_ins_root = gr.Textbox(label=i18n("指定输出乐器文件夹"),value="opt")
|
||||
but2=gr.Button(i18n("转换"), variant="primary")
|
||||
vc_output4 = gr.Textbox(label=i18n("输出信息"))
|
||||
but2.click(uvr, [model_choose, dir_wav_input,opt_vocal_root,wav_inputs,opt_ins_root], [vc_output4])
|
||||
with gr.TabItem("训练"):
|
||||
gr.Markdown(value="""
|
||||
with gr.TabItem(i18n("训练")):
|
||||
gr.Markdown(value=i18n("""
|
||||
step1:填写实验配置。实验数据放在logs下,每个实验一个文件夹,需手工输入实验名路径,内含实验配置,日志,训练得到的模型文件。
|
||||
""")
|
||||
"""))
|
||||
with gr.Row():
|
||||
exp_dir1 = gr.Textbox(label="输入实验名",value="mi-test")
|
||||
sr2 = gr.Radio(label="目标采样率", choices=["32k","40k","48k"],value="40k", interactive=True)
|
||||
if_f0_3 = gr.Radio(label="模型是否带音高指导(唱歌一定要,语音可以不要)", choices=["是","否"],value="是", interactive=True)
|
||||
exp_dir1 = gr.Textbox(label=i18n("输入实验名"),value="mi-test")
|
||||
sr2 = gr.Radio(label=i18n("目标采样率"), choices=["32k","40k","48k"],value="40k", interactive=True)
|
||||
if_f0_3 = gr.Radio(label=i18n("模型是否带音高指导(唱歌一定要,语音可以不要)"), choices=["是","否"],value="是", interactive=True)
|
||||
with gr.Group():#暂时单人的,后面支持最多4人的#数据处理
|
||||
gr.Markdown(value="""
|
||||
gr.Markdown(value=i18n("""
|
||||
step2a:自动遍历训练文件夹下所有可解码成音频的文件并进行切片归一化,在实验目录下生成2个wav文件夹;暂时只支持单人训练。
|
||||
""")
|
||||
"""))
|
||||
with gr.Row():
|
||||
trainset_dir4 = gr.Textbox(label="输入训练文件夹路径",value="E:\语音音频+标注\米津玄师\src")
|
||||
spk_id5 = gr.Slider(minimum=0, maximum=4, step=1, label='请指定说话人id', value=0,interactive=True)
|
||||
but1=gr.Button("处理数据", variant="primary")
|
||||
info1=gr.Textbox(label="输出信息",value="")
|
||||
trainset_dir4 = gr.Textbox(label=i18n("输入训练文件夹路径"),value="E:\语音音频+标注\米津玄师\src")
|
||||
spk_id5 = gr.Slider(minimum=0, maximum=4, step=1, label=i18n("请指定说话人id"), value=0,interactive=True)
|
||||
but1=gr.Button(i18n("处理数据"), variant="primary")
|
||||
info1=gr.Textbox(label=i18n("输出信息"),value="")
|
||||
but1.click(preprocess_dataset,[trainset_dir4,exp_dir1,sr2],[info1])
|
||||
with gr.Group():
|
||||
gr.Markdown(value="""
|
||||
gr.Markdown(value=i18n("""
|
||||
step2b:使用CPU提取音高(如果模型带音高),使用GPU提取特征(选择卡号)
|
||||
""")
|
||||
"""))
|
||||
with gr.Row():
|
||||
with gr.Column():
|
||||
gpus6 = gr.Textbox(label="以-分隔输入使用的卡号,例如 0-1-2 使用卡0和卡1和卡2",value=gpus,interactive=True)
|
||||
gpu_info9 = gr.Textbox(label="显卡信息",value=gpu_info)
|
||||
gpus6 = gr.Textbox(label=i18n("以-分隔输入使用的卡号,例如 0-1-2 使用卡0和卡1和卡2"),value=gpus,interactive=True)
|
||||
gpu_info9 = gr.Textbox(label=i18n("显卡信息"),value=gpu_info)
|
||||
with gr.Column():
|
||||
np7 = gr.Slider(minimum=0, maximum=ncpu, step=1, label='提取音高使用的CPU进程数', value=ncpu,interactive=True)
|
||||
f0method8 = gr.Radio(label="选择音高提取算法:输入歌声可用pm提速,高质量语音但CPU差可用dio提速,harvest质量更好但慢", choices=["pm", "harvest","dio"], value="harvest", interactive=True)
|
||||
but2=gr.Button("特征提取", variant="primary")
|
||||
info2=gr.Textbox(label="输出信息",value="",max_lines=8)
|
||||
np7 = gr.Slider(minimum=0, maximum=ncpu, step=1, label=i18n("提取音高使用的CPU进程数"), value=ncpu,interactive=True)
|
||||
f0method8 = gr.Radio(label=i18n("选择音高提取算法:输入歌声可用pm提速,高质量语音但CPU差可用dio提速,harvest质量更好但慢"), choices=["pm", "harvest","dio"], value="harvest", interactive=True)
|
||||
but2=gr.Button(i18n("特征提取"), variant="primary")
|
||||
info2=gr.Textbox(label=i18n("输出信息"),value="",max_lines=8)
|
||||
but2.click(extract_f0_feature,[gpus6,np7,f0method8,if_f0_3,exp_dir1],[info2])
|
||||
with gr.Group():
|
||||
gr.Markdown(value="""
|
||||
gr.Markdown(value=i18n("""
|
||||
step3:填写训练设置,开始训练模型和索引
|
||||
""")
|
||||
"""))
|
||||
with gr.Row():
|
||||
save_epoch10 = gr.Slider(minimum=0, maximum=50, step=1, label='保存频率save_every_epoch', value=5,interactive=True)
|
||||
total_epoch11 = gr.Slider(minimum=0, maximum=1000, step=1, label='总训练轮数total_epoch', value=20,interactive=True)
|
||||
save_epoch10 = gr.Slider(minimum=0, maximum=50, step=1, label=i18n("保存频率save_every_epoch"), value=5,interactive=True)
|
||||
total_epoch11 = gr.Slider(minimum=0, maximum=1000, step=1, label=i18n("总训练轮数total_epoch"), value=20,interactive=True)
|
||||
batch_size12 = gr.Slider(minimum=0, maximum=32, step=1, label='每张显卡的batch_size', value=4,interactive=True)
|
||||
if_save_latest13 = gr.Radio(label="是否仅保存最新的ckpt文件以节省硬盘空间", choices=["是", "否"], value="否", interactive=True)
|
||||
if_cache_gpu17 = gr.Radio(label="是否缓存所有训练集至显存。10min以下小数据可缓存以加速训练,大数据缓存会炸显存也加不了多少速", choices=["是", "否"], value="否", interactive=True)
|
||||
if_save_latest13 = gr.Radio(label=i18n("是否仅保存最新的ckpt文件以节省硬盘空间"), choices=["是", "否"], value="否", interactive=True)
|
||||
if_cache_gpu17 = gr.Radio(label=i18n("是否缓存所有训练集至显存。10min以下小数据可缓存以加速训练,大数据缓存会炸显存也加不了多少速"), choices=["是", "否"], value="否", interactive=True)
|
||||
with gr.Row():
|
||||
pretrained_G14 = gr.Textbox(label="加载预训练底模G路径", value="pretrained/f0G40k.pth",interactive=True)
|
||||
pretrained_D15 = gr.Textbox(label="加载预训练底模D路径", value="pretrained/f0D40k.pth",interactive=True)
|
||||
pretrained_G14 = gr.Textbox(label=i18n("加载预训练底模G路径"), value="pretrained/f0G40k.pth",interactive=True)
|
||||
pretrained_D15 = gr.Textbox(label=i18n("加载预训练底模D路径"), value="pretrained/f0D40k.pth",interactive=True)
|
||||
sr2.change(change_sr2, [sr2,if_f0_3], [pretrained_G14,pretrained_D15])
|
||||
if_f0_3.change(change_f0, [if_f0_3, sr2], [np7, f0method8, pretrained_G14, pretrained_D15])
|
||||
gpus16 = gr.Textbox(label="以-分隔输入使用的卡号,例如 0-1-2 使用卡0和卡1和卡2", value=gpus,interactive=True)
|
||||
but3 = gr.Button("训练模型", variant="primary")
|
||||
but4 = gr.Button("训练特征索引", variant="primary")
|
||||
but5 = gr.Button("一键训练", variant="primary")
|
||||
info3 = gr.Textbox(label="输出信息", value="",max_lines=10)
|
||||
gpus16 = gr.Textbox(label=i18n("以-分隔输入使用的卡号,例如 0-1-2 使用卡0和卡1和卡2"), value=gpus,interactive=True)
|
||||
but3 = gr.Button(i18n("训练模型"), variant="primary")
|
||||
but4 = gr.Button(i18n("训练特征索引"), variant="primary")
|
||||
but5 = gr.Button(i18n("一键训练"), variant="primary")
|
||||
info3 = gr.Textbox(label=i18n("输出信息"), value="",max_lines=10)
|
||||
but3.click(click_train,[exp_dir1,sr2,if_f0_3,spk_id5,save_epoch10,total_epoch11,batch_size12,if_save_latest13,pretrained_G14,pretrained_D15,gpus16,if_cache_gpu17],info3)
|
||||
but4.click(train_index,[exp_dir1],info3)
|
||||
but5.click(train1key,[exp_dir1,sr2,if_f0_3,trainset_dir4,spk_id5,gpus6,np7,f0method8,save_epoch10,total_epoch11,batch_size12,if_save_latest13,pretrained_G14,pretrained_D15,gpus16,if_cache_gpu17],info3)
|
||||
|
||||
with gr.TabItem("ckpt处理"):
|
||||
with gr.TabItem(i18n("ckpt处理")):
|
||||
with gr.Group():
|
||||
gr.Markdown(value="""模型融合,可用于测试音色融合""")
|
||||
gr.Markdown(value=i18n("""模型融合,可用于测试音色融合"""))
|
||||
with gr.Row():
|
||||
ckpt_a = gr.Textbox(label="A模型路径", value="", interactive=True)
|
||||
ckpt_b = gr.Textbox(label="B模型路径", value="", interactive=True)
|
||||
alpha_a = gr.Slider(minimum=0, maximum=1, label='A模型权重', value=0.5, interactive=True)
|
||||
ckpt_a = gr.Textbox(label=i18n("A模型路径"), value="", interactive=True)
|
||||
ckpt_b = gr.Textbox(label=i18n("B模型路径"), value="", interactive=True)
|
||||
alpha_a = gr.Slider(minimum=0, maximum=1, label=i18n("A模型权重"), value=0.5, interactive=True)
|
||||
with gr.Row():
|
||||
sr_ = gr.Radio(label="目标采样率", choices=["32k","40k","48k"],value="40k", interactive=True)
|
||||
if_f0_ = gr.Radio(label="模型是否带音高指导", choices=["是","否"],value="是", interactive=True)
|
||||
info__ = gr.Textbox(label="要置入的模型信息", value="", max_lines=8, interactive=True)
|
||||
name_to_save0=gr.Textbox(label="保存的模型名不带后缀", value="", max_lines=1, interactive=True)
|
||||
sr_ = gr.Radio(label=i18n("目标采样率"), choices=["32k","40k","48k"],value="40k", interactive=True)
|
||||
if_f0_ = gr.Radio(label=i18n("模型是否带音高指导"), choices=["是","否"],value="是", interactive=True)
|
||||
info__ = gr.Textbox(label=i18n("要置入的模型信息"), value="", max_lines=8, interactive=True)
|
||||
name_to_save0=gr.Textbox(label=i18n("保存的模型名不带后缀"), value="", max_lines=1, interactive=True)
|
||||
with gr.Row():
|
||||
but6 = gr.Button("融合", variant="primary")
|
||||
info4 = gr.Textbox(label="输出信息", value="", max_lines=8)
|
||||
but6 = gr.Button(i18n("融合"), variant="primary")
|
||||
info4 = gr.Textbox(label=i18n("输出信息"), value="", max_lines=8)
|
||||
but6.click(merge, [ckpt_a,ckpt_b,alpha_a,sr_,if_f0_,info__,name_to_save0], info4)#def merge(path1,path2,alpha1,sr,f0,info):
|
||||
with gr.Group():
|
||||
gr.Markdown(value="修改模型信息(仅支持weights文件夹下提取的小模型文件)")
|
||||
gr.Markdown(value=i18n("修改模型信息(仅支持weights文件夹下提取的小模型文件)"))
|
||||
with gr.Row():
|
||||
ckpt_path0 = gr.Textbox(label="模型路径", value="", interactive=True)
|
||||
info_=gr.Textbox(label="要改的模型信息", value="", max_lines=8, interactive=True)
|
||||
name_to_save1=gr.Textbox(label="保存的文件名,默认空为和源文件同名", value="", max_lines=8, interactive=True)
|
||||
ckpt_path0 = gr.Textbox(label=i18n("模型路径"), value="", interactive=True)
|
||||
info_=gr.Textbox(label=i18n("要改的模型信息"), value="", max_lines=8, interactive=True)
|
||||
name_to_save1=gr.Textbox(label=i18n("保存的文件名,默认空为和源文件同名"), value="", max_lines=8, interactive=True)
|
||||
with gr.Row():
|
||||
but7 = gr.Button("修改", variant="primary")
|
||||
info5 = gr.Textbox(label="输出信息", value="", max_lines=8)
|
||||
but7 = gr.Button(i18n("修改"), variant="primary")
|
||||
info5 = gr.Textbox(label=i18n("输出信息"), value="", max_lines=8)
|
||||
but7.click(change_info, [ckpt_path0,info_,name_to_save1], info5)
|
||||
with gr.Group():
|
||||
gr.Markdown(value="查看模型信息(仅支持weights文件夹下提取的小模型文件)")
|
||||
gr.Markdown(value=i18n("查看模型信息(仅支持weights文件夹下提取的小模型文件)"))
|
||||
with gr.Row():
|
||||
ckpt_path1 = gr.Textbox(label="模型路径", value="", interactive=True)
|
||||
but8 = gr.Button("查看", variant="primary")
|
||||
info6 = gr.Textbox(label="输出信息", value="", max_lines=8)
|
||||
ckpt_path1 = gr.Textbox(label=i18n("模型路径"), value="", interactive=True)
|
||||
but8 = gr.Button(i18n("查看"), variant="primary")
|
||||
info6 = gr.Textbox(label=i18n("输出信息"), value="", max_lines=8)
|
||||
but8.click(show_info, [ckpt_path1], info6)
|
||||
with gr.Group():
|
||||
gr.Markdown(value="模型提取(输入logs文件夹下大文件模型路径),适用于训一半不想训了模型没有自动提取保存小文件模型,或者想测试中间模型的情况")
|
||||
gr.Markdown(value=i18n("模型提取(输入logs文件夹下大文件模型路径),适用于训一半不想训了模型没有自动提取保存小文件模型,或者想测试中间模型的情况"))
|
||||
with gr.Row():
|
||||
ckpt_path2 = gr.Textbox(label="模型路径", value="E:\codes\py39\logs\mi-test_f0_48k\\G_23333.pth", interactive=True)
|
||||
save_name = gr.Textbox(label="保存名", value="", interactive=True)
|
||||
sr__ = gr.Radio(label="目标采样率", choices=["32k","40k","48k"],value="40k", interactive=True)
|
||||
if_f0__ = gr.Radio(label="模型是否带音高指导,1是0否", choices=["1","0"],value="1", interactive=True)
|
||||
info___ = gr.Textbox(label="要置入的模型信息", value="", max_lines=8, interactive=True)
|
||||
but9 = gr.Button("提取", variant="primary")
|
||||
info7 = gr.Textbox(label="输出信息", value="", max_lines=8)
|
||||
ckpt_path2 = gr.Textbox(label=i18n("模型路径"), value="E:\codes\py39\logs\mi-test_f0_48k\\G_23333.pth", interactive=True)
|
||||
save_name = gr.Textbox(label=i18n("保存名"), value="", interactive=True)
|
||||
sr__ = gr.Radio(label=i18n("目标采样率"), choices=["32k","40k","48k"],value="40k", interactive=True)
|
||||
if_f0__ = gr.Radio(label=i18n("模型是否带音高指导,1是0否"), choices=["1","0"],value="1", interactive=True)
|
||||
info___ = gr.Textbox(label=i18n("要置入的模型信息"), value="", max_lines=8, interactive=True)
|
||||
but9 = gr.Button(i18n("提取"), variant="primary")
|
||||
info7 = gr.Textbox(label=i18n("输出信息"), value="", max_lines=8)
|
||||
ckpt_path2.change(change_info_,[ckpt_path2],[sr__,if_f0__])
|
||||
but9.click(extract_small_model, [ckpt_path2,save_name,sr__,if_f0__,info___], info7)
|
||||
|
||||
with gr.TabItem("招募音高曲线前端编辑器"):
|
||||
gr.Markdown(value="""加开发群联系我xxxxx""")
|
||||
with gr.TabItem("点击查看交流、问题反馈群号"):
|
||||
gr.Markdown(value="""xxxxx""")
|
||||
with gr.TabItem(i18n("招募音高曲线前端编辑器")):
|
||||
gr.Markdown(value=i18n("""加开发群联系我xxxxx"""))
|
||||
with gr.TabItem(i18n("点击查看交流、问题反馈群号")):
|
||||
gr.Markdown(value=i18n("""xxxxx"""))
|
||||
|
||||
if iscolab:
|
||||
app.queue(concurrency_count=511, max_size=1022).launch(share=True)
|
||||
else:
|
||||
app.queue(concurrency_count=511, max_size=1022).launch(server_name="0.0.0.0",inbrowser=True,server_port=listen_port,quiet=True)
|
||||
app.queue(concurrency_count=511, max_size=1022).launch(server_name="0.0.0.0",inbrowser=True,server_port=listen_port,quiet=True)
|
||||
Reference in New Issue
Block a user