
    $HJj                         d dl mZ d dlmZ d dlZd dlZd dlZ ej                   ej                                 ej                   ej                                 G d d      Z G d d      Zy)    )EspeakWrapper)TupleNc                       e Zd Z 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d"j	                         d# $      Zd(d&Zd' Zy%))EspeakFallbacku   ʔˌn̩u   ʔnu   ʔn̩   a^ɪI   a^ʊW   d^ʒ   ʤ   e^ɪAe   t^ʃ   ʧ   ɔ^ɪYu   ə^lu   ᵊlu   ʲojou   ʲəu   jəu   ʲ u   ɚu   əɹru   ɹxk   çu   əl)u   ɐu   ɬu   ̃c                      t        | d          S )Nr   )len)kvs    W/Users/ahmed/devFolder/claude-voice/.venv/lib/python3.12/site-packages/misaki/espeak.py<lambda>zEspeakFallback.<lambda>   s    s2a5zk    )keyNc                 ~    || _         || _        t        j                  j	                  d|rdnd ddd      | _        y )Nzen-gbusT^)languagepreserve_punctuationwith_stresstie)britishversion
phonemizerbackendEspeakBackend)selfr*   r+   s      r   __init__zEspeakFallback.__init__   sC    !))777456!%4S 8 
r    c                     | j                   j                  |j                  g      }|sy|d   j                         }t	        |       j
                  D ]  \  }}|j                  ||      } t        j                  dd|      j                  t        d      d      }| j                  r7|j                  dd      }|j                  d	d
      }|j                  dd      }nZ|j                  dd      }|j                  dd      }|j                  dd      }|j                  d
d	      }|j                  dd      }|j                  dd      }| j                  dk7  r"|j                  dd      j                  dd      }|j                  dd      dfS )N)NNr   
(\S)\u0329   ᵊ\1)  r   u   e^əu   ɛːu   iəu   ɪə   ə^ʊQ   o^ʊOu   ɜːɹu   ɜɹu   ɜːu   ːou   ɔ2.0u   ɾTu   ʔtr%      )r-   	phonemizetextstriptypeE2Mreplaceresubchrr*   r+   )r/   tokenpsoldnews        r   __call__zEspeakFallback.__call__'   sP   \\##UZZL1U[[]T
HCC%B 'VVM8R088S2F<<FF+BE6*BGS)BFC(BHf-BFF+BFE*BD"%BZZT"<<5 D#&..tS9Bzz#r"A%%r    N)__name__
__module____qualname__sorteditemsrB   r0   rK    r    r   r   r      s    
 e(s3 	t 	s	 	
 	t 	 	v 	d 5 #'r 	V 	D 	C c  eg)+C"
&r    r   c                   *    e Zd ZddZdeedf   fdZy)	EspeakG2PNc                 :   || _         || _        t        j                  j	                  |dddd      | _        ddddd	d
dddddd| _        |dk(  r$| j
                  j                  ddddddddd       t        | j
                  j                               | _        y )NTr%   zremove-flags)r&   r'   r(   r)   language_switchr   r
   u   ʣr   r   r8   r6   Su   ʦr   r   )r   r	   zd^zr   r   r7   r5   zs^szt^sr   r   r:   BCDEVUXZ)u   œ̃u   ɔ̃u   ɑ̃u   ɛ̃u   ʊ̃u   ũu   õu   ɐ̃)	r&   r+   r,   r-   r.   e2mupdaterP   rQ   )r/   r&   r+   s      r   r0   zEspeakG2P.__init__@   s     !))77Dd^ 8 

 stt
 eHHOO3s3#S  $((..*+r    returnc                    |j                  dt        d            j                  dt        d            }|j                  dd      j                  dd      }| j                  j                  |g      }|sy|d   j	                         }| j
                  D ]  \  }}|j                  ||      } |j                  d	d
      }| j                  dk(  rL|j                  t        d      d
      j                  t        d      d
      }t        j                  dd|      }n|j                  dd
      }|j                  dd      j                  dd      }|d fS )N   «i      »i   ())r   Nr   r%   r   r:   r4   i*  r2   r3   -)	rC   rF   r-   r>   r@   r`   r+   rD   rE   )r/   r?   rH   rI   rJ   s        r   rK   zEspeakG2P.__call__W   s   ||D#d),44T3t9E||C&..sD9\\##TF+U[[]HCC%B ! ZZR <<5 CHb)11#c(B?Bx4BC$BZZc"**454xr    rL   )rM   rN   rO   r0   r   strrK   rR   r    r   rT   rT   ?   s    ,.c4i 0 r    rT   )!phonemizer.backend.espeak.wrapperr   typingr   espeakng_loaderr,   rD   set_libraryget_library_pathset_data_pathget_data_pathr   rT   rR   r    r   <module>rq      sc    ;    	   :/::< =   9O99; </& /&d, ,r    