|
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):', |
|
'扩散设置': '扩散设置', |
|
'启用扩散': '启用扩散', |
|
'扩散加速': '扩散加速', |
|
'扩散深度': '扩散深度', |
|
'扩散说话人id': '扩散说话人id', |
|
'扩散模型文件': '扩散模型文件', |
|
'不扩散安全区(加速但损失效果)': '不扩散安全区(加速但损失效果)', |
|
'启用DPMs(推荐)': '启用DPMs(推荐)' |
|
}, |
|
'en_US': { |
|
'SUPER': 'zh_CN', |
|
'LANGUAGE': 'en_US', |
|
'选择模型文件': 'Select Model File', |
|
'模型:.pt格式(自动识别同目录下config.yaml)': 'Model:.pt format(Auto ust config.yaml in here)', |
|
'选择配置文件所在目录': 'Select the configuration file directory', |
|
'打开文件夹': 'Open folder', |
|
'读取配置文件': 'Read config file', |
|
'保存配置文件': 'Save config file', |
|
'快速配置文件': 'Fast config file', |
|
'输入设备': 'Input device', |
|
'输出设备': 'Output device', |
|
'音频设备': 'Audio devices', |
|
'说话人id': 'Speaker ID', |
|
'响应阈值': 'Response threshold', |
|
'变调': 'Pitch', |
|
'采样率': 'Sampling rate', |
|
'启用捏音色功能': 'Enable Mix Speaker', |
|
'设置混合音色': 'Mix Speaker', |
|
'普通设置': 'Normal Settings', |
|
'音频切分大小': 'Segmentation size', |
|
'交叉淡化时长': 'Cross fade duration', |
|
'使用历史区块数量': 'Historical blocks used', |
|
'f0预测模式': 'f0Extractor', |
|
'启用增强器': 'Enable Enhancer', |
|
'启用相位声码器': 'Enable Phase Vocoder', |
|
'性能设置': 'Performance settings', |
|
'开始音频转换': 'Start conversion', |
|
'停止音频转换': 'Stop conversion', |
|
'推理所用时间(ms):': 'Inference time(ms):', |
|
'扩散设置': '扩散设置', |
|
'启用扩散': '启用扩散', |
|
'扩散加速': '扩散加速', |
|
'扩散深度': '扩散深度', |
|
'扩散说话人id': '扩散说话人id', |
|
'扩散模型文件': '扩散模型文件', |
|
'不扩散安全区(加速但损失效果)': '不扩散安全区(加速但损失效果)', |
|
'启用DPMs(推荐)': '启用DPMs(推荐)' |
|
}, |
|
'ja_JP': { |
|
'SUPER': 'zh_CN', |
|
'LANGUAGE': 'ja_JP', |
|
'选择模型文件': 'モデルを選択', |
|
'模型:.pt格式(自动识别同目录下config.yaml)': 'モデル:.pt形式(同じディレクトリにあるconfig.yamlを自動認識します)', |
|
'选择配置文件所在目录': '設定ファイルを選択', |
|
'打开文件夹': 'フォルダを開く', |
|
'读取配置文件': '設定ファイルを読み込む', |
|
'保存配置文件': '設定ファイルを保存', |
|
'快速配置文件': '設定プロファイル', |
|
'输入设备': '入力デバイス', |
|
'输出设备': '出力デバイス', |
|
'音频设备': '音声デバイス', |
|
'说话人id': '話者ID', |
|
'响应阈值': '応答時の閾値', |
|
'变调': '音程', |
|
'采样率': 'サンプリングレート', |
|
'启用捏音色功能': 'ミキシングを有効化', |
|
'设置混合音色': 'ミキシング', |
|
'普通设置': '通常設定', |
|
'音频切分大小': 'セグメンテーションのサイズ', |
|
'交叉淡化时长': 'クロスフェードの間隔', |
|
'使用历史区块数量': '使用するヒストリカルブロック数', |
|
'f0预测模式': 'f0予測モデル', |
|
'启用增强器': 'Enhancerを有効化', |
|
'启用相位声码器': 'フェーズボコーダを有効化', |
|
'性能设置': 'パフォーマンスの設定', |
|
'开始音频转换': '変換開始', |
|
'停止音频转换': '変換停止', |
|
'推理所用时间(ms):': '推論時間(ms):', |
|
'扩散设置': '扩散设置', |
|
'启用扩散': '启用扩散', |
|
'扩散加速': '扩散加速', |
|
'扩散深度': '扩散深度', |
|
'扩散说话人id': '扩散说话人id', |
|
'扩散模型文件': '扩散模型文件', |
|
'不扩散安全区(加速但损失效果)': '不扩散安全区(加速但损失效果)', |
|
'启用DPMs(推荐)': '启用DPMs(推荐)' |
|
} |
|
} |
|
|
|
|
|
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] |
|
|