Spaces:
Running
Running
import torch | |
import torchaudio | |
from speechbrain.inference.TTS import Tacotron2 | |
from speechbrain.inference.vocoders import HIFIGAN | |
from speechbrain.inference.TTS import MSTacotron2 | |
#%% | |
def TTS(INPUT_TEXT: object,CHOİCE:object) -> object: | |
ms_tacotron2 = MSTacotron2.from_hparams(source="speechbrain/tts-mstacotron2-libritts", savedir="pretrained_models/tts-mstacotron2-libritts") | |
hifi_gan = HIFIGAN.from_hparams(source="speechbrain/tts-hifigan-libritts-22050Hz", savedir="pretrained_models/tts-hifigan-libritts-22050Hz") | |
if CHOİCE == "Female": | |
tacotron2 = Tacotron2.from_hparams(source="speechbrain/tts-tacotron2-ljspeech", savedir="tmpdir_tts") | |
hifi_gan = HIFIGAN.from_hparams(source="speechbrain/tts-hifigan-ljspeech", savedir="tmpdir_vocoder") | |
mel_output, mel_length, alignment = tacotron2.encode_text(INPUT_TEXT) | |
waveforms = hifi_gan.decode_batch(mel_output) | |
torchaudio.save('Output/base-TTS.wav',waveforms.squeeze(1), 22050) | |
elif CHOİCE == "Male": | |
REFERENCE_SPEECH = "Voice Samples/natural_m.wav" | |
mel_outputs, mel_lengths, alignments = ms_tacotron2.clone_voice(INPUT_TEXT, REFERENCE_SPEECH) | |
waveforms = hifi_gan.decode_batch(mel_outputs) | |
torchaudio.save("Output/base-TTS.wav", waveforms[0], 22050) | |