
    11i                     t    S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  SSKJ	r	J
r
Jr  SSKJr   " S S5      rg)    N)EspeakWrapper   )DEFAULT_VOCABMAX_PHONEME_LENGTHEspeakConfig)logc                   `    \ rS rSrSS\S-  S\4S jjr\S\4S j5       r	S r
SS\4S	 jjrS
rg)	Tokenizer   Nespeak_configvocabc                    U=(       d    [         U l        U(       d
  [        5       nUR                  (       d  [        R
                  " 5       Ul        UR                  (       d  [        R                  " 5       Ul        [        R                  " S5      (       a  [        R                  " S5      Ul         [        R                  R                  UR                  5        [0        R2                  " UR                  5        [0        R4                  " UR                  5        g ! [         Ga+  n[        R                  " SU 35        [        R                   " S5        S["        R"                  " 5        S["        R$                  " 5        S[&        R(                   3n[        R*                  R-                  S5      =(       d    [        R*                  R-                  S5      Ul        UR                  (       d  [/        U5      e [        R                  R                  UR                  5         S nAGNP! [         a  n[/        U S	U 35      eS nAff = fS nAff = f)
NPHONEMIZER_ESPEAK_LIBRARYz&Failed to load espeak shared library: z-Falling back to system wide espeak-ng librarya  Failed to load espeak-ng from fallback. Please install espeak-ng system wide.
	See https://github.com/espeak-ng/espeak-ng/blob/master/docs/guide.md
	Note: you can specify shared library path using PHONEMIZER_ESPEAK_LIBRARY environment variable.
Environment:
	z (z) | z	espeak-ngespeakz: )r   r   r   	data_pathespeakng_loaderget_data_pathlib_pathget_library_pathosgetenvctypescdllLoadLibrary	Exceptionr   errorwarningplatformreleasesysversionutilfind_libraryRuntimeErrorr   set_data_pathset_library)selfr   r   e
error_infos        O/home/james-whalen/.local/lib/python3.13/site-packages/kokoro_onnx/tokenizer.py__init__Tokenizer.__init__   s   +m
(NM&&&5&C&C&EM#%%%4%E%E%GM" 99011%'YY/J%KM"	9KK##M$:$:;, 	##M$;$;<!!-"8"89-  	9II>qcBCKKGH# $,#4#4#6"7r(:J:J:L9MTRUR]R]Q^`  &,[[%=%=& &4))(3 " !))":..9''(>(>?? 9"aS:,#7889%	9s7   3)D I(CI=)H,,
I6IIIIreturnc                 "    U R                  5       $ N)strip)texts    r*   normalize_textTokenizer.normalize_text8   s    zz|    c                     [        U5      [        :  a  [        S[         S35      e[        U R                  R
                  U5       Vs/ s H	  o"c  M  UPM     sn$ s  snf )Nz$text is too long, must be less than z	 phonemes)lenr   
ValueErrormapr   get)r'   phonemesis      r*   tokenizeTokenizer.tokenize<   sU    x=--67I6J)T  tzz~~x8J8a8JJJs   	AAc                    ^  U(       a  [         R                  U5      n[        R                  " XSSS9nSR	                  [        U 4S jU5      5      nUR                  5       $ )z 
lang can be 'en-us' or 'en-gb'
T)preserve_punctuationwith_stress c                 "   > U TR                   ;   $ r/   r   )pr'   s    r*   <lambda>%Tokenizer.phonemize.<locals>.<lambda>M   s    AOr4   )r
   r2   
phonemizer	phonemizejoinfilterr0   )r'   r1   langnormr:   s   `    r*   rH   Tokenizer.phonemizeC   sT     ++D1D''Tt
 776";XFG~~r4   rC   )NN)zen-usT)__name__
__module____qualname____firstlineno__r   dictr+   staticmethodstrr2   r<   rH   __static_attributes__ r4   r*   r
   r
      sM    ':lT&9 ': ':R   K #    r4   r
   )r   r   r   r    r   rG   !phonemizer.backend.espeak.wrapperr   configr   r   r   r   r
   rV   r4   r*   <module>rY      s/     	  
   ; C C @  @ r4   