-
Notifications
You must be signed in to change notification settings - Fork 18
/
I18n.py
145 lines (140 loc) · 6.4 KB
/
I18n.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
import locale
'''
本地化方式如下所示
'''
LANGUAGE_LIST = ['zh_CN', 'en_US', 'ja_JP']
LANGUAGE_ALL = {
'zh_CN': {
'SUPER': 'END',
'LANGUAGE': 'zh_CN',
'选择模型文件': '选择模型文件',
'选择配置文件所在目录': '选择配置文件所在目录',
'模型文件:.pt格式(自动识别同目录下config.yaml)':'模型文件:.pt格式(自动识别同目录下config.yaml)',
'打开文件夹': '打开文件夹',
'读取配置文件': '读取配置文件',
'保存配置文件': '保存配置文件',
'快速配置文件': '快速配置文件',
'输入设备': '输入设备',
'输出设备': '输出设备',
'音频设备': '音频设备',
'说话人id': '说话人id',
'响应阈值': '响应阈值',
'变调': '变调',
'采样率': '采样率',
'启用捏音色功能': '启用捏音色功能',
'设置混合音色': '设置混合音色',
'普通设置': '普通设置',
'音频切分大小': '音频切分大小',
'交叉淡化时长': '交叉淡化时长',
'额外推理时长': '额外推理时长',
'f0预测模式': 'f0预测模式',
'启用相位声码器': '启用相位声码器',
'性能设置': '性能设置',
'开始音频转换': '开始音频转换',
'停止音频转换': '停止音频转换',
'推理所用时间(ms):': '推理所用时间(ms):',
'不转换安全区(加速但损失效果)': '不转换安全区(加速但损失效果)',
'采样步数': '采样步数',
'时间起点': '时间起点',
'采样算法': '采样算法',
'Reflow设置': 'Reflow设置',
'共振峰偏移': '共振峰偏移',
},
'en_US': {
'SUPER': 'zh_CN',
'LANGUAGE': 'en_US',
"选择模型文件": "Select model file",
"选择配置文件所在目录": "Select configuration file directory",
"模型文件:.pt格式(自动识别同目录下config.yaml)": "Model file: .pt format (automatically detects config.yaml in the same directory)",
"打开文件夹": "Open folder",
"读取配置文件": "Load configuration file",
"保存配置文件": "Save configuration file",
"快速配置文件": "Quick configuration file",
"输入设备": "Input device",
"输出设备": "Output device",
"音频设备": "Audio device",
"说话人id": "Speaker ID",
"响应阈值": "Response threshold",
"变调": "Pitch shift",
"采样率": "Sampling rate",
"启用捏音色功能": "Enable Mix Speaker",
"设置混合音色": "Mix speaker",
"普通设置": "General settings",
"音频切分大小": "Segmentation size",
"交叉淡化时长": "Crossfade duration",
"额外推理时长": "Extra inference time",
"f0预测模式": "f0Extractor",
"启用相位声码器": "Enable phase vocoder",
"性能设置": "Performance settings",
"开始音频转换": "Start conversion",
"停止音频转换": "Stop conversion",
"推理所用时间(ms):": "Inference time(ms):",
"不转换安全区(加速但损失效果)": "Ignore safe zone (faster but less effective)",
"采样步数": "Sampling steps",
"时间起点": "t_start",
"采样算法": "Sampling method",
"Reflow设置": "Reflow settings",
"共振峰偏移": "Formant shift"
},
'ja_JP': {
'SUPER': 'zh_CN',
'LANGUAGE': 'ja_JP',
'选择模型文件': 'モデルを選択',
'选择配置文件所在目录': '設定ファイルを選択',
"模型文件:.pt格式(自动识别同目录下config.yaml)": "モデルファイル: .pt形式(同じディレクトリ内のconfig.yamlを自動認識)",
'打开文件夹': 'フォルダを開く',
'读取配置文件': '設定ファイルを読み込む',
'保存配置文件': '設定ファイルを保存',
'快速配置文件': '設定プロファイル',
'输入设备': '入力デバイス',
'输出设备': '出力デバイス',
'音频设备': '音声デバイス',
'说话人id': '話者ID',
'响应阈值': '応答時の閾値',
'变调': '音程',
'采样率': 'サンプリングレート',
'启用捏音色功能': 'ミキシングを有効化',
'设置混合音色': 'ミキシング',
'普通设置': '通常設定',
'音频切分大小': 'セグメンテーションのサイズ',
'交叉淡化时长': 'クロスフェードの間隔',
'额外推理时长': '追加推論時間',
'f0预测模式': 'f0予測モデル',
'启用相位声码器': 'Phase Vocoderを有効化',
'性能设置': 'パフォーマンスの設定',
'开始音频转换': '変換開始',
'停止音频转换': '変換停止',
'推理所用时间(ms):': '推論時間(ms):',
"不转换安全区(加速但损失效果)": "安全エリアを変換しない(高速化されますが、効果が損なわれます)",
"采样步数": "Sampling steps",
"时间起点": "t_start",
"采样算法": "Sampling methods",
"Reflow设置": "Reflow設定",
"共振峰偏移": "フォルマントシフト"
}
}
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]