+
    PjF                         ^ RI t ^ RIt^ RIt^ RIHt ^ RIHt ^ RIHt RR R llt	RR R llt
 ! R	 R
]4      t ! R R]4      tR# )    N)nn)
functional)StatefulModulec          
      h    V ^8  d   QhR\         P                  R\        R\        R\        R\        /# )   xkernel_sizestridepadding_totalreturntorchTensorint)formats   "p/Users/ahmed/devFolder/Ultron/claude-voice/gateway/.venv/lib/python3.14/site-packages/pocket_tts/modules/conv.py__annotate__r      s8     ! !||!"%!/2!CF!!    c                    V P                   R,          pWA,
          V,           V,          ^,           p\        P                  ! V4      ^,
          V,          W,
          ,           pWd,
          # )zSee `pad_for_conv1d`.)shapemathceil)r   r	   r
   r   lengthn_framesideal_lengths   &&&&   r   get_extra_padding_for_conv1dr      sQ     WWR[F$}4>BHIIh'!+v59TUL  r   c                \    V ^8  d   QhR\         P                  R\        R\        R\        /# )r   r   r	   r
   r   r   )r   s   "r   r   r      s-     ( (ell ( (c (RU (r   c                L    \        WW#4      p\        P                  ! V ^ V34      # )af  Pad for a convolution to make sure that the last window is full.
Extra padding is added at the end. This is required to ensure that we can rebuild
an output of the same length, as otherwise, even with padding, some time steps
might get removed.
For instance, with total padding = 4, kernel size = 4, stride = 2:
    0 0 1 2 3 4 5 0 0   # (0s are padding)
    1   2   3           # (output frames of a convolution, last 0 is never used)
    0 0 1 2 3 4 5 0     # (output of tr. conv., but pos. 5 is going to get removed as padding)
        1 2 3 4         # once you removed padding, we are missing one time step !
)r   Fpad)r   r	   r
   r   extra_paddings   &&&& r   pad_for_conv1dr#      s&     1WM55Q&''r   c                      a a ] tR t^$t oRtRV3R lV 3R lllt]V3R lR l4       t]V3R lR l4       t]V3R lR	 l4       t	V3R
 lR lt
V3R lR ltRtVtV ;t# )StreamingConv1dzUConv1d with some builtin handling of asymmetric or causal padding
and normalization.
c                J   < V ^8  d   QhRS[ RS[ RS[ RS[ RS[ RS[ RS[RS[/# )	r   in_channelsout_channelsr	   r
   dilationgroupsbiaspad_mode)r   boolstr)r   __classdict__s   "r   r   StreamingConv1d.__annotate__)   s[     
 

 
 	

 
 
 
 
 
r   c	           
        < \         S	V `  4        VR9   g   Q V4       hWn        V^8  d(   V^8  d!   \        P                  ! RV RV RV R24       \
        P                  ! VVVVVVVR7      V n        R# )constantzSStreamingConv1d has been initialized with stride > 1 and dilation > 1 (kernel_size=z stride=z, dilation=z).)r)   r*   r+   N)r2   	replicate)super__init__r,   warningswarnr   Conv1dconv)
selfr'   r(   r	   r
   r)   r*   r+   r,   	__class__s
   &&&&&&&&&r   r5   StreamingConv1d.__init__)   s     	44>h>4 A:(Q,MM!!,XfX[
RTV II
	r   c                    < V ^8  d   QhRS[ /# r   r   r   )r   r/   s   "r   r   r0   H   s     # # #r   c                <    V P                   P                  ^ ,          # r   )r9   r
   r:   s   &r   _strideStreamingConv1d._strideG   s    yy""r   c                    < V ^8  d   QhRS[ /# r>   r?   )r   r/   s   "r   r   r0   L   s     ( (c (r   c                <    V P                   P                  ^ ,          # rA   )r9   r	   rB   s   &r   _kernel_sizeStreamingConv1d._kernel_sizeK   s    yy$$Q''r   c                    < V ^8  d   QhRS[ /# r>   r?   )r   r/   s   "r   r   r0   P   s     6 6 6r   c                ~    V P                   P                  ^ ,          pV P                  ^,
          V,          ^,           # rA   )r9   r)   rG   )r:   r)   s   & r   _effective_kernel_size&StreamingConv1d._effective_kernel_sizeO   s1    99%%a(!!A%1A55r   c                V   < V ^8  d   QhRS[ RS[ RS[S[S[P                  3,          /# r   
batch_sizesequence_lengthr   r   dictr.   r   r   )r   r/   s   "r   r   r0   T   s0     4 4S 43 44U\\HYCZ 4r   c                >   V P                   pV P                  pV P                  P                  P                  p\
        P                  ! WP                  P                  WC,
          VR 7      p\
        P                  ! V\
        P                  VR7      p\        WgR7      # )device)dtyperU   )previousfirst)rC   rK   r9   weightrU   r   zerosr'   onesr-   rR   )r:   rO   rP   r
   kernelrU   rW   rX   s   &&&     r   
init_stateStreamingConv1d.init_stateT   sk    ,,!!((;;z99+@+@&/Z`a

:UZZGX33r   c                .   < V ^8  d   QhRS[ R,          /# )r   model_stateNrR   )r   r/   s   "r   r   r0   ]   s      dTk r   c                   VP                   w  r4pV P                  pV^ 8  d   WV,          ^ 8X  g   Q R4       hVf   V P                  V^ 4      pMV P                  V4      pVR,          P                   R
,          pV'       dh   V P                  R8X  dW   WX8  g   Q R4       hVR,          p	\
        P                  ! VR,          P                  R
^^4      WR,          4      VR,          R&   V'       d"   \
        P                  ! VR,          V.R
R	7      pV P                  V4      p
V'       dJ   VRV) R13,          VR,          R&   V P                  R8X  d!   \
        P                  ! VR,          4      VR&   V
# )r   z Steps must be multiple of strideNrW   r3   z$Not enough content to pad streaming..rX   NNN)dimr   ).:N   N)r   rC   r]   	get_stater,   r   whereviewcatr9   
zeros_like)r:   r   r`   BCTSstateTPinitys   &&&        r   forwardStreamingConv1d.forward]   s;   ''aLL1u!G%GG#OOAq)ENN;/E:$$R($--;.7BBB7W:D#(;;g##B1-t:5F$E*a  		5,a0b9AIIaL#$S2#$Y<E*a }}+!&!1!1%.!Agr   )r9   r,   )re   re   re   Tr2   )__name__
__module____qualname____firstlineno____doc__r5   propertyrC   rG   rK   r]   rs   __static_attributes____classdictcell____classcell__r;   r/   s   @@r   r%   r%   $   si     
 
< # # ( ( 6 64 4  r   r%   c                      a a ] tR t^vt oRtRV3R lV 3R lllt]V3R lR l4       t]V3R lR l4       tV3R lR	 lt	V3R
 lR lt
RtVtV ;t# )StreamingConvTranspose1dz^ConvTranspose1d with some builtin handling of asymmetric or causal padding
and normalization.
c                >   < V ^8  d   QhRS[ RS[ RS[ RS[ RS[ RS[/# )r   r'   r(   r	   r
   r*   r+   )r   r-   )r   r/   s   "r   r   %StreamingConvTranspose1d.__annotate__{   sG     
 

 
 	

 
 
 
r   c           	     `   < \         SV `  4        \        P                  ! WW4WVR 7      V n        R# ))r*   r+   N)r4   r5   r   ConvTranspose1dconvtr)r:   r'   r(   r	   r
   r*   r+   r;   s   &&&&&&&r   r5   !StreamingConvTranspose1d.__init__{   s)     	(({6
r   c                    < V ^8  d   QhRS[ /# r>   r?   )r   r/   s   "r   r   r      s     % % %r   c                <    V P                   P                  ^ ,          # rA   )r   r
   rB   s   &r   rC    StreamingConvTranspose1d._stride   s    {{!!!$$r   c                    < V ^8  d   QhRS[ /# r>   r?   )r   r/   s   "r   r   r      s     * *c *r   c                <    V P                   P                  ^ ,          # rA   )r   r	   rB   s   &r   rG   %StreamingConvTranspose1d._kernel_size   s    {{&&q))r   c                V   < V ^8  d   QhRS[ RS[ RS[S[S[P                  3,          /# rN   rQ   )r   r/   s   "r   r   r      s5     e eS e3 e4U\\HYCZ er   c           	         V P                   pV P                  pV P                  P                  P                  p\        \        P                  ! WP                  P                  W4,
          VR 7      R7      # )rT   )partial)	rG   rC   r   rY   rU   rR   r   rZ   r(   )r:   rO   rP   Krn   rU   s   &&&   r   r]   #StreamingConvTranspose1d.init_state   sP    LL##**EKK
KK4L4Lae\bcddr   c                    < V ^8  d   QhRS[ /# )r   
mimi_statera   )r   r/   s   "r   r   r      s      T r   c                P   V P                  V4      R ,          pV P                  V4      pVP                  R,          pV^ 8  dc   VRRV13;;,          V,          uu&   V P                  P                  pVRV) R13,          pVe   WvR,          ,          pWsR&   VRRV) 13,          pV# )r   .Nrc   r   )rc   N)rf   r   r   r+   )r:   r   r   layer_staterr   PTr+   for_partials   &&&     r   rs    StreamingConvTranspose1d.forward   s    nnZ0;KKNr"6c3B3hK;&K;;##DC"I,KG},(N#tt)Ar   )r   )re   re   T)ru   rv   rw   rx   ry   r5   rz   rC   rG   r]   rs   r{   r|   r}   r~   s   @@r   r   r   v   sW     
 
 % % * *e e  r   r   rA   )r   r6   r   r   torch.nnr   r    "pocket_tts.modules.stateful_moduler   r   r#   r%   r    r   r   <module>r      s<        $ =!(On Od-~ -r   