class_docstr: Compute pitch features of every frame in speech, return a float tensor
  with size (num_frames, 3).
docstr: Caculate picth features of audio data.
  :param audio_data: the audio signal from which to compute spectrum.
                    Should be an (1, N) tensor.
  :param sample_rate: the samplerate of the signal we working with.
  :return: A float tensor of size (num_frames, 2) containing
         pitch && POV features of every frame in speech.
docstr_tok: ["Caculate","picth","features","of","audio","data",".",":","param","audio_data",":","the","audio","signal","from","which","to","compute","spectrum",".","Should","be","an","(","1",",","N",")","tensor",".",":","param","sample_rate",":","the","samplerate","of","the","signal","we","working","with",".",":","return",":","A","float","tensor","of","size","(","num_frames",",","2",")","containing","pitch","&","&","POV","features","of","every","frame","in","speech","."]
code: def call(self, audio_data, sample_rate=None):
      """
      Caculate picth features of audio data.
      :param audio_data: the audio signal from which to compute spectrum.
                        Should be an (1, N) tensor.
      :param sample_rate: the samplerate of the signal we working with.
      :return: A float tensor of size (num_frames, 2) containing
             pitch && POV features of every frame in speech.
      """
      p = self.config
  
      with tf.name_scope("pitch"):
          if sample_rate is None:
              sample_rate = tf.constant(p.sample_rate, dtype=tf.int32)
          else:
              if not tf.is_tensor(sample_rate):
                  sample_rate = tf.convert_to_tensor(sample_rate)
  
          pitch = py_x_ops.pitch(
              audio_data,
              sample_rate,
              window_length=p.window_length,
              frame_length=p.frame_length,
              snip_edges=p.snip_edges,
              preemph_coeff=p.preemph_coeff,
              min_f0=p.min_f0,
              max_f0=p.max_f0,
              soft_min_f0=p.soft_min_f0,
              penalty_factor=p.penalty_factor,
              lowpass_cutoff=p.lowpass_cutoff,
              resample_freq=p.resample_freq,
              delta_pitch=p.delta_pitch,
              nccf_ballast=p.nccf_ballast,
              lowpass_filter_width=p.lowpass_filter_width,
              upsample_filter_width=p.upsample_filter_width,
              max_frames_latency=p.max_frames_latency,
              frames_per_chunk=p.frames_per_chunk,
              simulate_first_pass_online=p.simulate_first_pass_online,
              recompute_frame=p.recompute_frame,
              nccf_ballast_online=p.nccf_ballast_online,
              pitch_scale=p.pitch_scale,
              pov_scale=p.pov_scale,
              pov_offset=p.pov_offset,
              delta_pitch_scale=p.delta_pitch_scale,
              delta_pitch_noise_stddev=p.delta_pitch_noise_stddev,
              normalization_left_context=p.normalization_left_context,
              normalization_right_context=p.normalization_right_context,
              delta_window=p.delta_window,
              delay=p.delay,
              add_pov_feature=p.add_pov_feature,
              add_normalized_log_pitch=p.add_normalized_log_pitch,
              add_delta_pitch=p.add_delta_pitch,
              add_raw_log_pitch=p.add_raw_log_pitch,
          )
  
          return pitch
  
file_path: delta/delta/data/frontend/pitch.py
imports: import delta.compat
  from core.ops import py_x_ops
  from delta.utils.hparam import HParams
  from delta.data.frontend.base_frontend import BaseFrontend
label_desc: Use image node_id 3 for calling the Pitch obj's underlying member method code with example usage: obj.call(audio_data, sample_rate) and returns: pitch