
    9i                         S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
  \R                  " \
\R                  S9 " S S\5      5       rg	)
    )Dict)Metrics)Metric)METRICS
MetricKeys)default_group)	group_keymodule_namec                   L    \ rS rSrSrS rS\S\4S jrS rSS jr	S	 r
S
 rSrg)AudioNoiseMetric   zC
The metric computation class for acoustic noise suppression task.
c                 <    / U l         / U l        / U l        / U l        g Nlossamp_loss
phase_losssisnrselfs    e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/modelscope/metrics/audio_noise_metric.py__init__AudioNoiseMetric.__init__   s    	
    outputsinputsc                    U R                   R                  US   R                  R                  5       5        U R                  R                  US   R                  R                  5       5        U R
                  R                  US   R                  R                  5       5        U R                  R                  US   R                  R                  5       5        g )Nr   r   r   r   )r   appenddatacpur   r   r   )r   r   r   s      r   addAudioNoiseMetric.add   s    		--1134WZ05599;<w|499==?@

''*//3356r   c                    [        U R                  5      [        U R                  5      -  n[        U R                  5      [        U R                  5      -  n[        U R                  5      [        U R                  5      -  n[        U R
                  5      [        U R
                  5      -  nX-   U-   U-   nSUR                  5       SUR                  5       * [        R                  UR                  5       0$ )N
total_loss	avg_sisnr)	sumr   lenr   r   r   itemr   AVERAGE_LOSS)r   avg_lossr%   avg_amp	avg_phaser$   s         r   evaluateAudioNoiseMetric.evaluate   s    tyy>C		N2

Oc$**o5	dmm$s4=='99(3t+??	')3i?
*//+ )..**##X]]_
 	
r   c                 ,   U R                   R                  UR                   5        U R                  R                  UR                  5        U R                  R                  UR                  5        U R                  R                  UR                  5        g r   )r   extendr   r   r   )r   others     r   mergeAudioNoiseMetric.merge,   s\    		$U^^,u//0

%++&r   c                 ^    U R                   U R                  U R                  U R                  4$ r   r   r   s    r   __getstate__AudioNoiseMetric.__getstate__2   s!    yy$--$**DDr   c                 :    Uu  U l         U l        U l        U l        g r   r   )r   states     r   __setstate__AudioNoiseMetric.__setstate__5   s    @E=	4=$/4:r   )r   r   r   r   N)r1   r   )__name__
__module____qualname____firstlineno____doc__r   r   r!   r-   r2   r5   r9   __static_attributes__ r   r   r   r      s5    74 7 7
'EFr   r   N)typingr   modelscope.metainfor   modelscope.metrics.baser   modelscope.metrics.builderr   r   modelscope.utils.registryr   register_moduleaudio_noise_metricr   rA   r   r   <module>rI      sL     ' * : 3 	)C)CE)Fv )FE)Fr   