code: def get_tgt_lens_and_check_oov(self):
      if self.tgt_texts is None:
          return [0 for _ in range(self.n_samples)]
      tgt_lens = []
      n_tokens, n_oov_tokens = 0, 0
      for i in range(self.n_samples):
          tokenized = self.get_tokenized_tgt_text(i).split(" ")
          oov_tokens = [
              t
              for t in tokenized
              if self.tgt_dict.index(t) == self.tgt_dict.unk_index
          ]
          n_tokens += len(tokenized)
          n_oov_tokens += len(oov_tokens)
          tgt_lens.append(len(tokenized))
      logger.info(
          f"'{self.split}' has {n_oov_tokens / n_tokens * 100:.2f}% OOV"
      )
      return tgt_lens
  
imports: import csv
  import logging
  import re
  from argparse import Namespace
  from collections import defaultdict
  from dataclasses import dataclass
  from pathlib import Path
  from typing import Dict, List, Optional, Tuple, Union
  import numpy
  import torch
  import torch.nn.functional
  from fairseq.data import ConcatDataset, Dictionary, FairseqDataset, ResamplingDataset
  from fairseq.data import data_utils
  from fairseq.data import encoders
  from fairseq.data.audio.audio_utils import get_features_or_waveform
  from fairseq.data.audio.data_cfg import S2TDataConfig
  from fairseq.data.audio.dataset_transforms import CompositeAudioDatasetTransform
  from fairseq.data.audio.dataset_transforms.concataugment import ConcatAugment
  from fairseq.data.audio.dataset_transforms.noisyoverlapaugment import NoisyOverlapAugment
  from fairseq.data.audio.feature_transforms import CompositeAudioFeatureTransform
  from fairseq.data.audio.waveform_transforms import CompositeAudioWaveformTransform
label_desc: Use image node_id 2 for calling the SpeechToTextDataset obj's underlying member method code with example usage: obj.get_tgt_lens_and_check_oov() and returns: tgt_lens, unknown