class_docstr: DNN mask based Beamformer
  
  Citation:
      Multichannel End-to-end Speech Recognition; T. Ochiai et al., 2017;
      https://arxiv.org/abs/1703.04783
class_docstr_tok: ["DNN","mask","based","Beamformer","Citation",":","Multichannel","End-to-end","Speech","Recognition",";","T.","Ochiai","et","al.",",","2017",";","https",":","\/\/arxiv.org\/abs\/1703.04783"]
code: def __init__(
      self,
      bidim,
      btype="blstmp",
      blayers=3,
      bunits=300,
      bprojs=320,
      bnmask=2,
      dropout_rate=0.0,
      badim=320,
      ref_channel: int = -1,
      beamformer_type="mvdr",
  ):
      super().__init__()
      self.mask = MaskEstimator(
          btype,
          bidim,
          blayers,
          bunits,
          bprojs,
          dropout_rate,
          nmask=bnmask,
      )
      self.ref = AttentionReference(bidim, badim)
      self.ref_channel = ref_channel
  
      self.nmask = bnmask
  
      if beamformer_type != "mvdr":
          raise ValueError(
              "Not supporting beamformer_type={}".format(
                  beamformer_type
              )
          )
      self.beamformer_type = beamformer_type
  
file_path: espnet/espnet/nets/pytorch_backend/frontends/dnn_beamformer.py
imports: from typing import Tuple
  import torch
  from torch.nn import functional
  from torch_complex.tensor import ComplexTensor
  from espnet.nets.pytorch_backend.frontends.beamformer import apply_beamforming_vector, get_mvdr_vector, get_power_spectral_density_matrix
  from espnet.nets.pytorch_backend.frontends.mask_estimator import MaskEstimator
label_desc: Use image node_id 1 to create a new DNN_Beamformer object from inherited base classes: torch.nn with example: obj = DNN_Beamformer(bidim, btype, blayers, bunits, bprojs, bnmask, dropout_rate, badim, ref_channel, beamformer_type)