docstr: Check that the following produce the same result
  - using no LM (C++ based implementation)
  - using no LM (Custom Python based wrapper)
  - using a (Ken)LM with 0 weight
docstr_tok: ["Check","that","the","following","produce","the","same","result","-","using","no","LM","(","C++","based","implementation",")","-","using","no","LM","(","Custom","Python","based","wrapper",")","-","using","a","(","Ken",")","LM","with","0","weight"]
code: def test_no_lm_decoder(self):
      """Check that the following produce the same result
      - using no LM (C++ based implementation)
      - using no LM (Custom Python based wrapper)
      - using a (Ken)LM with 0 weight
      """
      from .ctc_decoder_utils import CustomZeroLM
  
      emissions = self._get_emissions()
      custom_zerolm = CustomZeroLM()
      zerolm_decoder_custom = self._get_decoder(lm=custom_zerolm)
      zerolm_decoder_cpp = self._get_decoder(lm=None)
      kenlm_file = get_asset_path("decoder/kenlm.arpa")
      kenlm_decoder = self._get_decoder(lm=kenlm_file, lm_weight=0)
  
      zerolm_custom_results = zerolm_decoder_custom(emissions)
      zerolm_cpp_results = zerolm_decoder_cpp(emissions)
      kenlm_results = kenlm_decoder(emissions)
  
      self.assertEqual(zerolm_cpp_results, zerolm_custom_results)
      self.assertEqual(zerolm_cpp_results, kenlm_results)
  
imports: import itertools
  import torch
  from parameterized import parameterized
  from torchaudio_unittest.common_utils import get_asset_path, skipIfNoCtcDecoder, TempDirMixin, TorchaudioTestCase
label_desc: Use image node_id 8 for calling the CTCDecoderTest obj's underlying member method code with example usage: obj.test_no_lm_decoder() without return types