Spaces:
Running
Running
File size: 2,849 Bytes
8cb1844 5dfe98a 75ccc38 5dfe98a b23a251 5dfe98a 75ccc38 5dfe98a 5a090e9 5dfe98a 5a090e9 75ccc38 6b48298 1897f0d 1d9e1f7 1897f0d 99db302 fc985f9 19b7774 b0966fd 5dfe98a 75ccc38 5dfe98a 75ccc38 5dfe98a 75ccc38 17ac8e8 5dfe98a 75ccc38 5dfe98a 75ccc38 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
from TTS.utils.synthesizer import Synthesizer
from huggingface_hub import hf_hub_download
import gradio as gr
import tempfile
import os
import requests
REPO_ID = "jhlfrfufyfn/bel-tts"
my_title = "Беларускі тэкст-у-маўленне"
my_description = "Беларускамоўная мадэль для агучвання тэксту (травень 2023)."
be_text = "Гепарды жывуць у адкрытых і прасторных месцах, дзе ёсць шмат здабычы."
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):
print("Original text: ", text)
text = belarusify_russian_text(text)
print("Belarusified text: ", text)
# Sending a request to the fonemizer
headers = {'Content-Type': 'text/plain; charset=utf-8'} # Specify the charset as UTF-8
response = requests.post("http://83.229.87.101/processText",
data=text.encode('utf-8'), # Encode the text as UTF-8
headers=headers)
if response.status_code != 200:
raise Exception(f"Request to fonemizer failed with status code {response.status_code}")
print(response.content)
print(response.headers.get('Content-Type'))
text = response.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=gr.Textbox(lines=5, label="Input Text", value=be_text),
outputs=gr.Audio(type="filepath", label="Output Audio"),
title=my_title,
description=my_description,
article="",
examples=None,
allow_flagging="never"
)
iface.launch()
|