+
    œ°³jï ã                   óÄ  € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHtHtH	t	 ^RI
Ht ^RIHt ^RIHtHtHt ^RIHt ^RIHt ^R	IHt ^R
IHtHt ^RIHt ^RIHtH t H!t!H"t"H#t# ^RI$H%t%H&t& ^RI'H(t(H)t) ^RI*H+t+H,t, ])PZ                  ! ].4      t/^t0R R lt1RjR R llt2RkR R llt3 ! R R]4      t4 ! R R]4      t5 ! R R]4      t6 ! R R]Pn                  4      t8 ! R R]Pn                  4      t9 ! R  R!]Pn                  4      t: ! R" R#]P
                  Pn                  4      t; ! R$ R%]Pn                  4      t< ! R& R']Pn                  4      t= ! R( R)]Pn                  4      t> ! R* R+]Pn                  4      t? ! R, R-]Pn                  4      t@ ! R. R/]Pn                  4      tA ! R0 R1]Pn                  4      tB ! R2 R3]Pn                  ]%4      tC ! R4 R5]Pn                  ]%4      tD ! R6 R7]Pn                  ]%4      tE ! R8 R9]Pn                  4      tF ! R: R;]Pn                  4      tG ! R< R=]4      tH ! R> R?]4      tI]( ! R@ RA]&4      4       tJ ! RB RC]J4      tK ! RD RE]J4      tL ! RF RG]J4      tM ! RH RI]J4      tN ! RJ RK]J4      tO ! RL RM]J4      tP ! RN RO]J4      tQ ! RP RQ]J4      tR ! RR RS]Pn                  4      tS ! RT RU]Pn                  4      tT](! RVRW7       ! RX RY]J4      4       tU](! RZRW7       ! R[ R\]J]4      4       tVRlR] R^ lltW](! R_RW7       ! R` Ra]J4      4       tX](! RbRW7       ! Rc Rd]J4      4       tY ! Re Rf]Pn                  4      tZ](! RgRW7       ! Rh Ri]&4      4       t[. RmOt\R# )nzPyTorch SpeechT5 model.N)Únn)ÚBCEWithLogitsLossÚCrossEntropyLossÚL1Loss)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCacheÚEncoderDecoderCache)ÚGenerationMixin)Úis_deepspeed_zero3_enabled)Úis_fsdp_managed_module)Úcreate_bidirectional_maskÚcreate_causal_mask)ÚGradientCheckpointingLayer)ÚBaseModelOutputÚ)BaseModelOutputWithPastAndCrossAttentionsÚSeq2SeqLMOutputÚSeq2SeqModelOutputÚSeq2SeqSpectrogramOutput)ÚEmbeddingAccessMixinÚPreTrainedModel)Úauto_docstringÚlogging)ÚSpeechT5ConfigÚSpeechT5HifiGanConfigc                óP   € V ^8„  d   QhR\         P                  R\        R\        /# )é   Ú	input_idsÚpad_token_idÚdecoder_start_token_id©ÚtorchÚTensorÚint)Úformats   "Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/speecht5/modeling_speecht5.pyÚ__annotate__r'   4   s&   € ÷ ñ ¤%§,¡,ð ¼cð Ô[^ñ ó    c                óÈ   € V P                  V P                  4      pV RRR13,          P                  4       VR&   W#R&   Vf   \        R4      hVP	                  VR8H  V4       V# )z)
Shift input ids one token to the right.
ºNNNNz1self.model.config.pad_token_id has to be defined.éÿÿÿÿ©r*   ºé   NN)r*   é    iœÿÿÿ)Ú	new_zerosÚshapeÚcloneÚ
ValueErrorÚmasked_fill_)r   r   r    Úshifted_input_idss   &&& r&   Úshift_tokens_rightr6   4   sp   € ð "×+Ñ+¨I¯O©OÓ<ÐØ(¨¨C¨R¨C¨Õ0×6Ñ6Ó8Ð�eÑØ4�dÑàÒÜÐLÓMÐMà×"Ñ"Ð#4¸Ñ#<¸lÔKàÐr(   c                ór   € V ^8„  d   QhR\         P                  R\        R\         P                  R,          /# )r   Úinput_valuesÚreduction_factorÚattention_maskNr!   )r%   s   "r&   r'   r'   D   s2   € ÷ 0ñ 0Ü—,‘,ð0Ü25ð0ÜKPÏ<É<ÐZ^ÕK^ñ0r(   c                ó  € V^8”  d/   V RV^,
          RV13,          p Ve   VRV^,
          RV13,          pV P                  V P                  4      pV RRR13,          P                  4       VR&   VP                  VR8H  R4       W23# )zo
Shift input spectrograms one timestep to the right. Also applies the reduction factor to the sequence length.
r*   Nç        r+   r,   ç      YÀ)r0   r1   r2   r4   )r8   r9   r:   Úshifted_input_valuess   &&& r&   Úshift_spectrograms_rightr?   D   s§   € ð ˜!ÔØ# AÐ'7¸!Õ';Ð'OÐ?OÐ'OÐ$OÕPˆØÒ%Ø+¨AÐ/?À!Õ/CÐ/WÐGWÐ/WÐ,WÕXˆNà'×1Ñ1°,×2DÑ2DÓEÐØ".¨q°#°2°#¨vÕ"6×"<Ñ"<Ó">Ð˜Ñð ×%Ñ%Ð&:¸fÑ&DÀcÔJàÐ/Ð/r(   c                ó¸   € V ^8„  d   QhR\         \        \        3,          R\        R\        R\        P                  R,          R\        R\
        P                  /# )r   r1   Ú	mask_probÚmask_lengthr:   NÚ	min_masksÚreturn)Útupler$   Úfloatr"   Ú
LongTensorÚnpÚndarray)r%   s   "r&   r'   r'   Z   sc   € ÷ tñ tÜ””c��?ðtäðtô ðtô ×$Ñ$ tÕ+ð	tô
 ðtô ‡Z�Zñtr(   c           	     ó^  aaaaa€ V w  poS^8  d   \        R4      hSS8”  d   \        RS RS R24      h\        P                  P                  ^4      P	                  4       oVVVVV3R lpVe.   VP                  4       P                  R	4      P                  4       M\        V4       Uu. uF  pSNK  	  upp\        P                  ! VS3\        R7      p	. p
V! S4      pV^ 8X  d   V	# V FÌ  pV! V4      p\        P                  P                  \        P                  ! VS^,
          ,
          4      VRR7      p\        V4      ^ 8X  d   S^,
          pM	V^ ,          p\        P                  ! V\        P                  ! W½,
          \        P                   R7      V,          .4      pV
P#                  V4       KÎ  	  \        P$                  ! V
4      p
\        P&                  ! V
R
,          W[S34      p
V
P)                  W[S,          4      p
\        P                  ! S4      R,          p\        P&                  ! VW[S34      P)                  W[S,          4      pV
V,           p
V
P+                  4       S^,
          8”  d   S^,
          WªS^,
          8„  &   \        P,                  ! Wš^R	4       V	# u upi )a2  
Computes random mask spans for a given shape. Used to implement [SpecAugment: A Simple Data Augmentation Method for
ASR](https://huggingface.co/papers/1904.08779). Note that this method is not optimized to run on TPU and should be run on
CPU as part of the preprocessing during training.

Args:
    shape: The shape for which to compute masks. This should be of a tuple of size 2 where
           the first element is the batch size and the second element is the length of the axis to span.
    mask_prob:  The percentage of the whole axis (between 0 and 1) which will be masked. The number of
                independently generated mask spans of length `mask_length` is computed by
                `mask_prob*shape[1]/mask_length`. Note that due to overlaps, `mask_prob` is an upper bound and the
                actual percentage will be smaller.
    mask_length: size of the mask
    min_masks: minimum number of masked spans
    attention_mask: A (right-padded) attention mask which independently shortens the feature axis of
                    each batch dimension.
z&`mask_length` has to be bigger than 0.zO`mask_length` has to be smaller than `sequence_length`, but got `mask_length`: z and `sequence_length`: Ú`c                óì   <€ \        SV ,          S,          S,           4      p\        VS4      pVS,          S8”  d
   SS,          pV S^,
          ,
          V8  d   \        V S^,
          ,
          ^ 4      pV# )z;Given input length, compute how many spans should be masked)r$   Úmax)Úinput_lengthÚnum_masked_spanÚepsilonrB   rA   rC   Úsequence_lengths   & €€€€€r&   Úcompute_num_masked_spanÚ6_compute_mask_indices.<locals>.compute_num_masked_span€   so   ø€ ä˜i¨,Õ6¸ÕDÀwÕNÓOˆÜ˜o¨yÓ9ˆð ˜[Õ(¨?Ô:Ø-°Õ<ˆOð ˜;¨�?Õ+¨oÔ=Ü! ,°+Àµ/Õ"BÀAÓFˆOàÐr(   ©ÚdtypeF)Úreplacer+   )r*   r*   N)NNr*   )r3   rH   ÚrandomÚrandÚitemÚdetachÚsumÚtolistÚrangeÚzerosÚboolÚchoiceÚarangeÚlenÚconcatenateÚonesÚint32ÚappendÚarrayÚbroadcast_toÚreshaperM   Úput_along_axis)r1   rA   rB   r:   rC   Ú
batch_sizerR   Ú_Úinput_lengthsÚspec_aug_maskÚspec_aug_mask_idxsÚmax_num_masked_spanrN   rO   Úspec_aug_mask_idxÚdummy_mask_idxÚoffsetsrP   rQ   s   &ff&f            @@r&   Ú_compute_mask_indicesrt   Z   sŽ  ü€ ð0 #(Ñ€J�à�Q„ÜÐAÓBÐBà�_Ô$ÜØ]Ð^iÐ]jØ& Ð&7°qð:ó
ð 	
ô �i‰i�n‰n˜QÓ×$Ñ$Ó&€G÷ñ ð$ Ò%ð 	×ÑÓ×#Ñ# BÓ'×.Ñ.Ô0ä',¨ZÔ'8Ó9Ñ'8 !‹oÑ'8Ñ9ð ô —H’H˜j¨/Ð:Ä$ÔG€MØÐá1°/ÓBÐà˜aÔØÐã%ˆá1°,Ó?ˆô ŸI™I×,Ñ,Ü�IŠI�l k°A¥oÕ6Ó7¸ÐRWð -ó 
Ðô Ð Ó! QÔ&ð -¨qÕ0‰Nà.¨qÕ1ˆNäŸNšNØ¤§¢Ð(;Õ(MÔUW×U]ÑU]Ô ^ÐaoÕ oÐpó
Ðð 	×!Ñ!Ð"3Ö4ñ/ &ô2 ŸšÐ"4Ó5Ðô ŸšØ˜:Õ&¨È+Ð(VóÐð ,×3Ñ3°JÐVaÕ@aÓbÐô �iŠi˜Ó$ ]Õ3€GÜ�oŠo˜g¨
ÈÐ'UÓV×^Ñ^Ø¨+Õ5ó€Gð ,¨gÕ5Ðð ×ÑÓ /°AÕ"5Ô5ØGVÐYZÕGZÐ°À!Õ0CÑCÑDô ×Ò�m¸¸BÔ?àÐùòw :s   Â+J*c                   ó<   a a€ ] tR t^Òt oRV 3R lltR tRtVtV ;t# )ÚSpeechT5NoLayerNormConvLayerc                óœ  <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \        VP                  ,          V n        R# )r/   ©Úkernel_sizeÚstrideÚbiasN)ÚsuperÚ__init__Úconv_dimÚin_conv_dimÚout_conv_dimr   ÚConv1dÚconv_kernelÚconv_strideÚ	conv_biasÚconvr   Úfeat_extract_activationÚ
activation©ÚselfÚconfigÚlayer_idÚ	__class__s   &&&€r&   r}   Ú%SpeechT5NoLayerNormConvLayer.__init__Ó   s—   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô ! ×!?Ñ!?Õ@ˆŽr(   c                óJ   € V P                  V4      pV P                  V4      pV# ©N)r…   r‡   ©r‰   Úhidden_statess   &&r&   ÚforwardÚ$SpeechT5NoLayerNormConvLayer.forwardá   s$   € ØŸ	™	 -Ó0ˆØŸ™¨Ó6ˆØÐr(   )r‡   r…   r   r€   ©r/   ©	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r}   r’   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©rŒ   Ú__classdict__s   @@r&   rv   rv   Ò   s   ù‡ € ÷A÷ò r(   rv   c                   ó<   a a€ ] tR t^èt oRV 3R lltR tRtVtV ;t# )ÚSpeechT5LayerNormConvLayerc                óê  <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \
        P                  ! V P                  RR7      V n        \        VP                  ,          V n        R# )r/   rx   T)Úelementwise_affineN)r|   r}   r~   r   r€   r   r�   r‚   rƒ   r„   r…   Ú	LayerNormÚ
layer_normr   r†   r‡   rˆ   s   &&&€r&   r}   Ú#SpeechT5LayerNormConvLayer.__init__é   s¯   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô Ÿ,š, t×'8Ñ'8ÈTÔRˆŒÜ  ×!?Ñ!?Õ@ˆŽr(   c                ó´   € V P                  V4      pVP                  RR4      pV P                  V4      pVP                  RR4      pV P                  V4      pV# )r   éþÿÿÿr+   )r…   Ú	transposer¤   r‡   r�   s   &&r&   r’   Ú"SpeechT5LayerNormConvLayer.forwardø   sV   € ØŸ	™	 -Ó0ˆà%×/Ñ/°°BÓ7ˆØŸ™¨Ó6ˆØ%×/Ñ/°°BÓ7ˆàŸ™¨Ó6ˆØÐr(   ©r‡   r…   r   r¤   r€   r”   r•   r�   s   @@r&   r    r    è   s   ù‡ € ÷A÷ò r(   r    c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )ÚSpeechT5GroupNormConvLayeri  c                ó   <€ \         SV `  4        V^ 8”  d   VP                  V^,
          ,          M^V n        VP                  V,          V n        \
        P                  ! V P                  V P                  VP                  V,          VP                  V,          VP                  R7      V n
        \        VP                  ,          V n        \
        P                  ! V P                  V P                  RR7      V n        R# )r/   rx   T)Ú
num_groupsÚnum_channelsÚaffineN)r|   r}   r~   r   r€   r   r�   r‚   rƒ   r„   r…   r   r†   r‡   Ú	GroupNormr¤   rˆ   s   &&&€r&   r}   Ú#SpeechT5GroupNormConvLayer.__init__  s¹   ø€ Ü‰ÑÔØ<DÀq¼L˜6Ÿ?™?¨8°a­<Ö8ÈaˆÔØ"ŸO™O¨HÕ5ˆÔä—I’IØ×ÑØ×ÑØ×*Ñ*¨8Õ4Ø×%Ñ% hÕ/Ø×!Ñ!ô
ˆŒ	ô ! ×!?Ñ!?Õ@ˆŒäŸ,š,°$×2CÑ2CÐRV×RcÑRcÐlpÔqˆŽr(   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# r�   )r…   r¤   r‡   r�   s   &&r&   r’   Ú"SpeechT5GroupNormConvLayer.forward  s2   € ØŸ	™	 -Ó0ˆØŸ™¨Ó6ˆØŸ™¨Ó6ˆØÐr(   rª   r”   r•   r�   s   @@r&   r¬   r¬     s   ù‡ € ÷r÷ ò r(   r¬   c                   óÐ   a a€ ] tR tRt oRtRV3R lV 3R llltRV3R lR llt]RV3R lR ll4       t]	P                  ! 4       RV3R	 lR
 ll4       tRV3R lR lltRtVtV ;t# )Ú%SpeechT5SinusoidalPositionalEmbeddingi  zDThis module produces sinusoidal positional embeddings of any length.c                ó:   <€ V ^8„  d   QhRS[ RS[ RS[ R,          /# )r   Únum_positionsÚembedding_dimÚpadding_idxN©r$   )r%   rž   s   "€r&   r'   Ú2SpeechT5SinusoidalPositionalEmbedding.__annotate__   s,   ø€ ÷ Sñ S¡cð S¹#ð SÉCÐRVÍJñ Sr(   c                óš   <€ \         SV `  4        ^V n        Wn        W n        W0n        V P                  WP                  ,           W#4       R# ©r   N)r|   r}   Úoffsetr¸   r¹   rº   Úmake_weights)r‰   r¸   r¹   rº   rŒ   s   &&&&€r&   r}   Ú.SpeechT5SinusoidalPositionalEmbedding.__init__   s>   ø€ Ü‰ÑÔØˆŒØ*ÔØ*ÔØ&ÔØ×Ñ˜-¯+©+Õ5°}ÖRr(   c                ó:   <€ V ^8„  d   QhRS[ RS[ RS[ R,          /# ©r   Únum_embeddingsr¹   rº   Nr»   )r%   rž   s   "€r&   r'   r¼   (  s.   ø€ ÷ @ñ @©3ð @¹sð @ÑQTÐW[ÕQ[ñ @r(   c                óþ   € V P                  WV4      p\        V R 4      '       d<   VP                  V P                  P                  V P                  P
                  R7      p\        P                  ! VRR7      V n        R# )Úweights©rU   ÚdeviceF©Ú
persistentN)Úget_embeddingÚhasattrÚtorÆ   rU   rÈ   r   ÚBuffer)r‰   rÄ   r¹   rº   Úemb_weightss   &&&& r&   rÀ   Ú2SpeechT5SinusoidalPositionalEmbedding.make_weights(  sY   € Ø×(Ñ(¨ÈÓTˆÜ�4˜×#Ò#à%Ÿ.™.¨t¯|©|×/AÑ/AÈ$Ï,É,×J]ÑJ]˜.Ó^ˆKä—y’y ¸Ô?ˆŽr(   c                ó:   <€ V ^8„  d   QhRS[ RS[ RS[ R,          /# rÃ   r»   )r%   rž   s   "€r&   r'   r¼   1  s'   ø€ ÷ 1ñ 1¡cð 1¹#ð 1ÉCÐRVÍJñ 1r(   c                ó(  € V^,          p\         P                  ! R4      V^,
          ,          p\        P                  ! \        P                  ! V\        P
                  R7      P                  4       V) ,          4      p\        P                  ! V \        P
                  R7      P                  4       P                  ^4      VP                  ^ 4      ,          p\        P                  ! \        P                  ! V4      \        P                  ! V4      .^R7      P                  V R4      pV^,          ^8X  d0   \        P                  ! V\        P                  ! V ^4      .^R7      pVe   ^ WBR3&   VP                  \        P                  ! 4       4      # )z©
Build sinusoidal embeddings. This matches the implementation in tensor2tensor, but differs slightly from the
description in Section 3.5 of "Attention Is All You Need".
i'  rT   ©Údimr*   r+   )ÚmathÚlogr"   Úexpra   Úint64rF   Ú	unsqueezeÚcatÚsinÚcosÚviewr^   rÍ   Úget_default_dtype)rÄ   r¹   rº   Úhalf_dimÚembs   &&&  r&   rË   Ú3SpeechT5SinusoidalPositionalEmbedding.get_embedding0  s  € ð ! AÕ%ˆÜ�hŠh�u‹o ¨A¥Õ.ˆÜ�iŠiœŸš X´U·[±[ÔA×GÑGÓIÈSÈDÕPÓQˆÜ�lŠl˜>´·±Ô=×CÑCÓE×OÑOÐPQÓRÐUX×UbÑUbÐcdÓUeÕeˆÜ�iŠiœŸš 3›¬¯ª°3«Ð8¸aÔ@×EÑEÀnÐVXÓYˆØ˜1Õ Ô!ä—)’)˜S¤%§+¢+¨n¸aÓ"@ÐAÀqÔIˆCØÒ"Ø"#ˆC˜Q�ÑØ�v‰v”e×-Ò-Ó/Ó0Ð0r(   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# )r   r   Úpast_key_values_lengthr!   )r%   rž   s   "€r&   r'   r¼   C  s#   ø€ ÷ cñ c¡§¡ð cÁsñ cr(   c                ó  € VP                  4       w  r4V P                  WP                  V4      P                  VP                  4      pV P                  ^,           V,           pW`P
                  P                  ^ 4      8”  d8   V P                  W`P                  ,           V P                  V P                  4       V P
                  P                  ^ VP                  R4      4      P                  W4R4      P                  4       # )r.   r+   )ÚsizeÚ"create_position_ids_from_input_idsrº   rÍ   rÈ   rÆ   rÀ   r¿   r¹   Úindex_selectrÝ   rZ   )r‰   r   rã   ÚbszÚseq_lenÚposition_idsÚmax_poss   &&&    r&   r’   Ú-SpeechT5SinusoidalPositionalEmbedding.forwardB  sÇ   € à —~‘~Ó'‰ˆà×>Ñ>¸y×JZÑJZÐ\rÓs×vÑvØ×Ñó
ˆð
 ×"Ñ" QÕ&¨Õ0ˆØ—\‘\×&Ñ& qÓ)Ô)Ø×Ñ˜g¯©Õ3°T×5GÑ5GÈ×IYÑIYÔZà�|‰|×(Ñ(¨¨L×,=Ñ,=¸bÓ,AÓB×GÑGÈÐVXÓY×`Ñ`ÓbÐbr(   c                óN   <€ V ^8„  d   QhRS[ P                  RS[RS[R,          /# )r   r   rº   rã   Nr!   )r%   rž   s   "€r&   r'   r¼   Q  s/   ø€ ÷ 8ñ 8ÙŸ™ð8Ù47ð8ÙQTÐW[ÕQ[ñ8r(   c                óØ   € VP                  V4      P                  4       p\        P                  ! V^R7      P	                  V4      V,           V,          pVP                  4       V,           # )zì
Replace non-padding symbols with their position numbers. Position numbers begin at padding_idx+1. Padding
symbols are ignored. This is modified from fairseq's `utils.make_positions`.

Args:
    x: torch.Tensor x:
Returns: torch.Tensor
rÓ   )Úner$   r"   ÚcumsumÚtype_asÚlong)r‰   r   rº   rã   ÚmaskÚincremental_indicess   &&&&  r&   ræ   ÚHSpeechT5SinusoidalPositionalEmbedding.create_position_ids_from_input_idsQ  sW   € ð �|‰|˜KÓ(×,Ñ,Ó.ˆÜ$Ÿ|š|¨D°aÔ8×@Ñ@ÀÓFÐI_Õ_ÐcgÕgÐØ"×'Ñ'Ó)¨KÕ7Ð7r(   )r¹   r¸   r¿   rº   rÆ   r�   r”   )r–   r—   r˜   r™   Ú__doc__r}   rÀ   ÚstaticmethodrË   r"   Úno_gradr’   ræ   rš   r›   rœ   r�   s   @@r&   r¶   r¶     sj   ù‡ € ÙN÷Sõ S÷@ò @ð ÷1ñ 1ó ð1ð" ‡]‚]ƒ_÷cñ có ðc÷8÷ 8ò 8r(   r¶   c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚSpeechT5PositionalConvEmbeddingic  c                óø  <€ \         SV `  4        \        P                  ! VP                  VP                  VP
                  VP
                  ^,          VP                  R7      V n        \        P                  P                  p\        \        P                  P                  R4      '       d%   \        P                  P                  P                  p\        4       '       Ed5   ^ RIpVP                  P                  V P                  P                   ^ R7      ;_uu_ 4        V! V P                  R^R7      V n        RRR4       \        V P                  R4      '       dV   V P                  P                  P                   P"                  pV P                  P                  P                   P$                  pM,V P                  P&                  pV P                  P(                  pVP                  P+                  W4       VP                  P+                  W4       MV! V P                  R^R7      V n        \-        VP
                  4      V n        \0        VP2                  ,          V n        R#   + '       g   i     EL7; i)r   )ry   ÚpaddingÚgroupsÚweight_normN)Úmodifier_rankÚweight)ÚnamerÔ   Úparametrizations)r|   r}   r   r�   Úhidden_sizeÚnum_conv_pos_embeddingsÚnum_conv_pos_embedding_groupsr…   Úutilsrþ   rÌ   r  r   Ú	deepspeedÚzeroÚGatheredParametersr   Ú	original0Ú	original1Úweight_gÚweight_vÚregister_external_parameterÚSpeechT5SamePadLayerrü   r   r†   r‡   )r‰   rŠ   rþ   r  r  r  rŒ   s   &&    €r&   r}   Ú(SpeechT5PositionalConvEmbedding.__init__d  s§  ø€ Ü‰ÑÔÜ—I’IØ×ÑØ×ÑØ×6Ñ6Ø×2Ñ2°aÕ7Ø×7Ñ7ô
ˆŒ	ô —h‘h×*Ñ*ˆÜ”2—8‘8×,Ñ,¨m×<Ò<ÜŸ(™(×3Ñ3×?Ñ?ˆKä%×'Ó'Ûà—‘×2Ñ2°4·9±9×3CÑ3CÐSTÐ2×UÕUÙ'¨¯	©	¸ÀaÔH�”	÷ Vä�t—y‘yÐ"4×5Ò5ØŸ9™9×5Ñ5×<Ñ<×FÑF�ØŸ9™9×5Ñ5×<Ñ<×FÑF‘àŸ9™9×-Ñ-�ØŸ9™9×-Ñ-�Ø�N‰N×6Ñ6°tÔFØ�N‰N×6Ñ6°tÕFá# D§I¡I°HÀ!ÔDˆDŒIä+¨F×,JÑ,JÓKˆŒÜ  ×!?Ñ!?Õ@ˆŽ÷ V×UÐUús   ÄI(É(I9	c                ó´   € VP                  ^^4      pV P                  V4      pV P                  V4      pV P                  V4      pVP                  ^^4      pV# ©r.   )r¨   r…   rü   r‡   r�   s   &&r&   r’   Ú'SpeechT5PositionalConvEmbedding.forward…  sV   € Ø%×/Ñ/°°1Ó5ˆàŸ	™	 -Ó0ˆØŸ™ ]Ó3ˆØŸ™¨Ó6ˆà%×/Ñ/°°1Ó5ˆØÐr(   )r‡   r…   rü   r•   r�   s   @@r&   rú   rú   c  s   ù‡ € õA÷Bò r(   rú   c                   ó@   a a€ ] tR tRt oRtRV 3R lltR tRtVtV ;t	# )Ú SpeechT5ScaledPositionalEncodingi�  uS   
Scaled positional encoding, see Â§3.2 in https://huggingface.co/papers/1809.08895
c           	     ó8  <€ \         P                  ! W24      p\         P                  ! ^ V4      P                  ^4      p\         P                  ! \         P                  ! ^ V^\         P
                  R7      P                  4       \        P                  ! R4      V,          ) ,          4      p\         P                  ! VP                  4       V,          4      VR&   \         P                  ! VP                  4       V,          4      VR	&   VP                  ^ 4      p\        SV `1  4        \        P                  ! VRR7      V n        \        P                   ! VR7      V n        W n        W0n        \        P(                  ! \         P*                  ! R4      4      V n        R# )
r/   rT   ç     ˆÃ@FrÉ   ©Úpç      ð?N©r*   :r/   Nr   ©r*   :r.   Nr   )r"   r^   ra   rÙ   r×   rØ   rF   rÕ   rÖ   rÛ   rÜ   r|   r}   r   rÎ   ÚpeÚDropoutÚdropoutrÔ   Úmax_lenÚ	ParameterÚtensorÚalpha)r‰   r  rÔ   r   r  ÚpositionÚdiv_termrŒ   s   &&&&   €r&   r}   Ú)SpeechT5ScaledPositionalEncoding.__init__•  s
  ø€ Ü�[Š[˜Ó&ˆÜ—<’<  7Ó+×5Ñ5°aÓ8ˆÜ—9’9œUŸ\š\¨!¨S°!¼5¿;¹;ÔG×MÑMÓOÔTX×T\ÒT\Ð]dÓTeÐhkÕTkÐRlÕlÓmˆÜ—i’i §¡Ó 0°8Õ ;Ó<ˆˆ7‰Ü—i’i §¡Ó 0°8Õ ;Ó<ˆˆ7‰Ø�\‰\˜!‹_ˆÜ‰ÑÔÜ—)’)˜B¨5Ô1ˆŒÜ—z’z GÔ,ˆŒØŒØŒÜ—\’\¤%§,¢,¨sÓ"3Ó4ˆŽ
r(   c                ó¢   € WP                   V P                  R RVP                  ^4      13,          ,          ,           pV P                  V4      pV# ©r*   N)r#  r  rå   r  )r‰   rà   s   &&r&   r’   Ú(SpeechT5ScaledPositionalEncoding.forward£  s@   € Ø—J‘J §¡¨¨M¨c¯h©h°q«k¨MÐ)9Õ!:Õ:Õ:ˆØ�l‰l˜3ÓˆØˆ
r(   )r#  rÔ   r  r   r  )iˆ  ©
r–   r—   r˜   r™   rö   r}   r’   rš   r›   rœ   r�   s   @@r&   r  r  �  s   ù‡ € ñ÷5÷ò r(   r  c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )Ú"SpeechT5RelativePositionalEncodingi©  c                ó”   <€ \         SV `  4        Wn        W n        \        P
                  P                  ^V,          V4      V n        R# r¾   )r|   r}   rÔ   Ú
max_lengthr"   r   Ú	EmbeddingÚpe_k)r‰   rÔ   r.  rŒ   s   &&&€r&   r}   Ú+SpeechT5RelativePositionalEncoding.__init__ª  s4   ø€ Ü‰ÑÔØŒØ$ŒÜ—H‘H×&Ñ& q¨:¥~°sÓ;ˆŽ	r(   c                óæ  € VP                   ^,          p\        P                  ! ^ V4      P                  VP                  \        P
                  R7      pVR,          VR,          ,
          p\        P                  ! W0P                  ) 8  V P                  ) V4      p\        P                  ! W0P                  8¬  V P                  ^,
          V4      pW0P                  ,           pV P                  V4      # )r.   ©rÈ   rU   r(  )Nr*   )	r1   r"   ra   rÍ   rÈ   rò   Úwherer.  r0  )r‰   r‘   ré   Úpos_seqs   &&  r&   r’   Ú*SpeechT5RelativePositionalEncoding.forward°  s³   € Ø×%Ñ% aÕ(ˆÜ—,’,˜q 'Ó*×-Ñ-°]×5IÑ5IÔQV×Q[ÑQ[Ð-Ó\ˆØ˜'Õ" W¨WÕ%5Õ5ˆä—+’+˜g¯©Ð(8Ñ8¸4¿?¹?Ð:JÈGÓTˆÜ—+’+˜g¯©Ñ8¸$¿/¹/ÈAÕ:MÈwÓWˆØŸO™OÕ+ˆà�y‰y˜Ó!Ð!r(   )rÔ   r.  r0  )iè  r•   r�   s   @@r&   r,  r,  ©  s   ù‡ € ÷<÷	"ò 	"r(   r,  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )r  i½  c                ó`   <€ \         SV `  4        V^,          ^ 8X  d
   ^V n        R# ^ V n        R# r¾   )r|   r}   Únum_pad_remove)r‰   r  rŒ   s   &&€r&   r}   ÚSpeechT5SamePadLayer.__init__¾  s)   ø€ Ü‰ÑÔØ#:¸QÕ#>À!Ô#C˜aˆÖÈˆÖr(   c                óZ   € V P                   ^ 8”  d   VRRRV P                   ) 13,          pV# )r/   r*   N©r9  r�   s   &&r&   r’   ÚSpeechT5SamePadLayer.forwardÂ  s6   € Ø×Ñ Ô"Ø)¨!¨QÐ0F°4×3FÑ3FÐ2FÐ0FÐ*FÕGˆMØÐr(   r<  r•   r�   s   @@r&   r  r  ½  s   ù‡ € õK÷ò r(   r  c                   óB   a a€ ] tR tRt oRtV 3R ltR tR tRtVt	V ;t
# )ÚSpeechT5FeatureEncoderiÉ  z.Construct the features from raw audio waveformc           	     ó   <€ \         SV `  4        VP                  R 8X  dR   \        V^ R7      .\	        VP
                  ^,
          4       Uu. uF  p\        W^,           R7      NK  	  up,           pMYVP                  R8X  d0   \	        VP
                  4       Uu. uF  p\        WR7      NK  	  ppM\        RVP                   R24      h\        P                  ! V4      V n        RV n        RV n        R# u upi u upi )Úgroup)r‹   Úlayerz`config.feat_extract_norm` is z), but has to be one of ['group', 'layer']FTN)r|   r}   Úfeat_extract_normr¬   r]   Únum_feat_extract_layersrv   r    r3   r   Ú
ModuleListÚconv_layersÚgradient_checkpointingÚ_requires_grad)r‰   rŠ   ÚirF  rŒ   s   &&  €r&   r}   ÚSpeechT5FeatureEncoder.__init__Ì  s÷   ø€ Ü‰ÑÔà×#Ñ# wÔ.Ü5°fÀqÔIÐJÜNSÐTZ×TrÑTrÐuvÕTvÔNwóNÙNwÈÔ,¨VÀ!½e×DÑNwñNõ ‰Kð ×%Ñ%¨Ô0äHMÈf×NlÑNlÔHmóÙHmÀ1Ô*¨6×>ÑHmð ð ˆKô Ø0°×1IÑ1IÐ0JÐJsÐtóð ô Ÿ=š=¨Ó5ˆÔØ&+ˆÔ#Ø"ˆÖùòNùòs   ÁC6ÂC;c                óP   € V P                  4        F
  pR Vn        K  	  R V n        R# )FN)Ú
parametersÚrequires_gradrH  )r‰   Úparams   & r&   Ú_freeze_parametersÚ)SpeechT5FeatureEncoder._freeze_parametersß  s#   € Ø—_‘_Ö&ˆEØ"'ˆEÖñ 'à#ˆÖr(   c                ó¤   € VR,          pV P                   '       d   V P                  '       d   RVn        V P                   F  pV! V4      pK  	  V# )r*   Tr(  )rH  ÚtrainingrM  rF  )r‰   r8   r‘   Ú
conv_layers   &&  r&   r’   ÚSpeechT5FeatureEncoder.forwardä  sL   € Ø$ WÕ-ˆð ××Ð 4§=§= =Ø*.ˆMÔ'à×*Ô*ˆJÙ& }Ó5ŠMñ +ð Ðr(   )rH  rF  rG  )r–   r—   r˜   r™   rö   r}   rO  r’   rš   r›   rœ   r�   s   @@r&   r?  r?  É  s   ù‡ € Ù8õ#ò&$÷

ò 
r(   r?  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚSpeechT5FeatureProjectioniò  c                óL  <€ \         SV `  4        \        P                  ! VP                  R,          VP
                  R7      V n        \        P                  ! VP                  R,          VP                  4      V n	        \        P                  ! VP                  4      V n        R# )r.   ©ÚepsNr+   )r|   r}   r   r£   r~   Úlayer_norm_epsr¤   ÚLinearr  Ú
projectionr  Úfeat_proj_dropoutr  ©r‰   rŠ   rŒ   s   &&€r&   r}   Ú"SpeechT5FeatureProjection.__init__ó  sf   ø€ Ü‰ÑÔÜŸ,š, v§¡°rÕ':À×@UÑ@UÔVˆŒÜŸ)š) F§O¡O°BÕ$7¸×9KÑ9KÓLˆŒÜ—z’z &×":Ñ":Ó;ˆŽr(   c                ón   € V P                  V4      pV P                  V4      pV P                  V4      pW3# r�   )r¤   r\  r  )r‰   r‘   Únorm_hidden_statess   && r&   r’   Ú!SpeechT5FeatureProjection.forwardù  s7   € à!Ÿ_™_¨]Ó;ÐØŸ™Ð(:Ó;ˆØŸ™ ]Ó3ˆØÐ0Ð0r(   )r  r¤   r\  r•   r�   s   @@r&   rV  rV  ò  s   ù‡ € õ<÷1ò 1r(   rV  c                   óˆ   a a€ ] tR tRt oV 3R ltR tRV3R lR lltV3R lR ltV3R lR	 ltRV3R
 lR llt	Rt
VtV ;t# )ÚSpeechT5SpeechEncoderPreneti  c                óò  <€ \         SV `  4        Wn        \        V4      V n        \        V4      V n        VP                  R 8”  g   VP                  R 8”  dH   \        P                  ! \        P                  ! VP                  4      P                  4       4      V n        \!        V4      V n        \%        VP&                  VP(                  ,           ^,           VP                  VP(                  4      V n        R# )r<   N)r|   r}   rŠ   r?  Úfeature_encoderrV  Úfeature_projectionÚmask_time_probÚmask_feature_probr   r!  r"   r#   r  Úuniform_Úmasked_spec_embedrú   Úpos_conv_embedr¶   Úmax_speech_positionsr   Úpos_sinusoidal_embedr^  s   &&€r&   r}   Ú$SpeechT5SpeechEncoderPrenet.__init__  s¸   ø€ Ü‰ÑÔØŒÜ5°fÓ=ˆÔÜ";¸FÓ"CˆÔð × Ñ  3Ô&¨&×*BÑ*BÀSÔ*HÜ%'§\¢\´%·,²,¸v×?QÑ?QÓ2R×2[Ñ2[Ó2]Ó%^ˆDÔ"ä=¸fÓEˆÔÜ$IØ×'Ñ'¨&×*=Ñ*=Õ=ÀÕAØ×ÑØ×Ñó%
ˆÖ!r(   c                ó:   € V P                   P                  4        R # r�   )rf  rO  ©r‰   s   &r&   Úfreeze_feature_encoderÚ2SpeechT5SpeechEncoderPrenet.freeze_feature_encoder  s   € Ø×Ñ×/Ñ/Ö1r(   c                ó„   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          /# )r   r8   r:   NÚmask_time_indices)r"   r#   rG   ÚFloatTensor)r%   rž   s   "€r&   r'   Ú(SpeechT5SpeechEncoderPrenet.__annotate__  sC   ø€ ÷  -ñ  -á—l‘lð -ñ ×(Ñ(¨4Õ/ð -ñ !×,Ñ,¨tÕ3ñ	 -r(   c                ó  € V P                  V4      pVP                  ^^4      pVe$   V P                  VP                  ^,          V4      pV P	                  V4      w  rTV P                  WSVR7      pV P                  V4      pWV,           pVe!   VP                  ^4      P                  4       pMB\        P                  ! VP                  R,          \        P                  VP                  R7      pV P                  V4      pWX,           pWR3# )r.   )ru  r:   :Nr   NrÇ   )rf  r¨   Ú"_get_feature_vector_attention_maskr1   rg  Ú_mask_hidden_statesrl  rï   rò   r"   r^   rÈ   rn  )	r‰   r8   r:   ru  Úextract_featuresr‘   Úpositional_conv_embeddingÚpadding_maskÚ positional_sinusoidal_embeddingss	   &&&&     r&   r’   Ú#SpeechT5SpeechEncoderPrenet.forward  s  € ð  ×/Ñ/°Ó=ÐØ+×5Ñ5°a¸Ó;ÐàÒ%à!×DÑDØ ×&Ñ& qÕ)ØóˆNð
 +/×*AÑ*AÐBRÓ*SÑ'ˆØ×0Ñ0ØÈ~ð 1ó 
ˆð %)×$7Ñ$7¸Ó$FÐ!Ø%ÕAˆàÒ%Ø)×,Ñ,¨QÓ/×4Ñ4Ó6‰Lä Ÿ;š; }×':Ñ':¸2Õ'>ÄeÇjÁjÐYf×YmÑYmÔnˆLà+/×+DÑ+DÀ\Ó+RÐ(Ø%ÕHˆàÐ,Ð,r(   c                ó:   <€ V ^8„  d   QhRS[ RS[P                  /# )r   Úfeature_vector_lengthr:   )r$   r"   rG   )r%   rž   s   "€r&   r'   rw  9  s"   ø€ ÷ ñ Éð Ñ]b×]mÑ]mñ r(   c                ó  € VP                  RR7      R,          pV P                  V4      P                  \        P                  4      pVP
                  ^ ,          p\        P                  ! WQ3VP                  VP                  R7      p^V\        P                  ! VP
                  ^ ,          VP                  R7      V^,
          3&   VP                  R.4      P                  R4      P                  R.4      P                  4       pV# )r.   rÓ   rÇ   ©rÈ   r+   )r*   r+   )rð   Ú _get_feat_extract_output_lengthsrÍ   r"   rò   r1   r^   rU   rÈ   ra   Úflipr_   )r‰   r�  r:   Únon_padded_lengthsÚoutput_lengthsrk   s   &&&   r&   ry  Ú>SpeechT5SpeechEncoderPrenet._get_feature_vector_attention_mask9  sä   € ð ,×2Ñ2°rÐ2Ó:¸5ÕAÐØ×>Ñ>Ð?QÓR×UÑUÔV[×V`ÑV`ÓaˆØ#×)Ñ)¨!Õ,ˆ
äŸšØÐ/°~×7KÑ7KÐTb×TiÑTiô
ˆð uvˆœŸš ^×%9Ñ%9¸!Õ%<À^×EZÑEZÔ[Ð]kÐnoÕ]oÐpÑqØ'×,Ñ,¨b¨TÓ2×9Ñ9¸"Ó=×BÑBÀBÀ4ÓH×MÑMÓOˆØÐr(   c                óD   <€ V ^8„  d   QhRS[ P                  S[,          /# )r   rm   )r"   rG   r$   )r%   rž   s   "€r&   r'   rw  I  s    ø€ ÷ ñ ¹e×>NÑ>NÑQTÕ>Tñ r(   c                ó˜   € R p\        V P                  P                  V P                  P                  4       F  w  r4V! WV4      pK  	  V# )z8
Computes the output length of the convolutional layers
c                 óN   € \         P                  ! W,
          VR R7      ^,           # )Úfloor)Úrounding_mode)r"   Údiv)rN   ry   rz   s   &&&r&   Ú_conv_out_lengthÚVSpeechT5SpeechEncoderPrenet._get_feat_extract_output_lengths.<locals>._conv_out_lengthN  s    € ô —9’9˜\Õ7¸ÈwÔWÐZ[Õ[Ð[r(   )ÚziprŠ   r‚   rƒ   )r‰   rm   r�  ry   rz   s   &&   r&   r„  Ú<SpeechT5SpeechEncoderPrenet._get_feat_extract_output_lengthsI  sG   € ò
	\ô
 $' t§{¡{×'>Ñ'>ÀÇÁ×@WÑ@WÖ#XÑˆKÙ,¨]ÈÓPŠMñ $Yð Ðr(   c                ó„   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          /# )r   r‘   ru  Nr:   )r"   rv  rG   )r%   rž   s   "€r&   r'   rw  Y  sE   ø€ ÷ ,ñ ,á×(Ñ(ð,ñ !×,Ñ,¨tÕ3ð,ñ ×(Ñ(¨4Õ/ñ	,r(   c                óò  € \        V P                  RR4      '       g   V# VP                  4       w  rEpVe)   V P                  P	                  VP
                  4      W&   MÑV P                  P                  ^ 8”  d·   V P                  '       d¥   \        WE3V P                  P                  V P                  P                  VV P                  P                  R7      p\        P                  ! W!P                  \        P                  R7      pV P                  P	                  VP
                  4      W&   V P                  P                  ^ 8”  d­   V P                  '       d›   \        WF3V P                  P                  V P                  P                   V P                  P"                  R7      p\        P                  ! WqP                  \        P                  R7      pVR,          P%                  RVR4      p^ W&   V# )zŠ
Masks extracted features along time axis and/or along feature axis according to
[SpecAugment](https://huggingface.co/papers/1904.08779).
Úapply_spec_augmentT)rA   rB   r:   rC   r3  )rA   rB   rC   r(  r+   )ÚgetattrrŠ   rå   rk  rÍ   rU   rh  rR  rt   Úmask_time_lengthÚmask_time_min_masksr"   r"  rÈ   r_   ri  Úmask_feature_lengthÚmask_feature_min_masksÚexpand)r‰   r‘   ru  r:   rk   rQ   r  Úmask_feature_indicess   &&&&    r&   rz  Ú/SpeechT5SpeechEncoderPrenet._mask_hidden_statesY  sŠ  € ô �t—{‘{Ð$8¸$×?Ò?Ø Ð ð 4A×3EÑ3EÓ3GÑ0ˆ
 [àÒ(à/3×/EÑ/E×/HÑ/HÈ×I\ÑI\Ó/]ˆMÒ,Ø�[‰[×'Ñ'¨!Ô+°··°Ü 5ØÐ-ØŸ+™+×4Ñ4Ø ŸK™K×8Ñ8Ø-ØŸ+™+×9Ñ9ô!Ðô !&§¢Ð->×G[ÑG[Ôch×cmÑcmÔ nÐØ/3×/EÑ/E×/HÑ/HÈ×I\ÑI\Ó/]ˆMÑ,à�;‰;×(Ñ(¨1Ô,°··°ä#8ØÐ)ØŸ+™+×7Ñ7Ø ŸK™K×;Ñ;ØŸ+™+×<Ñ<ô	$Ð ô $)§<¢<Ð0D×MaÑMaÔin×isÑisÔ#tÐ Ø#7¸Õ#@×#GÑ#GÈÈOÐ]_Ó#`Ð Ø23ˆMÑ/àÐr(   )rŠ   rf  rg  rk  rl  rn  ©NN)r–   r—   r˜   r™   r}   rr  r’   ry  r„  rz  rš   r›   rœ   r�   s   @@r&   rd  rd    s=   ù‡ € õ
ò"2÷ -ò  -÷Fð ÷ ð ÷ ,÷ ,ò ,r(   rd  c                   óN   a a€ ] tR tRt oV 3R ltR tRV3R lR lltRtVtV ;t	# )ÚSpeechT5SpeechDecoderPrenetiˆ  c           	     óp  <€ \         SV `  4        Wn        \        P                  ! \        VP                  4       Uu. uFA  p\        P                  ! V^ 8X  d   VP                  MVP                  VP                  4      NKC  	  up4      V n
        \        P                  ! VP                  VP                  4      V n        \        VP                  VP                  VP                  4      V n        \        P                  ! VP"                  VP                  ,           VP                  4      V n        R# u upi )r/   N)r|   r}   rŠ   r   rE  r]   Úspeech_decoder_prenet_layersr[  Únum_mel_binsÚspeech_decoder_prenet_unitsÚlayersr  Úfinal_layerr  Úpositional_dropoutrm  Úencode_positionsÚspeaker_embedding_dimÚspeaker_embeds_layer©r‰   rŠ   rI  rŒ   s   && €r&   r}   Ú$SpeechT5SpeechDecoderPrenet.__init__‰  sõ   ø€ Ü‰ÑÔØŒä—m’mô ˜v×BÑBÔCóñ
 D�Aô	 —	’	Ø+,°¬6�F×'Ò'°v×7YÑ7YØ×6Ñ6öñ Dñó
ˆŒô Ÿ9š9 V×%GÑ%GÈ×I[ÑI[Ó\ˆÔÜ @Ø×%Ñ%Ø×ÑØ×'Ñ'ó!
ˆÔô
 %'§I¢I¨f×.JÑ.JÈV×M_ÑM_Õ._Ðag×asÑasÓ$tˆÖ!ùòs   ½AD3c                ó  € \         P                  ! V^ ,          VR7      pVP                  ^ 4      P                  VP	                  ^ 4      ^^4      p\         P
                  ! V^8H  V^ 4      ^,          ^V,
          ,          # )r/   r  )r"   Ú	bernoullirÙ   Úrepeatrå   r4  )r‰   Úinputs_embedsr  ró   Ú	all_maskss   &&&  r&   Ú_consistent_dropoutÚ/SpeechT5SpeechDecoderPrenet._consistent_dropoutŸ  sd   € Ü�Š˜}¨QÕ/°1Ô5ˆØ—N‘N 1Ó%×,Ñ,¨]×-?Ñ-?ÀÓ-BÀAÀqÓIˆ	Ü�{Š{˜9¨™>¨=¸!Ó<¸qÕ@ÀAÈÅEÕJÐJr(   c                ó\   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          /# )r   r8   Úspeaker_embeddingsN©r"   r#   )r%   rž   s   "€r&   r'   Ú(SpeechT5SpeechDecoderPrenet.__annotate__¤  s,   ø€ ÷ ñ á—l‘lðñ "ŸL™L¨4Õ/ñr(   c                ó>  € TpV P                    FM  p\        P                  P                  V! V4      4      pV P	                  W0P
                  P                  4      pKO  	  V P                  V4      pV P                  V4      pVe˜   \        P                  P                  V4      pVP                  ^4      P                  RVP                  ^4      R4      p\        P                  ! W2.RR7      p\        P                  P                  V P                  V4      4      pV# )NrÓ   r+   )r¥  r   Ú
functionalÚrelur²  rŠ   Úspeech_decoder_prenet_dropoutr¦  r¨  Ú	normalizerÙ   r›  rå   r"   rÚ   rª  )r‰   r8   rµ  r°  rB  s   &&&  r&   r’   Ú#SpeechT5SpeechDecoderPrenet.forward¤  sí   € ð %ˆØ—[”[ˆEÜŸM™M×.Ñ.©u°]Ó/CÓDˆMØ ×4Ñ4°]ÇKÁK×DmÑDmÓnŠMñ !ð ×(Ñ(¨Ó7ˆØ×-Ñ-¨mÓ<ˆàÒ)Ü!#§¡×!8Ñ!8Ð9KÓ!LÐØ!3×!=Ñ!=¸aÓ!@×!GÑ!GÈÈM×L^ÑL^Ð_`ÓLaÐceÓ!fÐÜ!ŸIšI }Ð&IÈrÔRˆMÜŸM™M×.Ñ.¨t×/HÑ/HÈÓ/WÓXˆMàÐr(   )rŠ   r¨  r¦  r¥  rª  r�   )
r–   r—   r˜   r™   r}   r²  r’   rš   r›   rœ   r�   s   @@r&   r   r   ˆ  s    ù‡ € õuò,K÷
÷ ò r(   r   c                   ó<   a a€ ] tR tRt oRV 3R lltR tRtVtV ;t# )ÚSpeechT5BatchNormConvLayeri¼  c           	     ó<  <€ \         SV `  4        V^ 8X  d   VP                  pMVP                  pW!P                  ^,
          8X  d   VP                  pMVP                  p\
        P                  ! VVVP                  ^VP                  ^,
          ^,          RR7      V n        \
        P                  ! V4      V n
        W!P                  ^,
          8  d   \
        P                  ! 4       V n        MRV n        \
        P                  ! VP                  4      V n        R# )r/   F)ry   rz   rü   r{   N)r|   r}   r£  Úspeech_decoder_postnet_unitsÚspeech_decoder_postnet_layersr   r�   Úspeech_decoder_postnet_kernelr…   ÚBatchNorm1dÚ
batch_normÚTanhr‡   r  Úspeech_decoder_postnet_dropoutr  )r‰   rŠ   r‹   r   r€   rŒ   s   &&&  €r&   r}   Ú#SpeechT5BatchNormConvLayer.__init__½  s×   ø€ Ü‰ÑÔà�qŒ=Ø ×-Ñ-‰Kà ×=Ñ=ˆKà×;Ñ;¸aÕ?Ô?Ø!×.Ñ.‰Là!×>Ñ>ˆLä—I’IØØØ×<Ñ<ØØ×9Ñ9¸AÕ=À!ÕCØô
ˆŒ	ô Ÿ.š.¨Ó6ˆŒà×:Ñ:¸QÕ>Ô>Ü Ÿgšg›iˆD�Oà"ˆDŒOä—z’z &×"GÑ"GÓHˆŽr(   c                óª   € V P                  V4      pV P                  V4      pV P                  e   V P                  V4      pV P                  V4      pV# r�   )r…   rÅ  r‡   r  r�   s   &&r&   r’   Ú"SpeechT5BatchNormConvLayer.forwardÛ  sJ   € ØŸ	™	 -Ó0ˆØŸ™¨Ó6ˆØ�?‰?Ò&Ø ŸO™O¨MÓ:ˆMØŸ™ ]Ó3ˆØÐr(   )r‡   rÅ  r…   r  r”   r•   r�   s   @@r&   r¿  r¿  ¼  s   ù‡ € ÷I÷<ò r(   r¿  c                   óV   a a€ ] tR tRt oV 3R ltV3R lR ltV3R lR ltRtVtV ;t	# )ÚSpeechT5SpeechDecoderPostnetiä  c           	     óª  <€ \         SV `  4        Wn        \        P                  ! VP
                  VP                  VP                  ,          4      V n        \        P                  ! VP
                  VP                  4      V n	        \        P                  ! \        VP                  4       Uu. uF  p\        W4      NK  	  up4      V n        R # u upi r�   )r|   r}   rŠ   r   r[  r  r£  r9   Úfeat_outÚprob_outrE  r]   rÂ  r¿  r¥  r«  s   && €r&   r}   Ú%SpeechT5SpeechDecoderPostnet.__init__å  s’   ø€ Ü‰ÑÔØŒäŸ	š	 &×"4Ñ"4°f×6IÑ6IÈF×LcÑLcÕ6cÓdˆŒÜŸ	š	 &×"4Ñ"4°f×6MÑ6MÓNˆŒä—m’mÜ<AÀ&×BfÑBfÔ<gÓhÑ<g°qÔ'¨Ö2Ñ<gÑhó
ˆŽùÚhs   Â.Cc                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r   r‘   r¶  )r%   rž   s   "€r&   r'   Ú)SpeechT5SpeechDecoderPostnet.__annotate__ð  s   ø€ ÷ Eñ E¡U§\¡\ñ Er(   c                ó  € V P                  V4      P                  VP                  ^ 4      RV P                  P                  4      pV P                  V4      pV P                  V4      P                  VP                  ^ 4      R4      pW#V3# )r/   r+   )rÎ  rÝ   rå   rŠ   r£  ÚpostnetrÏ  )r‰   r‘   Úoutputs_before_postnetÚoutputs_after_postnetÚlogitss   &&   r&   r’   Ú$SpeechT5SpeechDecoderPostnet.forwardð  s{   € Ø!%§¡¨}Ó!=×!BÑ!BÀ=×CUÑCUÐVWÓCXÐZ\Ð^b×^iÑ^i×^vÑ^vÓ!wÐØ $§¡Ð-CÓ DÐØ—‘˜}Ó-×2Ñ2°=×3EÑ3EÀaÓ3HÈ"ÓMˆØ%¸fÐDÐDr(   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rÒ  r¶  )r%   rž   s   "€r&   r'   rÓ  ö  s   ø€ ÷ <ñ <¡U§\¡\ñ <r(   c                óŒ   € VP                  ^^4      pV P                   F  pV! V4      pK  	  WP                  ^^4      ,           # r  )r¨   r¥  )r‰   r‘   Úlayer_outputrB  s   &&  r&   rÕ  Ú$SpeechT5SpeechDecoderPostnet.postnetö  sB   € Ø$×.Ñ.¨q°!Ó4ˆØ—[”[ˆEÙ  Ó.ŠLñ !à×5Ñ5°a¸Ó;Õ;Ð;r(   )rŠ   rÎ  r¥  rÏ  )
r–   r—   r˜   r™   r}   r’   rÕ  rš   r›   rœ   r�   s   @@r&   rÌ  rÌ  ä  s%   ù‡ € õ	
÷Eð E÷<÷ <ð <r(   rÌ  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚSpeechT5TextEncoderPrenetiý  c                ó  <€ \         SV `  4        Wn        \        P                  ! VP
                  VP                  VP                  4      V n        \        VP                  VP                  VP                  4      V n        R # r�   )r|   r}   rŠ   r   r/  Ú
vocab_sizer  r   Úembed_tokensr  r§  Úmax_text_positionsr¨  r^  s   &&€r&   r}   Ú"SpeechT5TextEncoderPrenet.__init__þ  sc   ø€ Ü‰ÑÔØŒÜŸLšL¨×):Ñ):¸F×<NÑ<NÐPV×PcÑPcÓdˆÔÜ @Ø×%Ñ%Ø×ÑØ×%Ñ%ó!
ˆÖr(   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r   r¶  )r%   rž   s   "€r&   r'   Ú&SpeechT5TextEncoderPrenet.__annotate__  s   ø€ ÷ ñ ¡§¡ñ r(   c                óJ   € V P                  V4      pV P                  V4      pV# r�   )râ  r¨  )r‰   r   r°  s   && r&   r’   Ú!SpeechT5TextEncoderPrenet.forward  s(   € Ø×)Ñ)¨)Ó4ˆØ×-Ñ-¨mÓ<ˆØÐr(   )rŠ   râ  r¨  r•   r�   s   @@r&   rß  rß  ý  s   ù‡ € õ
÷÷ ð r(   rß  c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚSpeechT5TextDecoderPreneti  c                óò  <€ \         SV `  4        Wn        \        P                  ! VP
                  4      V n        VP                  '       d!   \        P                  ! VP                  4      MR V n        \        P                  ! VP                  VP                  VP                  4      V n        \!        VP"                  VP                  ,           ^,           VP                  VP                  4      V n        R# )r  N)r|   r}   rŠ   r   r  r§  r  Úscale_embeddingrÕ   Úsqrtr  Úembed_scaler/  rá  r   râ  r¶   rã  Úembed_positionsr^  s   &&€r&   r}   Ú"SpeechT5TextDecoderPrenet.__init__  s®   ø€ Ü‰ÑÔØŒÜ—z’z &×";Ñ";Ó<ˆŒØ<B×<R×<RÐ<Rœ4Ÿ9š9 V×%7Ñ%7Ô8ÐX[ˆÔäŸLšL¨×):Ñ):¸F×<NÑ<NÐPV×PcÑPcÓdˆÔäDØ×%Ñ%¨×(;Ñ(;Õ;¸aÕ?Ø×ÑØ×Ñó 
ˆÖr(   c                óp   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          /# )r   r   r:   NÚpast_key_values)r"   r#   rG   r   )r%   rž   s   "€r&   r'   Ú&SpeechT5TextDecoderPrenet.__annotate__  s<   ø€ ÷ -ñ -á—<‘<ð-ñ ×(Ñ(¨4Õ/ð-ñ  �ñ	-r(   c                ó>  € Ve+   VP                  4       pVP                  RVR,          4      pM\        R4      hVf   ^ MVP                  4       pV P	                  W4      pV P                  V4      V P                  ,          pWv,          pV P                  V4      pWr3# )Nz'You have to specify `decoder_input_ids`r+   )rå   rÝ   r3   Úget_seq_lengthrï  râ  rî  r  )r‰   r   r:   rò  Úinput_shaperã   Ú	positionsr°  s   &&&&    r&   r’   Ú!SpeechT5TextDecoderPrenet.forward  s–   € ð Ò Ø#Ÿ.™.Ó*ˆKØ!Ÿ™ r¨;°r­?Ó;‰IäÐFÓGÐGà&5Ò&=¡À?×CaÑCaÓCcÐØ×(Ñ(¨ÓKˆ	à×)Ñ)¨)Ó4°t×7GÑ7GÕGˆØÕ"ˆØŸ™ ]Ó3ˆàÐ,Ð,r(   )rŠ   r  rï  rî  râ  rž  r•   r�   s   @@r&   rê  rê    s   ù‡ € õ
÷-÷ -ò -r(   rê  c                   óP   a a€ ] tR tRt oV 3R ltV3R lR ltR tR tRtVt	V ;t
# )ÚSpeechT5TextDecoderPostneti3  c                ó”   <€ \         SV `  4        Wn        \        P                  ! VP
                  VP                  R R7      V n        R# )F©r{   N)r|   r}   rŠ   r   r[  r  rá  Úlm_headr^  s   &&€r&   r}   Ú#SpeechT5TextDecoderPostnet.__init__4  s3   ø€ Ü‰ÑÔØŒÜ—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŽr(   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rÒ  r¶  )r%   rž   s   "€r&   r'   Ú'SpeechT5TextDecoderPostnet.__annotate__9  s   ø€ ÷ +ñ +¡U§\¡\ñ +r(   c                ó$   € V P                  V4      # r�   ©rý  r�   s   &&r&   r’   Ú"SpeechT5TextDecoderPostnet.forward9  s   € Ø�|‰|˜MÓ*Ð*r(   c                ó   € V P                   # r�   r  rq  s   &r&   Úget_output_embeddingsÚ0SpeechT5TextDecoderPostnet.get_output_embeddings<  s   € ð �|‰|Ðr(   c                ó   € Wn         R # r�   r  ©r‰   Únew_embeddingss   &&r&   Úset_output_embeddingsÚ0SpeechT5TextDecoderPostnet.set_output_embeddingsA  s   € Ø%Žr(   )rŠ   rý  )r–   r—   r˜   r™   r}   r’   r  r
  rš   r›   rœ   r�   s   @@r&   rú  rú  3  s$   ù‡ € õT÷
+ð +ò÷
&ò &r(   rú  c                   ó\   a a€ ] tR tRt oRtRV3R lV 3R llltR	V3R lR lltRtVtV ;t	# )
ÚSpeechT5AttentioniE  z‡
Multi-headed attention from 'Attention Is All You Need' paper with relative position bias (see
https://aclanthology.org/N18-2074.pdf)
c                óv   <€ V ^8„  d   QhRS[ RS[ RS[R,          RS[R,          RS[R,          RS[R,          /# )r   Ú	embed_dimÚ	num_headsr  NÚ
is_decoderr{   Ú	layer_idx)r$   rF   r_   )r%   rž   s   "€r&   r'   ÚSpeechT5Attention.__annotate__K  s_   ø€ ÷ Cñ CáðCñ ðCñ ˜•ð	Cñ
 ˜4•KðCñ �T�kðCñ ˜$•;ñCr(   c                ó  <€ \         SV `  4        Wn        W n        W0n        W,          V n        V P
                  V,          V P                  8w  d   \        R V P                   RV R24      hV P
                  R,          V n        W@n        W`n	        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        \        P                  ! WVR7      V n        R# )z;embed_dim must be divisible by num_heads (got `embed_dim`: z and `num_heads`: z).rü  Ng      à¿)r|   r}   r  r  r  Úhead_dimr3   Úscalingr  r  r   r[  Úk_projÚv_projÚq_projÚout_proj)r‰   r  r  r  r  r{   r  rŒ   s   &&&&&&&€r&   r}   ÚSpeechT5Attention.__init__K  sÉ   ø€ ô 	‰ÑÔØ"ŒØ"ŒØŒØ!Õ.ˆŒà�M‰M˜IÕ%¨$¯.©.Ô8ÜØMÈdÏnÉnÐM]Ø$ Y K¨rð3óð ð —}‘} dÕ*ˆŒØ$ŒØ"Œä—i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜ—i’i 	¸4Ô@ˆŒÜŸ	š	 )¸TÔBˆŽr(   c                ó*  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[RS[S[ P                  S[ P                  R,          S[R,          3,          /# )	r   r‘   Úkey_value_statesNrò  r:   Úposition_biasÚoutput_attentionsrD   )r"   r#   r   r_   rE   )r%   rž   s   "€r&   r'   r  h  sš   ø€ ÷ r2ñ r2á—|‘|ðr2ñ  Ÿ,™,¨Õ-ðr2ñ  �ð	r2ñ
 Ÿ™ tÕ+ðr2ñ —|‘| dÕ*ðr2ñ  ðr2ñ 
‰u�|‰|™UŸ\™\¨DÕ0±%¸$µ,Ð>Õ	?ñr2r(   c                óä  € VRJpVP                  4       w  ršpV P                  V4      V P                  ,          pRpVe`   \        V\        4      '       dH   VP
                  P                  V P                  4      pV'       d   VP                  pMVP                  pMTpV'       d   TMTpV'       d\   VeX   V'       dP   XP                  V P                  ,          P                  pVP                  V P                  ,          P                  pMíV P                  V4      pV P                  V4      pVP                  V	R
V P                   V P"                  4      P%                  ^^4      pVP                  V	R
V P                   V P"                  4      P%                  ^^4      pVeX   XP'                  VVV P                  4      w  ppV'       d0   \        V\        4      '       d   RVP
                  V P                  &   W�P                   ,          R
V P"                  3pVP                  WšV P                   V P"                  4      P%                  ^^4      pVP(                  ! V!  pVP(                  ! V!  pVP(                  ! V!  pVP                  ^4      p\*        P,                  ! VVP%                  ^^4      4      pVP                  4       W�P                   ,          V
V38w  d3   \/        RW�P                   ,          V
V3 RVP                  4        24      hVeÍ   VP1                  4       P                  W�P                   ,          R
V P"                  4      P%                  ^ ^4      p\*        P2                  ! VVP%                  RR
4      4      pVP%                  ^ ^4      P                  W�P                   ,          VP                  ^ 4      VP                  ^4      4      pVV,          pVe„   VP                  4       V	^V
V38w  d$   \/        RV	^V
V3 RVP                  4        24      hVP                  W�P                   V
V4      V,           pVP                  W�P                   ,          V
V4      p\4        P6                  P9                  VR
R7      pV'       dB   VP                  W�P                   V
V4      pVP                  W�P                   ,          V
V4      pMRp\4        P6                  P;                  VV P:                  V P<                  R7      p\*        P,                  ! VV4      pVP                  4       W�P                   ,          W P"                  38w  d6   \/        R	W�P                   W P"                  3 RVP                  4        24      hVP                  W�P                   W P"                  4      pVP%                  ^^4      pVP)                  WšV P>                  4      pV PA                  V4      pVV3# )z#Input shape: Batch x Time x ChannelNFTz$Attention weights should be of size z	, but is z!Attention mask should be of size rÓ   )r  rR  z `attn_output` should be of size r+   r§   )!rå   r  r  Ú
isinstancer
   Ú
is_updatedÚgetr  Úcross_attention_cacheÚself_attention_cacher¥  ÚkeysÚvaluesr  r  rÝ   r  r  r¨   Úupdateri   r"   Úbmmr3   Ú
contiguousÚmatmulr   r¹  Úsoftmaxr  rR  r  r  )r‰   r‘   r  rò  r:   r  r  ÚkwargsÚis_cross_attentionrè   Útgt_lenrl   Úquery_statesr"  Úcurr_past_key_valuesÚcurrent_statesÚ
key_statesÚvalue_statesÚ
proj_shapeÚsrc_lenÚattn_weightsÚ	reshape_qÚrel_pos_biasÚattn_weights_reshapedÚ
attn_probsÚattn_outputs   &&&&&&&,                  r&   r’   ÚSpeechT5Attention.forwardh  s  € ð .°TÐ9Ðà'×,Ñ,Ó.‰ˆ�að —{‘{ =Ó1°D·L±LÕ@ˆàˆ
ØÒ&Ü˜/Ô+>×?Ò?Ø,×7Ñ7×;Ñ;¸D¿N¹NÓK�
ß%à+:×+PÑ+PÑ(à+:×+OÑ+OÑ(à'6Ð$ç-?Ñ)À]ˆß /Ò"=Ç*à-×4Ñ4°T·^±^ÕD×IÑIˆJØ/×6Ñ6°t·~±~ÕF×MÑM‰LàŸ™ ^Ó4ˆJØŸ;™; ~Ó6ˆLØ#Ÿ™¨¨b°$·.±.À$Ç-Á-ÓP×ZÑZÐ[\Ð^_Ó`ˆJØ'×,Ñ,¨S°"°d·n±nÀdÇmÁmÓT×^Ñ^Ð_`ÐbcÓdˆLàÒ*à+?×+FÑ+FÀzÐS_Ðae×aoÑaoÓ+pÑ(�
˜Lç%¬*°_ÔFY×*ZÒ*ZØAE�O×.Ñ.¨t¯~©~Ñ>àŸN™NÕ*¨B°·±Ð>ˆ
Ø#×(Ñ(¨°t·~±~ÀtÇ}Á}ÓU×_Ñ_Ð`aÐcdÓeˆØ#×+Ò+¨ZÑ8ˆØ×'Ò'¨Ñ4ˆ
Ø#×+Ò+¨ZÑ8ˆà—/‘/ !Ó$ˆÜ—y’y ¨z×/CÑ/CÀAÀqÓ/IÓJˆà×ÑÓ 3¯©Õ#7¸À'Ð"JÔJÜØ6¸¿n¹nÕ8LÈgÐW^Ð7_Ð6`ð aØ ×%Ñ%Ó'Ð(ð*óð ð Ò$Ø$×/Ñ/Ó1×6Ñ6°s¿^¹^Õ7KÈRÐQU×Q^ÑQ^Ó_×iÑiÐjkÐmnÓoˆIÜ Ÿ<š<¨	°=×3JÑ3JÈ2ÈrÓ3RÓSˆLØ'×1Ñ1°!°QÓ7×<Ñ<Ø—n‘nÕ$ m×&8Ñ&8¸Ó&;¸]×=OÑ=OÐPQÓ=RóˆLð ˜LÕ(ˆLàÒ%Ø×"Ñ"Ó$¨¨a°¸'Ð(BÔBÜ Ø7¸¸aÀÈ'Ð8RÐ7SÐS\Ð]k×]pÑ]pÓ]rÐ\sÐtóð ð (×,Ñ,¨S·.±.À'È7ÓSÐVdÕdˆLØ'×,Ñ,¨S·>±>Õ-AÀ7ÈGÓTˆLä—}‘}×,Ñ,¨\¸rÐ,ÓBˆçð
 %1×$5Ñ$5°c¿>¹>È7ÐT[Ó$\Ð!Ø0×5Ñ5°c¿N¹NÕ6JÈGÐU\Ó]‰Là$(Ð!ä—]‘]×*Ñ*¨<¸4¿<¹<ÐRV×R_ÑR_Ð*Ó`ˆ
ä—i’i 
¨LÓ9ˆà×ÑÓ #¯©Õ"6¸ÇÁÐ!OÔOÜØ2°C¿¹È×R_ÑR_Ð3`Ð2að bØ×$Ñ$Ó&Ð'ð)óð ð
 "×&Ñ& s¯N©N¸GÇ]Á]ÓSˆØ!×+Ñ+¨A¨qÓ1ˆð "×)Ñ)¨#¸¿¹ÓGˆà—m‘m KÓ0ˆàÐ1Ð1Ð1r(   )r  r  r  r  r  r  r  r  r  r  r  )r<   FTN)NNNNFr*  r�   s   @@r&   r  r  E  s(   ù‡ € ñ÷
Cõ C÷:r2÷ r2ò r2r(   r  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚSpeechT5FeedForwardiÝ  c                óê  <€ \         SV `  4        \        P                  ! VP                  4      V n        \        P                  ! VP                  V4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        MVP                  V n        \        P                  ! W!P                  4      V n        \        P                  ! VP                  4      V n        R # r�   )r|   r}   r   r  Úactivation_dropoutÚintermediate_dropoutr[  r  Úintermediate_denser!  Ú
hidden_actÚstrr   Úintermediate_act_fnÚoutput_denseÚhidden_dropoutÚoutput_dropout)r‰   rŠ   Úintermediate_sizerŒ   s   &&&€r&   r}   ÚSpeechT5FeedForward.__init__Þ  s¢   ø€ Ü‰ÑÔÜ$&§J¢J¨v×/HÑ/HÓ$IˆÔ!ä"$§)¢)¨F×,>Ñ,>Ð@QÓ"RˆÔÜ�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÕ$à'-×'8Ñ'8ˆDÔ$äŸIšIÐ&7×9KÑ9KÓLˆÔÜ Ÿjšj¨×)>Ñ)>Ó?ˆÖr(   c                ó°   € V P                  V4      pV P                  V4      pV P                  V4      pV P                  V4      pV P	                  V4      pV# r�   )rC  rF  rB  rG  rI  r�   s   &&r&   r’   ÚSpeechT5FeedForward.forwardë  sX   € Ø×/Ñ/°Ó>ˆØ×0Ñ0°Ó?ˆØ×1Ñ1°-Ó@ˆà×)Ñ)¨-Ó8ˆØ×+Ñ+¨MÓ:ˆØÐr(   )rF  rC  rB  rG  rI  r•   r�   s   @@r&   r?  r?  Ý  s   ù‡ € õ@÷ò r(   r?  c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚSpeechT5EncoderLayeriõ  c                ó    <€ V ^8„  d   QhRS[ /# ©r   rŠ   ©r   )r%   rž   s   "€r&   r'   Ú!SpeechT5EncoderLayer.__annotate__ö  s   ø€ ÷ \ñ \™~ñ \r(   c                óÊ  <€ \         SV `  4        \        VP                  VP                  VP
                  R R7      V n        \        P                  ! VP                  4      V n
        \        P                  ! VP                  VP                  R7      V n        \        WP                  4      V n        \        P                  ! VP                  VP                  R7      V n        R# )F)r  r  r  r  rX  N)r|   r}   r  r  Úencoder_attention_headsÚattention_dropoutÚ	attentionr   r  rH  r  r£   rZ  r¤   r?  Úencoder_ffn_dimÚfeed_forwardÚfinal_layer_normr^  s   &&€r&   r}   ÚSpeechT5EncoderLayer.__init__ö  s    ø€ Ü‰ÑÔÜ*Ø×(Ñ(Ø×4Ñ4Ø×,Ñ,Øô	
ˆŒô —z’z &×"7Ñ"7Ó8ˆŒÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒÜ/°×8NÑ8NÓOˆÔÜ "§¢¨V×-?Ñ-?ÀV×EZÑEZÔ [ˆÖr(   c                óŠ   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[/# )r   r‘   r:   Nr  r  )r"   r#   r_   )r%   rž   s   "€r&   r'   rS    sI   ø€ ÷ (ñ (á—|‘|ð(ñ Ÿ™ tÕ+ð(ñ —|‘| dÕ*ð	(ñ
  ñ(r(   c                ó  € TpV P                  VVVVR7      w  rV P                  V4      pWQ,           pV P                  V4      pWP                  V4      ,           pV P	                  V4      pV3pV'       d
   Wv3,          pV# )ay  
Args:
    hidden_states (`torch.FloatTensor`):
        input to the layer of shape `(batch, seq_len, hidden_size)`
    attention_mask (`torch.FloatTensor`):
        attention mask of size `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very
        large negative values.
    position_bias (`torch.FloatTensor`):
        relative position embeddings of size `(seq_len, seq_len, hidden_size // encoder_attention_heads)`
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers. See `attentions` under
        returned tensors for more detail.
)r‘   r:   r  r  )rW  r  r¤   rY  rZ  )r‰   r‘   r:   r  r  Úresidualr7  Úoutputss   &&&&&   r&   r’   ÚSpeechT5EncoderLayer.forward  sŽ   € ð( !ˆØ&*§n¡nØ'Ø)Ø'Ø/ð	 '5ó '
Ñ#ˆð Ÿ™ ]Ó3ˆØ Õ0ˆàŸ™¨Ó6ˆØ%×(9Ñ(9¸-Ó(HÕHˆØ×-Ñ-¨mÓ<ˆà Ð"ˆçØ�Õ&ˆGàˆr(   )rW  r  rY  rZ  r¤   )NNFr•   r�   s   @@r&   rO  rO  õ  s    ù‡ € ÷\ó \÷(÷ (ò (r(   rO  c                   óX   a a€ ] tR tRt oRV3R lV 3R llltRV3R lR lltRtVtV ;t# )	ÚSpeechT5DecoderLayeri.  c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú!SpeechT5DecoderLayer.__annotate__/  s   ø€ ÷ \ñ \™~ñ \r(   c                ó”  <€ \         SV `  4        \        VP                  VP                  VP
                  R VR7      V n        \        P                  ! VP                  4      V n
        \        P                  ! VP                  VP                  R7      V n        \        VP                  VP                  VP
                  R VR7      V n        \        P                  ! VP                  VP                  R7      V n        \!        WP"                  4      V n        \        P                  ! VP                  VP                  R7      V n        R# )T)r  r  r  r  r  rX  )r  r  r  N)r|   r}   r  r  Údecoder_attention_headsrV  Ú	self_attnr   r  rH  r  r£   rZ  Úself_attn_layer_normÚencoder_attnÚencoder_attn_layer_normr?  Údecoder_ffn_dimrY  rZ  )r‰   rŠ   r  rŒ   s   &&&€r&   r}   ÚSpeechT5DecoderLayer.__init__/  só   ø€ Ü‰ÑÔÜ*Ø×(Ñ(Ø×4Ñ4Ø×,Ñ,ØØô
ˆŒô —z’z &×"7Ñ"7Ó8ˆŒÜ$&§L¢L°×1CÑ1CÈ×I^ÑI^Ô$_ˆÔ!ä-Ø×ÑØ×*Ñ*Ø×,Ñ,ØØô
ˆÔô (*§|¢|°F×4FÑ4FÈF×LaÑLaÔ'bˆÔ$ä/°×8NÑ8NÓOˆÔÜ "§¢¨V×-?Ñ-?ÀV×EZÑEZÔ [ˆÖr(   c                óè   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[R,          /# )	r   r‘   r:   NÚencoder_hidden_statesÚencoder_attention_maskrò  r  Ú	use_cache)r"   r#   r   r_   )r%   rž   s   "€r&   r'   rd  G  s|   ø€ ÷ ?ñ ?á—|‘|ð?ñ Ÿ™ tÕ+ð?ñ  %Ÿ|™|¨dÕ2ð	?ñ
 !&§¡¨tÕ 3ð?ñ  �ð?ñ   $�;ð?ñ ˜$•;ñ?r(   c                óš  € Tp	V P                  VVVVR7      w  rV P                  V4      pW‘,           pV P                  V4      pRpVeE   Tp	V P                  VVVVVR7      w  rV P                  V4      pW‘,           pV P	                  V4      pWP                  V4      ,           pV P                  V4      pV3pV'       d   WÊV3,          pV# )ab  
Args:
    hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, hidden_size)`
    attention_mask (`torch.FloatTensor`): attention mask of size
        `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
    encoder_hidden_states (`torch.FloatTensor`):
        cross attention input to the layer of shape `(batch, seq_len, hidden_size)`
    encoder_attention_mask (`torch.FloatTensor`): encoder attention mask of size
        `(batch, 1, tgt_len, src_len)` where padding elements are indicated by very large negative values.
    past_key_values (`Cache`): cached past key and value projection states
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers. See `attentions` under
        returned tensors for more detail.
)r‘   rò  r:   r  N)r‘   r  r:   rò  r  )rg  r  rh  ri  rj  rY  rZ  )r‰   r‘   r:   rn  ro  rò  r  rp  r-  r^  Úself_attn_weightsÚcross_attn_weightsr_  s   &&&&&&&&,    r&   r’   ÚSpeechT5DecoderLayer.forwardG  sû   € ð2 !ˆð ,0¯>©>Ø'Ø+Ø)Ø/ð	 ,:ó ,
Ñ(ˆð Ÿ™ ]Ó3ˆØ Õ0ˆØ×1Ñ1°-Ó@ˆð "ÐØ Ò,Ø$ˆHà04×0AÑ0AØ+Ø!6Ø5Ø /Ø"3ð 1Bó 1Ñ-ˆMð !ŸL™L¨Ó7ˆMØ$Õ4ˆMØ ×8Ñ8¸ÓGˆMð &×(9Ñ(9¸-Ó(HÕHˆØ×-Ñ-¨mÓ<ˆà Ð"ˆçØÐ+=Ð>Õ>ˆGàˆr(   )r  ri  rj  rY  rZ  rg  rh  r�   )NNNNFTr•   r�   s   @@r&   rb  rb  .  s    ù‡ € ÷\õ \÷0?÷ ?ò ?r(   rb  c                   ó‚   a a€ ] tR tRt oRtRtRtRt]P                  ! 4       V3R lV 3R ll4       t
V3R ltR	tVtV ;t# )
ÚSpeechT5PreTrainedModeli‰  Úspeecht5r8   ÚaudioTc                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   Úmodule)r   ÚModule)r%   rž   s   "€r&   r'   Ú$SpeechT5PreTrainedModel.__annotate__’  s   ø€ ÷ '4ñ '4¡B§I¡Iñ '4r(   c           
     óŽ	  <€ \         S	V `  V4       \        V\        4      '       d³   \        P
                  ! VP                  P                  ^ ^\        P                  ! ^VP                  P                  ^ ,          VP                  P                  ,          ,          4      ,          R7       \        P                  ! VP                  P                  ^ 4       EM¸\        V\        4      '       Edq   \        P                  ! VP                   4       VP"                  VP$                  r2\&        P(                  ! W24      p\&        P*                  ! ^ V4      P-                  ^4      p\&        P.                  ! \&        P*                  ! ^ V^\&        P0                  R7      P3                  4       \        P4                  ! R4      V,          ) ,          4      p\&        P6                  ! VP3                  4       V,          4      VR&   \&        P8                  ! VP3                  4       V,          4      VR&   VP-                  ^ 4      p\        P:                  ! VP<                  V4       EM1\        V\>        4      '       d�   \        P                  ! ^VP@                  PB                  ,          4      p\        PD                  ! VP@                  P                  V) VR7       \        PD                  ! VP@                  P                  V) VR7       EMŒ\        V\F        PH                  4      '       d�   \        PJ                  ! VP                  4       VP                  en   \        P                  ! VPL                  VP                  VP                  ^ ,          ,          ,          4      p\        PD                  ! VP                  V) VR7       MÐ\        V\N        4      '       de   VPQ                  VPR                  VPT                  ,           VPV                  VPX                  4      p\        P:                  ! VPZ                  V4       MV\        V\\        4      '       dA   \        P^                  ! VP`                  4       \        P                  ! VPb                  4       \e        VR4      '       d#   \        PD                  ! VPf                  4       R# R# )	zInitialize the weights)ÚmeanÚstdrT   r  )ÚaÚbNrk  r  r  )4r|   Ú_init_weightsr!  rú   ÚinitÚnormal_r…   r   rÕ   rí  ry   Úin_channelsÚ	constant_r{   r  Úones_r#  rÔ   r   r"   r^   ra   rÙ   r×   rØ   rF   rÖ   rÛ   rÜ   Úcopy_r  rV  r\  Úin_featuresrj  r   r�   Úkaiming_normal_rý   r¶   rË   r¸   r¿   r¹   rº   rÆ   ÚSpeechT5HifiGanÚzeros_r~  ÚscalerÌ   rk  )
r‰   rz  rÔ   r   r  r$  r%  ÚkrÏ   rŒ   s
   &&       €r&   r‚  Ú%SpeechT5PreTrainedModel._init_weights‘  s  ø€ ô 	‰Ñ˜fÔ%Ü�fÔ=×>Ò>Ü�LŠLØ—‘×"Ñ"ØØœŸ	š	 ! v§{¡{×'>Ñ'>¸qÕ'AÀFÇKÁK×D[ÑD[Õ'[Õ"\Ó]Õ]õô
 �NŠN˜6Ÿ;™;×+Ñ+¨QÖ/Ü˜Ô @×AÓAÜ�JŠJ�v—|‘|Ô$Ø!Ÿ:™: v§~¡~�Ü—’˜WÓ*ˆBÜ—|’| A wÓ/×9Ñ9¸!Ó<ˆHÜ—y’y¤§¢¨a°°a¼u¿{¹{Ô!K×!QÑ!QÓ!SÔX\×X`ÒX`ÐahÓXiÐloÕXoÐVpÕ!pÓqˆHÜŸ)š) H§N¡NÓ$4°xÕ$?Ó@ˆBˆw‰KÜŸ)š) H§N¡NÓ$4°xÕ$?Ó@ˆBˆw‰KØ—‘˜a“ˆBÜ�JŠJ�v—y‘y "Ö%Ü˜Ô 9×:Ò:Ü—	’	˜!˜f×/Ñ/×;Ñ;Õ;Ó<ˆAÜ�MŠM˜&×+Ñ+×2Ñ2°q°b¸AÕ>Ü�MŠM˜&×+Ñ+×0Ñ0°Q°B¸!×<Ü˜¤§	¡	×*Ò*Ü× Ò  §¡Ô/Ø�{‰{Ò&Ü—I’I˜fŸm™m¨v×/AÑ/AÀF×DVÑDVÐWXÕDYÕ/YÕZÓ[�Ü—’˜fŸk™k¨a¨R°1Õ5øÜ˜Ô E×FÒFØ ×.Ñ.Ø×$Ñ$ v§}¡}Õ4°f×6JÑ6JÈF×L^ÑL^óˆKô �JŠJ�v—~‘~ {Õ3Ü˜¤×0Ò0Ü�KŠK˜Ÿ™Ô$Ü�JŠJ�v—|‘|Ô$ä�6Ð.×/Ò/Ü�MŠM˜&×2Ñ2Ö3ñ 0r(   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # rQ  rR  )r%   rž   s   "€r&   r'   r|  ‰  s   ø‡ ‚ áÑò r(   © )r–   r—   r˜   r™   Úbase_model_prefixÚmain_input_nameÚinput_modalitiesÚsupports_gradient_checkpointingr"   rø   r‚  Ú__annotate_func__rš   r›   rœ   r�   s   @@r&   rv  rv  ‰  sB   ù‡ € ð #ÐØ$€OØÐØ&*Ð#à
‡]‚]ƒ_÷'4ò '4ó ð'4÷ … r(   rv  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚSpeechT5Encoderi¼  zm
Transformer encoder consisting of *config.encoder_layers* layers. Each layer is a [`SpeechT5EncoderLayer`].
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   ÚSpeechT5Encoder.__annotate__Á  s   ø€ ÷ ñ ™~ñ r(   c                ó&  <€ \         SV `  V4       \        P                  ! VP                  VP
                  R 7      V n        \        P                  ! VP                  4      V n	        VP                  V n        \        P                  ! \        VP                  4       Uu. uF  p\        V4      NK  	  up4      V n        \#        VP                  VP$                  ,          VP&                  4      V n        RV n        V P-                  4        R# u upi )rX  FN)r|   r}   r   r£   r  rZ  r¤   r  rH  r  Úencoder_layerdropÚ	layerdroprE  r]   Úencoder_layersrO  r¥  r,  rU  Úencoder_max_relative_positionrï  rG  Ú	post_init)r‰   rŠ   rl   rŒ   s   && €r&   r}   ÚSpeechT5Encoder.__init__Á  sÉ   ø€ Ü‰Ñ˜Ô ÜŸ,š, v×'9Ñ'9¸v×?TÑ?TÔUˆŒÜ—z’z &×"7Ñ"7Ó8ˆŒØ×1Ñ1ˆŒä—m’mÌ5ÐQW×QfÑQfÔKgÓ$hÑKgÀaÔ%9¸&Ö%AÑKgÑ$hÓiˆŒäAØ×Ñ &×"@Ñ"@Õ@À&×BfÑBfó 
ˆÔð ',ˆÔ#ð 	�‰Öùò %is   ÂDc                ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# )r   r‘   r:   Nr  Úoutput_hidden_statesÚreturn_dictrD   ©r"   rv  r#   r_   rE   r   )r%   rž   s   "€r&   r'   rš  Ò  so   ø€ ÷ X
ñ X
á×(Ñ(ðX
ñ Ÿ™ tÕ+ðX
ñ   $�;ð	X
ñ
 # T�kðX
ñ ˜D•[ðX
ñ 
‘Õ	 ñX
r(   c                óº  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  p\	        V P                   VVR7      pV P                  V4      pV P                  V4      pV P                  V4      p\        4       ;'       g    \        V 4      pV'       d   RMRp	V'       d   RMRp
\        V P                  4       F˜  w  r¼V'       d
   W‘3,           p	RpV P                  '       d%   \        P                  ! . 4      pWàP                  8  pV'       d	   V'       d   V! VVVVR7      pV^ ,          pV'       d   RpV'       g   K‡  V
X^,          3,           p
Kš  	  V'       d
   W‘3,           p	V'       g1   \         ;QJ d    . R WV
3 4       F  NK  	  5# ! R WV
3 4       4      # \#        VV	V
R7      # )	a  
Args:
    hidden_states (`torch.FloatTensor` of shape `(batch_size, sequence_length, feature_size)`):
        Features extracted from the speech or text input by the encoder prenet.
    attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
        Mask to avoid performing convolution and attention on padding token indices. Mask values selected in
        `[0, 1]`:

        - 1 for tokens that are **not masked**,
        - 0 for tokens that are **masked**.

        [What are attention masks?](../glossary#attention-mask)
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers. See `attentions` under
        returned tensors for more detail.
    output_hidden_states (`bool`, *optional*):
        Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
        for more detail.
    return_dict (`bool`, *optional*):
        Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
N)rŠ   r°  r:   F)r:   r  r  c              3   ó0   "  € T F  qf   K  Vx € K  	  R # 5ir�   r‘  ©Ú.0Úvs   & r&   Ú	<genexpr>Ú*SpeechT5Encoder.forward.<locals>.<genexpr>$  s   é € ÐmÑ$[˜qŸšÓ$[ùs   ‚Œ
©Úlast_hidden_stater‘   Ú
attentionsr‘  rž  )rŠ   r  r£  r¤  r   r¤   r  rï  r   r   Ú	enumerater¥  rR  r"   rX   r�  rE   r   )r‰   r‘   r:   r  r£  r¤  r-  r  Úsynced_gpusÚall_hidden_statesÚall_self_attentionsÚidxÚencoder_layerÚskip_the_layerÚdropout_probabilityÚlayer_outputss   &&&&&&,         r&   r’   ÚSpeechT5Encoder.forwardÒ  s°  € ð< 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆä2Ø—;‘;Ø'Ø)ô
ˆð Ÿ™¨Ó6ˆØŸ™ ]Ó3ˆà×,Ñ,¨]Ó;ˆä0Ó2×RÐRÔ6LÈTÓ6Rˆç"6™B¸DÐß$5™b¸4Ðä"+¨D¯K©KÖ"8ÑˆCß#Ø$5Ð8HÕ$HÐ!ð #ˆNØ�}�}ˆ}Ü&+§j¢j°£nÐ#Ø!4·~±~Ñ!E�ç!§[á -Ø!Ø#1Ø"/Ø&7ô	!�ð !.¨aÕ 0�çØ ,�ç Ñ Ø&9¸]È1Õ=MÐ<OÕ&OÒ#ñ1 #9÷4  Ø 1Ð4DÕ DÐçß”5Ñm ]ÐGZÑ$[Óm—5Ðm�5Ñm ]ÐGZÑ$[ÓmÓmÐmäØ+Ø+Ø*ô
ð 	
r(   )r  rï  rG  r¤   r�  r¥  ©NNNNr*  r�   s   @@r&   r˜  r˜  ¼  s&   ù‡ € ñ÷ó ÷"X
÷ X
ò X
r(   r˜  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚSpeechT5EncoderWithSpeechPreneti-  z€
Wrapper around SpeechT5Encoder that applies SpeechT5SpeechEncoderPrenet to convert the audio waveform data to
hidden features.
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú,SpeechT5EncoderWithSpeechPrenet.__annotate__3  ó   ø€ ÷ ñ ™~ñ r(   c                ó†   <€ \         SV `  V4       \        V4      V n        \	        V4      V n        V P                  4        R # r�   )r|   r}   rd  Úprenetr˜  Úwrapped_encoderr   r^  s   &&€r&   r}   Ú(SpeechT5EncoderWithSpeechPrenet.__init__3  ó5   ø€ Ü‰Ñ˜Ô Ü1°&Ó9ˆŒÜ.¨vÓ6ˆÔð 	�‰Ör(   c                ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# ©r   r8   r:   Nr  r£  r¤  rD   r¥  )r%   rž   s   "€r&   r'   r¾  ;  óg   ø€ ÷ ñ á×'Ñ'ðñ Ÿ™ tÕ+ðñ   $�;ð	ñ
 # T�kðñ ˜D•[ðñ 
‘Õ	 ñr(   c                óX   € V P                  W4      w  rrV P                  VVVVVR 7      pV# ©)r‘   r:   r  r£  r¤  ©rÁ  rÂ  ©	r‰   r8   r:   r  r£  r¤  r-  r‘   r_  s	   &&&&&&,  r&   r’   Ú'SpeechT5EncoderWithSpeechPrenet.forward;  s@   € ð )-¯©°LÓ(QÑ%ˆà×&Ñ&Ø'Ø)Ø/Ø!5Ø#ð 'ó 
ˆð ˆr(   rÊ  rº  r*  r�   s   @@r&   r¼  r¼  -  s#   ù‡ € ñ÷
ó ÷÷ ò r(   r¼  c                   ód   a a€ ] tR tRt oRtV3R lV 3R lltR tR tR
V3R lR lltR	t	Vt
V ;t# )ÚSpeechT5EncoderWithTextPrenetiQ  zt
Wrapper around SpeechT5Encoder that applies SpeechT5TextEncoderPrenet to convert the input_ids to hidden features.
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú*SpeechT5EncoderWithTextPrenet.__annotate__V  r¿  r(   c                ó†   <€ \         SV `  V4       \        V4      V n        \	        V4      V n        V P                  4        R # r�   )r|   r}   rß  rÁ  r˜  rÂ  r   r^  s   &&€r&   r}   Ú&SpeechT5EncoderWithTextPrenet.__init__V  ó5   ø€ Ü‰Ñ˜Ô Ü/°Ó7ˆŒÜ.¨vÓ6ˆÔð 	�‰Ör(   c                ó6   € V P                   P                  4       # r�   ©rÁ  Úget_input_embeddingsrq  s   &r&   rÖ  Ú2SpeechT5EncoderWithTextPrenet.get_input_embeddings^  ó   € Ø�{‰{×/Ñ/Ó1Ð1r(   c                ó<   € V P                   P                  V4       R # r�   ©rÁ  Úset_input_embeddings©r‰   Úvalues   &&r&   rÛ  Ú2SpeechT5EncoderWithTextPrenet.set_input_embeddingsa  ó   € Ø�‰×(Ñ(¨Ö/r(   c                ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# rÆ  r¥  )r%   rž   s   "€r&   r'   rÐ  d  rÇ  r(   c                óT   € V P                  V4      pV P                  VVVVVR 7      pV# rÉ  rÊ  rË  s	   &&&&&&,  r&   r’   Ú%SpeechT5EncoderWithTextPrenet.forwardd  s=   € ð Ÿ™ LÓ1ˆà×&Ñ&Ø'Ø)Ø/Ø!5Ø#ð 'ó 
ˆð ˆr(   rÊ  rº  ©r–   r—   r˜   r™   rö   r}   rÖ  rÛ  r’   rš   r›   rœ   r�   s   @@r&   rÎ  rÎ  Q  s-   ù‡ € ñ÷ó ò2ò0÷÷ ò r(   rÎ  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚSpeechT5EncoderWithoutPrenetiz  ú€
This wrapper class is a helper class to correctly load pretrained checkpoints when used in combination with
[`SpeechT5Model`].
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú)SpeechT5EncoderWithoutPrenet.__annotate__€  ó   ø€ ÷ ñ ™~ñ r(   c                óf   <€ \         SV `  V4       \        V4      V n        V P	                  4        R # r�   )r|   r}   r˜  rÂ  r   r^  s   &&€r&   r}   Ú%SpeechT5EncoderWithoutPrenet.__init__€  ó)   ø€ Ü‰Ñ˜Ô Ü.¨vÓ6ˆÔð 	�‰Ör(   c                ó®   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[R,          RS[R,          RS[R,          RS[S[,          /# rÆ  r¥  )r%   rž   s   "€r&   r'   rè  ‡  sg   ø€ ÷ 
ñ 
á×'Ñ'ð
ñ Ÿ™ tÕ+ð
ñ   $�;ð	
ñ
 # T�kð
ñ ˜D•[ð
ñ 
‘Õ	 ñ
r(   c                ó.   € V P                  VVVVVR 7      # rÉ  ©rÂ  )r‰   r8   r:   r  r£  r¤  r-  s   &&&&&&,r&   r’   Ú$SpeechT5EncoderWithoutPrenet.forward‡  s+   € ð ×#Ñ#Ø&Ø)Ø/Ø!5Ø#ð $ó 
ð 	
r(   rï  rº  r*  r�   s   @@r&   rå  rå  z  s#   ù‡ € ñ÷
ó ÷
÷ 
ò 
r(   rå  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚSpeechT5Decoderi™  zl
Transformer decoder consisting of *config.decoder_layers* layers. Each layer is a [`SpeechT5DecoderLayer`]
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   ÚSpeechT5Decoder.__annotate__ž  s   ø€ ÷ 	ñ 	™~ñ 	r(   c           
     ó  <€ \         SV `  V4       VP                  V n        \        P
                  ! \        VP                  4       Uu. uF  p\        WR 7      NK  	  up4      V n	        RV n
        V P                  4        R# u upi ))r  FN)r|   r}   Údecoder_layerdropr�  r   rE  r]   Údecoder_layersrb  r¥  rG  r   r«  s   && €r&   r}   ÚSpeechT5Decoder.__init__ž  sl   ø€ Ü‰Ñ˜Ô Ø×1Ñ1ˆŒä—m’mÔX]Ð^d×^sÑ^sÔXtÓ$uÑXtÐSTÔ%9¸&×%NÑXtÑ$uÓvˆŒà&+ˆÔ#ð 	�‰Öùò %vs   Á	Bc                ó4  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[R,          R	S[R,          R
S[R,          RS[S[,          /
# )r   r‘   Nr:   rn  ro  rò  rp  r  r£  r¤  rD   ©r"   rv  rG   r   r_   rE   r   )r%   rž   s   "€r&   r'   rô  ©  sÁ   ø€ ÷ M
ñ M
á×(Ñ(¨4Õ/ðM
ñ ×(Ñ(¨4Õ/ðM
ñ  %×0Ñ0°4Õ7ð	M
ñ
 !&× 0Ñ 0°4Õ 7ðM
ñ  �ðM
ñ ˜$•;ðM
ñ   $�;ðM
ñ # T�kðM
ñ ˜D•[ðM
ñ 
Ñ:Õ	:ñM
r(   c
                ó&  € Ve   TMV P                   P                  pVe   TMV P                   P                  pVe   TMV P                   P                  pV	e   T	MV P                   P                  p	V P
                  '       d2   V P                  '       d    V'       d   \        P                  R4       RpV'       d9   Vf5   \        \        V P                   R7      \        V P                   R7      4      p\        V P                   VVVR7      pVe   Ve   \        V P                   VVVR7      p\        4       ;'       g    \        V 4      pV'       d   R
MRpV'       d   R
MRpV'       d   Ve   R
MRp\        V P                   4       F¬  w  ppV'       d
   WÁ3,           pRpV P                  '       d&   \"        P$                  ! . 4      pVV P&                  8  pV'       d   V'       g   Kb  V! VVVVVVVR7      pV^ ,          pV'       g   K„  VV^,          3,           pVf   K›  VV^,          3,           pK®  	  V'       d
   WÁ3,           pV	'       g3   \(        ;QJ d    . R WWÍV3 4       F  NK  	  5# ! R WWÍV3 4       4      # \+        VVVVVR	7      # )a)  
Args:
    hidden_states (`torch.FloatTensor` of shape `(batch_size, sequence_length, feature_size)`):
        Features extracted from the speech or text input by the decoder prenet.
    attention_mask (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
        Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:

        - 1 for tokens that are **not masked**,
        - 0 for tokens that are **masked**.

        [What are attention masks?](../glossary#attention-mask)
    encoder_hidden_states (`torch.FloatTensor` of shape `(batch_size, encoder_sequence_length, hidden_size)`, *optional*):
        Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention
        of the decoder.
    encoder_attention_mask (`torch.LongTensor` of shape `(batch_size, encoder_sequence_length)`, *optional*):
        Mask to avoid performing cross-attention on padding tokens indices of encoder input_ids. Mask values
        selected in `[0, 1]`:

        - 1 for tokens that are **not masked**,
        - 0 for tokens that are **masked**.

        [What are attention masks?](../glossary#attention-mask)
    past_key_values (`Cache`, *optional*, returned when `use_cache=True` is passed or when `config.use_cache=True`):
        It is a [`~cache_utils.Cache`] instance. For more details, see our [kv cache guide](https://huggingface.co/docs/transformers/en/kv_cache).

        Contains pre-computed hidden-states (key and values in the self-attention blocks and in the
        cross-attention blocks) that can be used (see `past_key_values` input) to speed up sequential decoding.

        If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those
        that don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of
        all `decoder_input_ids` of shape `(batch_size, sequence_length)`.
    inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
        Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation.
        This is useful if you want more control over how to convert `input_ids` indices into associated vectors
        than the model's internal embedding lookup matrix.
    output_attentions (`bool`, *optional*):
        Whether or not to return the attentions tensors of all attention layers. See `attentions` under
        returned tensors for more detail.
    output_hidden_states (`bool`, *optional*):
        Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors
        for more detail.
    return_dict (`bool`, *optional*):
        Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
NzZ`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...F)rŠ   )rŠ   r°  r:   rò  )rŠ   r°  r:   rn  )ro  rò  r  rp  c              3   ó2   "  € T F  pVf   K	  Vx € K  	  R # 5ir�   r‘  r¨  s   & r&   r«  Ú*SpeechT5Decoder.forward.<locals>.<genexpr>*  s   é € ð áw�AØ÷ ’Ûwùs   ‚�
)r®  rò  r‘   r¯  Úcross_attentionsr‘  )rŠ   r  r£  rp  r¤  rG  rR  ÚloggerÚwarning_oncer
   r	   r   r   r   r   r°  r¥  r"   rX   r�  rE   r   )r‰   r‘   r:   rn  ro  rò  rp  r  r£  r¤  r-  r±  r²  r³  Úall_cross_attentionsr´  Údecoder_layerr¶  r·  r¸  s   &&&&&&&&&&,         r&   r’   ÚSpeechT5Decoder.forward©  ss  € ðr 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð "+Ò!6‘I¸D¿K¹K×<QÑ<Qˆ	Ø%0Ò%<‘kÀ$Ç+Á+×BYÑBYˆà×&×&Ð&¨4¯=¯=¨=ßÜ×#Ñ#Øpôð "�	ç˜Ò0Ü1´,ÀdÇkÁkÔ2RÔT`Ðhl×hsÑhsÔTtÓuˆOä+Ø—;‘;Ø'Ø)Ø+ô	
ˆð !Ò,Ð1GÒ1SÜ%>Ø—{‘{Ø+Ø5Ø&;ô	&Ð"ô 1Ó2×RÐRÔ6LÈTÓ6Rˆ÷ #7™B¸DÐß$5™b¸4Ðß&7Ð<QÒ<]™rÐdhÐä"+¨D¯K©KÖ"8ÑˆC�ß#Ø$5Ð8HÕ$HÐ!ð #ˆNØ�}�}ˆ}Ü&+§j¢j°£nÐ#Ø!4°t·~±~Ñ!E�ß§kÙá)ØØØ%Ø'=Ø /Ø"3Ø#ôˆMð *¨!Õ,ˆMß Ñ Ø&9¸]È1Õ=MÐ<OÕ&OÐ#à(Ô4Ø+?À=ÐQRÕCSÐBUÕ+UÒ(ñ5 #9÷8  Ø 1Ð4DÕ DÐçß”5ñ à'Ð:KÐbvÑwó—5ð �5ñ à'Ð:KÐbvÑwóó ð ô 9Ø+Ø+Ø+Ø*Ø1ô
ð 	
r(   )rG  r�  r¥  ©	NNNNNNNNNr*  r�   s   @@r&   rò  rò  ™  s&   ù‡ € ñ÷	ó 	÷M
÷ M
ò M
r(   rò  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚSpeechT5DecoderWithSpeechPreneti9  z|
Wrapper around SpeechT5Decoder that applies SpeechT5SpeechDecoderPrenet to convert log-mel filterbanks to hidden
features.
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú,SpeechT5DecoderWithSpeechPrenet.__annotate__?  r¿  r(   c                ó†   <€ \         SV `  V4       \        V4      V n        \	        V4      V n        V P                  4        R # r�   )r|   r}   r   rÁ  rò  Úwrapped_decoderr   r^  s   &&€r&   r}   Ú(SpeechT5DecoderWithSpeechPrenet.__init__?  rÄ  r(   c                ó\  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          R	S[R,          R
S[R,          RS[R,          RS[S[,          /# )r   r8   Nr:   rn  ro  rµ  rò  rp  r  r£  r¤  rD   )r"   rv  rG   r#   r   r_   rE   r   )r%   rž   s   "€r&   r'   r  G  sÈ   ø€ ÷ ñ á×'Ñ'¨$Õ.ðñ ×(Ñ(¨4Õ/ðñ  %×0Ñ0°4Õ7ð	ñ
 !&× 0Ñ 0°4Õ 7ðñ "ŸL™L¨4Õ/ðñ  �ðñ ˜$•;ðñ   $�;ðñ # T�kðñ ˜D•[ðñ 
Ñ:Õ	:ñr(   c                ó\   € V P                  W4      pV P                  VVVVVVVV	V
R 7	      pV# ©)	r‘   r:   rn  ro  rò  rp  r  r£  r¤  ©rÁ  r
  )r‰   r8   r:   rn  ro  rµ  rò  rp  r  r£  r¤  r-  Údecoder_hidden_statesr_  s   &&&&&&&&&&&,  r&   r’   Ú'SpeechT5DecoderWithSpeechPrenet.forwardG  sJ   € ð !%§¡¨LÓ MÐà×&Ñ&Ø/Ø)Ø"7Ø#9Ø+ØØ/Ø!5Ø#ð 'ó 

ˆð ˆr(   r  )
NNNNNNNNNNr*  r�   s   @@r&   r  r  9  s#   ù‡ € ñ÷
ó ÷÷ ò r(   r  c                   ód   a a€ ] tR tRt oRtV3R lV 3R lltR tR tR
V3R lR lltR	t	Vt
V ;t# )ÚSpeechT5DecoderWithTextPrenetif  zs
Wrapper around SpeechT5Decoder that applies SpeechT5TextDecoderPrenet to convert input tokens to hidden features.
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú*SpeechT5DecoderWithTextPrenet.__annotate__k  r¿  r(   c                ó†   <€ \         SV `  V4       \        V4      V n        \	        V4      V n        V P                  4        R # r�   )r|   r}   rê  rÁ  rò  r
  r   r^  s   &&€r&   r}   Ú&SpeechT5DecoderWithTextPrenet.__init__k  rÓ  r(   c                ó6   € V P                   P                  4       # r�   rÕ  rq  s   &r&   rÖ  Ú2SpeechT5DecoderWithTextPrenet.get_input_embeddingss  rØ  r(   c                ó<   € V P                   P                  V4       R # r�   rÚ  rÜ  s   &&r&   rÛ  Ú2SpeechT5DecoderWithTextPrenet.set_input_embeddingsv  rß  r(   c                ó4  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[R,          R	S[R,          R
S[R,          RS[S[,          /
# ©r   r8   Nr:   rn  ro  rò  rp  r  r£  r¤  rD   rú  )r%   rž   s   "€r&   r'   r  y  sµ   ø€ ÷ ñ á×'Ñ'¨$Õ.ðñ ×(Ñ(¨4Õ/ðñ  %×0Ñ0°4Õ7ð	ñ
 !&× 0Ñ 0°4Õ 7ðñ  �ðñ ˜$•;ðñ   $�;ðñ # T�kðñ ˜D•[ðñ 
Ñ:Õ	:ñr(   c
                ób   € V P                  WV4      w  r²V P                  VVVVVVVVV	R 7	      pV# r  r  )r‰   r8   r:   rn  ro  rò  rp  r  r£  r¤  r-  r  r_  s   &&&&&&&&&&,  r&   r’   Ú%SpeechT5DecoderWithTextPrenet.forwardy  sP   € ð 15·±¸LÐZiÓ0jÑ-Ðà×&Ñ&Ø/Ø)Ø"7Ø#9Ø+ØØ/Ø!5Ø#ð 'ó 

ˆð ˆr(   r  r  rã  r�   s   @@r&   r  r  f  s-   ù‡ € ñ÷ó ò2ò0÷÷ ò r(   r  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚSpeechT5DecoderWithoutPreneti—  ræ  c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú)SpeechT5DecoderWithoutPrenet.__annotate__�  ré  r(   c                óf   <€ \         SV `  V4       \        V4      V n        V P	                  4        R # r�   )r|   r}   rò  r
  r   r^  s   &&€r&   r}   Ú%SpeechT5DecoderWithoutPrenet.__init__�  rì  r(   c                ó4  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[R,          R	S[R,          R
S[R,          RS[S[,          /
# r  rú  )r%   rž   s   "€r&   r'   r#  ¤  sµ   ø€ ÷ ñ á×'Ñ'¨$Õ.ðñ ×(Ñ(¨4Õ/ðñ  %×0Ñ0°4Õ7ð	ñ
 !&× 0Ñ 0°4Õ 7ðñ  �ðñ ˜$•;ðñ   $�;ðñ # T�kðñ ˜D•[ðñ 
Ñ:Õ	:ñr(   c
                ó:   € V P                  VVVVVVVVV	R 7	      pV# r  ©r
  )r‰   r8   r:   rn  ro  rò  rp  r  r£  r¤  r-  r_  s   &&&&&&&&&&, r&   r’   Ú$SpeechT5DecoderWithoutPrenet.forward¤  s;   € ð ×&Ñ&Ø&Ø)Ø"7Ø#9Ø+ØØ/Ø!5Ø#ð 'ó 

ˆð ˆr(   r(  r  r*  r�   s   @@r&   r!  r!  —  s#   ù‡ € ñ÷
ó ÷÷ ò r(   r!  c                   ój   a a€ ] tR tRt oRtV3R lV 3R lltV3R lR ltR t]R 4       t	R	t
VtV ;t# )
Ú$SpeechT5GuidedMultiheadAttentionLossi¿  zÜ
Guided attention loss from the paper [Efficiently Trainable Text-to-Speech System Based on Deep Convolutional
Networks with Guided Attention](https://huggingface.co/papers/1710.08969), adapted for multi-head attention.
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú1SpeechT5GuidedMultiheadAttentionLoss.__annotate__Å  s   ø€ ÷ 8ñ 8™~ñ 8r(   c                óh   <€ \         SV `  4        VP                  V n        VP                  V n        R # r�   )r|   r}   Úguided_attention_loss_sigmaÚsigmaÚguided_attention_loss_scaler�  r^  s   &&€r&   r}   Ú-SpeechT5GuidedMultiheadAttentionLoss.__init__Å  s(   ø€ Ü‰ÑÔØ×7Ñ7ˆŒ
Ø×7Ñ7ˆŽ
r(   c                ó‚   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[ P                  /# )r   r¯  Úinput_masksÚoutput_masksrD   )r"   rv  Ú
BoolTensorr#   )r%   rž   s   "€r&   r'   r-  Ê  sC   ø€ ÷ !ñ !Ù×+Ñ+ð!Ù:?×:JÑ:Jð!ÙZ_×ZjÑZjð!á	�‰ñ!r(   c                ó\  € V P                  W#VP                  4      pVP                  R4      VP                  R4      ,          pVP                  VP                  4      P                  ^4      pWA,          p\        P
                  ! VP                  V4      4      pV P                  V,          # )a  
Compute the attention loss.

Args:
    attentions (`torch.FloatTensor` of shape `(batch_size, layers * heads, output_sequence_length, input_sequence_length)`):
        Batch of multi-head attention weights
    input_masks (`torch.BoolTensor` of shape `(batch_size, input_sequence_length)`):
        Input attention mask as booleans.
    output_masks (`torch.BoolTensor` of shape `(batch_size, output_sequence_length)`):
        Target attention mask as booleans.

Returns:
    `torch.Tensor` with the loss value
r+   r§   )Ú_make_guided_attention_masksrÈ   rÙ   rÍ   r"   r~  Úmasked_selectr�  )r‰   r¯  r4  r5  Úguided_attn_masksÚmasksÚlossesÚlosss   &&&&    r&   r’   Ú,SpeechT5GuidedMultiheadAttentionLoss.forwardÊ  s�   € ð" !×=Ñ=¸kÐYc×YjÑYjÓkÐØ×&Ñ& rÓ*¨[×-BÑ-BÀ2Ó-FÕFˆØ—‘˜×*Ñ*Ó+×5Ñ5°aÓ8ˆà"Õ/ˆÜ�zŠz˜&×.Ñ.¨uÓ5Ó6ˆØ�z‰z˜DÕ Ð r(   c                ó€  € VP                  R4      pVP                  R4      p\        P                  ! \        V4      VP                  ^,          VP                  ^,          3VR7      p\        \        WE4      4       F.  w  pw  r‰V P                  W‰V P                  V4      WgRV	1RV13&   K0  	  VP                  ^4      # )r.   rƒ  Nr+   )
r[   r"   r^   rb   r1   r°  r‘  Ú_make_guided_attention_maskr0  rÙ   )
r‰   r4  r5  rÈ   rm   r‡  r:  r´  ÚilenÚolens
   &&&&      r&   r8  ÚASpeechT5GuidedMultiheadAttentionLoss._make_guided_attention_masksã  sµ   € Ø#Ÿ™¨Ó+ˆØ%×)Ñ)¨"Ó-ˆä!ŸKšK¬¨[Ó)9¸<×;MÑ;MÈaÕ;PÐR]×RcÑRcÐdeÕRfÐ(gÐpvÔwÐä!*¬3¨}Ó+MÖ!NÑˆC‘�$Ø37×3SÑ3SÐTXÐ`d×`jÑ`jÐlrÓ3sÐ 5 D 5¨%¨4¨%Ð/Ó0ñ "Oð !×*Ñ*¨1Ó-Ð-r(   c                óh  € \         P                  ! \         P                  ! WR 7      \         P                  ! WR 7      RR7      w  rEVP                  4       V,          pVP                  4       V ,          pR\         P                  ! WE,
          ^,          ) ^V^,          ,          ,          4      ,
          # )rƒ  Úxy)Úindexingr  )r"   Úmeshgridra   rF   r×   )rN   Úoutput_lengthr0  rÈ   Úgrid_yÚgrid_xs   &&&&  r&   r@  Ú@SpeechT5GuidedMultiheadAttentionLoss._make_guided_attention_maskî  sz   € äŸšÜ�LŠL˜Ô5Ü�LŠL˜Ô6Øô
‰ˆð
 —‘“ -Õ/ˆØ—‘“ ,Õ.ˆØ”U—Y’Y &¥/°aÕ!7Ð8¸AÀÈÅ½NÕKÓLÕLÐLr(   )r�  r0  )r–   r—   r˜   r™   rö   r}   r’   r8  r÷   r@  rš   r›   rœ   r�   s   @@r&   r+  r+  ¿  s?   ù‡ € ñ÷
8ó 8÷
!ð !ò2	.ð ñMó ÷Mð Mr(   r+  c                   óX   a a€ ] tR tRt oRtV3R lV 3R lltRV3R lR lltRtVtV ;t	# )	ÚSpeechT5SpectrogramLossiú  z3
Loss computation used by SpeechT5ForTextToSpeech.
c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú$SpeechT5SpectrogramLoss.__annotate__ÿ  s   ø€ ÷ 
Oñ 
O™~ñ 
Or(   c                ó:  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        \        4       V n        \        \        P                  ! R 4      R7      V n
        V P                  '       d   \        V4      V n        R# R# )g      @)Ú
pos_weightN)r|   r}   Úuse_guided_attention_lossÚguided_attention_loss_num_headsr9   r   Úl1_criterionr   r"   r"  Úbce_criterionr+  Úattn_criterionr^  s   &&€r&   r}   Ú SpeechT5SpectrogramLoss.__init__ÿ  sv   ø€ Ü‰ÑÔØ)/×)IÑ)IˆÔ&Ø/5×/UÑ/UˆÔ,Ø &× 7Ñ 7ˆÔä"›HˆÔÜ.¼%¿,º,ÀsÓ:KÔLˆÔà×)×)Ð)Ü"FÀvÓ"NˆDÖñ *r(   c                óÞ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[ P                  RS[ P                  RS[ P                  R,          RS[ P                  /# )	r   r:   rÖ  r×  rØ  Úlabelsrþ  NrD   )r"   rG   rv  r#   )r%   rž   s   "€r&   r'   rO    s~   ø€ ÷ )ñ )á×(Ñ(ð)ñ !&× 1Ñ 1ð)ñ  %×0Ñ0ð	)ñ
 ×!Ñ!ð)ñ ×!Ñ!ð)ñ  ×+Ñ+¨dÕ2ð)ñ 
�‰ñ)r(   c           	     ó„  € VR8g  pVP                  V4      pVP                  V4      pVP                  V4      pV P                  W54      V P                  W%4      ,           pVR,          p	\        P                  ! V	( R,          \        P                  ! V	P                  ^ 4      ^4      P                  V	P                  4      .^R7      p
V
R,          P                  V	4      p
VP                  V	4      pV P                  WJ4      pW‹,           pV P                  '       d    \        P                  ! V Uu. uF  qÝRRV P                  13,          NK  	  up^R7      pV^8H  pVR,          pV P                  ^8”  d*   VRV P                  ^,
          RV P                  13,          pV P                  WïV4      pVV,          pV# u upi )g      Y@r*   r  rÓ   Nr=   )r*   r*   r/   r,   )r9  rT  r"   rÚ   rd   rå   rÍ   rÈ   rU  rR  rS  r9   rV  )r‰   r:   rÖ  r×  rØ  rY  rþ  r}  Úl1_lossr;  Ústop_labelsÚbce_lossr=  ÚxÚattnr4  r5  Ú	attn_losss   &&&&&&&           r&   r’   ÚSpeechT5SpectrogramLoss.forward  sª  € ð  Ñ'ˆð ×%Ñ% lÓ3ˆØ!7×!EÑ!EÀlÓ!SÐØ 5× CÑ CÀLÓ QÐð ×#Ñ#Ð$9ÓBÀT×EVÑEVÐWmÓEvÕvˆð ˜WÕ%ˆÜ—i’i % ¨#¥¬u¯zªz¸%¿*¹*ÀQ»-ÈÓ/K×/NÑ/NÈuÏ|É|Ó/\Ð ]ÐcdÔeˆØ! %Õ(×6Ñ6°uÓ=ˆØ×%Ñ% eÓ,ˆð ×%Ñ% fÓ:ˆð Õ!ˆð ×)×)Ð)Ü—9’9ÑTdÓeÑTdÈq Ð#I T×%IÑ%IÐ#IÐ I×JÐJÑTdÑeÐklÔmˆDØ(¨AÑ-ˆKØ'¨Õ0ˆLØ×$Ñ$ qÔ(Ø+¨A¨t×/DÑ/DÀqÕ/HÐ/aÈD×LaÑLaÐ/aÐ,aÕb�Ø×+Ñ+¨D¸|ÓLˆIØ�IÕˆDàˆùò fs   Ä0F=)rV  rU  rS  rT  r9   rR  r�   r*  r�   s   @@r&   rM  rM  ú  s%   ù‡ € ñ÷
Oó 
O÷)÷ )ò )r(   rM  zv
    The bare SpeechT5 Encoder-Decoder Model outputting raw hidden-states without any specific pre- or post-nets.
    ©Úcustom_introc                   ót   a a€ ] tR tRt oR
V3R lV 3R llltR tR tR t]RV3R lR ll4       t	R	t
VtV ;t# )ÚSpeechT5Modeli7  c                óp   <€ V ^8„  d   QhRS[ RS[P                  R,          RS[P                  R,          /# )r   rŠ   ÚencoderNÚdecoder)r   r   r{  )r%   rž   s   "€r&   r'   ÚSpeechT5Model.__annotate__=  s;   ø€ ÷ ñ áðñ —‘˜TÕ!ðñ —‘˜TÕ!ñ	r(   c                óª   <€ \         SV `  V4       Wn        Vf   \        V4      MTV n        Vf   \        V4      MTV n        V P                  4        R# )z�
encoder (`PreTrainedModel`, *optional*):
    The encoder model to use.
decoder (`PreTrainedModel`, *optional*):
    The decoder model to use.
N)r|   r}   rŠ   rå  rg  r!  rh  r   )r‰   rŠ   rg  rh  rŒ   s   &&&&€r&   r}   ÚSpeechT5Model.__init__=  sK   ø€ ô 	‰Ñ˜Ô ØŒØ?FºÔ3°FÔ;ÐT[ˆŒØ?FºÔ3°FÔ;ÐT[ˆŒð 	�‰Ör(   c                óö   € \        V P                  \        4      '       d   V P                  P                  4       # \        V P                  \
        4      '       d   V P                  P                  4       # \        hr�   )r!  rg  rÎ  rÖ  rh  r  ÚNotImplementedErrorrq  s   &r&   rÖ  Ú"SpeechT5Model.get_input_embeddingsQ  sR   € Ü�d—l‘lÔ$A×BÒBØ—<‘<×4Ñ4Ó6Ð6Ü�d—l‘lÔ$A×BÒBØ—<‘<×4Ñ4Ó6Ð6Ü!Ð!r(   c                óö   € \        V P                  \        4      '       d   V P                  P                  V4       \        V P                  \
        4      '       d   V P                  P                  V4       R # R # r�   )r!  rg  rÎ  rÛ  rh  r  rÜ  s   &&r&   rÛ  Ú"SpeechT5Model.set_input_embeddingsX  sP   € Ü�d—l‘lÔ$A×BÒBØ�L‰L×-Ñ-¨eÔ4Ü�d—l‘lÔ$A×BÒBØ�L‰L×-Ñ-¨eÖ4ñ Cr(   c                ó’   € \        V P                  \        4      '       d'   V P                  P                  P	                  4        R# R# ©z�
Calling this function will disable the gradient computation for the feature encoder so that its parameter will
not be updated during training.
N)r!  rg  r¼  rÁ  rr  rq  s   &r&   rr  Ú$SpeechT5Model.freeze_feature_encoder^  s2   € ô
 �d—l‘lÔ$C×DÒDØ�L‰L×Ñ×6Ñ6Ö8ñ Er(   c                óÈ  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[S[ P                  ,          ,          R,          RS[R,          RS[R,          R	S[ P                  R,          R
S[R,          RS[R,          RS[R,          RS[S[ P                  ,          S[,          /# )r   r8   Nr:   Údecoder_input_valuesÚdecoder_attention_maskÚencoder_outputsrò  rp  rµ  r  r£  r¤  rD   )r"   r#   rG   rE   rv  r   r_   r   )r%   rž   s   "€r&   r'   ri  g  sþ   ø€ ÷ _
ñ _
á—l‘l TÕ)ð_
ñ ×(Ñ(¨4Õ/ð_
ñ $Ÿl™l¨TÕ1ð	_
ñ
 !&× 0Ñ 0°4Õ 7ð_
ñ ™u¡U×%6Ñ%6Õ7Õ8¸4Õ?ð_
ñ  �ð_
ñ ˜$•;ð_
ñ "×-Ñ-°Õ4ð_
ñ   $�;ð_
ñ # T�kð_
ñ ˜D•[ð_
ñ 
‰u× Ñ Õ	!Ñ$6Õ	6ñ_
r(   c                ó6  € V	e   T	MV P                   P                  p	V
e   T
MV P                   P                  p
Ve   TMV P                   P                  pVe   TMV P                   P                  pVf   V P                  VVV	V
VR7      pMeV'       d^   \        V\        4      '       gH   \        V^ ,          \        V4      ^8”  d
   V^,          MR\        V4      ^8”  d
   V^,          MRR7      pVe`   \        V P
                  \        4      '       d@   V P
                  P                  P                  V^ ,          P                  ^,          V4      pMTp\        V P                  \        4      '       d   RV/pM/ pV P                  ! RRVRVRV^ ,          RVR	VR
VRV	RV
RV/	VB pV'       g	   Wõ,           # \        VP                   VP"                  VP$                  VP&                  VP(                  VP                   VP$                  VP&                  R7      # )a  
input_values (`torch.Tensor` of shape `(batch_size, sequence_length)`):
    Depending on which encoder is being used, the `input_values` are either: float values of the input raw
    speech waveform, or indices of input sequence tokens in the vocabulary, or hidden states.
decoder_input_values (`torch.Tensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Depending on which decoder is being used, the `decoder_input_values` are either: float values of log-mel
    filterbank features extracted from the raw speech waveform, or indices of decoder input sequence tokens in
    the vocabulary, or hidden states.
decoder_attention_mask (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Default behavior: generate a tensor that ignores pad tokens in `decoder_input_values`. Causal mask will
    also be used by default.

    If you want to change padding behavior, you should read [`SpeechT5Decoder._prepare_decoder_attention_mask`]
    and modify to your needs. See diagram 1 in [the paper](https://huggingface.co/papers/1910.13461) for more
    information on the default strategy.
speaker_embeddings (`torch.FloatTensor` of shape `(batch_size, config.speaker_embedding_dim)`, *optional*):
    Tensor containing the speaker embeddings.
N)r8   r:   r  r£  r¤  r­  rµ  r8   r:   rn  ro  rò  rp  r  r£  r¤  )r®  rò  r  Údecoder_attentionsrþ  Úencoder_last_hidden_statern  Úencoder_attentionsr‘  )rŠ   r  r£  rp  r¤  rg  r!  r   rb   r¼  rÁ  ry  r1   rh  r  r   r®  rò  r‘   r¯  rþ  )r‰   r8   r:   ru  rv  rw  rò  rp  rµ  r  r£  r¤  r-  ro  Údecoder_argsÚdecoder_outputss   &&&&&&&&&&&&,   r&   r’   ÚSpeechT5Model.forwardf  s,  € ðD 2CÒ1NÑ-ÐTX×T_ÑT_×TqÑTqÐà$8Ò$DÑ È$Ï+É+×JjÑJjð 	ð "+Ò!6‘I¸D¿K¹K×<QÑ<Qˆ	Ø%0Ò%<‘kÀ$Ç+Á+×BYÑBYˆð Ò"Ø"Ÿl™lØ)Ø-Ø"3Ø%9Ø'ð +ó ‰O÷ ¤¨O¼_×!MÒ!MÜ-Ø"1°!Õ"4Ü47¸Ó4HÈ1Ô4L˜o¨aÖ0ÐRVÜ14°_Ó1EÈÔ1I˜?¨1Ö-ÈtôˆOð Ò%¬*°T·\±\ÔCb×*cÒ*cØ%)§\¡\×%8Ñ%8×%[Ñ%[Ø Õ"×(Ñ(¨Õ+¨^ó&Ñ"ð &4Ð"ä�d—l‘lÔ$C×DÒDØ0Ð2DÐE‰LàˆLàŸ,š,ñ 
Ø-ð
à1ð
ð #2°!Õ"4ð
ð $:ð	
ð
 ,ð
ð  ð
ð 0ð
ð "6ð
ð $ð
ð ñ
ˆ÷ Ø"Õ4Ð4ä!Ø-×?Ñ?Ø+×;Ñ;Ø"1×"?Ñ"?Ø.×9Ñ9Ø,×=Ñ=Ø&5×&GÑ&GØ"1×"?Ñ"?Ø.×9Ñ9ô	
ð 		
r(   )rŠ   rh  rg  rž  ©NNNNNNNNNNN)r–   r—   r˜   r™   r}   rÖ  rÛ  rr  r   r’   rš   r›   rœ   r�   s   @@r&   re  re  7  s@   ù‡ € ÷õ ò("ò5ò9ð ÷_
ñ _
ó ÷_
ð _
r(   re  zB
    SpeechT5 Model with a speech encoder and a text decoder.
    c                   óx   a a€ ] tR tRt oRR/tV3R lV 3R lltR tR tR t]	RV3R	 lR
 ll4       t
RtVtV ;t# )ÚSpeechT5ForSpeechToTextiÉ  z#text_decoder_postnet.lm_head.weightz+speecht5.decoder.prenet.embed_tokens.weightc                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú$SpeechT5ForSpeechToText.__annotate__Ñ  ó   ø€ ÷ ñ ™~ñ r(   c                ó  <€ \         SV `  V4       VP                  f   \        RV P                   R24      h\        V4      p\        V4      p\        WV4      V n        \        V4      V n
        V P                  4        R # )NúYou are trying to instantiate a    with a configuration that does not define the vocabulary size of the language model head. Please instantiate the model as follows: `SpeechT5ForSpeechToText.from_pretrained(..., vocab_size=vocab_size)`. or define `vocab_size` of your model's configuration.)r|   r}   rá  r3   rŒ   r¼  r  re  rw  rú  Útext_decoder_postnetr   )r‰   rŠ   Úspeech_encoderÚtext_decoderrŒ   s   &&  €r&   r}   Ú SpeechT5ForSpeechToText.__init__Ñ  s}   ø€ Ü‰Ñ˜Ô à×ÑÒ$ÜØ0°·±Ð0@ð A/ð /óð ô 9¸Ó@ˆÜ4°VÓ<ˆÜ% f¸lÓKˆŒä$>¸vÓ$FˆÔ!ð 	�‰Ör(   c                óV   € V P                  4       P                  P                  4        R# rr  ©Úget_encoderrÁ  rr  rq  s   &r&   rr  Ú.SpeechT5ForSpeechToText.freeze_feature_encoderå  ó   € ð
 	×ÑÓ×!Ñ!×8Ñ8Ö:r(   c                ó6   € V P                   P                  4       # r�   )r‡  r  rq  s   &r&   r  Ú-SpeechT5ForSpeechToText.get_output_embeddingsì  s   € Ø×(Ñ(×>Ñ>Ó@Ð@r(   c                ó<   € V P                   P                  V4       R # r�   )r‡  r
  r  s   &&r&   r
  Ú-SpeechT5ForSpeechToText.set_output_embeddingsï  s   € Ø×!Ñ!×7Ñ7¸ÖGr(   c                ó¤  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[S[ P                  ,          ,          R,          RS[R,          RS[R,          R	S[R,          R
S[R,          RS[R,          RS[ P                  R,          RS[S[,          /# )r   r8   Nr:   Údecoder_input_idsrv  rw  rò  rp  r  r£  r¤  rY  rD   )r"   rv  rG   rE   r   r_   r   )r%   rž   s   "€r&   r'   rƒ  ó  sö   ø€ ÷ |
ñ |
á×'Ñ'¨$Õ.ð|
ñ ×(Ñ(¨4Õ/ð|
ñ !×+Ñ+¨dÕ2ð	|
ñ
 !&× 0Ñ 0°4Õ 7ð|
ñ ™u¡U×%6Ñ%6Õ7Õ8¸4Õ?ð|
ñ  �ð|
ñ ˜$•;ð|
ñ   $�;ð|
ñ # T�kð|
ñ ˜D•[ð|
ñ × Ñ  4Õ'ð|
ñ 
‘Õ	 ñ|
r(   c                ó¶  € V
e   T
MV P                   P                  p
Ve9   Vf5   \        W°P                   P                  V P                   P                  4      pV P                  VVVVVVVVV	RR7
      pV P                  V^ ,          4      pRpVeG   \        4       pV! VP                  RV P                   P                  4      VP                  R4      4      pV
'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  VP                  VP                  VP                  VP                   VP"                  R7	      # )a:  
input_values (`torch.FloatTensor` of shape `(batch_size, sequence_length)`):
    Float values of input raw speech waveform. Values can be obtained by loading a *.flac* or *.wav* audio file
    into an array of type `list[float]`, a `numpy.ndarray` or a `torch.Tensor`, *e.g.* via the torchcodec library
    (`pip install torchcodec`) or the soundfile library (`pip install soundfile`).
    To prepare the array into `input_values`, the [`SpeechT5Processor`] should be used for padding
    and conversion into a tensor of type `torch.FloatTensor`. See [`SpeechT5Processor.__call__`] for details.
decoder_input_ids (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Indices of decoder input sequence tokens in the vocabulary.

    Indices can be obtained using [`SpeechT5Tokenizer`]. See [`PreTrainedTokenizer.encode`] and
    [`PreTrainedTokenizer.__call__`] for details.

    [What are decoder input IDs?](../glossary#decoder-input-ids)

    SpeechT5 uses the `eos_token_id` as the starting token for `decoder_input_ids` generation. If
    `past_key_values` is used, optionally only the last `decoder_input_ids` have to be input (see
    `past_key_values`).
decoder_attention_mask (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Default behavior: generate a tensor that ignores pad tokens in `decoder_input_values`. Causal mask will
    also be used by default.

    If you want to change padding behavior, you should read [`SpeechT5Decoder._prepare_decoder_attention_mask`]
    and modify to your needs. See diagram 1 in [the paper](https://huggingface.co/papers/1910.13461) for more
    information on the default strategy.
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the language modeling loss. Indices should either be in `[0, ..., config.vocab_size]`
    or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored (masked), the loss is
    only computed for the tokens with labels in `[0, ..., config.vocab_size]`.

    Label indices can be obtained using [`SpeechT5Tokenizer`]. See [`PreTrainedTokenizer.encode`] and
    [`PreTrainedTokenizer.__call__`] for details.

Example:

```python
>>> from transformers import SpeechT5Processor, SpeechT5ForSpeechToText
>>> from datasets import load_dataset

>>> dataset = load_dataset(
...     "hf-internal-testing/librispeech_asr_demo", "clean", split="validation"
... )  # doctest: +IGNORE_RESULT
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_asr")
>>> model = SpeechT5ForSpeechToText.from_pretrained("microsoft/speecht5_asr")

>>> # audio file is decoded on the fly
>>> inputs = processor(audio=dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")
>>> predicted_ids = model.generate(**inputs, max_length=100)

>>> # transcribe speech
>>> transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)
>>> transcription[0]
'mister quilter is the apostle of the middle classes and we are glad to welcome his gospel'
```

```python
>>> inputs["labels"] = processor(text_target=dataset[0]["text"], return_tensors="pt").input_ids

>>> # compute loss
>>> loss = model(**inputs).loss
>>> round(loss.item(), 2)
19.68
```
NT)
r8   r:   ru  rv  rw  rò  rp  r  r£  r¤  r-   )	r=  rØ  rò  r  ry  rþ  rz  rn  r{  r+   )rŠ   r¤  r6   r   r    rw  r‡  r   rÝ   rá  r   rò  r  ry  rþ  rz  rn  r{  )r‰   r8   r:   r•  rv  rw  rò  rp  r  r£  r¤  rY  r-  r_  rØ  r=  Úloss_fctÚoutputs   &&&&&&&&&&&&,     r&   r’   ÚSpeechT5ForSpeechToText.forwardò  sM  € ðf &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆàÒØ Ò(Ü$6ØŸK™K×4Ñ4°d·k±k×6XÑ6Xó%Ð!ð —-‘-Ø%Ø)Ø!2Ø#9Ø+Ø+ØØ/Ø!5Øð  ó 
ˆð ×*Ñ*¨7°1­:Ó6ˆàˆØÒÜ'Ó)ˆHÙ˜FŸK™K¨¨D¯K©K×,BÑ,BÓCÀVÇ[Á[ÐQSÃ_ÓUˆDçØ�Y ¨¥Õ,ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEäØØØ#×3Ñ3Ø")×"?Ñ"?Ø&×9Ñ9Ø$×5Ñ5Ø&-×&GÑ&GØ")×"?Ñ"?Ø&×9Ñ9ô

ð 
	
r(   )rw  r‡  r  )r–   r—   r˜   r™   Ú_tied_weights_keysr}   rr  r  r
  r   r’   rš   r›   rœ   r�   s   @@r&   r�  r�  É  sQ   ù‡ € ð @ÐAnÐoÐ÷ó ò(;òAòHð ÷|
ñ |
ó ÷|
ð |
r(   r�  c                óŠ  € V ^8„  d   QhR\         R\        P                  R\        P                  R,          R\        P                  R,          R\        R\        R\        R	\
        P                  R,          R
\        R\        R\        P                  \        \        P                  \        P                  3,          ,          /# )r   Úmodelr8   rµ  Nr:   Ú	thresholdÚminlenratioÚmaxlenratioÚvocoderÚoutput_cross_attentionsÚreturn_output_lengthsrD   )	rv  r"   rv  rG   rF   r   r{  r_   rE   )r%   s   "r&   r'   r'   r  sÉ   € ÷ Lñ LÜ"ðLä×#Ñ#ðLô ×)Ñ)¨DÕ0ðLô ×$Ñ$ tÕ+ð	Lô
 ðLô ðLô ðLô �Y‰Y˜ÕðLô "ðLô  ðLô ×Ñœœu×0Ñ0´%×2CÑ2CÐCÕDÕDñLr(   c
                 ó„  € Vf   \        R4      hVf/   ^WP                  P                  8H  P                  4       ,
          p
MTp
VP	                  ^ 4      pV P
                  P                  VV
RR7      pVP                  p\        V P
                  P                  \        4      '       dI   V P
                  P                  P                  P                  V^ ,          P                  ^,          V
4      p
\        VP	                  ^4      V,          V P                  P                  ,          4      p\        VP	                  ^4      V,          V P                  P                  ,          4      pVP                  V^V P                  P                  4      p. p. pR p^ p/ p V^,          pV P
                  P                   P                  VV4      pV P
                  P                   P#                  VRRR 13,          R VV
VRVRR7      pV'       d2   VP%                  \&        P(                  ! VP*                  ^ R7      4       VP                  P-                  ^4      pVP.                  pV P0                  P3                  V4      pVP5                  W°P                  P                  V P                  P                  4      pVP%                  V4       VR	,          P5                  V^V P                  P                  4      p\&        P(                  ! VV3^R7      p\&        P6                  ! V P0                  P9                  V4      4      pVV8  d   EK¯  VV8  dH   \&        P:                  ! VRR7      V8¬  p\&        P<                  ! V4      ^ ,          P?                  4       pM\A        \C        V4      4      pV Uu. uF  pVV9  g   K  VNK  	  pp\C        V4      ^ 8”  di   \&        PD                  ! V4      pVPG                  ^ ^4      PI                  ^^4      pV P0                  PK                  V4      pV F  p VV ,          VV &   K  	  \C        V4      V8¼  g   EK¶   \A        \C        T4      4       Uu. uF  pTT,          NK  	  ppT	'       gÇ   T^8X  d
   T^ ,          M4\&        PL                  PN                  PP                  PS                  TRR7      pTe
   T! T4      p!MTp!T'       di   \&        P(                  ! T^R7      pT^8”  dF   TP4                  ! T\        TP	                  ^ 4      T,          4      .TP	                  4       R
R  O5!  pT!T3p!T!# . p"\A        T4       F*  pT"P%                  TT,          P	                  ^ 4      4       K,  	  Tf;   \&        PL                  PN                  PP                  PS                  TRR7      pTT"3p!Mƒ. p#\&        PL                  PN                  PP                  PS                  TRR7      pT! T4      p#T" Uu. uF4  p\        T#P	                  ^4      \U        T"4      ,          4      T,          NK6  	  p$pT#T$3p!T'       de   \&        P(                  ! T^R7      pTP4                  ! T\        TP	                  ^ 4      T,          4      .TP	                  4       R
R  O5!  p. T!OTN5p!T!# u upi u upi u upi )Na  `speaker_embeddings` must be specified. For example, you can use a speaker embeddings by following
                    the code snippet provided in this link:
                    https://huggingface.co/datasets/Matthijs/cmu-arctic-xvectors
                    T)r8   r:   r¤  r*   )r‘   r:   rn  ro  rò  rp  r  r¤  rÓ   )Úbatch_firstr+   )r*   r+   r*   éýÿÿÿ)+r3   rŠ   r   r$   rå   rw  rg  r®  r!  r¼  rÁ  ry  r1   r9   r0   r£  rh  r
  rf   r"   rÚ   rþ  Úsqueezerò  Úspeech_decoder_postnetrÎ  rÝ   ÚsigmoidrÏ  r[   r4  r\   r]   rb   Ústackr¨   ÚflattenrÕ  r   r  ÚrnnÚpad_sequencerM   )%rœ  r8   rµ  r:   r�  rž  rŸ  r   r¡  r¢  ro  rè   Úencoder_outrz  ÚmaxlenÚminlenÚoutput_sequenceÚspectrogramrþ  rò  r´  Úresult_spectrogramr  Údecoder_outÚlast_decoder_outputÚspectrumÚnew_spectrogramÚprobÚmeet_thresholdsÚmeet_indexesrI  ÚspectrogramsÚ
meet_indexr_  Úspectrogram_lengthsÚ	waveformsÚwaveform_lengthss%   &&&&&&&&&&                           r&   Ú_generate_speechr¿  r  sþ  € ð Ò!Üðó
ð 	
ð ÒØ!" l·l±l×6OÑ6OÑ&O×%TÑ%TÓ%VÕ!VÑà!/Ðà
×
Ñ
˜AÓ
€Cà—.‘.×(Ñ(Ø!Ø-Øð )ó €Kð !,× =Ñ =Ðô �%—.‘.×(Ñ(Ô*I×JÒJØ!&§¡×!7Ñ!7×!>Ñ!>×!aÑ!aØ˜�N× Ñ  Õ#Ð%;ó"
Ðô Ð*×/Ñ/°Ó2°[Õ@À5Ç<Á<×C`ÑC`Õ`Óa€FÜÐ*×/Ñ/°Ó2°[Õ@À5Ç<Á<×C`ÑC`Õ`Óa€Fð 0×9Ñ9¸#¸qÀ%Ç,Á,×B[ÑB[Ó\€Oà€KØÐØ€OØ
€CØÐà
Øˆq�ˆð !&§¡× 6Ñ 6× =Ñ =¸oÐOaÓ bÐà—n‘n×,Ñ,×<Ñ<Ø/°°2±3°Õ7ØØ";Ø#9Ø+ØØ5Øð =ó 	
ˆ÷ #Ø×#Ñ#¤E§I¢I¨k×.JÑ.JÐPQÔ$RÔSà)×;Ñ;×CÑCÀAÓFÐØ%×5Ñ5ˆð ×/Ñ/×8Ñ8Ð9LÓMˆØ—=‘= §l¡l×&CÑ&CÀUÇ\Á\×E^ÑE^Ó_ˆØ×Ñ˜8Ô$ð # 8Õ,×1Ñ1°#°q¸%¿,¹,×:SÑ:SÓTˆÜŸ)š) _°oÐ$FÈAÔNˆä�}Š}˜U×9Ñ9×BÑBÐCVÓWÓXˆà�Œ<Úð �VŒ|Ü"'§)¢)¨D°bÔ"9¸YÑ"F�Ü$Ÿ{š{¨?Ó;¸AÕ>×EÑEÓG‘ä$¤S¨£YÓ/�Ù'3ÓS¡| !°qÐ@RÑ7RŸA˜A¡|ˆLÐSÜ�<Ó  1Ô$Ü$Ÿ{š{¨;Ó7�Ø+×5Ñ5°a¸Ó;×CÑCÀAÀqÓI�Ø$×;Ñ;×CÑCÀLÓQ�Û".�JØ5AÀ*Õ5MÐ& zÓ2ñ #/äÐ%Ó&¨#×-ØÜ38¼Ð=OÓ9PÔ3QÓRÑ3Q¨aÐ& q×)Ð)Ñ3Q€LÐRß Ø),°¬�l 1–o´u·x±x·~±~×7IÑ7I×7VÑ7VÐWcÐquÐ7VÓ7vˆØÒÙ˜kÓ*‰Gà!ˆGß"Ü$ŸyšyÐ)9¸qÔAÐØ�QŒwØ#3×#8Ò#8ØœÐ-×2Ñ2°1Ó5¸Õ;Ó<ð$Ø?O×?TÑ?TÓ?VÐWYÐWZÐ?[ó$Ð ð Ð 0Ð1ˆGð* €Nð% !ÐÜ�s–ˆAØ×&Ñ& |°A¥×';Ñ';¸AÓ'>Ö?ñ àŠ?Ü Ÿ8™8Ÿ>™>×-Ñ-×:Ñ:¸<ÐUYÐ:ÓZˆLØ#Ð%8Ð9‰GàˆIÜ Ÿ8™8Ÿ>™>×-Ñ-×:Ñ:¸<ÐUYÐ:ÓZˆLÙ Ó-ˆIÙ_rÓsÑ_rÐZ[¤ I§N¡N°1Ó$5¼Ð<OÓ8PÕ$PÓ QÐTU× UÐ UÑ_rÐÐsØ Ð"2Ð3ˆGß"Ü$ŸyšyÐ)9¸qÔAÐØ/×4Ò4Ø”SÐ)×.Ñ.¨qÓ1°CÕ7Ó8ð Ø;K×;PÑ;PÓ;RÐSUÐSVÐ;Wó Ðð 3˜Ð2Ð!1Ñ2ˆGØ€NùòW Tùò Sùò4  ts   Î/	Z3Î=Z3Ñ'Z8Ø:Z=zB
    SpeechT5 Model with a text encoder and a speech decoder.
    c                   óþ   a a€ ] tR tRt oRtRtV3R lV 3R llt]V3R lR l4       t]	RV3R lR ll4       t
]P                  ! 4       RV3R	 lR
 ll4       t]P                  ! 4       RV3R lR ll4       tRtVtV ;t# )ÚSpeechT5ForTextToSpeechi	  r   c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú$SpeechT5ForTextToSpeech.__annotate__
	  r„  r(   c                ó  <€ \         SV `  V4       VP                  f   \        RV P                   R24      h\        V4      p\        V4      p\        WV4      V n        \        V4      V n
        V P                  4        R # )Nr†  a    with a configuration that does not define the vocabulary size of the language model head. Please instantiate the model as follows: `SpeechT5ForTextToSpeech.from_pretrained(..., vocab_size=vocab_size)`. or define `vocab_size` of your model's configuration.)r|   r}   rá  r3   rŒ   rÎ  r  re  rw  rÌ  r§  r   )r‰   rŠ   Útext_encoderÚspeech_decoderrŒ   s   &&  €r&   r}   Ú SpeechT5ForTextToSpeech.__init__
	  s}   ø€ Ü‰Ñ˜Ô à×ÑÒ$ÜØ0°·±Ð0@ð A/ð /óð ô 5°VÓ<ˆÜ8¸Ó@ˆÜ% f¸NÓKˆŒä&BÀ6Ó&JˆÔ#ð 	�‰Ör(   c                ó    <€ V ^8„  d   QhRS[ /# )r   rD   )r_   )r%   rž   s   "€r&   r'   rÃ  	  s   ø€ ÷ ñ ™Tñ r(   c                ó   € R # )Tr‘  )Úclss   &r&   Úcan_generateÚ$SpeechT5ForTextToSpeech.can_generate	  s   € ñ
 r(   c                óô  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[S[ P                  ,          ,          R,          RS[R,          RS[R,          R	S[R,          R
S[R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          /# )r   r   Nr:   ru  rv  rw  rò  rp  r  r£  r¤  rµ  rY  r\  rD   )r"   rG   rv  rE   r   r_   r#   r   )r%   rž   s   "€r&   r'   rÃ  &	  s!  ø€ ÷ x
ñ x
á×#Ñ# dÕ*ðx
ñ ×(Ñ(¨4Õ/ðx
ñ $×/Ñ/°$Õ6ð	x
ñ
 !&× 0Ñ 0°4Õ 7ðx
ñ ™u¡U×%6Ñ%6Õ7Õ8¸4Õ?ðx
ñ  �ðx
ñ ˜$•;ðx
ñ   $�;ðx
ñ # T�kðx
ñ ˜D•[ðx
ñ "×-Ñ-°Õ4ðx
ñ ×!Ñ! DÕ(ðx
ñ —\‘\ DÕ(ðx
ñ  
Ñ)Õ	)ñ!x
r(   c                ó¤  € V
e   T
MV P                   P                  p
VeE   Vf#   \        WÀP                   P                  V4      w  r4V P                   P                  '       d   RpV P                  VVVVVVVVVV	RR7      pV P                  V^ ,          4      w  pppRpVe-   \        V P                   4      pV! VVVVVVP                  4      pV
'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  VP                  VP                  VP                  VP                  VP                  R7	      # )a"
  
input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
    Indices of input sequence tokens in the vocabulary.

    Indices can be obtained using [`SpeechT5Tokenizer`]. See [`~PreTrainedTokenizer.encode`] and
    [`~PreTrainedTokenizer.__call__`] for details.

    [What are input IDs?](../glossary#input-ids)
decoder_input_values (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.num_mel_bins)`):
    Float values of input mel spectrogram.

    SpeechT5 uses an all-zero spectrum as the starting token for `decoder_input_values` generation. If
    `past_key_values` is used, optionally only the last `decoder_input_values` have to be input (see
    `past_key_values`).
decoder_attention_mask (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Default behavior: generate a tensor that ignores pad tokens in `decoder_input_values`. Causal mask will
    also be used by default.

    If you want to change padding behavior, you should read [`SpeechT5Decoder._prepare_decoder_attention_mask`]
    and modify to your needs. See diagram 1 in [the paper](https://huggingface.co/papers/1910.13461) for more
    information on the default strategy.
speaker_embeddings (`torch.FloatTensor` of shape `(batch_size, config.speaker_embedding_dim)`, *optional*):
    Tensor containing the speaker embeddings.
labels (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.num_mel_bins)`, *optional*):
    Float values of target mel spectrogram. Timesteps set to `-100.0` are ignored (masked) for the loss
    computation. Spectrograms can be obtained using [`SpeechT5Processor`]. See [`SpeechT5Processor.__call__`]
    for details.
stop_labels (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
    Binary tensor indicating the position of the stop token in the sequence.

Example:

```python
>>> from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan, set_seed
>>> import torch

>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_tts")
>>> model = SpeechT5ForTextToSpeech.from_pretrained("microsoft/speecht5_tts")
>>> vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")

>>> inputs = processor(text="Hello, my dog is cute", return_tensors="pt")
>>> speaker_embeddings = torch.zeros((1, 512))  # or load xvectors from a file

>>> set_seed(555)  # make deterministic

>>> # generate speech
>>> speech = model.generate(inputs["input_ids"], speaker_embeddings=speaker_embeddings, vocoder=vocoder)
>>> speech.shape
torch.Size([15872])
```
NT©r8   r:   ru  rv  rw  rò  rp  rµ  r  r£  r¤  r-   ©	r=  r±  rò  r  ry  rþ  rz  rn  r{  )rŠ   r¤  r?   r9   rR  rw  r§  rM  rþ  r   rò  r  ry  rz  rn  r{  )r‰   r   r:   ru  rv  rw  rò  rp  r  r£  r¤  rµ  rY  r\  r-  r_  rÖ  r×  rØ  r=  Ú	criterionr˜  s   &&&&&&&&&&&&&&,       r&   r’   ÚSpeechT5ForTextToSpeech.forward%	  sp  € ðJ &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆàÒØ#Ò+Ü?WØŸK™K×8Ñ8Ð:Pó@Ñ<Ð$ð �{‰{×4×4Ð4Ø$(Ð!à—-‘-Ø"Ø)Ø!5Ø#9Ø+Ø+ØØ1Ø/Ø!5Øð  ó 
ˆð AE×@[Ñ@[Ð\cÐdeÕ\fÓ@gÑ=ÐÐ 5°vàˆØÒÜ/°·±Ó<ˆIÙØØ&Ø%ØØØ×(Ñ(óˆD÷ Ø+Ð-°¸µÕ;ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä'ØØ-Ø#×3Ñ3Ø")×"?Ñ"?Ø&×9Ñ9Ø$×5Ñ5Ø&-×&GÑ&GØ")×"?Ñ"?Ø&×9Ñ9ô

ð 
	
r(   c                ó2  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[RS[RS[RS[P
                  R,          R	S[R
S[RS[ P                  S[S[ P                  S[ P                  3,          ,          /
# )r   r   r:   Nrµ  r�  rž  rŸ  r   r¡  r¢  rD   ©r"   rG   rv  rF   r   r{  r_   rE   )r%   rž   s   "€r&   r'   rÃ  ¡	  sÁ   ø€ ÷ Y
ñ Y
á×#Ñ#ðY
ñ ×(Ñ(¨4Õ/ðY
ñ "×-Ñ-°Õ4ð	Y
ñ
 ðY
ñ ðY
ñ ðY
ñ —‘˜TÕ!ðY
ñ "&ðY
ñ  $ðY
ñ 
×	Ñ	™U¡5×#4Ñ#4±e×6GÑ6GÐ#GÕHÕ	HñY
r(   c
                óè   € Ve\   VP                  ^ 4      pVP                  ^ 4      V8w  d5   VP                  ^ 4      ^8X  d   VP                  V^4      pM\        R4      h\        V VVVVVVVVV	4
      # )aµ  
Converts a sequence of input tokens into a sequence of mel spectrograms, which are subsequently turned into a
speech waveform using a vocoder.

Args:
    input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
        Indices of input sequence tokens in the vocabulary.

        Indices can be obtained using [`SpeechT5Tokenizer`]. See [`~PreTrainedTokenizer.encode`] and
        [`~PreTrainedTokenizer.__call__`] for details.

        [What are input IDs?](../glossary#input-ids)
    attention_mask (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
        Attention mask from the tokenizer, required for batched inference to signal to the model where to
        ignore padded tokens from the input_ids.
    speaker_embeddings (`torch.FloatTensor` of shape `(batch_size, config.speaker_embedding_dim)`, *optional*):
        Tensor containing the speaker embeddings.
    threshold (`float`, *optional*, defaults to 0.5):
        The generated sequence ends when the predicted stop token probability exceeds this value.
    minlenratio (`float`, *optional*, defaults to 0.0):
        Used to calculate the minimum required length for the output sequence.
    maxlenratio (`float`, *optional*, defaults to 20.0):
        Used to calculate the maximum allowed length for the output sequence.
    vocoder (`nn.Module`, *optional*):
        The vocoder that converts the mel spectrogram into a speech waveform. If `None`, the output is the mel
        spectrogram.
    output_cross_attentions (`bool`, *optional*, defaults to `False`):
        Whether or not to return the attentions tensors of the decoder's cross-attention layers.
    return_output_lengths (`bool`, *optional*, defaults to `False`):
        Whether or not to return the concrete spectrogram/waveform lengths.

Returns:
    `tuple(torch.FloatTensor)` comprising various elements depending on the inputs:
    - when `return_output_lengths` is False
        - **spectrogram** (*optional*, returned when no `vocoder` is provided) `torch.FloatTensor` of shape
        `(output_sequence_length, config.num_mel_bins)` -- The predicted log-mel spectrogram.
        - **waveform** (*optional*, returned when a `vocoder` is provided) `torch.FloatTensor` of shape
        `(num_frames,)` -- The predicted speech waveform.
        - **cross_attentions** (*optional*, returned when `output_cross_attentions` is `True`)
        `torch.FloatTensor` of shape `(config.decoder_layers, config.decoder_attention_heads,
        output_sequence_length, input_sequence_length)` -- The outputs of the decoder's cross-attention layers.
    - when `return_output_lengths` is True
        - **spectrograms** (*optional*, returned when no `vocoder` is provided) `torch.FloatTensor` of shape
        `(batch_size, output_sequence_length, config.num_mel_bins)` -- The predicted log-mel spectrograms that
        are padded to the maximum length.
        - **spectrogram_lengths** (*optional*, returned when no `vocoder` is provided) `list[Int]` -- A list of
        all the concrete lengths for each spectrogram.
        - **waveforms** (*optional*, returned when a `vocoder` is provided) `torch.FloatTensor` of shape
        `(batch_size, num_frames)` -- The predicted speech waveforms that are padded to the maximum length.
        - **waveform_lengths** (*optional*, returned when a `vocoder` is provided) `list[Int]` -- A list of all
        the concrete lengths for each waveform.
        - **cross_attentions** (*optional*, returned when `output_cross_attentions` is `True`)
        `torch.FloatTensor` of shape `(batch_size, config.decoder_layers, config.decoder_attention_heads,
        output_sequence_length, input_sequence_length)` -- The outputs of the decoder's cross-attention layers.
zUThe first dimension of speaker_embeddings must be either 1 or the same as batch_size.©rå   r¯  r3   r¿  )r‰   r   r:   rµ  r�  rž  rŸ  r   r¡  r¢  r-  rk   s   &&&&&&&&&&, r&   ÚgenerateÚ SpeechT5ForTextToSpeech.generate 	  s�   € ðJ Ò)Ø"Ÿ™¨Ó*ˆJØ!×&Ñ& qÓ)¨ZÔ7Ø%×*Ñ*¨1Ó-°Ô2Ø);×)BÑ)BÀ:ÈqÓ)QÑ&ä$Øoóð ô  ØØØØØØØØØ#Ø!ó
ð 	
r(   c                ó2  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[RS[RS[RS[P
                  R,          R	S[R
S[RS[ P                  S[S[ P                  S[ P                  3,          ,          /
# )r   r   rµ  Nr:   r�  rž  rŸ  r   r¡  r¢  rD   rÔ  )r%   rž   s   "€r&   r'   rÃ  ý	  sÁ   ø€ ÷ ]
ñ ]
á×#Ñ#ð]
ñ "×-Ñ-°Õ4ð]
ñ ×(Ñ(¨4Õ/ð	]
ñ
 ð]
ñ ð]
ñ ð]
ñ —‘˜TÕ!ð]
ñ "&ð]
ñ  $ð]
ñ 
×	Ñ	™U¡5×#4Ñ#4±e×6GÑ6GÐ#GÕHÕ	Hñ]
r(   c
                óè   € Ve\   VP                  ^ 4      p
VP                  ^ 4      V
8w  d5   VP                  ^ 4      ^8X  d   VP                  V
^4      pM\        R4      h\        V VVVVVVVVV	4
      # )aW  
Converts a sequence of input tokens into a sequence of mel spectrograms, which are subsequently turned into a
speech waveform using a vocoder.

Args:
    input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`):
        Indices of input sequence tokens in the vocabulary.

        Indices can be obtained using [`SpeechT5Tokenizer`]. See [`~PreTrainedTokenizer.encode`] and
        [`~PreTrainedTokenizer.__call__`] for details.

        [What are input IDs?](../glossary#input-ids)
    speaker_embeddings (`torch.FloatTensor` of shape `(batch_size, config.speaker_embedding_dim)`, *optional*):
        Tensor containing the speaker embeddings.
    attention_mask (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
        Mask to avoid performing convolution and attention on padding token indices. Mask values selected in
        `[0, 1]`:

        - 1 for tokens that are **not masked**,
        - 0 for tokens that are **masked**.

        [What are attention masks?](../glossary#attention-mask)
    threshold (`float`, *optional*, defaults to 0.5):
        The generated sequence ends when the predicted stop token probability exceeds this value.
    minlenratio (`float`, *optional*, defaults to 0.0):
        Used to calculate the minimum required length for the output sequence.
    maxlenratio (`float`, *optional*, defaults to 20.0):
        Used to calculate the maximum allowed length for the output sequence.
    vocoder (`nn.Module`, *optional*, defaults to `None`):
        The vocoder that converts the mel spectrogram into a speech waveform. If `None`, the output is the mel
        spectrogram.
    output_cross_attentions (`bool`, *optional*, defaults to `False`):
        Whether or not to return the attentions tensors of the decoder's cross-attention layers.
    return_output_lengths (`bool`, *optional*, defaults to `False`):
        Whether or not to return the concrete spectrogram/waveform lengths.

Returns:
    `tuple(torch.FloatTensor)` comprising various elements depending on the inputs:
    - when `return_output_lengths` is False
        - **spectrogram** (*optional*, returned when no `vocoder` is provided) `torch.FloatTensor` of shape
        `(output_sequence_length, config.num_mel_bins)` -- The predicted log-mel spectrogram.
        - **waveform** (*optional*, returned when a `vocoder` is provided) `torch.FloatTensor` of shape
        `(num_frames,)` -- The predicted speech waveform.
        - **cross_attentions** (*optional*, returned when `output_cross_attentions` is `True`)
        `torch.FloatTensor` of shape `(config.decoder_layers, config.decoder_attention_heads,
        output_sequence_length, input_sequence_length)` -- The outputs of the decoder's cross-attention layers.
    - when `return_output_lengths` is True
        - **spectrograms** (*optional*, returned when no `vocoder` is provided) `torch.FloatTensor` of shape
        `(batch_size, output_sequence_length, config.num_mel_bins)` -- The predicted log-mel spectrograms that
        are padded to the maximum length.
        - **spectrogram_lengths** (*optional*, returned when no `vocoder` is provided) `list[Int]` -- A list of
        all the concrete lengths for each spectrogram.
        - **waveforms** (*optional*, returned when a `vocoder` is provided) `torch.FloatTensor` of shape
        `(batch_size, num_frames)` -- The predicted speech waveforms that are padded to the maximum length.
        - **waveform_lengths** (*optional*, returned when a `vocoder` is provided) `list[Int]` -- A list of all
        the concrete lengths for each waveform.
        - **cross_attentions** (*optional*, returned when `output_cross_attentions` is `True`)
        `torch.FloatTensor` of shape `(batch_size, config.decoder_layers, config.decoder_attention_heads,
        output_sequence_length, input_sequence_length)` -- The outputs of the decoder's cross-attention layers.
zUThe first dimension of speaker_embeddings must be either 1 or the same as batch size.rÖ  )r‰   r   rµ  r:   r�  rž  rŸ  r   r¡  r¢  rk   s   &&&&&&&&&& r&   Úgenerate_speechÚ'SpeechT5ForTextToSpeech.generate_speechü	  s�   € ðR Ò)Ø"Ÿ™¨Ó*ˆJØ!×&Ñ& qÓ)¨ZÔ7Ø%×*Ñ*¨1Ó-°Ô2Ø);×)BÑ)BÀ:ÈqÓ)QÑ&ä$Øoóð ô  ØØØØØØØØØ#Ø!ó
ð 	
r(   ©r§  rw  )Útext©NNNNNNNNNNNNN©NNg      à?r<   g      4@NFF)r–   r—   r˜   r™   r”  r“  r}   ÚclassmethodrË  r   r’   r"   rø   r×  rÛ  rš   r›   rœ   r�   s   @@r&   rÁ  rÁ  	  s˜   ù‡ € ð !ÐØ!€O÷ó ð( ÷ó ðð ÷x
ñ x
ó ðx
ðt ‡]‚]ƒ_÷Y
ñ Y
ó ðY
ðv ‡]‚]ƒ_÷]
ñ ]
ó ÷]
ð ]
r(   rÁ  zD
    SpeechT5 Model with a speech encoder and a speech decoder.
    c                   ó¢   a a€ ] tR tRt oV3R lV 3R lltR t]R
V3R lR ll4       t]P                  ! 4       RV3R lR ll4       t
R	tVtV ;t# )ÚSpeechT5ForSpeechToSpeechi]
  c                ó    <€ V ^8„  d   QhRS[ /# rQ  rR  )r%   rž   s   "€r&   r'   Ú&SpeechT5ForSpeechToSpeech.__annotate__c
  s   ø€ ÷ 
ñ 
™~ñ 
r(   c                ó´   <€ \         SV `  V4       \        V4      p\        V4      p\	        WV4      V n        \        V4      V n        V P                  4        R # r�   )	r|   r}   r¼  r  re  rw  rÌ  r§  r   )r‰   rŠ   rˆ  rÆ  rŒ   s   &&  €r&   r}   Ú"SpeechT5ForSpeechToSpeech.__init__c
  sK   ø€ Ü‰Ñ˜Ô ä8¸Ó@ˆÜ8¸Ó@ˆÜ% f¸nÓMˆŒä&BÀ6Ó&JˆÔ#ð 	�‰Ör(   c                óV   € V P                  4       P                  P                  4        R# rr  rŒ  rq  s   &r&   rr  Ú0SpeechT5ForSpeechToSpeech.freeze_feature_encodero
  r�  r(   c                óô  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[S[ P                  ,          ,          R,          RS[R,          RS[R,          R	S[R,          R
S[R,          RS[R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          /# )r   r8   Nr:   ru  rv  rw  rò  rp  r  r£  r¤  rµ  rY  r\  rD   )r"   rv  rG   rE   r   r_   r#   r   )r%   rž   s   "€r&   r'   rå  w
  s!  ø€ ÷ s
ñ s
á×'Ñ'¨$Õ.ðs
ñ ×(Ñ(¨4Õ/ðs
ñ $×/Ñ/°$Õ6ð	s
ñ
 !&× 0Ñ 0°4Õ 7ðs
ñ ™u¡U×%6Ñ%6Õ7Õ8¸4Õ?ðs
ñ  �ðs
ñ ˜$•;ðs
ñ   $�;ðs
ñ # T�kðs
ñ ˜D•[ðs
ñ "×-Ñ-°Õ4ðs
ñ ×!Ñ! DÕ(ðs
ñ —\‘\ DÕ(ðs
ñ  
Ñ)Õ	)ñ!s
r(   c                ó  € V
e   T
MV P                   P                  p
Ve'   Vf#   \        WÀP                   P                  V4      w  r4V P	                  VVVVVVVVVV	RR7      pV P                  V^ ,          4      w  pppRpV
'       g"   V3VR,          ,           pVe   V3V,           # T# \        VVVP                  VP                  VP                  VP                  VP                  VP                  VP                  R7	      # )a5  
input_values (`torch.FloatTensor` of shape `(batch_size, sequence_length)`):
    Float values of input raw speech waveform. Values can be obtained by loading a *.flac* or *.wav* audio file
    into an array of type `list[float]`, a `numpy.ndarray` or a `torch.Tensor`, *e.g.* via the torchcodec library
    (`pip install torchcodec`) or the soundfile library (`pip install soundfile`).
    To prepare the array into `input_values`, the [`SpeechT5Processor`] should be used for padding and conversion into
    a tensor of type `torch.FloatTensor`. See [`SpeechT5Processor.__call__`] for details.
decoder_input_values (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.num_mel_bins)`):
    Float values of input mel spectrogram.

    SpeechT5 uses an all-zero spectrum as the starting token for `decoder_input_values` generation. If
    `past_key_values` is used, optionally only the last `decoder_input_values` have to be input (see
    `past_key_values`).
decoder_attention_mask (`torch.LongTensor` of shape `(batch_size, target_sequence_length)`, *optional*):
    Default behavior: generate a tensor that ignores pad tokens in `decoder_input_values`. Causal mask will
    also be used by default.

    If you want to change padding behavior, you should read [`SpeechT5Decoder._prepare_decoder_attention_mask`]
    and modify to your needs. See diagram 1 in [the paper](https://huggingface.co/papers/1910.13461) for more
    information on the default strategy.
speaker_embeddings (`torch.FloatTensor` of shape `(batch_size, config.speaker_embedding_dim)`, *optional*):
    Tensor containing the speaker embeddings.
labels (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.num_mel_bins)`, *optional*):
    Float values of target mel spectrogram. Spectrograms can be obtained using [`SpeechT5Processor`]. See
    [`SpeechT5Processor.__call__`] for details.
stop_labels (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
    Binary tensor indicating the position of the stop token in the sequence.

Example:

```python
>>> from transformers import SpeechT5Processor, SpeechT5ForSpeechToSpeech, SpeechT5HifiGan, set_seed
>>> from datasets import load_dataset
>>> import torch

>>> dataset = load_dataset(
...     "hf-internal-testing/librispeech_asr_demo", "clean", split="validation"
... )  # doctest: +IGNORE_RESULT
>>> dataset = dataset.sort("id")
>>> sampling_rate = dataset.features["audio"].sampling_rate

>>> processor = SpeechT5Processor.from_pretrained("microsoft/speecht5_vc")
>>> model = SpeechT5ForSpeechToSpeech.from_pretrained("microsoft/speecht5_vc")
>>> vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")

>>> # audio file is decoded on the fly
>>> inputs = processor(audio=dataset[0]["audio"]["array"], sampling_rate=sampling_rate, return_tensors="pt")

>>> speaker_embeddings = torch.zeros((1, 512))  # or load xvectors from a file

>>> set_seed(555)  # make deterministic

>>> # generate speech
>>> speech = model.generate_speech(inputs["input_values"], speaker_embeddings, vocoder=vocoder)
>>> speech.shape
torch.Size([77824])
```
NTrÏ  r-   rÐ  )rŠ   r¤  r?   r9   rw  r§  r   rò  r  ry  rþ  rz  rn  r{  )r‰   r8   r:   ru  rv  rw  rò  rp  r  r£  r¤  rµ  rY  r\  r-  r_  rl   r±  rØ  r=  r˜  s   &&&&&&&&&&&&&&,      r&   r’   Ú!SpeechT5ForSpeechToSpeech.forwardv
  s  € ðX &1Ò%<‘kÀ$Ç+Á+×BYÑBYˆàÒØ#Ò+Ü?WØŸK™K×8Ñ8Ð:Pó@Ñ<Ð$ð —-‘-Ø%Ø)Ø!5Ø#9Ø+Ø+ØØ1Ø/Ø!5Øð  ó 
ˆð "&×!<Ñ!<¸WÀQ½ZÓ!HÑˆˆ;˜àˆçØ!�^ g¨b¥kÕ1ˆFØ)-Ò)9�T�G˜fÕ$ÐE¸vÐEä'ØØ#Ø#×3Ñ3Ø")×"?Ñ"?Ø&×9Ñ9Ø$×5Ñ5Ø&-×&GÑ&GØ")×"?Ñ"?Ø&×9Ñ9ô

ð 
	
r(   c                óä   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[RS[RS[RS[P
                  R,          R	S[R
S[RS[ P                  /
# )r   r8   rµ  Nr:   r�  rž  rŸ  r   r¡  r¢  rD   )r"   rv  rG   rF   r   r{  r_   )r%   rž   s   "€r&   r'   rå  í
  s¦   ø€ ÷ W
ñ W
á×'Ñ'ðW
ñ "×-Ñ-°Õ4ðW
ñ ×(Ñ(¨4Õ/ð	W
ñ
 ðW
ñ ðW
ñ ðW
ñ —‘˜TÕ!ðW
ñ "&ðW
ñ  $ðW
ñ 
×	Ñ	ñW
r(   c
                óv   € Vf#   \         P                  ! RVP                  R7      p\        V VVVVVVVVV	4
      # )ao  
Converts a raw speech waveform into a sequence of mel spectrograms, which are subsequently turned back into a
speech waveform using a vocoder.

Args:
    input_values (`torch.FloatTensor` of shape `(batch_size, sequence_length)`):
        Float values of input raw speech waveform.

        Values can be obtained by loading a *.flac* or *.wav* audio file into an array of type `list[float]`,
        a `numpy.ndarray` or a `torch.Tensor`, *e.g.* via the torchcodec library (`pip install torchcodec`)
        or the soundfile library (`pip install soundfile`).
        To prepare the array into `input_values`, the [`SpeechT5Processor`] should be used for padding and
        conversion into a tensor of type `torch.FloatTensor`. See [`SpeechT5Processor.__call__`] for details.
    speaker_embeddings (`torch.FloatTensor` of shape `(batch_size, config.speaker_embedding_dim)`, *optional*):
        Tensor containing the speaker embeddings.
    attention_mask (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
        Mask to avoid performing convolution and attention on padding token indices. Mask values selected in
        `[0, 1]`:

        - 1 for tokens that are **not masked**,
        - 0 for tokens that are **masked**.

        [What are attention masks?](../glossary#attention-mask)
    threshold (`float`, *optional*, defaults to 0.5):
        The generated sequence ends when the predicted stop token probability exceeds this value.
    minlenratio (`float`, *optional*, defaults to 0.0):
        Used to calculate the minimum required length for the output sequence.
    maxlenratio (`float`, *optional*, defaults to 20.0):
        Used to calculate the maximum allowed length for the output sequence.
    vocoder (`nn.Module`, *optional*, defaults to `None`):
        The vocoder that converts the mel spectrogram into a speech waveform. If `None`, the output is the mel
        spectrogram.
    output_cross_attentions (`bool`, *optional*, defaults to `False`):
        Whether or not to return the attentions tensors of the decoder's cross-attention layers.
    return_output_lengths (`bool`, *optional*, defaults to `False`):
        Whether or not to return the concrete spectrogram/waveform lengths.

Returns:
    `tuple(torch.FloatTensor)` comprising various elements depending on the inputs:
    - when `return_output_lengths` is False
        - **spectrogram** (*optional*, returned when no `vocoder` is provided) `torch.FloatTensor` of shape
        `(output_sequence_length, config.num_mel_bins)` -- The predicted log-mel spectrogram.
        - **waveform** (*optional*, returned when a `vocoder` is provided) `torch.FloatTensor` of shape
        `(num_frames,)` -- The predicted speech waveform.
        - **cross_attentions** (*optional*, returned when `output_cross_attentions` is `True`)
        `torch.FloatTensor` of shape `(config.decoder_layers, config.decoder_attention_heads,
        output_sequence_length, input_sequence_length)` -- The outputs of the decoder's cross-attention layers.
    - when `return_output_lengths` is True
        - **spectrograms** (*optional*, returned when no `vocoder` is provided) `torch.FloatTensor` of shape
        `(batch_size, output_sequence_length, config.num_mel_bins)` -- The predicted log-mel spectrograms that
        are padded to the maximum length.
        - **spectrogram_lengths** (*optional*, returned when no `vocoder` is provided) `list[Int]` -- A list of
        all the concrete lengths for each spectrogram.
        - **waveforms** (*optional*, returned when a `vocoder` is provided) `torch.FloatTensor` of shape
        `(batch_size, num_frames)` -- The predicted speech waveforms that are padded to the maximum length.
        - **waveform_lengths** (*optional*, returned when a `vocoder` is provided) `list[Int]` -- A list of all
        the concrete lengths for each waveform.
        - **cross_attentions** (*optional*, returned when `output_cross_attentions` is `True`)
        `torch.FloatTensor` of shape `(batch_size, config.decoder_layers, config.decoder_attention_heads,
        output_sequence_length, input_sequence_length)` -- The outputs of the decoder's cross-attention layers.
rƒ  )r.   i   )r"   r^   rÈ   r¿  )
r‰   r8   rµ  r:   r�  rž  rŸ  r   r¡  r¢  s
   &&&&&&&&&&r&   rÛ  Ú)SpeechT5ForSpeechToSpeech.generate_speechì
  sM   € ðT Ò%Ü!&§¢¨X¸l×>QÑ>QÔ!RÐäØØØØØØØØØ#Ø!ó
ð 	
r(   rÝ  rß  rà  )r–   r—   r˜   r™   r}   rr  r   r’   r"   rø   rÛ  rš   r›   rœ   r�   s   @@r&   rã  rã  ]
  sY   ù‡ € ÷
ó 
ò;ð ÷s
ñ s
ó ðs
ðj ‡]‚]ƒ_÷W
ñ W
ó ÷W
ð W
r(   rã  c                   óR   a a€ ] tR tRt oRV 3R lltR	R ltR tR tR tRt	Vt
V ;t# )
ÚHifiGanResidualBlockiG  c                óø  <€ \         SV `  4        W@n        \        P                  ! \        \        V4      4       Uu. uF;  p\        P                  ! VVV^W5,          V P                  W#V,          4      R7      NK=  	  up4      V n	        \        P                  ! \        \        V4      4       Uu. uF/  p\        P                  ! VVV^^V P                  V^4      R7      NK1  	  up4      V n
        R# u upi u upi )r.   )rz   Údilationrü   N)r|   r}   Úleaky_relu_sloper   rE  r]   rb   r�   Úget_paddingÚconvs1Úconvs2)r‰   Úchannelsry   ró  rô  rI  rl   rŒ   s   &&&&&  €r&   r}   ÚHifiGanResidualBlock.__init__H  sè   ø€ Ü‰ÑÔØ 0Ôä—m’mô œs 8›}Ô-ó
ñ .�Aô —	’	ØØØØØ%�[Ø ×,Ñ,¨[À1½+ÓF÷ñ .ñ
ó
ˆŒô —m’mô œs 8›}Ô-ó
ñ .�Aô —	’	ØØØØØØ ×,Ñ,¨[¸!Ó<÷ñ .ñ
ó
ˆŽùò
ùò
s   ¼AC2Â/5C7c                ó.   € W,          V,
          ^,          # )r   r‘  )r‰   ry   ró  s   &&&r&   rõ  Ú HifiGanResidualBlock.get_paddingg  s   € ØÕ&¨Õ1°aÕ7Ð7r(   c                óB  € \         P                  P                  p\        \         P                  P                  R 4      '       d%   \         P                  P                  P                  pV P
                   F  pV! V4       K  	  V P                   F  pV! V4       K  	  R# ©rþ   N)r   r  rþ   rÌ   r  rö  r÷  ©r‰   rþ   rB  s   &  r&   Úapply_weight_normÚ&HifiGanResidualBlock.apply_weight_normj  si   € Ü—h‘h×*Ñ*ˆÜ”2—8‘8×,Ñ,¨m×<Ò<ÜŸ(™(×3Ñ3×?Ñ?ˆKà—[”[ˆEÙ˜Öñ !à—[”[ˆEÙ˜Öó !r(   c                óÎ   € V P                    F"  p\        P                  P                  V4       K$  	  V P                   F"  p\        P                  P                  V4       K$  	  R # r�   )rö  r   r  Úremove_weight_normr÷  ©r‰   rB  s   & r&   r  Ú'HifiGanResidualBlock.remove_weight_normt  sB   € Ø—[”[ˆEÜ�H‰H×'Ñ'¨Ö.ñ !à—[”[ˆEÜ�H‰H×'Ñ'¨Ö.ó !r(   c                ó0  € \        V P                  V P                  4       Fq  w  r#Tp\        P                  P                  WP                  4      pV! V4      p\        P                  P                  WP                  4      pV! V4      pW,           pKs  	  V# r�   )r‘  rö  r÷  r   r¹  Ú
leaky_relurô  )r‰   r‘   Úconv1Úconv2r^  s   &&   r&   r’   ÚHifiGanResidualBlock.forwardz  sz   € Ü §¡¨T¯[©[Ö9‰LˆEØ$ˆHÜŸM™M×4Ñ4°]×DYÑDYÓZˆMÙ! -Ó0ˆMÜŸM™M×4Ñ4°]×DYÑDYÓZˆMÙ! -Ó0ˆMØ)Õ4ŠMñ :ð Ðr(   )rö  r÷  rô  )é   )r.   r
  é   gš™™™™™¹?r  )r–   r—   r˜   r™   r}   rõ  rÿ  r  r’   rš   r›   rœ   r�   s   @@r&   rñ  rñ  G  s#   ù‡ € ÷
ô>8òò/÷ò r(   rñ  z
    HiFi-GAN vocoder.
    c                   ó�   a a€ ] tR tRt oRtV3R lV 3R lltV 3R ltR tR t]	! RR	7      V3R
 lR l4       t
V3R ltRtVtV ;t# )r‹  i…  r±  c                ó    <€ V ^8„  d   QhRS[ /# rQ  ©r   )r%   rž   s   "€r&   r'   ÚSpeechT5HifiGan.__annotate__Ž  s   ø€ ÷ $ñ $Ñ4ñ $r(   c                ó8  <€ \         SV `  V4       \        VP                  4      V n        \        VP
                  4      V n        \        P                  ! VP                  VP                  ^^^R7      V n        \        P                  ! 4       V n        \        \        VP
                  VP                   4      4       F€  w  pw  r4V P                  P#                  \        P$                  ! VP                  ^V,          ,          VP                  ^V^,           ,          ,          VVWC,
          ^,          R7      4       K‚  	  \        P                  ! 4       V n        \)        \        V P                  4      4       F|  pVP                  ^V^,           ,          ,          p\        VP                  VP*                  4       F4  w  rFV P&                  P#                  \-        WTWaP.                  4      4       K6  	  K~  	  \        P                  ! X^^^^R7      V n        \        P2                  ! \4        P6                  ! VP                  4      4      V n        \        P2                  ! \4        P:                  ! VP                  4      4      V n        V P?                  4        R# )é   )ry   rz   rü   N) r|   r}   rb   Úresblock_kernel_sizesÚnum_kernelsÚupsample_ratesÚnum_upsamplesr   r�   Úmodel_in_dimÚupsample_initial_channelÚconv_prerE  Ú	upsamplerr°  r‘  Úupsample_kernel_sizesrf   ÚConvTranspose1dÚ	resblocksr]   Úresblock_dilation_sizesrñ  rô  Ú	conv_postrÎ   r"   r^   r~  rd   r�  r   )r‰   rŠ   rI  Úupsample_ratery   rø  ró  rŒ   s   &&     €r&   r}   ÚSpeechT5HifiGan.__init__Ž  sÛ  ø€ Ü‰Ñ˜Ô Ü˜v×;Ñ;Ó<ˆÔÜ  ×!6Ñ!6Ó7ˆÔÜŸ	š	Ø×ÑØ×+Ñ+ØØØô
ˆŒô Ÿš›ˆŒÜ/8¼¸V×=RÑ=RÐTZ×TpÑTpÓ9qÖ/rÑ+ˆAÑ+�Ø�N‰N×!Ñ!Ü×"Ò"Ø×3Ñ3¸¸1½Õ=Ø×3Ñ3¸¸aÀ!½e½ÕEØ +Ø(Ø(Õ8¸QÕ>ôöñ 0sô Ÿš›ˆŒÜ”s˜4Ÿ>™>Ó*Ö+ˆAØ×6Ñ6¸1ÀÀQÅ½<ÕHˆHÜ),¨V×-IÑ-IÈ6×KiÑKiÖ)jÑ%�Ø—‘×%Ñ%Ô&:¸8ÐRZ×\sÑ\sÓ&tÖuó *kñ ,ô
 Ÿš 8¨Q¸AÀaÐQRÔSˆŒä—I’IœeŸkšk¨&×*=Ñ*=Ó>Ó?ˆŒ	Ü—Y’YœuŸzšz¨&×*=Ñ*=Ó>Ó?ˆŒ
ð 	�‰Ör(   c                óÖ   <€ \         SV `  V4       \        V\        4      '       dC   \        P
                  ! VP                  4       \        P                  ! VP                  4       R # R # r�   )	r|   r‚  r!  r‹  rƒ  rŒ  r~  r‡  r�  )r‰   rz  rŒ   s   &&€r&   r‚  ÚSpeechT5HifiGan._init_weights´  sB   ø€ Ü‰Ñ˜fÔ%Ü�fœo×.Ò.Ü�KŠK˜Ÿ™Ô$Ü�JŠJ�v—|‘|Ö$ñ /r(   c                óš  € \         P                  P                  p\        \         P                  P                  R 4      '       d%   \         P                  P                  P                  pV! V P
                  4       V P                   F  pV! V4       K  	  V P                   F  pVP                  4        K  	  V! V P                  4       R# rý  )
r   r  rþ   rÌ   r  r  r  r  rÿ  r  rþ  s   &  r&   rÿ  Ú!SpeechT5HifiGan.apply_weight_normº  s…   € Ü—h‘h×*Ñ*ˆÜ”2—8‘8×,Ñ,¨m×<Ò<ÜŸ(™(×3Ñ3×?Ñ?ˆKá�D—M‘MÔ"Ø—^”^ˆEÙ˜Öñ $à—^”^ˆEØ×#Ñ#Ö%ñ $á�D—N‘NÖ#r(   c                óT  € \         P                  P                  V P                  4       V P                   F"  p\         P                  P                  V4       K$  	  V P
                   F  pVP                  4        K  	  \         P                  P                  V P                  4       R # r�   )r   r  r  r  r  r  r  r  s   & r&   r  Ú"SpeechT5HifiGan.remove_weight_normÆ  sh   € Ü
�‰×#Ñ# D§M¡MÔ2Ø—^”^ˆEÜ�H‰H×'Ñ'¨Ö.ñ $à—^”^ˆEØ×$Ñ$Ö&ñ $ä
�‰×#Ñ# D§N¡NÖ3r(   a  
        Converts a log-mel spectrogram into a speech waveform. Passing a batch of log-mel spectrograms returns a batch
        of speech waveforms. Passing a single, un-batched log-mel spectrogram returns a single, un-batched speech
        waveform.
        rb  c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r±  rD   )r"   rv  )r%   rž   s   "€r&   r'   r  Õ  s'   ø€ ÷ (ñ (¡5×#4Ñ#4ð (Á5×CTÑCTñ (r(   c                ó0  € V P                   P                  '       d$   WP                  ,
          V P                  ,          pVP	                  4       ^8H  pV'       g   VP                  ^ 4      pVP                  ^^4      pV P                  V4      p\        V P                  4       FÝ  p\        P                  P                  W@P                   P                  4      pV P                  V,          ! V4      pV P                  WPP                   ,          ,          ! V4      p\        ^V P                   4       F9  pW`P                  WPP                   ,          V,           ,          ! V4      ,          pK;  	  W`P                   ,          pKß  	  \        P                  P                  V4      pV P#                  V4      p\$        P&                  ! V4      pV'       g3   VP)                  ^ 4      P                  ^^ 4      P+                  R4      pV# VP)                  ^4      pV# )aÁ  
spectrogram (`torch.FloatTensor`):
    Tensor containing the log-mel spectrograms. Can be batched and of shape `(batch_size, sequence_length,
    config.model_in_dim)`, or un-batched and of shape `(sequence_length, config.model_in_dim)`.

Returns:
    `torch.FloatTensor`: Tensor containing the speech waveform. If the input spectrogram is batched, will be of
    shape `(batch_size, num_frames,)`. If un-batched, will be of shape `(num_frames,)`.
r+   )rŠ   Únormalize_beforer~  r�  rÔ   rÙ   r¨   r  r]   r  r   r¹  r  rô  r  r  r  r  r"   Útanhr¦  rÝ   )	r‰   r±  r-  Ú
is_batchedr‘   rI  Ú	res_stateÚjÚwaveforms	   &&,      r&   r’   ÚSpeechT5HifiGan.forwardÎ  s“  € ð" �;‰;×'×'Ð'Ø&¯©Õ2°d·j±jÕ@ˆKà —_‘_Ó&¨!Ñ+ˆ
ßØ%×/Ñ/°Ó2ˆKà#×-Ñ-¨a°Ó3ˆàŸ™ mÓ4ˆÜ�t×)Ñ)Ö*ˆAÜŸM™M×4Ñ4°]ÇKÁK×D`ÑD`ÓaˆMØ ŸN™N¨1Ö-¨mÓ<ˆMàŸ™ q×+;Ñ+;Õ';Ö<¸]ÓKˆIÜ˜1˜d×.Ñ.Ö/�ØŸ^™^¨A×0@Ñ0@Õ,@À1Õ,DÖEÀmÓTÕT’	ñ 0à%×(8Ñ(8Õ8ŠMñ +ô Ÿ™×0Ñ0°Ó?ˆØŸ™ }Ó5ˆÜŸ
š
 =Ó1ˆçà$×,Ñ,¨QÓ/×9Ñ9¸!¸QÓ?×DÑDÀRÓHˆHð
 ˆð %×,Ñ,¨QÓ/ˆHàˆr(   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # rQ  r  )r%   rž   s   "€r&   r'   r  …  s   ø‡ ‚ ñ "Ñ!ò r(   )r  r  r~  r  r  r  r�  r  )r–   r—   r˜   r™   r“  r}   r‚  rÿ  r  r   r’   r–  rš   r›   rœ   r�   s   @@r&   r‹  r‹  …  sL   ù‡ € ð $€O÷$ó $õL%ò
$ò4ñ ðô÷(óð(÷a … r(   r‹  )r.   N)Nr/   rà  )r�  rã  rÁ  re  rv  r‹  )]rö   rÕ   ÚnumpyrH   r"   r   Útorch.nnr   r   r   Ú r   rƒ  Úactivationsr   Úcache_utilsr   r	   r
   Ú
generationr   Úintegrations.deepspeedr   Úintegrations.fsdpr   Úmasking_utilsr   r   Úmodeling_layersr   Úmodeling_outputsr   r   r   r   r   Úmodeling_utilsr   r   r  r   r   Úconfiguration_speecht5r   r   Ú
get_loggerr–   rÿ  Ú_HIDDEN_STATES_START_POSITIONr6   r?   rt   rv   r    r¬   r{  r¶   rú   r  r,  r  r?  rV  rd  r   r¿  rÌ  rß  rê  rú  r  r?  rO  rb  rv  r˜  r¼  rÎ  rå  rò  r  r  r!  r+  rM  re  r�  r¿  rÁ  rã  rñ  r‹  Ú__all__r‘  r(   r&   Ú<module>rA     s}  ðñ ã ã Û Ý ß @Ñ @å &Ý !ß CÑ CÝ )Ý @Ý 7ß JÝ 9÷õ ÷ Dß ,ß Ið 
×	Ò	˜HÓ	%€ð !"Ð õ÷ 0÷,tôpÐ#=ô ô,Ð!;ô ô8Ð!;ô ô2B8¨B¯I©Iô B8ôL* b§i¡iô *ôZ r§y¡yô ô2"¨¯©¯©ô "ô(˜2Ÿ9™9ô ô%˜RŸY™Yô %ôR1 §	¡	ô 1ôD "§)¡)ô DôN1 "§)¡)ô 1ôh% §¡ô %ôP< 2§9¡9ô <ô2 §	¡	Ð+?ô ô""- §	¡	Ð+?ô "-ôJ& §¡Ð,@ô &ô$U2˜Ÿ	™	ô U2ôp˜"Ÿ)™)ô ô06Ð5ô 6ôrXÐ5ô Xðv ô/4˜oó /4ó ð/4ôdn
Ð-ô n
ôb!Ð&=ô !ôH&Ð$;ô &ôR
Ð#:ô 
ô>]
Ð-ô ]
ô@*Ð&=ô *ôZ.Ð$;ô .ôb%Ð#:ô %ôP8M¨2¯9©9ô 8Môv:˜bŸi™iô :ñz ðôô
J
Ð+ó J
óð
J
ñZ ðôô
a
Ð5°ó a
óð
a
÷HLñ^ ðôô
T
Ð5ó T
óð
T
ñn
 ðôô
b
Ð 7ó b
óð
b
ôJ;˜2Ÿ9™9ô ;ñ| ðôô
s�oó sóð
sòl‚r(   