Merge pull request #15 from fakerybakery/patch-1
Only change text if text is default
This commit is contained in:
13
melo/app.py
13
melo/app.py
@@ -27,24 +27,25 @@ default_text_dict = {
|
|||||||
'JP': 'テキスト読み上げの分野は最近急速な発展を遂げています',
|
'JP': 'テキスト読み上げの分野は最近急速な発展を遂げています',
|
||||||
'KR': '최근 텍스트 음성 변환 분야가 급속도로 발전하고 있습니다.',
|
'KR': '최근 텍스트 음성 변환 분야가 급속도로 발전하고 있습니다.',
|
||||||
}
|
}
|
||||||
def update_default_text_fn(language):
|
|
||||||
return default_text_dict[language]
|
|
||||||
|
|
||||||
def synthesize(speaker, text, speed, language, progress=gr.Progress()):
|
def synthesize(speaker, text, speed, language, progress=gr.Progress()):
|
||||||
bio = io.BytesIO()
|
bio = io.BytesIO()
|
||||||
models[language].tts_to_file(text, models[language].hps.data.spk2id[speaker], bio, speed=speed, pbar=progress.tqdm, format='wav')
|
models[language].tts_to_file(text, models[language].hps.data.spk2id[speaker], bio, speed=speed, pbar=progress.tqdm, format='wav')
|
||||||
return bio.getvalue()
|
return bio.getvalue()
|
||||||
def load_speakers(language):
|
def load_speakers(language, text):
|
||||||
return gr.update(value=list(models[language].hps.data.spk2id.keys())[0], choices=list(models[language].hps.data.spk2id.keys()))
|
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:
|
with gr.Blocks() as demo:
|
||||||
gr.Markdown('# MeloTTS WebUI\n\nA WebUI for MeloTTS.')
|
gr.Markdown('# MeloTTS WebUI\n\nA WebUI for MeloTTS.')
|
||||||
with gr.Group():
|
with gr.Group():
|
||||||
speaker = gr.Dropdown(speaker_ids.keys(), interactive=True, value='EN-Default', label='Speaker')
|
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 = 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)
|
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'])
|
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')
|
btn = gr.Button('Synthesize', variant='primary')
|
||||||
aud = gr.Audio(interactive=False)
|
aud = gr.Audio(interactive=False)
|
||||||
btn.click(synthesize, inputs=[speaker, text, speed, language], outputs=[aud])
|
btn.click(synthesize, inputs=[speaker, text, speed, language], outputs=[aud])
|
||||||
|
|||||||
Reference in New Issue
Block a user