class_docstr: Encoder module for the case of multi-speaker mixture speech.
  
  :param str etype: type of encoder network
  :param int idim: number of dimensions of encoder network
  :param int elayers_sd:
      number of layers of speaker differentiate part in encoder network
  :param int elayers_rec:
      number of layers of shared recognition part in encoder network
  :param int eunits: number of lstm units of encoder network
  :param int eprojs: number of projection units of encoder network
  :param np.ndarray subsample: list of subsampling numbers
  :param float dropout: dropout rate
  :param int in_channel: number of input channels
  :param int num_spkrs: number of number of speakers
class_docstr_tok: ["Encoder","module","for","the","case","of","multi-speaker","mixture","speech",".",":","param","str","etype",":","type","of","encoder","network",":","param","int","idim",":","number","of","dimensions","of","encoder","network",":","param","int","elayers_sd",":","number","of","layers","of","speaker","differentiate","part","in","encoder","network",":","param","int","elayers_rec",":","number","of","layers","of","shared","recognition","part","in","encoder","network",":","param","int","eunits",":","number","of","lstm","units","of","encoder","network",":","param","int","eprojs",":","number","of","projection","units","of","encoder","network",":","param","np.ndarray","subsample",":","list","of","subsampling","numbers",":","param","float","dropout",":","dropout","rate",":","param","int","in_channel",":","number","of","input","channels",":","param","int","num_spkrs",":","number","of","number","of","speakers"]
docstr: Encodermix forward.
  
  :param torch.Tensor xs_pad: batch of padded input sequences (B, Tmax, D)
  :param torch.Tensor ilens: batch of lengths of input sequences (B)
  :return: list: batch of hidden state sequences [num_spkrs x (B, Tmax, eprojs)]
  :rtype: torch.Tensor
docstr_tok: ["Encodermix","forward",".",":","param","torch.Tensor","xs_pad",":","batch","of","padded","input","sequences","(","B",",","Tmax",",","D",")",":","param","torch.Tensor","ilens",":","batch","of","lengths","of","input","sequences","(","B",")",":","return",":","list",":","batch","of","hidden","state","sequences","[","num_spkrs","x","(","B",",","Tmax",",","eprojs",")","]",":","rtype",":","torch.Tensor"]
code: def forward(self, xs_pad, ilens):
      """Encodermix forward.
  
      :param torch.Tensor xs_pad: batch of padded input sequences (B, Tmax, D)
      :param torch.Tensor ilens: batch of lengths of input sequences (B)
      :return: list: batch of hidden state sequences [num_spkrs x (B, Tmax, eprojs)]
      :rtype: torch.Tensor
      """
      # mixture encoder
      for module in self.enc_mix:
          xs_pad, ilens, _ = module(xs_pad, ilens)
  
      # SD and Rec encoder
      xs_pad_sd = [xs_pad for i in range(self.num_spkrs)]
      ilens_sd = [ilens for i in range(self.num_spkrs)]
      for ns in range(self.num_spkrs):
          # Encoder_SD: speaker differentiate encoder
          for module in self.enc_sd[ns]:
              xs_pad_sd[ns], ilens_sd[ns], _ = module(
                  xs_pad_sd[ns], ilens_sd[ns]
              )
          # Encoder_Rec: recognition encoder
          for module in self.enc_rec:
              xs_pad_sd[ns], ilens_sd[ns], _ = module(
                  xs_pad_sd[ns], ilens_sd[ns]
              )
  
      # make mask to remove bias value in padded part
      mask = to_device(xs_pad, make_pad_mask(ilens_sd[0]).unsqueeze(-1))
  
      return (
          [x.masked_fill(mask, 0.0) for x in xs_pad_sd],
          ilens_sd,
          None,
      )
  
imports: import argparse
  import logging
  import math
  import os
  import sys
  from itertools import groupby
  import numpy
  import torch
  from espnet.nets.asr_interface import ASRInterface
  from espnet.nets.e2e_asr_common import get_vgg2l_odim, label_smoothing_dist
  from espnet.nets.pytorch_backend.ctc import ctc_for
  from espnet.nets.pytorch_backend.e2e_asr import E2E
  from espnet.nets.pytorch_backend.e2e_asr import Reporter
  from espnet.nets.pytorch_backend.frontends.feature_transform import feature_transform_for
  from espnet.nets.pytorch_backend.frontends.frontend import frontend_for
  from espnet.nets.pytorch_backend.initialization import lecun_normal_init_parameters, set_forget_bias_to_one
  from espnet.nets.pytorch_backend.nets_utils import get_subsample, make_pad_mask, pad_list, to_device, to_torch_tensor
  from espnet.nets.pytorch_backend.rnn.attentions import att_for
  from espnet.nets.pytorch_backend.rnn.decoders import decoder_for
  from espnet.nets.pytorch_backend.rnn.encoders import RNNP, VGG2L
  from espnet.nets.pytorch_backend.rnn.encoders import encoder_for
label_desc: Use image node_id 2 for calling the EncoderMix obj's underlying member method code with example usage: obj.forward(xs_pad, ilens) and returns: unknown,  ilens_sd,  None