code: def __call__(self, text: str) -> List[str]:
      text = normalize_unicode_text(text)
  
      if self.heteronym_model is not None:
          try:
              text = self.heteronym_model.disambiguate(
                  sentences=[text]
              )[1][0]
          except Exception as e:
              logging.warning(f"Heteronym model failed {e}, skipping")
  
      words_list_of_tuple = self.word_tokenize_func(text)
  
      prons = []
      for words, without_changes in words_list_of_tuple:
          if without_changes:
              # for example: (["NVIDIA", "unchanged"], True). "NVIDIA" is considered as a single token.
              prons.extend(
                  [f"{self.grapheme_prefix}{word}" for word in words]
              )
          else:
              assert (
                  len(words) == 1
              ), f"{words} should only have a single item when `without_changes` is False, but found {len(words)}."
  
              word = words[0]
              pron, is_handled = self.parse_one_word(word)
  
              # If `is_handled` is False, then the only possible case is that the word is an OOV. The OOV may have a
              # hyphen so that it doesn't show up in the g2p dictionary. We need split it into sub-words by a hyphen,
              # and parse the sub-words again just in case any sub-word exists in the g2p dictionary.
              if not is_handled:
                  subwords_by_hyphen = word.split("-")
                  if len(subwords_by_hyphen) > 1:
                      pron = []  # reset the previous pron
                      for sub_word in subwords_by_hyphen:
                          p, _ = self.parse_one_word(sub_word)
                          pron.extend(p)
                          pron.append("-")
                      pron.pop()  # remove the redundant hyphen that is previously appended at the end of the word.
  
              prons.extend(pron)
  
      return prons
  
imports: import pathlib
  import random
  import re
  from collections import defaultdict
  from typing import Callable, Dict, List, Optional, Set, Tuple, Union
  from nemo.collections.common.tokenizers.text_to_speech.ipa_lexicon import validate_locale
  from nemo.collections.common.tokenizers.text_to_speech.tokenizer_utils import LATIN_CHARS_ALL, any_locale_word_tokenize, english_word_tokenize, normalize_unicode_text
  from nemo.collections.tts.g2p.models.base import BaseG2p
  from nemo.collections.tts.g2p.utils import GRAPHEME_CASE_MIXED, GRAPHEME_CASE_UPPER, set_grapheme_case
  from nemo.utils import logging
  from nemo.utils.decorators import experimental
label_desc: Use image node_id 10 for calling the IpaG2p obj's underlying member method code with example usage: obj.__call__(text) and returns: prons