o
    iK                     @   s   d dl Z G dd deZdS )    Nc                   @   s,   e Zd ZdZdddZdd Zdd
dZdS )ChannelSelectorz$Select 1ch from multi-channel signalrandomr      c                 C   s   || _ || _|| _d S N)train_channeleval_channelaxis)selfr   r   r    r
   U/home/ubuntu/.local/lib/python3.10/site-packages/espnet/transform/channel_selector.py__init__   s   
zChannelSelector.__init__c                 C   s   dj | jj| j| j| jdS )NzO{name}(train_channel={train_channel}, eval_channel={eval_channel}, axis={axis}))namer   r   r   )format	__class____name__r   r   r   )r	   r
   r
   r   __repr__   s   zChannelSelector.__repr__Tc                    s   j jkrtfddtjd D }| |r j}nj}|dkr3tjdj	j  n| t fddtj D }| S )Nc                 3   s&    | ]}| j k rtd nd V  qd S r   )ndimslice.0i)xr
   r   	<genexpr>   s    
z+ChannelSelector.__call__.<locals>.<genexpr>r   r   r   c                 3   s&    | ]}|j krtd n V  qd S r   )r   r   r   )chr	   r
   r   r   ,   s   $ )
r   r   tupleranger   r   numpyr   randintshape)r	   r   trainindchannelr
   )r   r	   r   r   __call__   s   zChannelSelector.__call__N)r   r   r   )T)r   
__module____qualname____doc__r   r   r"   r
   r
   r
   r   r      s
    
r   )r   objectr   r
   r
   r
   r   <module>   s    