| import importlib |
| from bert_vits2.text import cleaned_text_to_sequence |
|
|
| language_module_map = { |
| 'zh': "bert_vits2.text.chinese", |
| 'ja': "bert_vits2.text.japanese" |
| } |
|
|
| _loaded_modules = {} |
|
|
|
|
| def get_language_module(language): |
| if language not in _loaded_modules: |
| module_path = language_module_map.get(language) |
| if not module_path: |
| raise ValueError(f"Unsupported language: {language}") |
|
|
| _loaded_modules[language] = importlib.import_module(module_path) |
|
|
| return _loaded_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): |
| language_module = get_language_module(language) |
| norm_text = language_module.text_normalize(text) |
| phones, tones, word2ph = language_module.g2p(norm_text) |
| bert = language_module.get_bert_feature(norm_text, word2ph) |
| return phones, tones, 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 |
|
|