automatically update example text for different languages

This commit is contained in:
Wenliang Zhao
2024-02-27 13:31:15 +08:00
committed by GitHub
parent 684ff18a54
commit 63869183f8

View File

@@ -18,6 +18,18 @@ models = {
'KR': TTS(language='KR', device=device),
}
speaker_ids = models['EN'].hps.data.spk2id
default_text_dict = {
'EN': 'The field of text-to-speech has seen rapid development recently.',
'ES': 'El campo de la conversión de texto a voz ha experimentado un rápido desarrollo recientemente.',
'FR': 'Le domaine de la synthèse vocale a connu un développement rapide récemment',
'ZH': 'text-to-speech 领域近年来发展迅速',
'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')
@@ -31,7 +43,8 @@ with gr.Blocks() as demo:
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='The field of text to speech has seen rapid development recently')
text = gr.Textbox(label="Text to speak", value=default_text_dict['EN'])
language.change(update_default_text_fn, [language], [text])
btn = gr.Button('Synthesize', variant='primary')
aud = gr.Audio(interactive=False)
btn.click(synthesize, inputs=[speaker, text, speed, language], outputs=[aud])