a
    h                     @   sr   d dl Z d dlZd dlZd dlmZmZ dd Zdd Zdd Z	d	d
 Z
ejeejdddZdd Zdd ZdS )    N)download_url_to_filemodule_utilsc                   C   s   dS )N)&_-!'(),.:;? abcdefghijklmnopqrstuvwxyz r*   r*   r*   M/var/www/auris/lib/python3.9/site-packages/torchaudio/pipelines/_tts/utils.py
_get_chars   s    r,   c                   C   s   dS )N)`r   r   r   r   r   r	   r
   r   r   r   r   r   ZAAZAA0ZAA1ZAA2ZAEZAE0ZAE1ZAE2ZAHZAH0ZAH1ZAH2ZAOZAO0ZAO1ZAO2ZAWZAW0ZAW1ZAW2ZAYZAY0ZAY1ZAY2BZCHDZDHZEHZEH0ZEH1ZEH2ZERZER0ZER1ZER2ZEYZEY0ZEY1ZEY2FGZHHZIHZIH0ZIH1ZIH2ZIYZIY0ZIY1ZIY2ZJHKLMNZNGZOWZOW0ZOW1ZOW2ZOYZOY0ZOY1ZOY2PRSZSHTZTHZUHZUH0ZUH1ZUH2ZUWZUW0ZUW1ZUW2VWYZZZHr*   r*   r*   r*   r+   _get_phones3   s    r=   c                 C   sD   t jdd | D t jd}dd | D }t jjjj|dd}||fS )Nc                 S   s   g | ]}t |qS r*   )len.0r   r*   r*   r+   
<listcomp>       z_to_tensor.<locals>.<listcomp>)Zdtypec                 S   s   g | ]}t |qS r*   )torchtensorr?   r*   r*   r+   rA      rB   T)Zbatch_first)rC   rD   int32nnutilsZrnnZpad_sequence)indiceslengthsvaluesr*   r*   r+   
_to_tensor   s    rK   c              	   C   s   t dstdddlm} ddlm}m}m} t	
d}|j}|t	j zd|  }tjtj d}	tj|	dd	 tj|	| }
tj|
s|d u ri n|}t||
fi | tj|||g& ||
W  d    W || S 1  s0    Y  W || n|| 0 d S )
NZdpz3DeepPhonemizer is not installed. Please install it.r   )
Phonemizer)PreprocessorLanguageTokenizerSequenceTokenizerzKhttps://public-asai-dl-models.s3.eu-central-1.amazonaws.com/DeepPhonemizer/ZcheckpointsT)exist_ok)
_mod_utilsZis_module_availableRuntimeErrorZdp.phonemizerrL   Zdp.preprocessing.textrM   rN   rO   logging	getLoggerlevelsetLevelINFOospathjoinrC   ZhubZget_dirmakedirsexistsr   ZserializationZsafe_globalsZfrom_checkpoint)fileZ	dl_kwargsrL   rM   rN   rO   loggerZ
orig_levelurl	directoryrY   r*   r*   r+   _load_phonemizer   s(    



ra   )waveformbitsreturnc                 C   s@   t | dd} | d d| d  d } t | dd| d  S )z6Transform waveform [-1, 1] to label [0, 2 ** bits - 1]   g      ?   r   )rC   clampint)rb   rc   r*   r*   r+   _unnormalize_waveform   s    rj   c                 C   s2   dddddddddd	d
ddddd	ddddd| dS )NFP   rf            i   i  g?T             g      ?)Zmask_paddingZn_melsZn_frames_per_stepZsymbol_embedding_dimZencoder_embedding_dimZencoder_n_convolutionZencoder_kernel_sizeZdecoder_rnn_dimZdecoder_max_stepZdecoder_dropoutZdecoder_early_stoppingZattention_rnn_dimZattention_hidden_dimZattention_location_n_filterZattention_location_kernel_sizeZattention_dropoutZ
prenet_dimZpostnet_n_convolutionZpostnet_kernel_sizeZpostnet_embedding_dimZgate_thresholdZn_symbolr*   )Z	n_symbolsr*   r*   r+   _get_taco_params   s.    rs   c                   C   s   g ddddddddddd	
S )
N)rn   rn      rr   i  
   rl   rn   rk   ro   )
Zupsample_scalesZ	n_classesZ
hop_lengthZn_res_blockZn_rnnZn_fcZkernel_sizeZn_freqZn_hiddenZn_outputr*   r*   r*   r*   r+   _get_wrnn_params   s    rv   )rS   rX   rC   Ztorchaudio._internalr   r   rQ   r,   r=   rK   ra   ZTensorri   rj   rs   rv   r*   r*   r*   r+   <module>   s   +e