code: def __call__(self, f0, speaker):
      f0 = f0.clone()
      mask = f0 != 0.0
      if self.log:
          f0[mask] = f0[mask].log()
  
      mean = (
          self.stats[speaker]["logf0_mean"]
          if self.log
          else self.stats[speaker]["f0_mean"]
      )
      std = (
          self.stats[speaker]["logf0_std"]
          if self.log
          else self.stats[speaker]["f0_std"]
      )
  
      if self.center:
          f0[mask] -= mean
      if self.scale:
          f0[mask] /= std
  
      return f0
  
file_path: textlesslib/textless/data/f0_preprocess.py
imports: import torch
  import amfm_decompy.basic_tools
  import amfm_decompy.pYAAPT
  from librosa.util import normalize
  import numpy
  from scipy.interpolate import interp1d
label_desc: Use image node_id 2 for calling the SpeakerMeanNormalize obj's underlying member method code with example usage: obj.__call__(f0, speaker) and returns: f0