docstr: Add audio data to summary.
  
  Args:
      tag (string): Data identifier
      snd_tensor (torch.Tensor, numpy.array, or string/blobname): Sound data
      global_step (int): Global step value to record
      sample_rate (int): sample rate in Hz
  
  Shape:
      snd_tensor: :math:`(1, L)`. The values should lie between [-1, 1].
docstr_tok: ["Add","audio","data","to","summary",".","Args",":","tag","(","string",")",":","Data","identifier","snd_tensor","(","torch.Tensor",",","numpy.array",",","or","string\/blobname",")",":","Sound","data","global_step","(","int",")",":","Global","step","value","to","record","sample_rate","(","int",")",":","sample","rate","in","Hz","Shape",":","snd_tensor",":",":","math",":","`","(","1",",","L",")","`",".","The","values","should","lie","between","[","-1",",","1","]","."]
code: def add_audio(
      self, tag, snd_tensor, global_step=None, sample_rate=44100
  ):
      """Add audio data to summary.
  
      Args:
          tag (string): Data identifier
          snd_tensor (torch.Tensor, numpy.array, or string/blobname): Sound data
          global_step (int): Global step value to record
          sample_rate (int): sample rate in Hz
  
      Shape:
          snd_tensor: :math:`(1, L)`. The values should lie between [-1, 1].
      """
      snd_tensor = make_np(snd_tensor)
      self.vis.audio(
          tensor=snd_tensor, opts={"sample_frequency": sample_rate}
      )
  
imports: import gc
  import numpy
  import math
  import json
  import time
  from .summary import compute_curve
  from .utils import figure_to_image
  from .x2num import make_np
label_desc: Use image node_id 10 for calling the VisdomWriter obj's underlying member method code with example usage: obj.add_audio(tag, snd_tensor, global_step, sample_rate) without return types