|
import gradio as gr |
|
|
|
from config import Config |
|
from .events import * |
|
|
|
|
|
def audio_tab(): |
|
with gr.Row(): |
|
with gr.Column(): |
|
with gr.Group(): |
|
with gr.Group(): |
|
text = gr.Textbox(lines=5, label="Enter text") |
|
language = gr.Dropdown( |
|
label="Language", |
|
choices=["en"], |
|
value="en", |
|
) |
|
|
|
with gr.Accordion('Voice Clone', open=True): |
|
speaker_audio = gr.Audio(label="Upload Audio", type='numpy') |
|
clear_speaker_audio = gr.Button(label="Clear Audio") |
|
|
|
with gr.Column(): |
|
output_audio = gr.Audio(label="Output Audio", interactive=False, show_download_button=True) |
|
clear_output_audio = gr.Button(label="Clear Audio") |
|
generate_audio = gr.Button(label="Generate Audio") |
|
|
|
with gr.Accordion('Advance Settings', open=True): |
|
settings = [ |
|
('Alpha', 'tts_alpha', 'float', 0.0, 1.0, 0.3, 0.1,), |
|
('Beta', 'tts_beta', 'float', 0.0, 1.0, 0.7, 0.1,), |
|
('Diffusion Steps', 'tts_diffusion_steps', 'int', 1, 100, 10, 1,), |
|
('Embedding Scale', 'tts_embedding_scale', 'int', 0, 10, 1, 1,), |
|
] |
|
for label, key, type_, min_, max_, value, step in settings: |
|
globals()[key] = gr.Slider(label=label, minimum=min_, maximum=max_, value=value, step=step) |
|
|
|
|
|
|
|
|
|
clear_speaker_audio.click(clear_audio, speaker_audio, speaker_audio) |
|
clear_output_audio.click(clear_audio, output_audio, output_audio) |
|
|
|
|
|
generate_audio.click( |
|
gen_audio, |
|
[text, language, speaker_audio, tts_alpha, tts_beta, tts_diffusion_steps, tts_embedding_scale], |
|
[output_audio] |
|
) |
|
|