class_docstr: Apply transform-average-concatenate across channels.
  We're using a version from [2].
  
  Args:
      in_features: Number of input features
      out_features: Number of output features
  
  References:
      [1] Luo et al, End-to-end Microphone Permutation and Number Invariant Multi-channel Speech Separation, 2019
      [2] Yoshioka et al, VarArray: Array-Geometry-Agnostic Continuous Speech Separation, 2022
docstr: Returns definitions of module input types
          
docstr_tok: ["Returns","definitions","of","module","input","types"]
code: def input_types(self):
      """Returns definitions of module input types"""
      return {
          "input": NeuralType(("B", "C", "D", "T"), SpectrogramType()),
      }
  
imports: import random
  from typing import Callable, Optional
  import torch
  from nemo.collections.asr.parts.submodules.multi_head_attention import MultiHeadAttention
  from nemo.core.classes import NeuralModule, typecheck
  from nemo.core.neural_types import AudioSignal, FloatType, NeuralType, SpectrogramType
  from nemo.utils import logging
label_desc: Use image node_id 2 for calling the TransformAverageConcatenate obj's underlying member method code with example usage: obj.input_types() and returns: dict