code: def test_collect_feats(extract_feats):
      token_list = ["<blank>", "a", "b", "c", "<space>"]
      vocab_size = len(token_list)
  
      encoder = Encoder(
          20,
          [
              {
                  "block_type": "conformer",
                  "hidden_size": 4,
                  "linear_size": 4,
                  "conv_mod_kernel_size": 3,
              }
          ],
      )
      decoder = StatelessDecoder(vocab_size, embed_size=4)
  
      joint_network = JointNetwork(
          vocab_size, encoder.output_size, decoder.output_size, 8
      )
  
      model = ESPnetASRTransducerModel(
          vocab_size,
          token_list,
          frontend=None,
          specaug=None,
          normalize=None,
          encoder=encoder,
          decoder=decoder,
          joint_network=joint_network,
      )
      model.extract_feats_in_collect_stats = extract_feats
  
      feats_dict = model.collect_feats(
          torch.randn(2, 12),
          torch.tensor([12, 11]),
          torch.randn(2, 8),
          torch.tensor([8, 8]),
      )
  
      assert set(("feats", "feats_lengths")) == feats_dict.keys()
  
imports: from pathlib import Path
  import numpy
  import pytest
  import torch
  from espnet2.asr.specaug.specaug import SpecAug
  from espnet2.asr_transducer.decoder.mega_decoder import MEGADecoder
  from espnet2.asr_transducer.decoder.rnn_decoder import RNNDecoder
  from espnet2.asr_transducer.decoder.rwkv_decoder import RWKVDecoder
  from espnet2.asr_transducer.decoder.stateless_decoder import StatelessDecoder
  from espnet2.asr_transducer.encoder.encoder import Encoder
  from espnet2.asr_transducer.espnet_transducer_model import ESPnetASRTransducerModel
  from espnet2.asr_transducer.joint_network import JointNetwork
  from espnet2.layers.global_mvn import GlobalMVN
  from espnet2.layers.utterance_mvn import UtteranceMVN
label_desc: Use image node_id 7 for calling a global function with example usage: test_collect_feats(extract_feats) without return types