o
    oi
                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dl	m
Z
 d dlmZ dd ZedkrXe Zejd	ed
d ejddeddd ejddddd e Zee dS dS )    N)logger)init_df
save_audiosetup_df_argument_parser)evaluation_loop)ModelParamsc              
      s  t  j j jdd jd\}}tj jsJ t	 j
tj jdg} jr5|tj jd d } jd urOtj jdd dtf fdd	}|D ]r}td
tj|  tj|siJ |tj|d}tj|d}tj|rtj|sJ tdt|d }fdd|D }	t|	dksJ t|||	| j|g dd}
|
 D ]\}}t| d|  qqQd S )Nzdns2020-test.logT)post_filter	log_levellog_fileconfig_allow_defaultsepoch	no_reverbwith_reverb)exist_okcleanfnc                    s    t tj| | jd d S )N)
output_dirsuffix)r   ospathbasenamer   )r   enh)argssrr    V/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/df/scripts/test_dns_2020.pysave_audio_callback   s   
z!main.<locals>.save_audio_callbackzEvaluating dataset noisycleanzclnsp.*_fileidz/*.wavc              
      s"   g | ]}t  d |ddqS )clean_fileidr   r   )resubreplace).0f)exprr   r   
<listcomp>,   s    zmain.<locals>.<listcomp>   )stoi	compositesisdr)	n_workersr   metricsz: )r   model_base_dirpfr	   r   r   r   isdirdataset_dirr   r   joinreverbappendr   makedirsstrr   infor   r   compilegloblenr   metric_workersitems)r   modeldf_statedatasetsr   ds_dir	noisy_dir	clean_dirnoisy_filesclean_filesr+   kvr   )r   r$   r   r   r   main   sT   


	rE   __main__r/   zRDNS 2020 Test set directory. Must contain 'no_reverb/clean' and 'no_reverb/noisy'.)typehelpz--metric-workersz-w   z2Number of worker processes for metric calculation.)rG   defaultrH   z--with-reverb
store_truezAlso test on the reverb datasetr1   )actionrH   dest)r7   r   r   logurur   
df.enhancer   r   r   df.evaluation_utilsr   df.modelr   rE   __name__parseradd_argumentr4   int
parse_argsr   r   r   r   r   <module>   s8    2