phonemize
Version:
Fast phonemizer with rule-based G2P prediction. Pure JavaScript implementation.
2 lines (1 loc) • 814 B
JavaScript
;var RUSSIAN_TO_PHONEME={a:`a`,e:`e`,i:`i`,o:`o`,u:`u`,y:`ɨ`,b:`b`,v:`v`,g:`ɡ`,d:`d`,zh:`ʐ`,z:`z`,j:`j`,k:`k`,l:`l`,m:`m`,n:`n`,p:`p`,r:`r`,s:`s`,t:`t`,f:`f`,kh:`x`,ts:`ts`,ch:`tɕ`,sh:`ʂ`,shch:`ɕː`,"'":`ʲ`,'"':``},RussianG2PModel=function(){function t(){this.id=`ru-g2p`,this.name=`Russian G2P Processor`,this.supportedLanguages=[`ru`]}return t.prototype.predict=function(e,t,n){return this.processRussian(e)},t.prototype.processRussian=function(t){t=t.toLowerCase();for(var n=``,r=[`e`,`yo`,`i`,`yu`,`ya`],i=0;i<t.length;i++){var a=t[i],o=t[i+1],s=RUSSIAN_TO_PHONEME[a]||a;RUSSIAN_TO_PHONEME[a]&&!r.includes(a)&&o&&r.includes(o)&&([`j`,`ʃ`,`ʒ`,`ts`].includes(s)||(s+=`ʲ`)),n+=s}return n.replace(/ʲj/g,`j`)},t.prototype.addPronunciation=function(e,t){},t}();module.exports=RussianG2PModel;