diff --git a/GPT_SoVITS/inference_webui.py b/GPT_SoVITS/inference_webui.py index dbc7eb3..aaaaa79 100644 --- a/GPT_SoVITS/inference_webui.py +++ b/GPT_SoVITS/inference_webui.py @@ -1,4 +1,5 @@ import os +import i18n gpt_path = os.environ.get( "gpt_path", "pretrained_models/s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt" @@ -31,6 +32,8 @@ from text.cleaner import clean_text from time import time as ttime from module.mel_processing import spectrogram_torch from my_utils import load_audio +from i18n.i18n import I18nAuto +i18n = I18nAuto() device = "cuda" tokenizer = AutoTokenizer.from_pretrained(bert_path) @@ -143,7 +146,11 @@ def get_spepc(hps, filename): return spec -dict_language = {"中文": "zh", "英文": "en", "日文": "ja"} +dict_language={ + i18n("中文"):"zh", + i18n("英文"):"en", + i18n("日文"):"ja" +} def get_tts_wav(ref_wav_path, prompt_text, prompt_language, text, text_language): @@ -322,43 +329,43 @@ def cut3(inp): with gr.Blocks(title="GPT-SoVITS WebUI") as app: gr.Markdown( - value="本软件以MIT协议开源, 作者不对软件具备任何控制力, 使用软件者、传播软件导出的声音者自负全责.
如不认可该条款, 则不能使用或引用软件包内任何代码和文件. 详见根目录LICENSE." + value=i18n("本软件以MIT协议开源, 作者不对软件具备任何控制力, 使用软件者、传播软件导出的声音者自负全责.
如不认可该条款, 则不能使用或引用软件包内任何代码和文件. 详见根目录LICENSE.") ) # with gr.Tabs(): # with gr.TabItem(i18n("伴奏人声分离&去混响&去回声")): with gr.Group(): - gr.Markdown(value="*请上传并填写参考信息") + gr.Markdown(value=i18n("*请上传并填写参考信息")) with gr.Row(): - inp_ref = gr.Audio(label="请上传参考音频", type="filepath") - prompt_text = gr.Textbox(label="参考音频的文本", value="") + inp_ref = gr.Audio(label=i18n("请上传参考音频"), type="filepath") + prompt_text = gr.Textbox(label=i18n("参考音频的文本"), value="") prompt_language = gr.Dropdown( - label="参考音频的语种", choices=["中文", "英文", "日文"], value="中文" + label=i18n("参考音频的语种"),choices=[i18n("中文"),i18n("英文"),i18n("日文")],value=i18n("中文")) ) - gr.Markdown(value="*请填写需要合成的目标文本") + gr.Markdown(value=i18n("*请填写需要合成的目标文本")) with gr.Row(): - text = gr.Textbox(label="需要合成的文本", value="") + text = gr.Textbox(label=i18n("需要合成的文本"), value="") text_language = gr.Dropdown( - label="需要合成的语种", choices=["中文", "英文", "日文"], value="中文" + label=i18n("需要合成的语种"),choices=[i18n("中文"),i18n("英文"),i18n("日文")],value=i18n("中文")" ) - inference_button = gr.Button("合成语音", variant="primary") - output = gr.Audio(label="输出的语音") + inference_button = gr.Button(i18n("合成语音"), variant="primary") + output = gr.Audio(label=i18n("输出的语音")) inference_button.click( get_tts_wav, [inp_ref, prompt_text, prompt_language, text, text_language], [output], ) - gr.Markdown(value="文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。") + gr.Markdown(value=i18n("文本切分工具。太长的文本合成出来效果不一定好,所以太长建议先切。合成会根据文本的换行分开合成再拼起来。")) with gr.Row(): - text_inp = gr.Textbox(label="需要合成的切分前文本", value="") - button1 = gr.Button("凑五句一切", variant="primary") - button2 = gr.Button("凑50字一切", variant="primary") - button3 = gr.Button("按中文句号。切", variant="primary") - text_opt = gr.Textbox(label="切分后文本", value="") + text_inp = gr.Textbox(label=i18n("需要合成的切分前文本"),value="") + button1 = gr.Button(i18n("凑五句一切"), variant="primary") + button2 = gr.Button(i18n("凑50字一切"), variant="primary") + button3 = gr.Button(i18n("按中文句号。切"), variant="primary") + text_opt = gr.Textbox(label=i18n("切分后文本"), value="") button1.click(cut1, [text_inp], [text_opt]) button2.click(cut2, [text_inp], [text_opt]) button3.click(cut3, [text_inp], [text_opt]) - gr.Markdown(value="后续将支持混合语种编码文本输入。") + gr.Markdown(value=i18n("后续将支持混合语种编码文本输入。")) app.queue(concurrency_count=511, max_size=1022).launch( server_name="0.0.0.0",