code: def build_dummy_speech_decoder(
      cls, args, dictionary, dec_emb_share=None
  ):
      dec_emb = (
          nn.Embedding(
              len(dictionary), args.decoder_embed_dim, dictionary.pad()
          )
          if dec_emb_share is None
          else dec_emb_share
      )
      speech_decoder = SpeechDummyDecoder(
          dictionary,
          dec_emb,
          no_emb_update_unsup=getattr(
              args, "no_emb_update_unsup", False
          ),
          use_output_proj=getattr(
              args, "use_decoder_output_proj", False
          ),
      )
      return speech_decoder
  
imports: import logging
  from collections import OrderedDict, namedtuple
  from typing import Dict, Optional
  import torch
  import torch.nn
  import torch.nn.functional
  from torch import Tensor
  from fairseq import checkpoint_utils, utils
  from fairseq.file_io import PathManager
  from fairseq.models import FairseqDecoder, FairseqEncoderDecoderModel, register_model, register_model_architecture
  from fairseq.models.speech_to_text import MultiInputDecoder, MultiModalityEncoder, SpeechWavTransformerEncoder, StackedSpeechWavTransformerEncoder
  from fairseq.models.transformer import TransformerDecoder, TransformerEncoder, TransformerModel
label_desc: Use image node_id 5 for calling the SpeechTextPreTrainDecoder obj's underlying member method code with example usage: obj.build_dummy_speech_decoder(cls, args, dictionary, dec_emb_share) and returns: speech_decoder