o
    )j                     @   sd   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 eje
ejdG dd deZd	S )
    )Dict)Metrics)Metric)METRICS
MetricKeys)default_group)Z	group_keymodule_namec                   @   sL   e Zd ZdZdd ZdedefddZdd	 ZdddZdd Z	dd Z
dS )AudioNoiseMetriczK
    The metric computation class for acoustic noise suppression task.
    c                 C   s   g | _ g | _g | _g | _d S Nlossamp_loss
phase_losssisnrself r   f/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/metrics/audio_noise_metric.py__init__   s   
zAudioNoiseMetric.__init__outputsinputsc                 C   s\   | j |d j  | j|d j  | j|d j  | j|d j  d S )Nr   r   r   r   )r   appenddatacpur   r   r   )r   r   r   r   r   r   add   s   zAudioNoiseMetric.addc                 C   s   t | jt| j }t | jt| j }t | jt| j }t | jt| j }|| | | }d| d|  tj| iS )N
total_loss	avg_sisnr)	sumr   lenr   r   r   itemr   ZAVERAGE_LOSS)r   Zavg_lossr   Zavg_ampZ	avg_phaser   r   r   r   evaluate   s   

zAudioNoiseMetric.evaluateotherc                 C   s<   | j |j  | j|j | j|j | j|j d S r
   )r   extendr   r   r   )r   r!   r   r   r   merge,   s   zAudioNoiseMetric.mergec                 C   s   | j | j| j| jfS r
   r   r   r   r   r   __getstate__2   s   zAudioNoiseMetric.__getstate__c                 C   s   |\| _ | _| _| _d S r
   r   )r   stater   r   r   __setstate__5   s   zAudioNoiseMetric.__setstate__N)r!   r	   )__name__
__module____qualname____doc__r   r   r   r    r#   r$   r&   r   r   r   r   r	      s    
r	   N)typingr   Zmodelscope.metainfor   Zmodelscope.metrics.baser   Zmodelscope.metrics.builderr   r   Zmodelscope.utils.registryr   Zregister_moduleZaudio_noise_metricr	   r   r   r   r   <module>   s   