code: def norm_dist_to_audio(self, *, spec, z=None, sigma: float = 1.0):
      spec = self.upsample(spec)
      spec = spec.contiguous().view(spec.size(0), spec.size(1), -1)
      # trim conv artifacts. maybe pad spec to kernel multiple
      if self.time_cutoff != 0:
          spec = spec[:, :, : self.time_cutoff]
  
      spec = split_view(spec, self.n_group, 2).permute(0, 2, 1, 3)
      spec = spec.contiguous().view(spec.size(0), spec.size(1), -1)
      spec = spec.permute(0, 2, 1)
  
      z_size = torch.Size([spec.size(0), self.n_group, spec.size(2)])
      if z is None:
          z = sigma * torch.randn(z_size, device=spec.device).to(
              spec.dtype
          )
  
      audio, z = torch.split(
          z,
          [
              self.n_remaining_channels,
              z.size(1) - self.n_remaining_channels,
          ],
          1,
      )
  
      for k in reversed(range(self.n_flows)):
          n_half = self.n_halves[k]
          audio_0, audio_1 = torch.split(
              audio, [n_half, audio.size(1) - n_half], 1
          )
  
          output = self.wavenet[k]((audio_0, spec))
  
          b, s = torch.split(
              output, [n_half, output.size(1) - n_half], 1
          )
  
          audio_1 = audio_1 - b
          audio_1 = audio_1 / torch.exp(s)
          audio = torch.cat((audio_0, audio_1), 1)
  
          audio = self.convinv[k](audio, reverse=True)
          if k % self.n_early_every == 0 and k > 0:
              z1, z = torch.split(
                  z,
                  [self.n_early_size, z.size(1) - self.n_early_size],
                  1,
              )
              audio = torch.cat((z1, audio), 1)
      return audio.permute(0, 2, 1).contiguous().view(audio.size(0), -1)
  
file_path: NeMo/nemo/collections/tts/modules/waveglow.py
imports: from typing import Tuple
  import torch
  from nemo.collections.tts.modules.submodules import Invertible1x1Conv, WaveNet
  from nemo.collections.tts.parts.utils.helpers import OperationMode, remove, split_view
  from nemo.core.classes import Exportable, NeuralModule, typecheck
  from nemo.core.neural_types.elements import AudioSignal, IntType, MelSpectrogramType, NormalDistributionSamplesType, VoidType
  from nemo.core.neural_types.neural_type import NeuralType
label_desc: Use image node_id 8 for calling the WaveGlowModule obj's underlying member method code with example usage: obj.norm_dist_to_audio() and returns: audio