docstr: Computations from the waveform to the output probabilities.
docstr_tok: ["Computations","from","the","waveform","to","the","output","probabilities","."]
code: def compute_forward(self, batch, stage):
      """Computations from the waveform to the output probabilities."""
      batch = batch.to(self.device)
      wavs, wav_lens = batch.sig
  
      # Add waveform augmentation if specified.
      if stage == sb.Stage.TRAIN and hasattr(
          self.hparams, "wav_augment"
      ):
          wavs, wav_lens = self.hparams.wav_augment(wavs, wav_lens)
  
      feats = self.hparams.compute_features(wavs)
      if hasattr(self.hparams, "normalize"):
          feats = self.modules.normalize(feats, wav_lens)
      out = self.modules.model(feats)
      out = self.modules.output(out)
      out = out - out.mean(1).unsqueeze(1)
      pout = self.hparams.log_softmax(out)
      return pout, wav_lens
  
file_path: speechbrain/recipes/TIMIT/Alignment/train.py
imports: import os
  import sys
  import torch
  import speechbrain
  from hyperpyyaml import load_hyperpyyaml
  from speechbrain.utils.distributed import run_on_main
label_desc: Use image node_id 1 for calling the AlignBrain obj's underlying member method code with example usage: obj.compute_forward(batch, stage) and returns: pout,  wav_lens