from TTS.utils.synthesizer import Synthesizer from huggingface_hub import hf_hub_download import gradio as gr import tempfile import os REPO_ID = "jhlfrfufyfn/old-bel-tts" my_title = "Беларускі тэкст-у-маўленне" my_description = "Беларускамоўная мадэль для агучвання тэксту. " be_text = "Гепарды жывуць у адкрытых і прасторных месцах, дзе ёсць шмат здабычы." my_inputs = [ gr.inputs.Textbox(lines=5, label="Input Text", default=be_text), ] my_outputs = gr.outputs.Audio(type="file", label="Output Audio") def belarusify_russian_text(text: str): text = text.replace("и", "і") text = text.replace("іу", "іў") text = text.replace("оу", "оў") text = text.replace("ау", "аў") text = text.replace("ыу", "ыў") text = text.replace("уу", "уў") text = text.replace("юу", "юў") text = text.replace("еу", "еў") text = text.replace("ёу", "ёў") text = text.replace("щ", "шч") return text def tts(text: str): text = belarusify_russian_text(text) best_model_path = hf_hub_download(repo_id=REPO_ID, filename="model.pth") config_path = hf_hub_download(repo_id=REPO_ID, filename="config.json") vocoder_path = hf_hub_download(repo_id=REPO_ID, filename="vocoder.pth") scale_stats_path = hf_hub_download(repo_id=REPO_ID, filename="scale_stats.npy") vocoder_config_path = hf_hub_download(repo_id=REPO_ID, filename="vocoder_config.json") # init synthesizer synthesizer = Synthesizer( best_model_path, config_path, None, None, vocoder_path, vocoder_config_path, None, None, False ) # create audio file wavs = synthesizer.tts(text) with tempfile.NamedTemporaryFile(suffix = ".wav", delete = False) as fp: synthesizer.save_wav(wavs, fp) return fp.name print("CWD IS ", os.getcwd()) print("LIST IS", os.listdir()) iface = gr.Interface( fn=tts, inputs=my_inputs, outputs=my_outputs, title=my_title, description = my_description, article = "", examples = "", allow_flagging=False ) iface.launch()