TTS-Demo / src /text /cleaner.py
valtecAI-team's picture
Upload folder using huggingface_hub
f8b4a6c verified
from . import cleaned_text_to_sequence
import copy
_language_modules = {}
def _get_language_module(language):
"""Lazy import language modules to avoid unnecessary dependencies."""
if language == 'VI':
from . import vietnamese
_language_modules['VI'] = vietnamese
else:
raise ValueError(f"Unsupported language: {language}")
return _language_modules[language]
def clean_text(text, language):
language_module = _get_language_module(language)
norm_text = language_module.text_normalize(text)
phones, tones, word2ph = language_module.g2p(norm_text)
return norm_text, phones, tones, word2ph
def clean_text_bert(text, language, device=None):
language_module = _get_language_module(language)
norm_text = language_module.text_normalize(text)
phones, tones, word2ph = language_module.g2p(norm_text)
word2ph_bak = copy.deepcopy(word2ph)
for i in range(len(word2ph)):
word2ph[i] = word2ph[i] * 2
word2ph[0] += 1
bert = language_module.get_bert_feature(norm_text, word2ph, device=device)
return norm_text, phones, tones, word2ph_bak, bert
def text_to_sequence(text, language):
norm_text, phones, tones, word2ph = clean_text(text, language)
return cleaned_text_to_sequence(phones, tones, language)
if __name__ == "__main__":
pass