o
    
i1                     @   s  d dl mZ d dlmZ ddlmZmZmZ ddlZddl	Z	i e
dde
dde
d	d
e
dd
e
dde
dde
dde
dde
dde
dde
dde
dde
dde
dde
dde
dd e
d!d"i e
d#d$e
d%d&e
d'd(e
d)d*e
d+d,e
d-d.e
d/d0e
d1d2e
d3d4e
d5d6e
d7d8e
d9d:e
d;d<e
d=d>e
d?d@e
dAdBe
dCd0i e
dDdEe
dFd4e
dGdHe
dIdJe
dKdLe
dMdNe
dOdPe
dQdRe
dSdTe
dUdVe
dWdXe
dYdZe
d[d\e
d]d^e
d_d`e
dadbe
dcddi e
dedfe
dgdhe
didje
dkdle
dmdne
dodpe
dqdre
dsdte
dudve
dwdxe
dydze
d{d|e
d}d~e
dde
dde
dde
ddi e
dde
dde
dde
dde
dde
dde
dde
dde
dde
dde
dd
e
dde
dde
dde
dde
dd"e
dde
dde
dde
ddiZeddD ]Zedv se
eev sJ ee
efqeedks	J eeei e
de
d de
de
d	 de
de
d de
de
d de
de
d de
de
d	 de
de
d de
de
d de
de
d de
de
d de
de
d	 de
de
d de
de
d de
de
d de
de
d de
de
d de
de
d	 di e
de
d de
de
d de
de
d de
de
d de
de
d de
de
d	 de
de
d de
de
d de
de
d de
de
d de
d-e
d de
d-e
d dÓe
d-e
d dēe
d-e
d dœe
d/e
d dƓe
d/e
d dǓe
d/e
d dȓi e
d/e
d dɓe
d1e
d	 dʓe
d3e
d	 d˓e
dAe
d d̓e
dAe
d d͓e
dAe
d dΓe
dAe
d dϓe
dCe
d dƓe
dCe
d dǓe
dCe
d dȓe
dCe
d dɓe
dDe
d dГe
dDe
d	 dѓe
dDe
d dғe
dDe
d dӓe
dGe
d	 dԓe
dGe
d dՓi e
dGe
d d֓e
dGe
d dדe
dGe
d dؓe
dIe
d	 dٓe
dIe
d dړe
dIe
d dۓe
dIe
d dܓe
dIe
d dݓe
dKe
d dޓe
dMe
d dߓe
dQe
d	 de
dQe
d de
dQe
d de
dQe
d de
dQe
d de
d_e
d	 de
d_e
d di e
d_e
d de
d_e
d de
d_e
d de
dae
d	 de
dae
d de
dae
d de
dae
d de
dae
d de
dce
d	 de
dce
d de
dce
d de
dce
d de
dce
d de
dee
d de
dee
d	 de
dee
d de
dee
d di e
dye
d	 de
dye
d de
dye
d de
dye
d de
dye
d de
de
d	 de
de
d de
de
d de
de
d d e
de
d de
de
d de
de
d	 de
de
d de
de
d de
de
d de
de
d de
de
d d eedksJ eeg dZedZeedksJ eeedZeedksJ eee D ]b\ZZeedv sJ eeedv red	 ev sJ eeed
kr-e\ZZeev r'eev s-J eefeed
kr@ed ev s@J eeD ]\ZZeeeZqBqded< ded< ded< eedkspJ eeedd e D ZeedksJ eei ddddddddddddddd dd!dd"dd#dd$dd%dd&dd'd(d)d*d+d,d-d.d/d0Zed1d2 e D sJ ed3Z ee d4ksJ ee ed5Z!ee!d
ks"J ee!ed6Z"ee"dks5J ee"G d7d8 d8Z#dS (9     )Convert)MToken    )ListOptionalTupleNi0  ai0  i0  ii0  i0  ui0  i0  ei0  i0  oi0  i0  kai0  gai0  kii0  gii0  kui0  gui0  kei0  gei0  koi0  goi0  sai0  zai0  u   ɕii0  u   ʥii0  sui0  zui0  sei0  zei0  soi0  zoi0  tai0  dai0  u   ʨii0  i0  u   ʦui0  i0  tei0  dei0  toi0  doi0  nai0  nii0  nui0  nei0  noi0  hai0  bai0  pai0  hii0  bii0  pii0  fui0  bui0  pui0  hei0  bei0  pei0  hoi0  boi0  poi0  mai0  mii0  mui0  mei0  moi0  jai0  i0  jui0  i0  joi0  i0  rai0  rii0  rui0  rei0  roi0  wai0  i0  i0  i0  i0  vui0  i0  i0  vai0  vii0  vei0  voi0  )i0  i0  X   jewiwuwewou   ᶄiu   ᶄeu   ᶄau   ᶄuu   ᶄou   ᶃiu   ᶃeu   ᶃau   ᶃuu   ᶃoKaKiKuKeKoGaGiGuGeGou   ɕeu   ɕau   ɕuu   ɕou   ʥeu   ʥau   ʥuu   ʥosiziu   ʨeu   ʨau   ʨuu   ʨou   ʦau   ʦiu   ʦeu   ʦotiu   ƫeu   ƫau   ƫuu   ƫodiu   ᶁeu   ᶁau   ᶁuu   ᶁotuduu   ɲiu   ɲeu   ɲau   ɲuu   ɲou   çiu   çeu   çau   çuu   çou   ᶀiu   ᶀeu   ᶀau   ᶀuu   ᶀou   ᶈiu   ᶈeu   ᶈau   ᶈuu   ᶈofafifefou   ᶆiu   ᶆeu   ᶆau   ᶆuu   ᶆou   ᶉiu   ᶉeu   ᶉau   ᶉuu   ᶉo   ))Ggw)jy)Kkw)   çhy)u   ƫty)u   ɕsh)u   ɲny)u   ʥri   )u   ʦts)u   ʨch)u   ᶀby)u   ᶁdy)u   ᶃgy)u   ᶄky)u   ᶆmy)u   ᶈpy)u   ᶉryaeiou   u5   bdfgGhjkKmnprstvwzçƫɕɲʥʦʨᶀᶁᶃᶄᶆᶈᶉ    )r      r~   u   ʔu   ッu   ɴ   ンu   ː   ー   c                 C   s   g | ]}|d  qS )r    ).0vr   r   =/home/ubuntu/.local/lib/python3.10/site-packages/misaki/ja.py
<listcomp>   s    r         «u   “   »u   ”u   、,u   。.u   〈u   〉u   《u   》u   「u   」u   『u   』u   【u   】u   ！!u   （(u   ）):;?)u   ：u   ；u   ？c                 c   s4    | ]\}}t |t |  kod kn  V  qdS )r   N)len)r   kr   r   r   r   	<genexpr>   s   2 r   u   !"(),.:;?—“”…   u   (“u
   !),.:;?”c                   @   sN   e Zd ZdddZededee fddZdeee	ee
  f fd	d
ZdS )JAG2Pcutlet   ❓c                 C   sF   |dv sJ ||| _ || _d | _|dkr!ddlm} | | _d S d S )N)r   pyopenjtalkr   r   )Cutlet)versionunkr   r   )selfr   r   r   r   r   r   __init__   s   zJAG2P.__init__pronreturnc                 C   sL   g }| D ]}|t vrq|r|d | t v r|d  |7  < q|| q|S )Nr   )M2Pappend)r   morasr   r   r   r   
pron2moras  s   zJAG2P.pron2morasc                 C   s(  | j r|  |S g }d\}}d\}}t|D ]a}|d |d }}	g }
|	dkrJt|}
t|
|	ksJt|
|
d dkr?dnd |	ksJJ |
|	f|	dkoc|oc|d jjdkoc|d	 dkpc|
d dk}|sjd\}}|d u rr|d
 n|}g }|
D ]G}|d7 }|dkr||dkrdn|dkrdnd n'||kr|d nd|  k r|k rn n||dkrdnd n|d |d }qxt|
t|ksJ |d }|t	v rt	| }d\}}}|
rd\}}t
t|
|D ]#\}\}}t| }||7 }||dkrdn|dkrdndt| 7 }qn6|rDtdd |D rD|}|d tv r/d}|r.d|d _n|d tv rD|rD|d jsDd|d _|rQ|d u rQ|dksY|r_| s_d|d _q|t||d ||tj||d
 |	||
||dd qd\}}|D ]g}|jd u r|| j|j 7 }|dt| j|j  7 }q|jjr|jjs|r|d tv r|jjd dks|d7 }|d7 }||j|j 7 }||jjd u rdt|j n|jjdt|j  7 }q|r|d jr||d jr|d t|d j  }|d t| }|| |fS )N)r    )Nr   r   	mora_sizer   r   r   r   
chain_flagaccr~      string)r   NN)r   r   _^-c                 s   s    | ]}|t v V  qd S )N)PUNCT_VALUES)r   sr   r   r   r   C  s    z!JAG2P.__call__.<locals>.<genexpr> r   u   ・pos)r   r   r   r   r   accentspitch)texttag
whitespacephonemesr   ri   r   )r   r   run_frontendr   r   r   r   r   r   	PUNCT_MAP	enumeratezipr   allPUNCT_STOPSr   PUNCT_STARTSstripr   
Underscorer   r   r   TAILSr   r   endswith)r   r   tokenslast_alast_pr   mcountwordr   r   r   r   r   r   surfacer   r   r   r	   mr   psresulttkr   r   r   __call__  s   

84$


,
 
*


::$zJAG2P.__call__N)r   r   )__name__
__module____qualname__r   staticmethodstrr   r   r   r   r   r   r   r   r   r   r      s
    
	"r   )$num2kanar   tokenr   typingr   r   r   r   rD   chrr   ranger   r   updateP2R	frozensetVOWELS
CONSONANTSitemsr   r   r   boldnewreplacevaluesr   r   r   r   r   r   r   r   r   r   r   <module>   sJ   	
 !"$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRTUVWX\(	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefh


(  


