def __init__(self, language: str="ru", mode: Mode=Mode.GRAPHEMES, raw_dict_path=None, trie_path=None,
zalyzniak_dict=ZALYZNYAK_DICT, cmu_dict=CMU_DICT) -> None:
self.data = pygtrie.Trie() # type: Dict[str, Set[Stress]]
self.raw_dict_path = raw_dict_path
self.trie_path = trie_path
if language == "ru" and mode == self.Mode.GRAPHEMES:
self.__init_defaults(RU_GRAPHEME_STRESS_PATH, RU_GRAPHEME_STRESS_TRIE_PATH)
if not os.path.exists(self.raw_dict_path):
from rupo.dict.zaliznyak import ZalyzniakDict
ZalyzniakDict.convert_to_accent_only(zalyzniak_dict, self.raw_dict_path)
elif mode == self.Mode.PHONEMES and language == "en":
self.__init_defaults(EN_PHONEME_STRESS_PATH, EN_PHONEME_STRESS_TRIE_PATH)
if not os.path.exists(self.raw_dict_path):
CMUDict.convert_to_phoneme_stress(cmu_dict, self.raw_dict_path)
else:
assert False
if not os.path.isfile(self.raw_dict_path):
raise FileNotFoundError("Dictionary raw file not found.")
if os.path.isfile(self.trie_path):
self.load(self.trie_path)
else:
self.create(self.raw_dict_path, self.trie_path)
评论列表
文章目录