o
    }oi5                     @   s|   d dl Z d dlZd dlmZ zd dlZed dZW n ey&   dZY nw d dlm	Z	 e 
 dd ZG d	d
 d
ZdS )    N)
DictConfig
torchaudioTF)BNR2c                  C   sr   d} d}d}d}ddddid	d
d}d| |||dddddd
}t d| |||dddt |t |d
}t|d}|S )Ni>  i  i  i@  adamgMb@?nameStepLRg+?   )r   lrschedgamma	step_sizez1nemo.collections.audio.losses.maxine.CombinedLoss      T)
_target_sample_rate
fft_length
hop_lengthnum_melssisnr_loss_weightspectral_loss_weightasr_loss_weightuse_asr_lossuse_mel_specbnrF   )
typer   r   r   r   skip_nan_gradnum_outputssegmentlossoptim)cfg)r   r   )r   r   r   r   r    r   configr    r#   d/home/ubuntu/.local/lib/python3.10/site-packages/tests/collections/audio/test_audio_maxine_models.pymaxine_model_fixture   sJ   
r%   c                   @   sf   e Zd ZdZejjejje dddd Z	ejjejje ddej
dg ddd	 Zd
S )TestBNR2ModelzTest BNR 2 model.z'Modules in this test require torchaudio)reasonc                 C   s,   |  }| }t|}t|tsJ dS )z:Test that the model can be constructed from a config dict.N)trainto_config_dictr   from_config_dict
isinstance)selfr%   modelconfdict	instance2r#   r#   r$   test_constructorS   s   
zTestBNR2Model.test_constructorzbatch_size, sample_len))r      )r      )r       c                 C   s   |  }| }|d }tj|d|| fd}d}t 1 g }	t|dD ]}
|j||
|
d  d}|	| q't	|	d}|j|d}W d   n1 sQw   Y  |j
|j
ks^J tt|| }||ksnJ dS )z.Test that the model can run forward inference.r   r   )sizegh㈵>r   )input_signalN)evalr)   torchrandnno_gradranger4   forwardappendcatshapemaxabs)r,   r%   
batch_size
sample_lenr-   r.   sampling_rater5   abs_toloutput_listioutputoutput_instanceoutput_batchdiffr#   r#   r$   test_forward_infer\   s    
z TestBNR2Model.test_forward_inferN)__name__
__module____qualname____doc__pytestmarkunitskipifHAVE_TORCHAUDIOr0   parametrizerK   r#   r#   r#   r$   r&   P   s    	r&   )rP   r7   	omegaconfr   	importlibimport_modulerT   ModuleNotFoundError$nemo.collections.audio.models.maxiner   fixturer%   r&   r#   r#   r#   r$   <module>   s   

0