| import json |
| import gradio as gr |
| import uuid |
| from TTS.api import TTS |
|
|
|
|
| f = open('speakers.json') |
| data = json.load(f) |
| tts_mod=data['tts_models']['en'] |
| print (tts_mod.keys()) |
|
|
| def next_line(inp): |
| out=data['tts_models']['en'][inp] |
| print (out) |
| return gr.Dropdown(choices=out.keys(),interactive=True) |
|
|
|
|
| def run_tts(text, s_g, s_s): |
| |
| |
| |
| tts = TTS(model_name=f"tts_models/en/{s_g}/{s_s}", progress_bar=False).to("cpu") |
| print (tts.config) |
| |
| |
| uid=uuid.uuid4() |
| tts.tts_to_file(text, file_path=f"{uid}-output.wav") |
| return (f'{uid}-output.wav') |
|
|
|
|
| with gr.Blocks() as app: |
| with gr.Group(): |
| with gr.Row(): |
| in_t=gr.Textbox(lines=6) |
| |
| with gr.Column(): |
| drop=gr.Dropdown(label="Speaker Group", choices=tts_mod.keys(), interactive=True) |
| drop2=gr.Dropdown(label="Speaker") |
| go_btn=gr.Button() |
| with gr.Row(): |
| out_aud=gr.Audio() |
| drop.change(next_line,drop,drop2) |
| go_btn.click(run_tts,[in_t,drop,drop2],out_aud) |
| app.launch() |