
    #Zj                         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dS )    )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"                                d# $          Zd(d&Zd' Zd%S ))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    Y/Users/jameslopez/projects/MentorCore/.venv/lib/python3.11/site-packages/misaki/espeak.py<lambda>zEspeakFallback.<lambda>   s    s2a5zzk     )keyNc                     || _         || _        t          j                            d|rdnd ddd          | _        d S )Nzen-gbusT^)languagepreserve_punctuationwith_stresstie)britishversion
phonemizerbackendEspeakBackend)selfr*   r+   s      r   __init__zEspeakFallback.__init__   sN    !)776744466!%4S 8 
 
r    c                    | j                             |j        g          }|sdS |d                                         }t	          |           j        D ]\  }}|                    ||          }t          j        dd|                              t          d          d          }| j
        rC|                    dd          }|                    d	d
          }|                    dd          }nn|                    dd          }|                    dd          }|                    dd          }|                    d
d	          }|                    dd          }|                    dd          }| j        dk    r*|                    dd                              dd          }|                    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__'   s   \##UZL11 	:U[[]]T

 	& 	&HCC%%BBVM8R0088S2FF< 		&FF++BE6**BGS))BBFC((BHf--BFF++BFE**BD"%%BZZT""<5  D#&&..tS99Bzz#r""A%%r    N)__name__
__module____qualname__sorteditemsrB   r0   rK    r    r   r   r      sA       
& e(s3 	t 	s	 	
 	t 	 	v 	d 5 #'r 	V 	D 	C c    egg))+ + +C"
 
 
 
& & & & &r    r   c                   2    e Zd ZddZdeedf         fdZdS )	EspeakG2PNc                 B   || _         || _        t          j                            |dddd          | _        ddddd	d
dddddd| _        |dk    r#| j                            ddddddddd           t          | j                                                  | _        d S )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HOO3s3#S     $(..**++r    returnc                    |                     dt          d                                         dt          d                    }|                     dd                               dd          }| j                            |g          }|sdS |d                                         }| j        D ]\  }}|                     ||          }|                     d	d
          }| j        dk    r[|                     t          d          d
                               t          d          d
          }t          j        dd|          }n|                     dd
          }|                     dd                               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   sV   ||D#d)),,44T3t99EE||C&&..sD99\##TF++ 	8U[[]] 	& 	&HCC%%BBZZR  <5  CHHb))11#c((B??Bx44BBC$$BZZc""**4554xr    rL   )rM   rN   rO   r0   r   strrK   rR   r    r   rT   rT   ?   sL        , , , ,.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      s    ; ; ; ; ; ;               				  :/:<< = = =  9O9;; < < </& /& /& /& /& /& /& /&d, , , , , , , , , ,r    