Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

#import matplotlib.pyplot as plt
from infer_pack.models import SynthesizerTrnMs256NSFsid, SynthesizerTrnMs256NSFsid_nono

from language import language_gui

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

Expand Down Expand Up @@ -160,31 +160,31 @@ def launcher(self):
input_devices,output_devices,_, _=self.get_devices()
layout=[
[
sg.Frame(title='加载模型/Load Model',layout=[
[sg.Input(default_text='TEMP\\atri.pth',key='pth_path'),sg.FileBrowse('选择.pth文件/.pth File')],
[sg.Input(default_text='TEMP\\added_IVF512_Flat_atri_baseline_src_feat.index',key='index_path'),sg.FileBrowse('选择.index文件/.index File')],
[sg.Input(default_text='TEMP\\big_src_feature_atri.npy',key='npy_path'),sg.FileBrowse('选择.npy文件/.npy File')]
sg.Frame(title=i18n('加载模型/Load Model'),layout=[
[sg.Input(default_text='TEMP\\atri.pth',key='pth_path'),sg.FileBrowse(i18n('选择.pth文件/.pth File'))],
[sg.Input(default_text='TEMP\\added_IVF512_Flat_atri_baseline_src_feat.index',key='index_path'),sg.FileBrowse(i18n('选择.index文件/.index File'))],
[sg.Input(default_text='TEMP\\big_src_feature_atri.npy',key='npy_path'),sg.FileBrowse(i18n('选择.npy文件/.npy File'))]
])
],
[
sg.Frame(layout=[
[sg.Text("输入设备/Input Device"),sg.Combo(input_devices,key='sg_input_device',default_value=input_devices[sd.default.device[0]])],
[sg.Text("输出设备/Output Device"),sg.Combo(output_devices,key='sg_output_device',default_value=output_devices[sd.default.device[1]])]
],title='音频设备(请使用同种类驱动)/Audio Devices')
[sg.Text(i18n("输入设备/Input Device")),sg.Combo(input_devices,key='sg_input_device',default_value=input_devices[sd.default.device[0]])],
[sg.Text(i18n("输出设备/Output Device")),sg.Combo(output_devices,key='sg_output_device',default_value=output_devices[sd.default.device[1]])]
],title=i18n('音频设备(请使用同种类驱动)/Audio Devices'))
],
[
sg.Frame(layout=[
[sg.Text('响应阈值/Silence Threhold'),sg.Slider(range=(-60,0),key='threhold',resolution=1,orientation='h',default_value=-30)],
[sg.Text("音调设置/Pitch Offset"),sg.Slider(range=(-24,24),key='pitch',resolution=1,orientation='h',default_value=12)]
[sg.Text(i18n('响应阈值/Silence Threhold')),sg.Slider(range=(-60,0),key='threhold',resolution=1,orientation='h',default_value=-30)],
[sg.Text(i18n("音调设置/Pitch Offset")),sg.Slider(range=(-24,24),key='pitch',resolution=1,orientation='h',default_value=12)]

],title='常规设置/Common'),
],title=i18n('常规设置/Common')),
sg.Frame(layout=[
[sg.Text('采样长度/Sample Length'),sg.Slider(range=(0.1,3.0),key='block_time',resolution=0.1,orientation='h',default_value=1.0)],
[sg.Text('淡入淡出长度/Crossfade Length'),sg.Slider(range=(0.01,0.15),key='crossfade_length',resolution=0.01,orientation='h',default_value=0.08)],
[sg.Text('额外推理时长/Extra Length'),sg.Slider(range=(0.05,3.00),key='extra_time',resolution=0.01,orientation='h',default_value=0.05)]
],title='性能设置/Performance')
[sg.Text(i18n('采样长度/Sample Length')),sg.Slider(range=(0.1,3.0),key='block_time',resolution=0.1,orientation='h',default_value=1.0)],
[sg.Text(i18n('淡入淡出长度/Crossfade Length')),sg.Slider(range=(0.01,0.15),key='crossfade_length',resolution=0.01,orientation='h',default_value=0.08)],
[sg.Text(i18n('额外推理时长/Extra Length')),sg.Slider(range=(0.05,3.00),key='extra_time',resolution=0.01,orientation='h',default_value=0.05)]
],title=i18n('性能设置/Performance'))
],
[sg.Button('开始音频转换',key='start_vc'),sg.Button('停止音频转换',key='stop_vc')]
[sg.Button(i18n('开始音频转换'),key='start_vc'),sg.Button(i18n('停止音频转换'),key='stop_vc')]
]

self.window=sg.Window('RVC - GUI',layout=layout)
Expand Down Expand Up @@ -326,5 +326,5 @@ def set_devices(self,input_device,output_device):
sd.default.device[1]=output_device_indices[output_devices.index(output_device)]
print("input device:"+str(sd.default.device[0])+":"+str(input_device))
print("output device:"+str(sd.default.device[1])+":"+str(output_device))

i18n = language_gui.I18nAuto()
gui=GUI()
1 change: 1 addition & 0 deletions language/gitkeep
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

77 changes: 77 additions & 0 deletions language/language_gui.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
import locale
'''
本地化方式如下所示,此文件是"gui.py"的文本内容
'''

LANGUAGE_LIST = ['zh_CN', 'en_US']
LANGUAGE_ALL = {
'zh_CN': {
'SUPER': 'END',
'LANGUAGE': 'zh_CN',
'加载模型/Load Model': '加载模型',
'选择.pth文件/.pth File': '选择.pth文件',
'选择.index文件/.index File': '选择.index文件',
'选择.npy文件/.npy File': '选择.npy文件',
"输入设备/Input Device": "输入设备",
"输出设备/Output Device": "输出设备",
'音频设备(请使用同种类驱动)/Audio Devices': '音频设备(请使用同种类驱动)',
'响应阈值/Silence Threhold': '响应阈值',
'音调设置/Pitch Offset': '音调设置',
'常规设置/Common': '常规设置',
'采样长度/Sample Length': '采样长度',
'淡入淡出长度/Crossfade Length': '淡入淡出长度',
'额外推理时长/Extra Length': '额外推理时长',
'性能设置/Performance': '性能设置',
'开始音频转换': '开始音频转换',
'停止音频转换': '停止音频转换'
},
'en_US': {
'SUPER': 'zh_CN',
'LANGUAGE': 'en_US',
'加载模型/Load Model': 'Load Model',
'选择.pth文件/.pth File': 'Select .pth File',
'选择.index文件/.index File': 'Select .index File',
'选择.npy文件/.npy File': 'Select .npy File',
"输入设备/Input Device": "Input Device",
"输出设备/Output Device": "Output Device",
'音频设备(请使用同种类驱动)/Audio Devices': 'Audio Devices(Please use the same type of driver)',
'响应阈值/Silence Threhold': 'Silence Threhold',
'音调设置/Pitch Offset': 'Pitch Offset',
'常规设置/Common': 'Common',
'采样长度/Sample Length': 'Sample Length',
'淡入淡出长度/Crossfade Length': 'Crossfade Length',
'额外推理时长/Extra Length': 'Extra Length',
'性能设置/Performance': 'Performance',
'开始音频转换': 'Start VC',
'停止音频转换': 'Stop VC'
}
}


class I18nAuto:
def __init__(self, language=None):
self.language_list = LANGUAGE_LIST
self.language_all = LANGUAGE_ALL
self.language_map = {}
if language is None:
language = 'auto'
if language == 'auto':
language = locale.getdefaultlocale()[0]
if language not in self.language_list:
language = 'zh_CN'
self.language = language
super_language_list = []
while self.language_all[language]['SUPER'] != 'END':
super_language_list.append(language)
language = self.language_all[language]['SUPER']
super_language_list.append('zh_CN')
super_language_list.reverse()
for _lang in super_language_list:
self.read_language(self.language_all[_lang])

def read_language(self, lang_dict: dict):
for _key in lang_dict.keys():
self.language_map[_key] = lang_dict[_key]

def __call__(self, key):
return self.language_map[key]