§
    0;jiK  ã                   óP   — d dl mZ d dlZd dlmZmZ  G d„ dej        ¦  «        ZdS )é    )ÚUnionN)ÚnnÚTensorc                   ó.   ‡ — e Zd Zdˆ fd„	Zd„ Zdd„Zˆ xZS )	ÚLearnedPositionEmbeddingsç{®Gáz”?c                 óÈ   •— t          ¦   «                              ¦   «          t          j        ||¦  «        | _        | j        j        j                             d|¬¦  «         d S )Ng        )ÚmeanÚstd)ÚsuperÚ__init__r   Ú	EmbeddingÚembÚweightÚdataÚnormal_)ÚselfÚseq_lenÚ	model_dimÚinitÚ	__class__s       €úf/root/voice-cloning/.venv/lib/python3.11/site-packages/chatterbox/models/t3/modules/learned_pos_emb.pyr   z"LearnedPositionEmbeddings.__init__   sR   ø€ Ý‰Œ×ÒÑÔÐÝ”< ¨Ñ3Ô3ˆŒàŒŒÔ×$Ò$¨#°4Ð$Ñ8Ô8Ð8Ð8Ð8ó    c                 óz   — |j         d         }|                      t          j        d||j        ¬¦  «        ¦  «        S )zQ
        Returns positional embeddings for index 0 up to the length of x
        é   r   ©Údevice)Úshaper   ÚtorchÚaranger   )r   ÚxÚsls      r   Úforwardz!LearnedPositionEmbeddings.forward   s4   € ð ŒWQŒZˆØxŠxœ Q¨°1´8Ð<Ñ<Ô<Ñ=Ô=Ð=r   ÚidxúUnion[int, Tensor]c                 ó  — | j         j        j        }t          j        |¦  «        r|                     |¦  «        nt          j        ||¬¦  «        }t          j        |¦  «        }|j        dk    sJ ‚|                       |¦  «        S )zÖ
        Args:
            idx: scalar int or an integer tensor of shape (T,) or (B, T)
        Returns:
            positional embeddings for given indices, shape (B, T, dim), ie (1, 1, dim) for int input
        r   é   )	r   r   r   r   Ú	is_tensorÚtoÚtensorÚ
atleast_2dÚndim)r   r$   r   s      r   Úget_fixed_embeddingz-LearnedPositionEmbeddings.get_fixed_embedding   sq   € ð ””Ô'ˆÝ %¤°Ñ 4Ô 4ÐZˆcfŠfV‰nŒnˆn½%¼,ÀsÐSYÐ:ZÑ:ZÔ:ZˆÝÔ˜sÑ#Ô#ˆØŒx˜1Š}ˆ}ˆ}ˆ}ØxŠx˜‰}Œ}Ðr   )r   )r$   r%   )Ú__name__Ú
__module__Ú__qualname__r   r#   r-   Ú__classcell__)r   s   @r   r   r      s`   ø€ € € € € ð9ð 9ð 9ð 9ð 9ð 9ð>ð >ð >ðð ð ð ð ð ð ð r   r   )Útypingr   r   r   r   ÚModuler   © r   r   ú<module>r5      sn   ðØ Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ð Ð ðð ð ð ð  ¤	ñ ô ð ð ð r   