class_docstr: Compute and apply CMVN to features.
class_docstr_tok: ["Compute","and","apply","CMVN","to","features","."]
code: def apply_cmvn(self, x, uttid):
      p = self.config
  
      if self.utt2spk is not None:
          spk = self.utt2spk[uttid]
      else:
          # using global cmvn
          spk = None
  
      if not p.reverse:
          if p.norm_means:
              x = np.add(x, self.bias[spk])
          if p.norm_vars:
              x = np.multiply(x, self.scale[spk])
      else:
          if p.norm_means:
              x = np.subtract(x, self.bias[spk])
          if p.norm_vars:
              x = np.divide(x, self.scale[spk])
  
      return x
  
file_path: delta/delta/data/frontend/cmvn.py
imports: import io
  import kaldiio
  import numpy
  from delta.utils.hparam import HParams
  from delta.data.frontend.base_frontend import BaseFrontend
label_desc: Use image node_id 4 for calling the CMVN obj's underlying member method code with example usage: obj.apply_cmvn(x, uttid) and returns: x