docs: def what_task(self, token_id, presented_pronunciation, index, phonemes, phonemes_probability,
                    warn=True, default=True):
          """Provide the prediction of the what task.
  
          This function is used to predict the probability of a given phoneme being reported at a given index
          for a given token.
  
          :param token_id: The token for which the prediction is provided
          :param index: The index of the token for which the prediction is provided
          :param phonemes: The phoneme or phoneme sequence for which the prediction is being made
          (as a space separated string)
          :param phonemes_probability: The probability of the phoneme or phoneme sequence
          :param warn: Set to False in order to avoid warnings about 0 or 1 probabilities
          :param default: Set to False in order to avoid generating the default probabilities
          """
  
          if phonemes_probability is not None and not 0. < phonemes_probability < 1. and warn:
              logging.warning('Setting a probability of [{}] to phonemes [{}] for token [{}].\n '
                              'Using probabilities of 0.0 or 1.0 '
                              'may lead to likelihoods of -Infinity'.format(phonemes_probability,
                                                                            phonemes,
                                                                            token_id))
  
          default_preds = self._what_default(presented_pronunciation) if default else {}
  
          self['tokens'].setdefault(token_id, {}) \
              .setdefault('what', default_preds)
  
          if index is not None:
              self['tokens'][token_id]['what'].setdefault(str(index), {})
  
          if phonemes is not None:
              if phonemes_probability is not None and index is not None:
                  self['tokens'][token_id]['what'][str(index)][phonemes] = phonemes_probability
  
              else:
                  if index is not None:
                      if phonemes in default_preds[str(index)]:
                          self['tokens'][token_id]['what'][str(index)][phonemes] = default_preds[str(index)][phonemes]
                      else:
                          self['tokens'][token_id]['what'][str(index)].pop(phonemes)
  
                  else:
                      if str(index) in default_preds:
                          self['tokens'][token_id]['what'][str(index)] = default_preds[str(index)]
                      else:
                          self['tokens'][token_id]['what'].pop(str(index))