o
    )j*                     @   sX   d dl Z d dlZd dlZd dlmZ dd Zdd Zdd ZG dd	 d	ej	e j
d
ZdS )    Nc                 C   s`   t d| | }|d u rd S | | d  } t d| }|d u r"d S | | d  | d fS )Nz^\s*z^\s*(-?\d+\.?\d*e?-?\d*?)r   )rematchendgroups)instrtokenZfirst_tokenlr r	   n/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/modelscope/models/audio/aec/layers/layer_base.pyexpect_token_number
   s   r   c                 C   sx   |  dd}|  d|}g }| |d | dD ]}tj|tjdd}|jdkr.|| q| |d d  t|fS )N[r   ]   
 )Zdtypesep)findsplitnpZ
fromstringZfloat32sizeappendarray)r   pos2Zpos3ZmatZsttZtmp_matr	   r	   r
   expect_kaldi_matrix   s   

r   c                 C   s<   t jt jt jdd t| }|dd}|dd}d| S )z}
    function that transform as str numpy mat to standard kaldi str matrix
    :param np_mat: numpy mat
    :return: str
    T)	thresholdZ	linewidthsuppressr    r   z[ %s ]
)r   Zset_printoptionsinfnanstrreplace)Znp_matZout_strr	   r	   r
   to_kaldi_matrix    s
   r!   c                       s*   e Zd Z fddZejdd Z  ZS )	LayerBasec                    s   t t|   d S N)superr"   __init__self	__class__r	   r
   r%   /   s   zLayerBase.__init__c                 C   s   d S r#   r	   r&   r	   r	   r
   to_kaldi_nnet2   s   zLayerBase.to_kaldi_nnet)__name__
__module____qualname__r%   abcabstractmethodr*   __classcell__r	   r	   r(   r
   r"   -   s    r"   )	metaclass)r.   r   numpyr   Ztorch.nnnnr   r   r!   ModuleABCMetar"   r	   r	   r	   r
   <module>   s   