docstr: Computes energy for the input manifest entry.
  
  Args:
      manifest_entry: Manifest entry dictionary.
      audio_dir: base directory where audio is store
  
  Returns:
      [T_spec] float tensor containing energy features.
code: def compute_energy(
      self, manifest_entry: Dict[str, Any], audio_dir: Path
  ) -> np.ndarray:
      """
      Computes energy for the input manifest entry.
  
      Args:
          manifest_entry: Manifest entry dictionary.
          audio_dir: base directory where audio is store
  
      Returns:
          [T_spec] float tensor containing energy features.
      """
      # [spec_dim, T_spec]
      spec = self.spec_featurizer.compute_mel_spec(
          manifest_entry=manifest_entry, audio_dir=audio_dir
      )
      # [T_spec]
      energy = np.linalg.norm(spec, axis=0)
      return energy
  
imports: import math
  from abc import ABC, abstractmethod
  from pathlib import Path
  from typing import Any, Dict, List, Optional, Tuple, Union
  import librosa
  import numpy
  import torch
  from torch import Tensor
  from nemo.collections.asr.modules import AudioToMelSpectrogramPreprocessor
  from nemo.collections.tts.parts.utils.tts_dataset_utils import get_audio_filepaths, normalize_volume, stack_tensors
  from nemo.utils.decorators import experimental
label_desc: Use image node_id 2 for calling the EnergyFeaturizer obj's underlying member method code with example usage: obj.compute_energy(manifest_entry, audio_dir) and returns: energy