mirror of https://github.com/coqui-ai/TTS.git
63 lines
2.0 KiB
Python
63 lines
2.0 KiB
Python
from typing import Dict
|
||
|
||
from TTS.tts.utils.text.bangla.phonemizer import bangla_text_to_phonemes
|
||
from TTS.tts.utils.text.phonemizers.base import BasePhonemizer
|
||
|
||
_DEF_ZH_PUNCS = "、.,[]()?!〽~『』「」【】"
|
||
|
||
|
||
class BN_Phonemizer(BasePhonemizer):
|
||
"""🐸TTS bn phonemizer using functions in `TTS.tts.utils.text.bangla.phonemizer`
|
||
|
||
Args:
|
||
punctuations (str):
|
||
Set of characters to be treated as punctuation. Defaults to `_DEF_ZH_PUNCS`.
|
||
|
||
keep_puncs (bool):
|
||
If True, keep the punctuations after phonemization. Defaults to False.
|
||
|
||
Example ::
|
||
|
||
"这是,样本中文。" -> `d|ʒ|ø|4| |ʂ|ʏ|4| |,| |i|ɑ|ŋ|4|b|œ|n|3| |d|ʒ|o|ŋ|1|w|œ|n|2| |。`
|
||
|
||
TODO: someone with Bangla knowledge should check this implementation
|
||
"""
|
||
|
||
language = "bn"
|
||
|
||
def __init__(self, punctuations=_DEF_ZH_PUNCS, keep_puncs=False, **kwargs): # pylint: disable=unused-argument
|
||
super().__init__(self.language, punctuations=punctuations, keep_puncs=keep_puncs)
|
||
|
||
@staticmethod
|
||
def name():
|
||
return "bn_phonemizer"
|
||
|
||
@staticmethod
|
||
def phonemize_bn(text: str, separator: str = "|") -> str: # pylint: disable=unused-argument
|
||
ph = bangla_text_to_phonemes(text)
|
||
return ph
|
||
|
||
def _phonemize(self, text, separator):
|
||
return self.phonemize_bn(text, separator)
|
||
|
||
@staticmethod
|
||
def supported_languages() -> Dict:
|
||
return {"bn": "Bangla"}
|
||
|
||
def version(self) -> str:
|
||
return "0.0.1"
|
||
|
||
def is_available(self) -> bool:
|
||
return True
|
||
|
||
|
||
if __name__ == "__main__":
|
||
txt = "রাসূলুল্লাহ সাল্লাল্লাহু আলাইহি ওয়া সাল্লাম শিক্ষা দিয়েছেন যে, কেউ যদি কোন খারাপ কিছুর সম্মুখীন হয়, তখনও যেন বলে."
|
||
e = BN_Phonemizer()
|
||
print(e.supported_languages())
|
||
print(e.version())
|
||
print(e.language)
|
||
print(e.name())
|
||
print(e.is_available())
|
||
print("`" + e.phonemize(txt) + "`")
|