o
    ´‹
j  ã                   @   sø   d Z ddlZddlmZ ddlmZ ddlmZ ddlmZ	 ddl
mZ dd	lmZ e d
¡Zd0dd„Zdd„ Zdd„ Zdd„ Zdd„ Zd0dd„Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(ed)efd*d+„Zd,d-„ Z d.d/„ Z!dS )1zSet of default text cleanersé    N©Úanyascii©Ú%replace_numbers_to_characters_in_texté   )Úabbreviations_en)Únormalize_numbers)Úexpand_time_english)Úabbreviations_frz\s+Úenc                 C   s:   |dkrt }n|dkrt}|D ]\}}t ||| ¡} q| S )Nr   Úfr)r   r
   ÚreÚsub)ÚtextÚlangÚ_abbreviationsÚregexÚreplacement© r   úN/home/kuhnn/.local/lib/python3.10/site-packages/TTS/tts/utils/text/cleaners.pyÚexpand_abbreviations   s   r   c                 C   s   |   ¡ S ©N)Úlower©r   r   r   r   Ú	lowercase   ó   r   c                 C   s   t  td| ¡ ¡ S )Nú )r   r   Ú_whitespace_reÚstripr   r   r   r   Úcollapse_whitespace!   s   r   c                 C   s   t | ƒS r   r   r   r   r   r   Úconvert_to_ascii%   r   r    c                 C   s   t  dd| ¡} | S )Nz[\<\>\(\)\[\]\"]+Ú )r   r   r   r   r   r   Úremove_aux_symbols)   s   r"   c                 C   s¤   |   dd¡} |dkr|   dd¡n|   dd¡} |   dd¡} |dkr(|   d	d
¡} | S |dkr4|   d	d¡} | S |dkr@|   d	d¡} | S |dkrP|   d	d¡} |   dd¡} | S )ad  Replace symbols based on the lenguage tag.

    Args:
      text:
       Input text.
      lang:
        Lenguage identifier. ex: "en", "fr", "pt", "ca".

    Returns:
      The modified text
      example:
        input args:
            text: "si l'avi cau, diguem-ho"
            lang: "ca"
        Output:
            text: "si lavi cau, diguemho"
    ú;ú,Úcaú-r   r!   ú:r   ú&z and r   z et Úptz e z i ú'©Úreplace)r   r   r   r   r   Úreplace_symbols.   s     ùûýr-   c                 C   ó   t | ƒ} t| ƒ} | S )zPBasic pipeline that lowercases and collapses whitespace without transliteration.©r   r   r   r   r   r   Úbasic_cleanersO   ó   r0   c                 C   r.   )z;Pipeline for non-English text that transliterates to ASCII.r/   r   r   r   r   Útransliteration_cleanersV   s   r2   c                 C   r.   )zPipeline for German textr/   r   r   r   r   Úbasic_german_cleaners^   r1   r3   c                 C   s    |   dd¡} t| ƒ} t| ƒ} | S )zPipeline for Turkish textÚIu   Ä±)r,   r   r   r   r   r   r   Úbasic_turkish_cleanersf   s   r5   c                 C   s<   t | ƒ} t| ƒ} t| ƒ} t| ƒ} t| ƒ} t| ƒ} t| ƒ} | S )zGPipeline for English text, including number and abbreviation expansion.)r   r	   Úen_normalize_numbersr   r-   r"   r   r   r   r   r   Úenglish_cleanersn   s   r7   c                 C   s,   t | ƒ} t| ƒ} t| ƒ} t| ƒ} t| ƒ} | S )zHPipeline for phonemes mode, including number and abbreviation expansion.)r6   r   r-   r"   r   r   r   r   r   Úphoneme_cleaners{   s   r8   c                 C   s4   t | dd} t| ƒ} t| dd} t| ƒ} t| ƒ} | S )zZPipeline for French text. There is no need to expand numbers, phonemizer already does thatr   ©r   )r   r   r-   r"   r   r   r   r   r   Úfrench_cleaners…   s   r:   c                 C   ó(   t | ƒ} t| dd} t| ƒ} t| ƒ} | S )zyBasic pipeline for Portuguese text. There is no need to expand abbreviation and
    numbers, phonemizer already does thatr)   r9   ©r   r-   r"   r   r   r   r   r   Úportuguese_cleaners   s
   r=   r   Úreturnc                 C   s   t | ƒ} | S )zBasic pipeline for chineser   r   r   r   r   Úchinese_mandarin_cleaners™   s   r?   c                 C   r;   )zPipeline for multilingual textNr9   r<   r   r   r   r   Úmultilingual_cleanersŸ   s
   r@   c                 C   s   |   dd¡} | S )NÚ
r!   r+   r   r   r   r   Úno_cleaners¨   s   rB   )r   )"Ú__doc__r   r   Ú+TTS.tts.utils.text.chinese_mandarin.numbersr   Úenglish.abbreviationsr   Úenglish.number_normr   r6   Úenglish.time_normr	   Úfrench.abbreviationsr
   Úcompiler   r   r   r   r    r"   r-   r0   r2   r3   r5   r7   r8   r:   r=   Ústrr?   r@   rB   r   r   r   r   Ú<module>   s4    



!


	