
    Pi,              !          d Z ddlZddlZddlmZ ddlmZ ddlmZm	Z	 d Z
d Zd Zej                             ej                     d	
          d             Zej                            dddg          d             Zej                             e	j                     p e	j        d           d
          ej                            dddg          d                         Zej                            dddg          d             Zd Zej                            dddg          d             Zej                            dddddg dddgfddddg dddgfddddg dg dfddddg dg dfd dddg d!d"d"gfd dddg d!d#d"gfd dddg d!g d$fd dddg d!g d%fd&dddg dd'd(gfd&dddg dd)d(gfd&dddg dg d*fd&dddg dg d+fddddg dd,d-gfddddg dd.d-gfddddg dg d/fddddg dg d0fd dddg d!d1d2gfd dddg d!d3d2gfd dddg d!g d4fd dddg d!g d5fd&dddg dd6d7gfd&dddg dd8d7gfd&dddg dg d9fd&dddg dg d:fg          d;             Zej                            d<dddd=gg fdddd=gg fdddd=gd=gfdddd=gd=gfd ddd=gg fd ddd=gg fd ddd=gd=gfd ddd=gd=gfd&ddd=gg fd&ddd=gg fd&ddd=gd=gfd&ddd=gd=gfg          d>             ZdS )?z)Test of the phonemizer.phonemize function    N	phonemize)	Separator)EspeakBackendEspeakMbrolaBackendc                  H   t          j        t                    5  t          dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          dd           d d d            n# 1 swxY w Y   t          j        t                    5  t          ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          ddd	           d d d            n# 1 swxY w Y   t          j        t                    5  t          ddd
t	          dd d                     d d d            d S # 1 swxY w Y   d S )N fetiv)backendfooTfestival)tier   mbrolasegmentsespeak -)r   r   	separator)pytestraisesRuntimeErrorr   r        g/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/test/test_phonemize.pytest_bad_backendr      s   	|	$	$ ' '"g&&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
|	$	$ % %"e$$$$% % % % % % % % % % % % % % % 
|	$	$ 4 4"$
33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	|	$	$ 2 2"$11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	|	$	$ 4 4"$
33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	|	$	$ 1 1D(T3//	1 	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1sf   8<<A::A>A>B==CC!D  DD$EE
E'#FFFc                      t          j        t                    5  t          ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          dd	d           d d d            d S # 1 swxY w Y   d S )
Nr	   fr-frr   )languager   ffrr   z/path/to/nonexisting/filer   creepr   r   r   r   r   r   r   test_bad_languager"   .   s   	|	$	$ < <"w
;;;;< < < < < < < < < < < < < < < 
|	$	$ 8 8"uh77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
|	$	$ P P":JOOOOP P P P P P P P P P P P P P P 
|	$	$ < <"w
;;;;< < < < < < < < < < < < < < < < < <sC   9= =A<<B B  B??CC#DD
Dc                     g d} t           j                            |           }t          | ddd          }t          |ddd          }t          |dddd          }d |D             }d |D             }t	          |t
                    sJ t	          |t                    sJ t           j                            |          |k    sJ t           j                            |          |k    sJ || k    sJ d S )	Nzone twothreez	four fiveen-usr   T)r   r   strip)r   r   r'   prepend_textc                     g | ]
}|d          S )r   r   .0os     r   
<listcomp>z"test_text_type.<locals>.<listcomp>D   s       aQqT   r   c                     g | ]
}|d          S )   r   r*   s     r   r-   z"test_text_type.<locals>.<listcomp>E   s    QAaDr   )oslinesepjoinr   
isinstanceliststr)text1text2phn1phn2out3text3phn3s          r   test_text_typer=   <   s   ---EJOOE""EUWhdKKKDUWhdKKKDUWhd"&( ( (D  4   E$DdD!!!!!dC     :??4  D((((:??4  D((((E>>>>>>r   z)language switch only exists for espeak-ng)reasonc                  J    ddg} t          | dddd          }|dd	gk    sJ d S )
Nbonjour applebonjour toir   r   Tzremove-utterance)r   r   r(   language_switch)r@   r	   )rA   u   bɔ̃ʒuʁ twa r   )textouts     r   test_lang_switchrE   N   sQ     ]+D
*, , ,C (*LMMMMMMMr   njobs      c                    g d}t          |ddd|           }|g dk    sJ t          d                    |          ddd|           }|d                    g d	          k    sJ t          t          j                            |          ddd|           }|t          j                            g d
          k    sJ d S )Nr$   r&   r   Tr   r   r'   rF   )	   wʌn tuː   θɹiːu   foːɹ faɪvr   F)rK   rL      foːɹ faɪv )u
   wʌn tuː u   θɹiː rM   r   r2   r0   r1   rF   rC   rD   s      r   test_espeakrP   \   s    ,,,D
w%! ! !C :::::::
(5" " "C #((DDDEEEEEE


5" " "C "*//"M"M"MNNNNNNNNr   mb-fr1z$mbrola or mb-fr1 voice not installedc                     g d}t          |dd|d          }|g dk    sJ d | j        D             }d|v sJ d	|v sJ d S )
N)zun deuxtroiszquatre cinqrQ   zespeak-mbrolaT)r   r   rF   preserve_punctuation)z9~d2tRwazkatRse~kc                     g | ]
}|d          S )rG   r   )r+   msgs     r   r-   z&test_espeak_mbrola.<locals>.<listcomp>   s    7773A777r   z1espeak-mbrola backend cannot preserve punctuationz5espeak-mbrola backend cannot preserve word separation)r   record_tuples)caplogrF   rC   rD   messagess        r   test_espeak_mbrolar[   p   s     /..D
!# # #C .......77&"6777H>(JJJJBhNNNNNNr   c                    g d}t          |ddd|           }|g dk    sJ t          d                    |          ddd|           }|d                    g d	          k    sJ t          t          j                            |          ddd|           }|t          j                            g d	          k    sJ d S )
Nr$   r&   r   FrJ   )z	wahn tuw zthriy z
faor fayv r   T)zwahn tuwthriyz	faor fayvrN   rO   s      r   test_festivalr^      s    ,,,D
w
5" " "C 7777777
*%! ! !C #((===>>>>>>


%! ! !C "*//"D"D"DEEEEEEEEr   c                      g d} t          j        t                    5  t          | ddd           d d d            n# 1 swxY w Y   t          j        t                    5  t          | ddd           d d d            d S # 1 swxY w Y   d S )Nr$   r&   r   T)r   r   with_stresszremove-flags)r   r   rB   r!   )rC   s    r   test_festival_badra      s>   ,,,D	|	$	$ J J7JD	J 	J 	J 	JJ J J J J J J J J J J J J J J 
|	$	$ , ,7J*	, 	, 	, 	,, , , , , , , , , , , , , , , , , ,s!   >AA"BB
Bc                    g d}t          |ddd|           }|g dk    sJ t          d                    |          ddd|           }|d                    g d          k    sJ t          t          j                            |          ddd	|           }|t          j                            g d
          k    sJ d S )N)u   untuʼuleʼ kaʼapʼeʼelu   oʼoxpʼeʼelu   kantuʼuloʼon chinchoyucatecr   FrJ   )u   untṵːlḛ ka̰ːpʼḛːl u   o̰ːʃpʼḛːl #   kantṵːlo̰ːn t̠͡ʃint̠͡ʃo r   )   untṵːlḛ ka̰ːpʼḛːl   o̰ːʃpʼḛːlrd   T)re   rf   u"   kantṵːlo̰ːn t̠͡ʃint̠͡ʃorN   rO   s      r   test_segmentsrg      s7    TSSD
y*5" " "C  e e e e e e e
J5" " "C #((ccce e e e e e 

	:%! ! !C "*//bbbd d d d d d d dr   z?backend, empty_lines, punctuation, prepend_text, text, expectedr   F)hello world!r	   goodbye   həloʊ wɜːld 
   ɡʊdbaɪ T   həloʊ wɜːld! )rj   r	   rk   )rl   r	   rk   r   )
achi acho?r	   	achi acho   ʌtʃɪ ʌtʃʊ    ʌtʃɪ ʌtʃʊ? )ro   r	   ro   )rp   r	   ro   r   hhaxlow werld guhdbay hhaxlow werld! )rq   r	   rr   )rs   r	   rr   rh   rj   ri   rk   rh   rl   )rt   r	   r	   ru   )rv   rw   ru   rm   ro   rn   ro   rm   rp   )rx   rw   ry   )rz   rw   ry   rh   rq   ri   rr   rh   rs   )r{   rw   r|   )r}   rw   r|   c           	      P    | dk    rdnd}|t          ||| |||          k    sJ d S )Nr   creer&   )r   r   r(   rT   preserve_empty_linesr   )r   empty_linespunctuationr(   rC   expectedr   s          r   test_preserve_empty_linesr      sa    V !J..vvGHyx|({L L L L L L L L Lr   z1backend, empty_lines, punctuation, text, expectedr	   c                 N    | dk    rdnd}|t          ||| ||          k    sJ d S )Nr   r   r&   )r   r   rT   r   r   )r   r   r   rC   r   r   s         r   test_empty_inputr     s^     !J..vvGHyx({L L L L L L L L Lr   )__doc__r0   r   phonemizer.phonemizer   phonemizer.separatorr   phonemizer.backendr   r   r   r"   r=   markskipifis_espeak_ngrE   parametrizerP   is_availableis_supported_languager[   r^   ra   rg   r   r   r   r   r   <module>r      s   0 / 
			  * * * * * * * * * * * * A A A A A A A A1 1 1&< < <  $ ""$$$6  8 8N N8 8N 1a&))O O *)O& ((*** <11(;;;1  3 3 1a&))O O *)	3 3
O  1a&))F F *)F&, , , 1a&))d d *)d, E	5%+++.	0 
5$+++ ,/	1 
4+++222	4 
4u+++333	5 
UE5+++ "56	8 
UD%+++!#67	9 
T5%+++:::	< 
T4+++;;;	= 
UE5+++z*	, 
UD%+++
+	- 
T5%+++...	0 
T4+++///	1 
5%+++13LM	O 
5$+++24MN	P 
4+++WWW	Y 
4t+++XXX	Z 
UE4+++/1ST	V 
UD$+++02TU	W 
T5$+++___	a 
T4+++```	b 
UE4+++/1HI	K 
UD$+++02IJ	L 
T5$+++SSS	U 
T4+++TTT	VMHHWIX IXTL LUIX IXTL 7	5%"r*	5$b)	4rd+	4tbT*	UEB4,	UD2$+	T52$-	T4"t,	UEB4,	UD2$+	T52$-	T4"t,:./ /L L/ /L L Lr   