o "e%@sddlZddlZddlZddlmZmZddlZddlZddlZdddDZ dddDZ ddd DZ d dd DZ d dd DZ ddZddZddZddZddZddZddZddZddZd d!ZdS)"N) lazy_pinyinBOPOMOFOcC*g|]}td|dtj|dfqSz%srrecompile IGNORECASE.0xr%/workspace/OpenVoice/text/mandarin.py *r))auㄟˉ)buㄅㄧˋ)cuㄙㄧˉ)duㄉㄧˋ)euㄧˋ)fu ㄝˊㄈㄨˋ)guㄐㄧˋ)hu ㄝˇㄑㄩˋ)iuㄞˋ)juㄐㄟˋ)kuㄎㄟˋ)lu ㄝˊㄛˋ)mu ㄝˊㄇㄨˋ)nuㄣˉ)ouㄡˉ)puㄆㄧˉ)qu ㄎㄧㄡˉ)ruㄚˋ)su ㄝˊㄙˋ)tuㄊㄧˋ)uuㄧㄡˉ)vuㄨㄧˉ)wuㄉㄚˋㄅㄨˋㄌㄧㄡˋ)r uㄝˉㄎㄨˋㄙˋ)yuㄨㄞˋ)zuㄗㄟˋcC&g|]}td|d|dfqSrrr r rrrr)&)8ㄅㄛup⁼wouㄆㄛupʰwouㄇㄛZmwouㄈㄛZfwoㄅup⁼uㄆupʰuㄇruㄈrㄉut⁼uㄊutʰuㄋruㄌrㄍuk⁼uㄎukʰㄏr)ㄐʧ⁼)ㄑʧʰㄒʃ)ㄓuʦ`⁼)ㄔuʦ`ʰㄕzs`ㄖɹ`)ㄗuʦ⁼)ㄘuʦʰuㄙr$uㄚruㄛr ㄜuə)ㄝr)ㄞai)ㄟei)ㄠau)ㄡZou)ㄧㄢZyeNN)ㄢZaNN)ㄧㄣZiNN)ㄣuəNN)ㄤZaNg)ㄧㄥZiNg)ㄨㄥZuNg)ㄩㄥZyuNg)ㄥuəNguㄦuəɻuㄧruㄨr&ㄩuɥˉu→ˊu↑ˇu↓↑ˋu↓u˙,,u。.u!!u??u—-cCrrrr rrrrer))uʃyrH)uʧʰyrE)uʧ⁼yrC)ZNNr)ZNguŋ)r)r)rr cCr+rr,r rrrrpr-):r.r0r1r2r3r5r6r7r8r:r;r<r=r?)rAr )rButʃ⁼)rDutʃʰrF)rIuts`⁼)rJuts`ʰrKrM)rPuts⁼rQutsʰrRrSrTrUrWuɛrXuaɪrZueɪr\uɑʊr^uoʊr_ujɛn)ㄩㄢuɥænr`anrain)ㄩㄣuɥnrbuənrcuɑŋrduiŋreuʊŋrfujʊŋ)rguəŋrhrirjrkrmrorqrsrurwrzr|r~rcCr+rr,r rrrrr-):)r/pwor0r1r2)r4r!r5r6r7)r9r%r:r;r<)r>rr?r@)rButɕ)rDutɕʰ)rGuɕ)rIutʂ)rJutʂʰ)rLuʂ)rNɻ)rPtsrrRrSrT)rVuɤrrrrrr)ruyænrr)rynrrrrr)rguɤŋrhrirj)rlr))rnu˥)rpu˧˥)rru˨˩˦)rtu˥˩rurwrzr|r~rcCs.td|}|D] }||t|d}q|S)Nz\d+(?:\.?\d+)?r)rfindallreplacecn2anZan2cn)textnumbersnumberrrrnumber_to_chineses rcCs|dddddd}tj|dd}d}|D]5}t|t}td|s+||7}qtt|D] }t d d ||||<q1|dkrG|d 7}|d |7}q|S) Nu、rxu;u:F)Zcut_allrvu [一-鿿]z([\u3105-\u3129])$u\1ˉ ) rjiebaZlcutrrrsearchrangelensubjoin)rwordswordZ bopomofosrrrrchinese_to_bopomofos  rcC tD] \}}t|||}q|SN)_latin_to_bopomoforrrregex replacementrrrlatin_to_bopomofo rcCrr)_bopomofo_to_romajirrrrrrbopomofo_to_romaji rrcCrr)_bopomofo_to_iparrrrrrbopomofo_to_iparrcCrr)_bopomofo_to_ipa2rrrrrrbopomofo_to_ipa2rrcCdt|}t|}t|}t|}tdd|}tdd|}tdd|dd}td d |}|S) Ni([aoe])zy\1 u([aoəe])w\1u#([ʦsɹ]`[⁼ʰ]?)([→↓↑ ]+|$)\1ɹ`\2rrOu ([ʦs][⁼ʰ]?)([→↓↑ ]+|$)\1ɹ\2)rrrrrrrrrrrchinese_to_romajircCs(t|}tD] \}}t|||}q|Sr)r_romaji_to_iparrrrrrchinese_to_lazy_ipa)s rcCr) Nrj\1rru!([sɹ]`[⁼ʰ]?)([→↓↑ ]+|$)rrrOu([s][⁼ʰ]?)([→↓↑ ]+|$)r)rrrrrrrrrrrchinese_to_ipa0rrcCs\t|}t|}t|}t|}tdd|}tdd|}tdd|}tdd|}|S) Nrrrru([ʂɹ]ʰ?)([˩˨˧˦˥ ]+|$)u\1ʅ\2u(sʰ?)([˩˨˧˦˥ ]+|$)u\1ɿ\2)rrrrrrrrrrchinese_to_ipa2=sr)ossysrZpypinyinrrrrloggingrrrrrrrrrrrrrrrrrrrs,< >>