o
    ´
j  ã                   @   s   d dl Z d dlZd dlmZ d dlmZ e adddddd	d
dddddZdefddZ	dd Z
dd Zdd ZdedefddZdS )é    N)Únumerize)Ú
NormalizeruZ   āĻ¸āĻžāĻ˛ā§āĻ˛āĻžāĻ˛ā§āĻ˛āĻžāĻšā§ āĻāĻ˛āĻžāĻāĻšāĻŋ āĻāĻ¯āĻŧāĻž āĻ¸āĻžāĻ˛ā§āĻ˛āĻžāĻŽu%   āĻāĻ˛āĻžāĻāĻšāĻŋāĻ¸ āĻ¸āĻžāĻ˛āĻžāĻŽu.   āĻ°āĻžāĻĻāĻŋāĻāĻ˛ā§āĻ˛āĻžāĻšā§ āĻāĻ¨āĻšā§u7   āĻ°āĻšāĻŽāĻžāĻ¤ā§āĻ˛ā§āĻ˛āĻžāĻšāĻŋ āĻāĻ˛āĻžāĻāĻšāĻŋu$   āĻ°āĻšāĻŋāĻŽāĻžāĻšā§āĻ˛ā§āĻ˛āĻžāĻšu'   āĻšāĻžāĻĢāĻŋāĻ¯āĻžāĻšā§āĻ˛ā§āĻ˛āĻžāĻšu   āĻŦāĻžāĻāĻāĻ¨ui   āĻĻāĻžāĻŽāĻžāĻ¤ āĻŦāĻžāĻ°āĻžāĻāĻžāĻ¤ā§āĻšā§āĻŽ,āĻĻāĻžāĻŽāĻžāĻ¤ āĻŦāĻžāĻ°āĻžāĻāĻžāĻ¤ā§āĻ˛ā§āĻ˛āĻžāĻšÚ u    āĻŦāĻžāĻ )u	   āĻ¸āĻžāĻu   āĻāĻu	   āĻ°āĻžāĻu	   āĻ°āĻšāĻu   āĻ°āĻšāĻŋāĻu   āĻšāĻžāĻĢāĻŋāĻu   āĻŦāĻžāĻ¯āĻŧāĻžāĻ¨u   āĻĻāĻžāĻāĻŦāĻžāĻu   âu   âú/Útextc                 C   s   t  dd| Ą} d|  d } t  d| Ą}dd |D }t|}|D ]}t| Ą dkr1|  || Ą} q |  dd	Ą} |  dd	Ą} | S )
Nz +ú ÚstartÚendu   [Ø-Ûŋ]+c                 S   s   g | ]}|  Ą r|qS Š )Ústrip)Ú.0Úpr
   r
   úW/home/kuhnn/.local/lib/python3.10/site-packages/TTS/tts/utils/text/bangla/phonemizer.pyÚ
<listcomp>/   ķ    ztag_text.<locals>.<listcomp>é   r   )ÚreÚsubÚsplitÚsetÚlenr   Úreplace)r   ÚpartsÚmr
   r
   r   Útag_text'   s   r   c                 C   s&   dd |   Ą D }d dd |D ĄS )Nc                 S   s   g | ]}t |d  qS )Ú
normalized)ÚbnormŠr   Úwordr
   r
   r   r   >   r   znormalize.<locals>.<listcomp>r   c                 S   s   g | ]}|d ur|qS ŠNr
   r   r
   r
   r   r   ?   r   )r   Újoin)ÚsenÚ_wordsr
   r
   r   Ú	normalize<   s   r#   c                 C   s.   t  Ą D ]\}}|| v r|  |t|Ą} q| S r   )Úattribution_dictÚitemsr   r#   )r   r   Úattrr
   r
   r   Úexpand_full_attributionB   s
   r'   c                 C   s   t  dĄ}t  |d| ĄS )Nz\s+r   )r   Úcompiler   )r   Ú_whitespace_rer
   r
   r   Úcollapse_whitespaceI   s   
r*   Úreturnc                 C   sä   t  d| Ą}|d urt | Ą} d}t  || Ą}|D ]}| ddĄ}|  ||Ą} qt| } t| } d| v r>|  ddĄ ddĄ} |  Ą }t  	dĄ}| 
t|Ą}d}	|D ]}
t  dd|
Ą}t|}t|}t|}|d7 }|	|7 }	qR|	S )	Nz[0-9]ue   [ā§Ļ, ā§§, ā§¨, ā§Š, ā§Ē, ā§Ģ, ā§Ŧ, ā§­, ā§Ž, ā§¯]:[ā§Ļ, ā§§, ā§¨, ā§Š, ā§Ē, ā§Ģ, ā§Ŧ, ā§­, ā§Ž, ā§¯]ú:u    āĻāĻ° r   u   [āĨ¤!?]Ú
u   āĨ¤)r   ÚsearchÚbanglaÚ%convert_english_digit_to_bangla_digitÚfindallr   r   r   r   r(   r   Ústrr   r#   r'   r*   )r   ÚresÚpatternÚmatchesr   ÚrÚbn_textÚsentenceEndersÚ	sentencesÚdataÚsentr
   r
   r   Úbangla_text_to_phonemesO   s0   


r<   )r   r/   Úbnnumerizerr   Úbnunicodenormalizerr   r   r$   r2   r   r#   r'   r*   r<   r
   r
   r
   r   Ú<module>   s,    
č