Spaces:
Build error
Build error
| from typing import Dict | |
| from TTS.tts.utils.text.japanese.phonemizer import japanese_text_to_phonemes | |
| from TTS.tts.utils.text.phonemizers.base import BasePhonemizer | |
| _DEF_JA_PUNCS = "、.,[]()?!〽~『』「」【】" | |
| _TRANS_TABLE = {"、": ","} | |
| def trans(text): | |
| for i, j in _TRANS_TABLE.items(): | |
| text = text.replace(i, j) | |
| return text | |
| class JA_JP_Phonemizer(BasePhonemizer): | |
| """🐸TTS Ja-Jp phonemizer using functions in `TTS.tts.utils.text.japanese.phonemizer` | |
| TODO: someone with JA knowledge should check this implementation | |
| Example: | |
| >>> from TTS.tts.utils.text.phonemizers import JA_JP_Phonemizer | |
| >>> phonemizer = JA_JP_Phonemizer() | |
| >>> phonemizer.phonemize("どちらに行きますか?", separator="|") | |
| 'd|o|c|h|i|r|a|n|i|i|k|i|m|a|s|u|k|a|?' | |
| """ | |
| language = "ja-jp" | |
| def __init__(self, punctuations=_DEF_JA_PUNCS, keep_puncs=True, **kwargs): # pylint: disable=unused-argument | |
| super().__init__(self.language, punctuations=punctuations, keep_puncs=keep_puncs) | |
| def name(): | |
| return "ja_jp_phonemizer" | |
| def _phonemize(self, text: str, separator: str = "|") -> str: | |
| ph = japanese_text_to_phonemes(text) | |
| if separator is not None or separator != "": | |
| return separator.join(ph) | |
| return ph | |
| def phonemize(self, text: str, separator="|", language=None) -> str: | |
| """Custom phonemize for JP_JA | |
| Skip pre-post processing steps used by the other phonemizers. | |
| """ | |
| return self._phonemize(text, separator) | |
| def supported_languages() -> Dict: | |
| return {"ja-jp": "Japanese (Japan)"} | |
| def version(self) -> str: | |
| return "0.0.1" | |
| def is_available(self) -> bool: | |
| return True | |
| # if __name__ == "__main__": | |
| # text = "これは、電話をかけるための私の日本語の例のテキストです。" | |
| # e = JA_JP_Phonemizer() | |
| # print(e.supported_languages()) | |
| # print(e.version()) | |
| # print(e.language) | |
| # print(e.name()) | |
| # print(e.is_available()) | |
| # print("`" + e.phonemize(text) + "`") | |