
    $HJj                     X    d dl mZ ddlmZmZ ddlmZ ddlZddlZddl	Z	 G d d      Z
y)   )pinyin_to_ipa    )lazy_pinyinStyle)TupleNc                       e Zd Zd
dZed        Zed        Zed        Zed        Zede	fd       Z
ddee	df   fd	Zy)ZHG2PNc                     || _         d | _        || _        || _        |dk(  r#ddlm}  ||      | _        |t        d       y y y )Nz1.1r   )
ZHFrontend)unkz7Warning: en_callable is None, so English may be removed)versionfrontenden_callabler   zh_frontendr   print)selfr   r   r   r   s        S/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/misaki/zh.py__init__zZHG2P.__init__	   sO    &e/&3/DM"OP #     c                 V   | j                  dd      } | j                  dd      } | j                  dd      } | j                  dd      } | j                  t        d	      t        d
      z   d      j                  t        d      t        d
      z   d      } t        d
      | vsJ |        | S )Nu   ˧˩˧u   ↓u   ˧˥u   ↗u   ˥˩u   ↘u   ˥u   →i{  i)  u   ɨiy  )replacechr)ps    r   retonezZHG2P.retone   s    IIh&IIfe$IIfe$IIdE"IIc#hs3x'.66s3xC7H$O3xq #!# r   c                 J    dj                  d t        |       d   D              S )N c              3   F   K   | ]  }t         j                  |        y wN)r	   r   ).0r   s     r   	<genexpr>zZHG2P.py2ipa.<locals>.<genexpr>    s     E0D1u||A0D   !r   )joinr   )pys    r   py2ipazZHG2P.py2ipa   s!    wwEb0A!0DEEEr   c                 j    t        | t        j                  d      }dj                  d |D              S )NT)styleneutral_tone_with_fiver   c              3   F   K   | ]  }t         j                  |        y wr   )r	   r$   )r   r#   s     r   r    z!ZHG2P.word2ipa.<locals>.<genexpr>%   s     :'Bu||B''r!   )r   r   TONE3r"   )wpinyinss     r   word2ipazZHG2P.word2ipa"   s)    au{{4Pww:':::r   c                    | j                  dd      j                  dd      } | j                  dd      j                  dd      } | j                  dd      } | j                  d	d
      } | j                  dd      } | j                  dd      } | j                  dd      j                  dd      } | j                  dd      j                  dd      } | j                  dd      j                  dd      } | j                  dd      j                  dd      } | j                  dd      j                  dd      } | j                         S )Nu   、z, u   ，u   。z. u   ．u   ！z! u   ：z: u   ；z; u   ？z?    «u    “   »u   ” u   《u   》u   「u   」u   【u   】u   （z (u   ）z) )r   strip)texts    r   map_punctuationzZHG2P.map_punctuation'   s   ||E4(00=||E4(00=||E4(||E4(||E4(||E4(||D&)11$?||E6*225&A||E6*225&A||E6*225&A||E4(00=zz|r   returnc                    t        j                  d| d         }d}t        j                  d|       D ];  }|r/t        j                  |d      }dj                  d |D              }||z  }| }= |j                  t        d	      d      S )
Nu	   [一-鿿]r   r   u   [一-鿿]+|[^一-鿿]+F)cut_all c              3   F   K   | ]  }t         j                  |        y wr   )r	   r,   )r   r*   s     r   r    z$ZHG2P.legacy_call.<locals>.<genexpr>=   s     "De5>>!#4er!   i/  )rematchfindalljiebalcutr"   r   r   )r1   is_zhresultsegmentwordss        r   legacy_callzZHG2P.legacy_call6   s    ?T!W5zz$FNG

7E:(("De"DDgFIE O ~~c#h++r   c                 <   |j                         syt        j                  |d      }t        j	                  |      }| j
                  t        j                  |      d fS || j                  n|}g }t        j                  d|      D ]  \  }}|j                         |j                         }}|r$|j                  | j                  |      d          L||j                  | j                         j|j                   ||              dj                  |      d fS )N)r   Nan2cnz1([A-Za-z \'-]*[A-Za-z][A-Za-z \'-]*)|([^A-Za-z]+)r   r6   )r0   cn2an	transformr	   r2   r   rA   r   r8   r:   appendr   r"   )r   r1   r   segmentsenzhs         r   __call__zZHG2P.__call__B   s    zz|tW-$$T*== $$T*D00*5*=d&&;jj!UW[\FBXXZBb 1! 45$)B0 ] xx!4''r   )Nu   ❓Nr   )__name__
__module____qualname__r   staticmethodr   r$   r,   r2   strrA   r   rJ    r   r   r	   r	      s    	Q   F F ; ;   	,S 	, 	,(%T	2B (r   r	   )transcriptionr   pypinyinr   r   typingr   rD   r;   r8   r	   rP   r   r   <module>rT      s#    ( '    	M( M(r   