o
    
i'                     @   s   d Z ddlZddlmZmZmZmZmZmZ 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)d*d+d,d-d.dd/	Z	d0d1 Z
d2d3 Zed4krvdd5lmZ e Zeed6e dS dS )7z<
Convert English to Hangul
https://github.com/kyubyong/g2pK
    N   )adjustcomposeto_choseongto_jungseongto_jongseongreconstructAu   에이Bu   비Cu   씨Du   디Eu   이Fu   에프Gu   지Hu	   에이치Iu   아이Ju   제이Ku   케이Lu   엘Mu   엠Nu   엔Ou   오Pu   피Qu   큐u   알u   에스u   티u   유u   브이u	   더블유u   엑스u   와이)	RSTUVWXYZc                 C   s   d}| D ]}|t | 7 }q|S )N )eng2kor)wordretalpha r(   H/home/ubuntu/.local/lib/python3.10/site-packages/misaki/g2pkc/english.pyword_to_hangul*   s   r*   c                 C   s,  t ttd| }t|tddD ]}td| | s#| |vr5t	|
 }| ||} t|| q| }|| d }t|}d}tt|D ]}|| }	|dkr\||d  nd}
|t|d k rl||d  nd	}|t|d
 k r|||d  nd	}d}d}d}d}|	dv r|
dd
 |v r|d	kr|t|	7 }qK|
dd
 |v r|d dvr|t|	7 }qK|d dv r|t|	7 }|d7 }qK|t|	7 }qK|	dv r|t|	7 }|d |v r|d7 }qK|	dv r,|t|	7 }|	dv r|d |v r|d7 }qK|	dkr|d d	v r
|d7 }qK|d |v r|d7 }qK|d7 }qK|	dkr+|d |v r+|d7 }qK|	dv rM|t|	7 }|d |v rL|	dv rH|d7 }qK|d7 }qK|	dv rl|	dv re|d |v re|t|	7 }qK|t|	7 }qK|	d kr|
dkr}|t|	7 }qK|d d!v r|t|	7 }qK|
dv r|t|	7 }qK|d |v r|d"7 }qK|dv r|d |vr|d#7 }qK|	d$kr|
d |v r|d%7 }|t|	7 }|d |v r|d&7 }qK|	d'kr|d |v r|t|	7 }qK|	d d(v r|t|	7 }qK|t|	7 }qKt|}t|}td)d|}| ||} q| S )*u   Convert a string such that English words inside are turned into Hangul.
    string: input string.
    cmu: cmu dict object.

    >>> convert_eng("그 사람 좀 old school이야", cmu)
    그 사람 좀 올드 스쿨이야
    z	[A-Za-z]+T)keyreversez
eng_word :r   r#   r   ^$   )AEAHAXEHIHIXUHAEIOUYBCDFGHJKLMNPQRSTVWXZz$BCDFGHJKLMNPQRSTVWXZPTKN	AEIOULRMNz$BCDFGHJKLMNPQRSTVWXYZu   ᅳBDG)r   r"   r   r   THDHSHZH)r   r"   r   r   r<   r=   r>   u   ᅵu   ᅲr!   r?   )TSDZCHJH)r@   rA   )r   r   NGMNr   z$BCDFGHJKLPQRSTVWXZu   ᆯᄅu	   ᆯ르ERu   ᄋu   ᄅr   AEIOUu	   [ᄀ-ᇿ])listsetrefindallsortedlenprintisupperlowerr*   upperreplacer   ranger   r   r   r   r   sub)stringcmu	eng_wordseng_wordr&   r%   arpabetsphonemesipp_prevp_nextp_next2short_vowelsvowels
consonantssyllable_final_or_consonantsr(   r(   r)   convert_eng0   s   

  
















rd   __main__)cmudictu>   오늘 학교에서 밥을 먹고 집에 와서 game을 했다)__doc__rJ   utilsr   r   r   r   r   r   r$   r*   rd   __name__nltk.corpusrf   dictrV   rN   r(   r(   r(   r)   <module>   sp    	
 