|
import gradio as gr |
|
import torch |
|
from speechbrain.inference.TTS import Tacotron2 |
|
from speechbrain.inference.vocoders import HIFIGAN |
|
from scipy.io.wavfile import write |
|
|
|
|
|
hifi_gan = HIFIGAN.from_hparams(source="speechbrain/tts-hifigan-ljspeech", savedir="tmpdir_vocoder") |
|
tacotron2 = Tacotron2.from_hparams(source="speechbrain/tts-tacotron2-ljspeech", savedir="tmpdir_tts") |
|
|
|
|
|
def synthesize_speech(text): |
|
|
|
|
|
mel_output, mel_length, alignment = tacotron2.encode_batch([text]) |
|
|
|
|
|
waveforms = hifi_gan.decode_batch(mel_output) |
|
|
|
|
|
|
|
write("speech.wav", rate=22050, data=waveforms.squeeze().cpu().numpy()) |
|
return "speech.wav" |
|
|
|
|
|
iface = gr.Interface( |
|
fn=synthesize_speech, |
|
inputs=gr.Textbox(lines=5, label="Input Text"), |
|
outputs=gr.Audio(label="Output Audio", type="filepath"), |
|
title="TTS Demo", |
|
description="Enter text to synthesize speech." |
|
) |
|
|
|
iface.launch() |
|
|