From 72963764d52756bdea3da017db57285ac3d66bcf Mon Sep 17 00:00:00 2001 From: mrfakename Date: Tue, 27 Feb 2024 08:48:36 -0800 Subject: [PATCH] Only change text if text is default --- melo/app.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/melo/app.py b/melo/app.py index 6911978..e6509c3 100644 --- a/melo/app.py +++ b/melo/app.py @@ -27,24 +27,25 @@ default_text_dict = { 'JP': 'テキスト読み上げの分野は最近急速な発展を遂げています', 'KR': '최근 텍스트 음성 변환 분야가 급속도로 발전하고 있습니다.', } -def update_default_text_fn(language): - return default_text_dict[language] def synthesize(speaker, text, speed, language, progress=gr.Progress()): bio = io.BytesIO() models[language].tts_to_file(text, models[language].hps.data.spk2id[speaker], bio, speed=speed, pbar=progress.tqdm, format='wav') return bio.getvalue() -def load_speakers(language): - return gr.update(value=list(models[language].hps.data.spk2id.keys())[0], choices=list(models[language].hps.data.spk2id.keys())) +def load_speakers(language, text): + if text in list(default_text_dict.values()): + newtext = default_text_dict[language] + else: + newtext = text + return gr.update(value=list(models[language].hps.data.spk2id.keys())[0], choices=list(models[language].hps.data.spk2id.keys())), newtext with gr.Blocks() as demo: gr.Markdown('# MeloTTS WebUI\n\nA WebUI for MeloTTS.') with gr.Group(): speaker = gr.Dropdown(speaker_ids.keys(), interactive=True, value='EN-Default', label='Speaker') language = gr.Radio(['EN', 'ES', 'FR', 'ZH', 'JP', 'KR'], label='Language', value='EN') - language.input(load_speakers, inputs=language, outputs=speaker) speed = gr.Slider(label='Speed', minimum=0.1, maximum=10.0, value=1.0, interactive=True, step=0.1) text = gr.Textbox(label="Text to speak", value=default_text_dict['EN']) - language.change(update_default_text_fn, [language], [text]) + language.input(load_speakers, inputs=[language, text], outputs=[speaker, text]) btn = gr.Button('Synthesize', variant='primary') aud = gr.Audio(interactive=False) btn.click(synthesize, inputs=[speaker, text, speed, language], outputs=[aud])