o
    
j
                     @   s2   d dl mZmZ d dlmZmZ G dd dZdS )    )DictList)DEF_LANG_TO_PHONEMIZERget_phonemizer_by_namec                   @   st   e Zd ZdZi Zi fdeddfddZededefddZed	d
 Z	dddZ
defddZddefddZdS )MultiPhonemizeru  🐸TTS multi-phonemizer that operates phonemizers for multiple langugages

    Args:
        custom_lang_to_phonemizer (Dict):
            Custom phonemizer mapping if you want to change the defaults. In the format of
            `{"lang_code", "phonemizer_name"}`. When it is None, `DEF_LANG_TO_PHONEMIZER` is used. Defaults to `{}`.

    TODO: find a way to pass custom kwargs to the phonemizers
    lang_to_phonemizer_namereturnNc                 C   sd   |  D ]!\}}|dkr|t v rt| ||< q|dkr%td| dq|| _| | j| _d S )N z#Phonemizer wasn't set for language z and doesn't have a default.)itemsr   keys
ValueErrorr   init_phonemizerslang_to_phonemizer)selfr   kv r   b/home/kuhnn/.local/lib/python3.10/site-packages/TTS/tts/utils/text/phonemizers/multi_phonemizer.py__init__   s   zMultiPhonemizer.__init__c                 C   s*   i }|   D ]\}}t||d||< q|S )N)language)r
   r   )r   r   r   r   r   r   r   r      s   z MultiPhonemizer.init_phonemizersc                   C   s   dS )Nzmulti-phonemizerr   r   r   r   r   name#   s   zMultiPhonemizer.name|r	   c                 C   s"   |dkrt d| j| ||S )Nr	   z7Language must be set for multi-phonemizer to phonemize.)r   r   	phonemize)r   text	separatorr   r   r   r   r   '   s   zMultiPhonemizer.phonemizec                 C   s   t | j S )N)listr   r   )r   r   r   r   supported_languages,   s   z#MultiPhonemizer.supported_languagesr   levelc                 C   s8   d| }t | d|    t | d|    d S )N	z| > phoneme language: z| > phoneme backend: )printr   r   )r   r   indentr   r   r   
print_logs/   s   zMultiPhonemizer.print_logs)r   r	   )r   )__name__
__module____qualname____doc__r   r   r   staticmethodr   r   r   r   r   intr!   r   r   r   r   r      s    
	

r   N)typingr   r   TTS.tts.utils.text.phonemizersr   r   r   r   r   r   r   <module>   s    