o
    i                     @   s.   d dl Zdd Zd	ddZG dd deZdS )
    Nc                 C   s   |dksJ t | }td|d D ]C}|d |   || |d   7  < ||d   | | d |   7  < || d   || d  7  < |d |  | | d  7  < q|dtdd td|d D   }|S )Nr         c                 s   s    | ]}|d  V  qdS )r   N ).0ir   r   O/home/ubuntu/.local/lib/python3.10/site-packages/espnet/transform/add_deltas.py	<genexpr>   s    zdelta.<locals>.<genexpr>)np
zeros_likerangesum)featwindow
delta_featr   r   r   r   delta   s   
"$ $r   r   c                 C   s6   | g}t |D ]}|t|d | qtj|ddS )Nr   r   )axis)r   appendr   r
   concatenate)xr   orderfeats_r   r   r   
add_deltas   s   r   c                   @   s&   e Zd Zd	ddZdd Zdd ZdS )
	AddDeltasr   c                 C   s   || _ || _d S )Nr   r   )selfr   r   r   r   r   __init__   s   
zAddDeltas.__init__c                 C   s   dj | jj| j| jdS )Nz%{name}(window={window}, order={order})namer   r   )format	__class____name__r   r   )r   r   r   r   __repr__   s   zAddDeltas.__repr__c                 C   s   t || j| jdS )Nr   )r   r   r   )r   r   r   r   r   __call__!   s   zAddDeltas.__call__Nr   r   )r!   
__module____qualname__r   r"   r#   r   r   r   r   r      s    
r   r$   )numpyr
   r   r   objectr   r   r   r   r   <module>   s    
