o
    }oi                     @   s   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	 eddddd	d
dddd	Z
edddddZee
dedZdd Zdd ZdddZG dd dZedkrbe Ze  dS dS )    N)
DictConfig)WaveGlowModel)	typecheckz4nemo.collections.tts.modules.waveglow.WaveGlowModule      P         i      )	_target_n_flowsn_groupn_mel_channelsn_early_everyn_early_sizen_wn_channelsn_wn_layerswn_kernel_sizezDnemo.collections.asr.parts.preprocessing.features.FilterbankFeaturesg        F)r   dithernfilt	stft_conv      ?)waveglowsigmapreprocessorc                 C   s@   t ddd|   }t dd| d d d  }||fS )N   r   r      )torchrandncudahalf)szmelz r$   W/home/ubuntu/.local/lib/python3.10/site-packages/tests/collections/tts/test_waveglow.pyinput_example3   s
    r&   c                 C   sH   |  dddd } | | d| dd||d|ddfS )Nr   r
   r	   r   )permute
contiguousviewsize)specr#   r$   r$   r%   taco2wg<   s   4r-   c                 C   s$   t ||\}}| jj|d|d}|S )Nr   )r,   r   r#   )r-   r   norm_dist_to_audio)selfr,   r#   audior$   r$   r%   forward_wrapperB   s   r1   c                   @   s0   e Zd Zejjejdejjdd ZdS )TestWaveGlowGPUc           
   	   C   s   t t}|  }tjdd t Z}| = t	j
|d}d}t|}t| }|}|j| }|j| }	tj||	dddsBJ tt _|j||dddd	 W d    n1 sYw   Y  W d    d S W d    d S 1 sqw   Y  d S )
NF)enabledzwaveglow.onnxr   g{Gz?g?)rtolatolT)r&   verbosecheck_tracedo_constant_folding)r   wcfgr   r    r   set_typecheck_enabledtempfileTemporaryDirectory
nemo_inferospathjoinr&   r-   r   r   allcloser1   forward_for_exportexport)
r/   modeltmpdirtmp_file_namen_melsinpinp1inp2res1res2r$   r$   r%   test_export_to_onnxI   s"   


Pz TestWaveGlow.test_export_to_onnxN)	__name__
__module____qualname__pytestmarkpleasefixmerun_only_onunitrN   r$   r$   r$   r%   r2   H   s
    
r2   __main__)N)r?   r<   rR   r   	omegaconfr   nemo.collections.tts.modelsr   nemo.core.classesr   mcfgpcfgr:   r&   r-   r1   r2   rO   trN   r$   r$   r$   r%   <module>   sF   		
