class_docstr: Text2Text class
  
  Examples:
      >>> text2text = Text2Text("mt_config.yml", "mt.pth")
      >>> text2text(audio)
      [(text, token, token_int, hypothesis object), ...]
class_docstr_tok: ["Text2Text","class","Examples",":",">",">",">","text2text","=","Text2Text","(","``","mt_config.yml","''",",","``","mt.pth","''",")",">",">",">","text2text","(","audio",")","[","(","text",",","token",",","token_int",",","hypothesis","object",")",",","...","]"]
docstr: Inference
  
  Args:
      data: Input text data
  Returns:
      text, token, token_int, hyp
docstr_tok: ["Inference","Args",":","data",":","Input","text","data","Returns",":","text",",","token",",","token_int",",","hyp"]
code: def __call__(
      self, src_text: Union[torch.Tensor, np.ndarray]
  ) -> List[Tuple[Optional[str], List[str], List[int], Hypothesis]]:
      """Inference
  
      Args:
          data: Input text data
      Returns:
          text, token, token_int, hyp
  
      """
      assert check_argument_types()
  
      # Input as audio signal
      if isinstance(src_text, np.ndarray):
          src_text = torch.tensor(src_text)
  
      # data: (Nsamples,) -> (1, Nsamples)
      src_text = src_text.unsqueeze(0).to(torch.long)
      # lengths: (1,)
      lengths = src_text.new_full(
          [1], dtype=torch.long, fill_value=src_text.size(1)
      )
      batch = {"src_text": src_text, "src_text_lengths": lengths}
  
      # a. To device
      batch = to_device(batch, device=self.device)
  
      # b. Forward Encoder
      enc, _ = self.mt_model.encode(**batch)
      # self-condition case
      if isinstance(enc, tuple):
          enc = enc[0]
      assert len(enc) == 1, len(enc)
  
      # c. Passed the encoder result and the beam search
      nbest_hyps = self.beam_search(
          x=enc[0],
          maxlenratio=self.maxlenratio,
          minlenratio=self.minlenratio,
      )
      nbest_hyps = nbest_hyps[: self.nbest]
  
      results = []
      for hyp in nbest_hyps:
          assert isinstance(hyp, Hypothesis), type(hyp)
  
          # remove sos/eos and get results
          # token_int = hyp.yseq[1:-1].tolist()
          # TODO(sdalmia): check why the above line doesn't work
          token_int = hyp.yseq.tolist()
          token_int = list(
              filter(lambda x: x != self.mt_model.sos, token_int)
          )
          token_int = list(
              filter(lambda x: x != self.mt_model.eos, token_int)
          )
  
          # remove blank symbol id, which is assumed to be 0
          token_int = list(filter(lambda x: x != 0, token_int))
  
          # Change integer-ids to tokens
          token = self.converter.ids2tokens(token_int)
  
          if self.tokenizer is not None:
              text = self.tokenizer.tokens2text(token)
          else:
              text = None
          results.append((text, token, token_int, hyp))
  
      assert check_return_type(results)
      return results
  
imports: import argparse
  import logging
  import sys
  from pathlib import Path
  from typing import Any, List, Optional, Sequence, Tuple, Union
  import numpy
  import torch
  from typeguard import check_argument_types, check_return_type
  from espnet2.fileio.datadir_writer import DatadirWriter
  from espnet2.tasks.lm import LMTask
  from espnet2.tasks.mt import MTTask
  from espnet2.text.build_tokenizer import build_tokenizer
  from espnet2.text.token_id_converter import TokenIDConverter
  from espnet2.torch_utils.device_funcs import to_device
  from espnet2.torch_utils.set_all_random_seed import set_all_random_seed
  from espnet2.utils import config_argparse
  from espnet2.utils.types import str2bool, str2triple_str, str_or_none
  from espnet.nets.batch_beam_search import BatchBeamSearch
  from espnet.nets.beam_search import BeamSearch, Hypothesis
  from espnet.nets.pytorch_backend.transformer.subsampling import TooShortUttError
  from espnet.nets.scorer_interface import BatchScorerInterface
  from espnet.nets.scorers.ctc import CTCPrefixScorer
  from espnet.nets.scorers.length_bonus import LengthBonus
  from espnet.utils.cli_utils import get_commandline_args
label_desc: Use image node_id 2 for calling the Text2Text obj's underlying member method code with example usage: obj.__call__(src_text) and returns: results