code: def auread(source, channel_first=False, raw_format_param=None):
      """
      Read audio with pydub module.
      Currently only support .wav format audio, .raw format audio could be read only when
      additional params are provided.
  
      Args:
          source (class ResourceFileReader): source handler.
          channel_first (bool):
              This argument specifies the shape of audio is whether (samples, channels) or (channels, samples).
              Default value is False, which means the audio shape shall be (samples, channels).
          raw_format_param(object):
              If audio is raw format, user should provide this object, example:
              { 'sample_width': 2, 'channels': 2, 'frame_rate': 44100 }
  
      Returns:
           numpy.ndarray
      """
  
      _auread_before(source, raw_format_param)
  
      audio_format = source.ext[1:]
      with source.open() as f:
          if audio_format == "raw":
              audio = AudioSegment.from_file(
                  f, format=audio_format, **raw_format_param
              )
          else:
              audio = AudioSegment.from_file(f, format=audio_format)
  
      audio_arr = get_nparray_from_pydub(audio)
      if audio_arr.dtype.itemsize == 1 and audio_format == "wav":
          # 8-bit wav file value should in uint8 range, but pydub read it as int8
          audio_arr = audio_arr.astype(np.uint8)
  
      return _auread_after(audio_arr, channel_first)
  
file_path: nnabla/python/src/nnabla/utils/audio_utils/pydub_utils.py
imports: from __future__ import absolute_import, division
  import math
  import os
  import warnings
  import numpy
  from pydub import AudioSegment
  from .common import _auread_before, _auread_after, _ausave_before, _auresize_before
label_desc: Use image node_id 3 for calling a global function with example usage: auread(source, channel_first, raw_format_param) and returns: _auread_after