
    h                     D    S SK JrJr  S/r " S S\R                  5      rg)    )nnTensor
Wav2Letterc            	       V   ^  \ rS rSrSrSS\S\S\SS4U 4S jjjrS	\S\4S
 jr	Sr
U =r$ )r      aQ  Wav2Letter model architecture from *Wav2Letter: an End-to-End ConvNet-based Speech
Recognition System* :cite:`collobert2016wav2letter`.

See Also:
    * `Training example <https://github.com/pytorch/audio/tree/release/0.12/examples/pipeline_wav2letter>`__

Args:
    num_classes (int, optional): Number of classes to be classified. (Default: ``40``)
    input_type (str, optional): Wav2Letter can use as input: ``waveform``, ``power_spectrum``
     or ``mfcc`` (Default: ``waveform``).
    num_features (int, optional): Number of input features that the network will receive (Default: ``1``).
num_classes
input_typenum_featuresreturnNc                   > [         TU ]  5         US:X  a  SOUn[        R                  " [        R                  " USSSSS9[        R
                  " SS9[        R                  " SSS	S
SS9[        R
                  " SS9[        R                  " SSS	S
SS9[        R
                  " SS9[        R                  " SSS	S
SS9[        R
                  " SS9[        R                  " SSS	S
SS9[        R
                  " SS9[        R                  " SSS	S
SS9[        R
                  " SS9[        R                  " SSS	S
SS9[        R
                  " SS9[        R                  " SSS	S
SS9[        R
                  " SS9[        R                  " SSSS
SS9[        R
                  " SS9[        R                  " SSS
S
SS9[        R
                  " SS9[        R                  " SUS
S
SS9[        R
                  " SS95      nUS:X  aZ  [        R                  " [        R                  " USSSSS9[        R
                  " SS95      n[        R                  " Xe5      U l        US;   a  XPl        g g )Nwaveform   0         )in_channelsout_channelskernel_sizestridepaddingT)inplace         i         r      -   )power_spectrummfcc)super__init__r   
SequentialConv1dReLUacoustic_model)selfr   r	   r
   acoustic_num_featuresr&   waveform_model	__class__s          T/var/www/auris/envauris/lib/python3.13/site-packages/torchaudio/models/wav2letter.pyr"   Wav2Letter.__init__   s   '1Z'?\II"7cWYbcmopGGD!II#CQqZ[\GGD!II#CQqZ[\GGD!II#CQqZ[\GGD!II#CQqZ[\GGD!II#CQqZ[\GGD!II#CQqZ[\GGD!II#CQqZ[\GGD!II#DbQR\^_GGD!II$TqQR\]^GGD!II$[aXYcdeGGD!-
2 #]]		lRU^akmn%N #%--"OD33"0 4    xc                 d    U R                  U5      n[        R                  R                  USS9nU$ )z
Args:
    x (torch.Tensor): Tensor of dimension (batch_size, num_features, input_length).

Returns:
    Tensor: Predictor tensor of dimension (batch_size, number_of_classes, input_length).
r   )dim)r&   r   
functionallog_softmax)r'   r.   s     r+   forwardWav2Letter.forward=   s2     "MM%%aQ%/r-   )r&   )(   r   r   )__name__
__module____qualname____firstlineno____doc__intstrr"   r   r3   __static_attributes____classcell__)r*   s   @r+   r   r      sI    %1C %1# %1Z] %1fj %1 %1N F  r-   N)torchr   r   __all__Moduler    r-   r+   <module>rC      s&     
@ @r-   