code: def cmvn(vec, variance_normalization=False):
      
      eps = 2**-30
      rows, cols = vec.shape
  
      # Mean calculation
      norm = np.mean(vec, axis=0)
      norm_vec = np.tile(norm, (rows, 1))
  
      # Mean subtraction
      mean_subtracted = vec - norm_vec
  
      # Variance normalization
      if variance_normalization:
          stdev = np.std(mean_subtracted, axis=0)
          stdev_vec = np.tile(stdev, (rows, 1))
          output = mean_subtracted / (stdev_vec + eps)
      else:
          output = mean_subtracted
  
      return output
docs: This function is aimed to perform global cepstral mean and
          variance normalization (CMVN) on input feature vector "vec".
          The code assumes that there is one observation per row.
  
      Args:
          vec (array): input feature matrix
              (size:(num_observation,num_features))
          variance_normalization (bool): If the variance
              normilization should be performed or not.
  
      Return:
            array: The mean(or mean+variance) normalized feature vector.