
    h
                         S SK r S/r " S S\ R                  R                  5      r " S S\ R                  R                  5      rg)    N
DeepSpeechc                      ^  \ rS rSrSrSS\S\S\S\SS4
U 4S	 jjjrS
\R                  S\R                  4S jr
SrU =r$ )FullyConnected   zX
Args:
    n_feature: Number of input features
    n_hidden: Internal hidden unit size.
	n_featuren_hiddendropoutrelu_max_clipreturnNc                    > [         [        U ]  5         [        R                  R                  XSS9U l        X@l        X0l        g )NT)bias)	superr   __init__torchnnLinearfcr
   r	   )selfr   r   r	   r
   	__class__s        T/var/www/auris/envauris/lib/python3.13/site-packages/torchaudio/models/deepspeech.pyr   FullyConnected.__init__   s3    nd,.((//)D/A*    xc                    U R                  U5      n[        R                  R                  R	                  U5      n[        R                  R                  R                  USU R                  5      nU R                  (       a>  [        R                  R                  R                  XR                  U R                  5      nU$ )Nr   )	r   r   r   
functionalreluhardtanhr
   r	   training)r   r   s     r   forwardFullyConnected.forward   s}    GGAJHH$$Q'HH((At/A/AB<<##++A||T]]KAr   )r	   r   r
   )   __name__
__module____qualname____firstlineno____doc__intfloatr   r   Tensorr   __static_attributes____classcell__r   s   @r   r   r      sW    #  u UX bf   %,,  r   r   c                      ^  \ rS rSrSr   SS\S\S\S\SS4
U 4S	 jjjrS
\R                  S\R                  4S jr
SrU =r$ )r      zDeepSpeech architecture introduced in
*Deep Speech: Scaling up end-to-end speech recognition* :cite:`hannun2014deep`.

Args:
    n_feature: Number of input features
    n_hidden: Internal hidden unit size.
    n_class: Number of output classes
r   r   n_classr	   r   Nc                 P  > [         [        U ]  5         X l        [	        XU5      U l        [	        X"U5      U l        [	        X"U5      U l        [        R                  R                  X"SSSS9U l        [	        X"U5      U l        [        R                  R                  X#5      U l        g )N   r   T)
num_layersnonlinearitybidirectional)r   r   r   r   r   fc1fc2fc3r   r   RNNbi_rnnfc4r   out)r   r   r   r0   r	   r   s        r   r   DeepSpeech.__init__&   s     	j$(* !)w?!(g>!(g>hhll8!RXhllm!(g>88??85r   r   c                    U R                  U5      nU R                  U5      nU R                  U5      nUR                  S5      nUR	                  SS5      nU R                  U5      u  pUSS2SS2SU R                  24   USS2SS2U R                  S24   -   nU R                  U5      nU R                  U5      nUR                  SSS5      n[        R                  R                  R                  USS9nU$ )z
Args:
    x (torch.Tensor): Tensor of dimension (batch, channel, time, feature).
Returns:
    Tensor: Predictor tensor of dimension (batch, time, class).
r2   r   N   )dim)r6   r7   r8   squeeze	transposer:   r   r;   r<   permuter   r   r   log_softmax)r   r   _s      r   r   DeepSpeech.forward6   s     HHQKHHQKHHQKIIaLKK1{{1~aOdmmO#$qAt}})>'??HHQKHHQKIIaAHH++A1+5r   )r:   r6   r7   r8   r;   r   r<   )i   (   g        r"   r-   s   @r   r   r      sm     66 6 	6
 6 
6 6  %,,  r   )r   __all__r   Moduler   r    r   r   <module>rK      s7    .UXX__ ,8 8r   