§
    �M§jB  ã                   óH   — d Z ddlZddlmZmZmZmZmZ  G d„ d¦  «        ZdS )zFCheckpoint-native token constraints and windowed repetition penalties.é    Né   )ÚEODÚABC_ENDÚ	MUSIC_ENDÚCODEC_OFFSETÚ
CODEC_SIZEc                   ó   — e Zd Zdd„Zd„ ZdS )ÚYuE2LogitsProcessorFc                 ó2   — |||c| _         | _        | _        d S )N)ÚsamplingÚphaseÚdirect)Úselfr   r   r   s       ú@C:\Users\johnn\OneDrive\Documents\AI\models\TTS\yue2\sampling.pyÚ__init__zYuE2LogitsProcessor.__init__	   s   € Ø19¸5À&Ð.ˆŒ�t”z 4¤; ; ;ó    c                 óÆ  — | j         }| j        r1|                     t          j        ¦  «                             ¦   «         n%|                     ¦   «                              ¦   «         }| j        dk    rt          nt          }|d d …|f                              ¦   «         }| j        dk    rt          j
         |d d …t          d …f<   n>t          j
         |d d …d t          …f<   t          j
         |d d …t          t          z   d …f<   t          |¦  «        |j        k     rt          j
         n||d d …|f<   |r�t          j        ||j         d …         |j        ¬¦  «        d          }t          j        |¦  «        }|                     d|t          j        ||j        ¬¦  «        ¦  «         |j        |z  }	t          j        |dk     ||	z  ||	z  ¦  «        }|j        dk    r^|                     dd¬¦  «        }
t          j        |t          j
         ¦  «                             d|
d¦  «                             ¦   «         S |                     |j        ¦  «         |j        rP|                     |j        ¦  «        j         d d …dd …f         }| !                    ||k     t          j
         ¦  «         |j"        dk     r›| #                    d¬	¦  «        \  }}| $                    d¦  «        }| %                    d¦  «        |z
  |j"        k    }d
|d d …d | j        rdnd…f<   | !                    |t          j
         ¦  «         | &                    d||¦  «        }|                     ¦   «         S )NÚabc)Údevicer   )Údtyper   éÿÿÿÿT)Úkeepdim)Ú
descendingFé   )'r   r   ÚtoÚtorchÚbfloat16ÚcloneÚfloatr   r   r   Úinfr   r   r   ÚlenÚ
min_tokensÚtensorÚpenalty_windowr   Ú
zeros_likeÚscatter_add_Ú	ones_liker   Úrepetition_penaltyÚwhereÚtemperatureÚargmaxÚ	full_likeÚscatter_Údiv_Útop_kÚtopkÚvaluesÚmasked_fill_Útop_pÚsortÚsoftmaxÚcumsumÚscatter)r   ÚlogitsÚhistoryÚsettingsÚscoresÚendÚ	end_scoreÚrecentÚfrequenciesÚalphaÚbestÚ	thresholdr1   ÚindicesÚprobabilitiesÚremoveds                   r   Ú__call__zYuE2LogitsProcessor.__call__   s  € Ø”=ˆØ6:´kÐ]�—’�5œ>Ñ*Ô*×0Ò0Ñ2Ô2Ð2ÀvÇ|Â|Á~Ä~×G[ÒG[ÑG]ÔG]ˆØœ uÒ,Ð,�gˆgµ)ˆØ˜1˜1˜1˜c˜6”N×(Ò(Ñ*Ô*ˆ	ØŒ:˜ÒÐÝ$œy˜jˆF�1�1�1•c�d�d�7‰OˆOå(-¬	 zˆF�1�1�1�m•|�mÐ#Ñ$Ý5:´Y°JˆF�1�1�1•l¥ZÑ/Ð0Ð0Ð0Ñ1Ý'*¨7¡|¤|°hÔ6IÒ'IÐ'I�%œ)˜˜Èyˆˆqˆqˆq�#ˆv‰Øð 	MÝ”\ '¨8Ô+BÐ*BÐ*CÐ*CÔ"DÈVÌ]Ð[Ñ[Ô[Ð\`ÔaˆFÝÔ*¨6Ñ2Ô2ˆKØ×$Ò$ Q¨µ´ÀÈfÌlÐ0[Ñ0[Ô0[Ñ\Ô\Ð\ØÔ/°;Ñ>ˆEÝ”[ ¨!¢¨V°e©^¸VÀe¹^ÑLÔLˆFØÔ 1Ò$Ð$Ø—=’= ¨T�=Ñ2Ô2ˆDÝ”? 6­E¬I¨:Ñ6Ô6×?Ò?ÀÀ4ÈÑKÔK×QÒQÑSÔSÐSØ�Š�HÔ(Ñ)Ô)Ð)ØŒ>ð 	@ØŸš H¤NÑ3Ô3Ô:¸1¸1¸1¸b¸c¸c¸6ÔBˆIØ×Ò ¨Ò 2µU´Y°JÑ?Ô?Ð?ØŒ>˜AÒÐØ$Ÿkšk°T˜kÑ:Ô:‰OˆF�GØ"ŸNšN¨2Ñ.Ô.ˆMØ#×*Ò*¨2Ñ.Ô.°Ñ>ÀÄÒOˆGØ38ˆG�A�A�AÐ/˜Tœ[Ð/˜˜¨aÐ/Ð/Ñ0Ø×Ò ­%¬)¨Ñ4Ô4Ð4Ø—^’^ B¨°Ñ8Ô8ˆFØ�|Š|‰~Œ~Ðr   N)F)Ú__name__Ú
__module__Ú__qualname__r   rF   © r   r   r
   r
      s;   € € € € € ðIð Ið Ið Iðð ð ð ð r   r
   )	Ú__doc__r   Úprotocolr   r   r   r   r   r
   rJ   r   r   ú<module>rM      sp   ðØ LÐ Là €€€à GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gð#ð #ð #ð #ð #ñ #ô #ð #ð #ð #r   