o
    
j7                     @   s  d dl Z d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 dd Z
ed	kre jd
edZejdedd ejdedd ejdedd ejdeddd ejdeddd e ZeejZeejejd\ZZee Ze	ejejejdZe
ee dS dS )    N)RawTextHelpFormatter)tqdm)load_config)load_tts_samples)SpeakerManagerc                 C   s.  |j j}t|j dd }i }t| D ]\}|| }|d }||}|jd urH|d urHt|d}	|j	r8|	
 }	|jj|	 }
|t|
 }nd }|d urj|d urjt||k}||vrb|g||< q|| | qtdd}| D ]\}}t|t| }td|d| ||7 }qttd|t|  d S )Nmap_classid_to_classname
audio_filer   z1Error: class_name or/and predicted_label are NoneClassz	Accuracy:zAverage Accuracy:)encoder_configclass_name_keygetattrr   compute_embedding_from_clipencoder_criteriontorchFloatTensor	unsqueezeuse_cudacudasoftmax	inferenceitemstrintappendRuntimeErroritemssumlenprint)dataset_itemsencoder_managerr   r   class_acc_dictr   
class_namewav_fileembedd	embeddingclass_idpredicted_labelis_equalacc_avgkeyvaluesacc r-   G/home/kuhnn/.local/lib/python3.10/site-packages/TTS/bin/eval_encoder.pycompute_encoder_accuracy   s4   

r/   __main__zCompute the accuracy of the encoder.


        Example runs:
        python TTS/bin/eval_encoder.py emotion_encoder_model.pth emotion_encoder_config.json  dataset_config.json
        )descriptionformatter_class
model_pathzPath to model checkpoint file.)typehelpconfig_pathzPath to model config file.config_dataset_pathzPath to dataset config file.z
--use_cudazflag to set cuda.T)r4   r5   defaultz--evalzcompute eval.)
eval_split)encoder_model_pathencoder_config_pathr   )argparser   r   r   
TTS.configr   TTS.tts.datasetsr   TTS.tts.utils.speakersr   r/   __name__ArgumentParserparseradd_argumentr   bool
parse_argsargsr7   	c_datasetdatasetsevalmeta_data_trainmeta_data_evalr   r3   r6   r   enc_managerr-   r-   r-   r.   <module>   sF    )
