class_docstr: Class for encoder-mask-decoder audio processing models.
  
  The model consists of the following blocks:
      - encoder: transforms input multi-channel audio signal into an encoded representation (analysis transform)
      - mask_estimator: estimates a mask used by signal processor
      - mask_processor: mask-based signal processor, combines the encoded input and the estimated mask
      - decoder: transforms processor output into the time domain (synthesis transform)
class_docstr_tok: ["Class","for","encoder-mask-decoder","audio","processing","models",".","The","model","consists","of","the","following","blocks",":","-","encoder",":","transforms","input","multi-channel","audio","signal","into","an","encoded","representation","(","analysis","transform",")","-","mask_estimator",":","estimates","a","mask","used","by","signal","processor","-","mask_processor",":","mask-based","signal","processor",",","combines","the","encoded","input","and","the","estimated","mask","-","decoder",":","transforms","processor","output","into","the","time","domain","(","synthesis","transform",")"]
docstr: Forward pass of the model.
  
  Args:
      input_signal: Tensor that represents a batch of raw audio signals,
          of shape [B, T] or [B, T, C]. T here represents timesteps, with 1 second of audio represented as
          `self.sample_rate` number of floating point values.
      input_signal_length: Vector of length B, that contains the individual lengths of the audio
          sequences.
  
  Returns:
docstr_tok: ["Forward","pass","of","the","model",".","Args",":","input_signal",":","Tensor","that","represents","a","batch","of","raw","audio","signals",",","of","shape","[","B",",","T","]","or","[","B",",","T",",","C","]",".","T","here","represents","timesteps",",","with","1","second","of","audio","represented","as","`","self.sample_rate","`","number","of","floating","point","values",".","input_signal_length",":","Vector","of","length","B",",","that","contains","the","individual","lengths","of","the","audio","sequences",".","Returns",":"]
code: def forward(self, input_signal, input_length=None):
      """
      Forward pass of the model.
  
      Args:
          input_signal: Tensor that represents a batch of raw audio signals,
              of shape [B, T] or [B, T, C]. T here represents timesteps, with 1 second of audio represented as
              `self.sample_rate` number of floating point values.
          input_signal_length: Vector of length B, that contains the individual lengths of the audio
              sequences.
  
      Returns:
      """
      batch_length = input_signal.size(-1)
  
      # Encoder
      encoded, encoded_length = self.encoder(
          input=input_signal, input_length=input_length
      )
  
      # Mask estimator
      mask, _ = self.mask_estimator(
          input=encoded, input_length=encoded_length
      )
  
      # Mask-based processor in the encoded domain
      processed, processed_length = self.mask_processor(
          input=encoded, input_length=encoded_length, mask=mask
      )
  
      # Mixture consistency
      if self.mixture_consistency is not None:
          processed = self.mixture_consistency(
              mixture=encoded, estimate=processed
          )
  
      # Decoder
      processed, processed_length = self.decoder(
          input=processed, input_length=processed_length
      )
  
      # Trim or pad the estimated signal to match input length
      processed = self.match_batch_length(
          input=processed, batch_length=batch_length
      )
      return processed, processed_length
  
imports: import json
  import os
  import tempfile
  from typing import Dict, List, Optional, Union
  import librosa
  import soundfile
  import torch
  from omegaconf import DictConfig
  from pytorch_lightning import Trainer
  from tqdm import tqdm
  from nemo.collections.asr.data import audio_to_audio_dataset
  from nemo.collections.asr.data.audio_to_text_dataset import inject_dataloader_value_from_model_config
  from nemo.collections.asr.models.audio_to_audio_model import AudioToAudioModel
  from nemo.collections.asr.parts.utils.audio_utils import ChannelSelectorType
  from nemo.core.classes.common import PretrainedModelInfo, typecheck
  from nemo.core.neural_types import AudioSignal, LengthsType, NeuralType
  from nemo.utils import logging
label_desc: Use image node_id 11 for calling the EncMaskDecAudioToAudioModel obj's underlying member method code with example usage: obj.forward(input_signal, input_length) and returns: processed,  processed_length