code: def test_audio_summary(self, scope, skip_summary=False):
      with context.graph_mode():
          scoped_summary = _ScopedSummaryV2(
              self.test_subdirectory,
              scope=scope,
              skip_summary=skip_summary,
          )
          i = tf.ones((5, 3, 4))
          with tf.name_scope("outer"):
              scoped_summary.audio(
                  "inner", i, sample_rate=2, max_outputs=3
              )
          self.write_summaries(scoped_summary)
      if skip_summary:
          return
      events = self.read_single_event_from_eventfile(scoped_summary)
      values = events[0].summary.value
      self.assertLen(values, 1)
      self.assertLen(values, 1)
      self.assertEqual(values[0].tag, "outer/inner")
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import struct
  from absl.testing import parameterized
  from adanet import tf_compat
  from adanet.core import testing_utils
  from adanet.core.summary import _ScopedSummaryV2
  import tensorflow.compat.v2
  from tensorflow.python.eager import context
  from tensorflow.python.framework import test_util
label_desc: Use image node_id 8 for calling the ScopedSummaryV2Test obj's underlying member method code with example usage: obj.test_audio_summary(scope, skip_summary) without return types