o
    i6                     @   s@   d dl Z d dlZejfddZdddZdddZdddZdS )    Nc                 C   sx   t | } d| jd d  }d}d}tj|||}t | d |j} t t 	| d} t j
| dd}| | } | |S )N      i@     g|=r   )axis)npabsshapelibrosafiltersmeldotTlog10maximummeanastype)Ydtypen_fftsrn_mels	mel_basisr    r   U/home/ubuntu/.local/lib/python3.10/site-packages/funasr/frontends/eend_ola_feature.py	transform
   s   

r   r   c                 C   s$   | d d | }|d d | }||fS )Nr   )r   r   subsamplingY_ssT_ssr   r   r   	subsample   s   r   c                 C   sd   t | ||fdgd}t jjjt || jd | jd d| d  f| j| jd  | jfdd}|S )N)r   r   constantr   r   r   F)	writeable)r   padlibstride_tricks
as_stridedascontiguousarrayr   itemsize)r   context_sizeY_pad	Y_splicedr   r   r   splice   s   r*         c                 C   sP   d|d   > }t| | dkrtj| |||djd d S tj| |||djS )Nr   r   )r   
win_length
hop_length)
bit_lengthlenr	   stftr   )data
frame_sizeframe_shiftfft_sizer   r   r   r2   (   s   r2   )r   )r   )r+   r,   )r	   numpyr   float32r   r   r*   r2   r   r   r   r   <module>   s   

