import gradio as gr import spaces import os, torch, io os.system('python -m unidic download') # print("Make sure you've downloaded unidic (python -m unidic download) for this WebUI to work.") from melo.api import TTS import tempfile @spaces.GPU def synthesize(text, speed, progress=gr.Progress()): speed = 1.0 device = 'cuda' if torch.cuda.is_available() else 'cpu' models = { 'EN': TTS(language='EN', device=device), } speakers=['EN-US','EN-Default'] bio = io.BytesIO() models[language].tts_to_file(text, models['EN'].hps.data.spk2id[speakers[0]], bio, speed=speed, pbar=progress.tqdm, format='wav') return bio.getvalue() with gr.Blocks() as demo: gr.Markdown('# Article to Podcast') with gr.Group(): text = gr.Textbox(label="Article Link") btn = gr.Button('Podcasitfy', variant='primary') aud = gr.Audio(interactive=False) btn.click(synthesize, inputs=[text], outputs=[aud]) demo.queue(api_open=True, default_concurrency_limit=10).launch(show_api=True)