class_docstr: Language model base class for creating custom language models to use with the decoder.
docstr: Initialize or reset the language model.
  
  Args:
      start_with_nothing (bool): whether or not to start sentence with sil token.
  
  Returns:
      CTCDecoderLMState: starting state
docstr_tok: ["Initialize","or","reset","the","language","model",".","Args",":","start_with_nothing","(","bool",")",":","whether","or","not","to","start","sentence","with","sil","token",".","Returns",":","CTCDecoderLMState",":","starting","state"]
code: def start(self, start_with_nothing: bool) -> CTCDecoderLMState:
      """Initialize or reset the language model.
  
      Args:
          start_with_nothing (bool): whether or not to start sentence with sil token.
  
      Returns:
          CTCDecoderLMState: starting state
      """
      raise NotImplementedError
  
imports: from __future__ import annotations
  import itertools
  from abc import abstractmethod
  from collections import namedtuple
  from typing import Dict, List, NamedTuple, Optional, Tuple, Union
  import torch
  from flashlight.lib.text.decoder import CriterionType, LexiconDecoder, LexiconDecoderOptions, LexiconFreeDecoder, LexiconFreeDecoderOptions, LM, LMState, SmearingMode, Trie, ZeroLM
  from flashlight.lib.text.dictionary import create_word_dict, Dictionary, load_words
  from torchaudio.utils import download_asset
label_desc: Use image node_id 1 for calling the CTCDecoderLM obj's underlying member method code with example usage: obj.start(start_with_nothing) without return types