
    $HJj$              	          U d dl Z d dlmZmZmZmZmZ d dlmZ d dl	m
Z
mZmZmZ i ddgddgd	d
gddgddgddgdddgddgddgddgddgddgddgd d!gd"d#d$gd%d&gd'd(gd)gd*gd+gd,gd-Zeeeeed.f      f   ed/<   ej#                         Zd0gd1gd2gd3gd4gd5Zeeeeed.f      f   ed6<   ej#                         Zd7gd8gd9d:gd;gd<Zeeeeed.f      f   ed=<   ej#                         Zi d>d?gd@dAgdBdCgdDdEgdFdGgdHdIgdJdKgdLdMgdNdOgdPdQgdRdSgdTdUgdVdWgdXdYgdZd[gd\d]gd^d_gi d`dagdbdcgdddegdfdggdhdigdjdkgdldmgdndogdpdqgdrdsgdtdugdvdwgdxdygdzdygd{d|gd}d~gddgddgiZeeeeed.f      f   ed<   ej#                         ZdPddgiZeeeeed.f      f   ed<   dPddgiZeeeeed.f      f   ed<   ddddddZdedefdZdedee   fdZdedee   fdZdedee   fdZ dedee   fdZ!deeed.f      dedeeed.f   ddf   fdZ"dedeeed.f      fdZ#y)    N)Dict	GeneratorListOptionalTuple)
OrderedSet)	to_finalsto_initials	to_normalto_tone3b)pc)u   ʦʰch)u   ꭧʰd)tf)r   g)kh)x)r   j)u   ʨr   )u   kʰl)r   m)r   n)r   r   )u   pʰq)u   ʨʰr)u   ɻ)u   ʐs)r   sh)u   ʂ)u   tʰ)u   ɕ)u   ʦ)u   ꭧ)r   r   zzh.INITIAL_MAPPING)r   m0)r      ŋ0)r#   )n0)r$   )hmhngr   r   ngSYLLABIC_CONSONANT_MAPPINGS)r      ɔ0)   ɛ0)u   ɚ0)u   aɚ̯0)r*   )io   êeroINTERJECTION_MAPPINGSa)a0ai)   ai̯0an)r2   r   ang)r2      ŋao)   au̯0e)u   ɤ0ei)   ei̯0en)   ə0r   eng)r>   r7   i)i0ia)r   r2   ian)r   r+   r   iang)r   r2   r7   iao)r   r9   ie)r   e0in)rA   r   iou)r      ou̯0ing)rA   r7   iong)r      ʊ0r7   ong)rM   r7   ou)rJ   u)u0uei)wr<   ua)rS   r2   uai)rS   r4   uan)rS   r2   r   uen)rS   r>   r   uang)rS   r2   r7   ueng)rS   r>   r7   uo)rS   o0r/      ü)y0u   üe)   ɥrG   u   üan)r^   r+   r   u   ün)r]   r   FINAL_MAPPING)u   ɻ̩0)u   ʐ̩0FINAL_MAPPING_AFTER_ZH_CH_SH_R)u   ɹ̩0)u   z̩0FINAL_MAPPING_AFTER_Z_C_Su   ˥u   ˧˥u   ˧˩˧u   ˥˩ )               pinyinreturnc                     t        | dd      }t        |      dk(  rt        d      |d   }	 t        |      }|t        vrt        d| d      |S # t        $ r}t        d| d      |d }~ww xY w)NT)neutral_tone_with_fivev_to_ur   z.Parameter 'pinyin': Tone couldn't be detected!zParameter 'pinyin': Tone '' couldn't be detected!)r   len
ValueErrorintTONE_MAPPING)rh   pinyin_tone3tone_nr_strtone_nrerrors        ^/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/misaki/transcription.pyget_tonerx      s    &dK,!
E
FFR +c+G
 L 
1+>UV
WW	. 
 c
1+>UV
W]bbcs   A 	A0A++A0normal_pinyinc                     | t         v r| S y N)SYLLABIC_CONSONANTSry   s    rw   get_syllabic_consonantr~      s    ))	    c                     | t         v r| S y r{   )INTERJECTIONSr}   s    rw   get_interjectionr      s    m#	r   c                 ~    | t         v ry | t        v ry t        | d      }|dk(  ry |t        vrt	        d| d      |S )NT)strictrb   z$Parameter 'normal_pinyin': Initial 'rn   )r|   r   r
   r"   rp   )ry   pinyin_initials     rw   get_initialsr      s_    ))m#}T:.r ?*
,^,<<STV V 
r   c                     | t         v ry | t        v ry t        | dd      }|dk(  rt        d      |t        vrt        d| d      |S )NT)r   rl   rb   z6Parameter 'normal_pinyin': Final couldn't be detected!z"Parameter 'normal_pinyin': Final 'rn   )r|   r   r	   rp   r_   )ry   pinyin_finals     rw   
get_finalsr      sa    ))m#=dC,R
M
NN &
9,G^_
``	r   variantstonec              #   J   K   t         |   fd| D        E d {    y 7 w)Nc              3   F   K   | ]  }t        fd |D                yw)c              3   B   K   | ]  }|j                  d         yw)0N)replace).0phonemetone_ipas     rw   	<genexpr>z'apply_tone.<locals>.<genexpr>.<genexpr>   s     	@W'//#x
(s   N)tuple)r   variantr   s     rw   r   zapply_tone.<locals>.<genexpr>   s$       
	@	@@s   !)rr   )r   r   r   s     @rw   
apply_toner      s(     $(  s   #!#c                 p   t        |       }t        |       }t        |      }| t        |   }t	        t        ||            }|S t        |      }| t        |   }t	        t        ||            }|S g }	t        |      }
t        |      }|J |
t        |
   }|	j                  |       |
dv r|t        v r
t        |   }n|
dv r|t        v r
t        |   }n	t        |   }t        t        ||            }|	j                  |       t!        |	      dk\  sJ t	        d t#        j$                  |	 D              }|S )N>   r   r   r   r!   >   r   r   r    rc   c              3   l   K   | ],  }t        t        j                  j                  |             . y wr{   )r   	itertoolschainfrom_iterable)r   combinations     rw   r   z pinyin_to_ipa.<locals>.<genexpr>  s,      )0 
)//
'
'
450s   24)rx   r   r   r0   r   r   r~   r)   r   r   r"   appendr`   ra   r_   listro   r   product)rh   ru   pinyin_normalinterjectioninterjection_ipa_mappinginterjection_ipasyllabic_consonantsyllabic_consonant_ipa_mappingsyllabic_consonant_ipapartsr   r   initial_phonemesfinal_phonemesall_syllable_combinationss                  rw   pinyin_to_ipar      s]   V'F#-!-0,4]C!*-Ew"OP-m<#%@AS%T"'
3QSZ([\!!
%..M*,		!!	!&~6	LL!" ..<Ca3a3LAN(\=V-V.|<N"<0N
>7;<.,,~	Uq( ) ((%0) 
 
#"r   )$r   typingr   r   r   r   r   ordered_setr   pypinyin.contrib.tone_convertr	   r
   r   r   r"   str__annotations__keysINITIALSr)   r|   r0   r   r_   FINALSr`   ra   rr   rq   rx   r~   r   r   r   r   r    r   rw   <module>r      s    9 9 " U U5x5	{5 5 x	5
 x5 x5 5 y5 z5 x5 x5 x5 z5 	{5 5  x!5" 	#5$ 	zyy	+5c4c3h001 6 ! 

yy	
A T#tE#s(O'<"<=  2668  
	
 
;z; tCeCHo!667  &**,.3y.3.3 .3 ,	.3
 .3 z.3 .3 .3 -.3 y.3 .3 
	.3 	
.3 .	.3 .3  !.3$ .	%.3& ,'.3( 	
).3* -+.3, -.3. y/.32 .	3.34 5.36 .	7.38 
	9.3< 
	=.3> 	
?.3@ 	
A.3D E.3J }K.3T 	U.3V ,W.3X 	
Y.3Z +[.3tCeCHo../ .` 
			 
JD S$uS#X*?%? @  
I? 4T%S/%: :; ( 
S S &# (3- C HSM   (c hsm &eCHo. c icSVhY]_cHc>d +## +#*U38_"= +#r   