class_docstr: This class implements the task-specific Lingvo ASR model of Qin et al. (2019).
  
  The estimator uses a pre-trained model provided by Qin et al., which is trained using the Lingvo library and the
  LibriSpeech dataset.
  
  | Paper link: http://proceedings.mlr.press/v97/qin19a.html, https://arxiv.org/abs/1902.08295
  
  .. warning:: In order to calculate loss gradients, this estimator requires a user-patched Lingvo module. A patched
               source file for the `lingvo.tasks.asr.decoder` module will be automatically applied. The original
               source file can be found in `<PYTHON_SITE_PACKAGES>/lingvo/tasks/asr/decoder.py` and will be patched as
               outlined in the following commit diff:
               https://github.com/yaq007/lingvo/commit/414e035b2c60372de732c9d67db14d1003be6dd6
  
  The patched `decoder_patched.py` can be found in `ART_DATA_PATH/lingvo/asr`.
  
  Note: Run `python -m site` to obtain a list of possible candidates where to find the `<PYTHON_SITE_PACKAGES` folder.
docstr: Create decoder input per batch.
docstr_tok: ["Create","decoder","input","per","batch","."]
code: def _create_decoder_input(
      self, x: "Tensor", y: "Tensor", mask_frequency: "Tensor"
  ) -> "Tensor":
      """Create decoder input per batch."""
      import tensorflow.compat.v1 as tf1
      from lingvo.core.py_utils import NestedMap
  
      # prepare model input source, i.e. input features
      # note: paddings have values 0/1, where 1 represents a padded timestep
      source_features = self._create_log_mel_features(x)
      source_features *= tf1.expand_dims(mask_frequency, dim=-1)
      source_paddings = 1.0 - mask_frequency[:, :, 0]
  
      # prepare model input target, i.e. transcription target
      target = self._task.input_generator.StringsToIds(y)  # type: ignore
  
      # create decoder input
      decoder_inputs = NestedMap(
          {
              "src": NestedMap(
                  {
                      "src_inputs": source_features,
                      "paddings": source_paddings,
                  }
              ),
              "sample_ids": tf1.zeros(tf1.shape(source_features)[0]),
              "tgt": NestedMap(
                  zip(("ids", "labels", "paddings"), target)
              ),
          }
      )
      decoder_inputs.tgt["weights"] = (
          1.0 - decoder_inputs.tgt["paddings"]
      )
      return decoder_inputs
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import os
  import sys
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, Union
  import numpy
  from art import config
  from art.estimators.speech_recognition.speech_recognizer import SpeechRecognizerMixin
  from art.estimators.tensorflow import TensorFlowV2Estimator
  from art.utils import get_file, make_directory
label_desc: Use image node_id 6 for calling the TensorFlowLingvoASR obj's underlying member method code with example usage: obj._create_decoder_input(x, y, mask_frequency) and returns: decoder_inputs