o
    i                     @   s   d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZ d dlmZ d dlmZ ejddddefdd	Zd
d Z	 edkrNe  dS dS )    N)
DictConfig	OmegaConf)tables)download_model)set_all_random_seed)config_nameversion_basekwargsc                 C   st   |  ddrdd l}|  d| v sJ d| vr1td|  dd tdd	|  d	d
i| } tdi |  d S )NdebugFr   model
model_confz"download models from model hub: {}hubmsis_trainingT )getpdb	set_tracelogginginfoformatr   main)r	   r   r   r   Q/home/ubuntu/.local/lib/python3.10/site-packages/funasr/bin/compute_audio_cmvn.py
main_hydra   s   r   c                  K   s  t |  t| dd | dtjjjtjj_| dtjjjtjj_| ddtjj_| dd }| dd }|d urVt	j
|}|d5i | d	 }|| d< | | d
< t	j| dd}|| df|d dd| d}| d dd}t	j|}| d}d|d< d|d< t pd|d< ||fddi|}	tjjj|fd|ji|	}
d}t|
D ]|\}}t| ddt|
 }|d }|| dkrtd| d|  ||kr|d krtd| d|   nC|d!  dd d d d f }|dkrtj|dd"}tjt|dd"}n|tj|dd"7 }|tjt|dd"7 }||jd 7 }q| | |d#}| d$d%}t|d&}| t!"| W d    n	1 sYw   Y  d| | }d't#|| ||   }|jd }tj$%|d( }t|d&d}| d)t&| d* t&| d+ d, d+ d- t&| d* t&| d+  | d.d*'d/d0 |D  d1  | d2t&| d* t&| d+  | d.d*'d3d0 |D  d1  | d4 W d    d S 1 sw   Y  d S )6Nseedr   cudnn_enabledcudnn_benchmarkcudnn_deterministicT	tokenizerfrontendfrontend_conf
input_sizedatasetAudioDatasettrain_data_set_listF)r   r   r   dataset_confbatch_samplerBatchSamplerexample
batch_type   
batch_size    num_workersr   
collate_fnscaleg      d   z
prcessed: /g        speech)axis)
mean_stats	var_statstotal_frames	cmvn_filez	cmvn.jsonwg      ?z/am.mvnz<Nnet>
<Splice>  
z[ 0 ]z<AddShift> z<LearnRateCoef> 0 [ c                 S      g | ]}t |qS r   str.0itemr   r   r   
<listcomp>y       zmain.<locals>.<listcomp>z ]
z
<Rescale> c                 S   r;   r   r<   r>   r   r   r   rA   {   rB   z</Nnet>
r   )(printr   r   torchbackendscudnnenabled	benchmarkdeterministicr   frontend_classesoutput_sizedataset_classesbatch_sampler_classesos	cpu_countutilsdata
DataLoadercollator	enumerateintlenr   r   numpynpsumsquareshapetolistopenwritejsondumpssqrtpathdirnamer=   join)r	   r   r   frontend_classdataset_classdataset_trainr&   batch_sampler_classr%   batch_sampler_traindataloader_trainr6   	batch_idxbatch	iter_stoplog_stepfbankr4   r5   	cmvn_infor7   foutmeanvardimsam_mvnr   r   r   r      s   	


	
"""$r   __main__)rN   r_   rW   rX   rD   hydrar   	omegaconfr   r   funasr.registerr   'funasr.download.download_model_from_hubr   &funasr.train_utils.set_all_random_seedr   r   r   __name__r   r   r   r   <module>   s"    b
