o
    wi=                     @   s    d dl Z G dd de jjZdS )    Nc                       s&   e Zd Zd fdd	Zdd Z  ZS )GreedyCTCDecoderr   c                    s   t    || _|| _d S )N)super__init__labelsblank)selfr   r   	__class__ a/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/nemo/collections/tts/modules/ssl_tts.pyr      s   

zGreedyCTCDecoder.__init__c                    sN   t j|dd}t j|dd} fdd|D }d fdd|D }||fS )zGiven a sequence emission over labels, get the best path
        Args:
          emission (Tensor): Logit tensors. Shape `[num_seq, num_label]`.

        Returns:
          List[str]: The resulting transcript
        )dimc                    s   g | ]	}| j kr|qS r
   )r   .0ir   r
   r   
<listcomp>!   s    z,GreedyCTCDecoder.forward.<locals>.<listcomp> c                    s   g | ]} j | qS r
   )r   r   r   r
   r   r   "   s    )torchargmaxunique_consecutivejoin)r   emissionindicesjoinedr
   r   r   forward   s
   zGreedyCTCDecoder.forward)r   )__name__
__module____qualname__r   r   __classcell__r
   r
   r   r   r      s    r   )r   nnModuler   r
   r
   r
   r   <module>   s   