import os os.environ["CURL_CA_BUNDLE"]="" import gradio as gr import time import urllib.request from pathlib import Path import os import torch import scipy.io.wavfile from espnet2.bin.tts_inference import Text2Speech from espnet2.utils.types import str_or_none from parallel_wavegan.utils import download_pretrained_model gos_text2speech = Text2Speech.from_pretrained( model_tag="https://huggingface.co/ahnafsamin/FastSpeech2-gronings/resolve/main/tts_train_fastspeech2_raw_char_tacotron_train.loss.ave.zip", vocoder_tag="parallel_wavegan/ljspeech_parallel_wavegan.v3" ) hoogelandsters_text2speech = Text2Speech.from_pretrained( model_tag="https://huggingface.co/ahnafsamin/FastSpeech2-gronings-hoogelandsters/resolve/main/tts_train_fastspeech2_raw_char_tacotron_train.loss.ave.zip", vocoder_tag="parallel_wavegan/ljspeech_parallel_wavegan.v3" ) westerkwartiers_text2speech = Text2Speech.from_pretrained( model_tag="https://huggingface.co/ahnafsamin/FastSpeech2-gronings-westerkwartiers/resolve/main/tts_train_fastspeech2_raw_char_tacotron_train.loss.ave.zip", vocoder_tag="parallel_wavegan/ljspeech_parallel_wavegan.v3" ) oldambster_text2speech = Text2Speech.from_pretrained( model_tag="https://huggingface.co/ahnafsamin/FastSpeech2-gronings-oldambster/resolve/main/tts_train_fastspeech2_raw_char_tacotron_train.loss.ave.zip", vocoder_tag="parallel_wavegan/ljspeech_parallel_wavegan.v3" ) def inference(text,lang): with torch.no_grad(): if lang == "gronings": wav = gos_text2speech(text)["wav"] scipy.io.wavfile.write("out.wav", gos_text2speech.fs , wav.view(-1).cpu().numpy()) elif lang == "gronings hoogelandsters": wav = hoogelandsters_text2speech(text)["wav"] scipy.io.wavfile.write("out.wav", hoogelandsters_text2speech.fs , wav.view(-1).cpu().numpy()) elif lang == "gronings westerkwartiers": wav = westerkwartiers_text2speech(text)["wav"] wav = wav * 15 scipy.io.wavfile.write("out.wav", westerkwartiers_text2speech.fs , wav.view(-1).cpu().numpy()) #data, sr = librosa.load("output.wav") #factor = 2.0 #data *= factor #sf.write("out.wav", data, sr) elif lang == "gronings oldambster": wav = oldambster_text2speech(text)["wav"] scipy.io.wavfile.write("out.wav", oldambster_text2speech.fs , wav.view(-1).cpu().numpy()) return "out.wav", "out.wav" title = "GroTTS" examples = [ ['Ze gingen mit klas noar waddendiek, over en deur bragel lopen.', 'gronings'] ] gr.Interface( inference, [gr.inputs.Textbox(label="input text", lines=3), gr.inputs.Radio(choices=["gronings", "gronings hoogelandsters", "gronings westerkwartiers", "gronings oldambster"], type="value", default="gronings", label="language")], [gr.outputs.Audio(type="file", label="Output"), gr.outputs.File()], title=title, examples=examples ).launch(enable_queue=True)