Danish_TTS / model.py
Abdullah-Habib's picture
fisrt commit
14e7fb7
"""
doc string
"""
import os
from functools import lru_cache
from pathlib import Path
import sherpa_onnx
from huggingface_hub import hf_hub_download
def get_file( repo_id: str, filename: str, subfolder: str = ".", ) -> str:
"""
doc string
"""
model_filename = hf_hub_download(
repo_id = repo_id,
filename = filename,
subfolder = subfolder,
)
return model_filename
@lru_cache(maxsize = 10)
def get_vits_piper(repo_id: str, speed: float) -> sherpa_onnx.OfflineTts:
"""
doc string
"""
data_dir = "/tmp/espeak-ng-data"
name = "da_DK-talesyntese-medium"
model = get_file(
repo_id = repo_id,
filename = f"{name}.onnx",
subfolder = ".",
)
tokens = get_file(
repo_id = repo_id,
filename = "tokens.txt",
subfolder = ".")
print(model)
tts_config = sherpa_onnx.OfflineTtsConfig(
model = sherpa_onnx.OfflineTtsModelConfig(
vits = sherpa_onnx.OfflineTtsVitsModelConfig(
model = model,
lexicon = "",
data_dir = data_dir,
tokens = tokens,
length_scale = 1.0 / speed,
),
provider = "cpu",
debug = True,
num_threads = 2,
)
)
tts = sherpa_onnx.OfflineTts(tts_config)
return tts
@lru_cache(maxsize = 10)
def get_pretrained_model(repo_id: str, speed: float) -> sherpa_onnx.OfflineTts:
"""
doc string
"""
tts = get_vits_piper(repo_id, speed)
return tts