code: def build_text_decoder(cls, args, tgt_dictionary, dec_emb_share=None):
      dec_emb = (
          nn.Embedding(
              len(tgt_dictionary),
              args.decoder_embed_dim,
              tgt_dictionary.pad(),
          )
          if dec_emb_share is None
          else dec_emb_share
      )
      text_decoder = TransformerDecoder(args, tgt_dictionary, dec_emb)
      return text_decoder
  
imports: import logging
  from collections import OrderedDict, namedtuple
  import torch.nn
  from fairseq import checkpoint_utils, utils
  from fairseq.checkpoint_utils import load_checkpoint_to_cpu
  from fairseq.file_io import PathManager
  from fairseq.models import register_model, register_model_architecture
  from fairseq.models.speech_to_text import SpeechWavTransformerEncoder, StackedSpeechWavTransformerEncoder, TransformerDecoder
  from fairseq.models.transformer import TransformerEncoder
  from .s2t_dualinputtransformer import DualInputEncoder, DualInputS2TTransformerModel, TransformerMultiInputDecoder
label_desc: Use image node_id 8 for calling the DualInputWavTransformerModel obj's underlying member method code with example usage: obj.build_text_decoder(cls, args, tgt_dictionary, dec_emb_share) and returns: text_decoder