code: def waveform_to_examples(data, sample_rate):
      """Converts audio waveform into an array of examples for VGGish.
  
      Args:
        data: np.array of either one dimension (mono) or two dimensions
          (multi-channel, with the outer dimension representing channels).
          Each sample is generally expected to lie in the range [-1.0, +1.0],
          although this is not required.
        sample_rate: Sample rate of data.
  
      Returns:
        3-D np.array of shape [num_examples, num_frames, num_bands] which represents
        a sequence of examples, each of which contains a patch of log mel
        spectrogram, covering num_frames frames of audio and num_bands mel frequency
        bands, where the frame length is vggish_params.STFT_HOP_LENGTH_SECONDS.
      """
  
      resampy = _minimal_package_import_check("resampy")
  
      # Convert to mono.
      if len(data.shape) > 1:
          data = np.mean(data, axis=1)
      # Resample to the rate assumed by VGGish.
      if sample_rate != vggish_params.SAMPLE_RATE:
          data = resampy.resample(
              data, sample_rate, vggish_params.SAMPLE_RATE
          )
  
      # Compute log mel spectrogram features.
      log_mel = mel_features.log_mel_spectrogram(
          data,
          audio_sample_rate=vggish_params.SAMPLE_RATE,
          log_offset=vggish_params.LOG_OFFSET,
          window_length_secs=vggish_params.STFT_WINDOW_LENGTH_SECONDS,
          hop_length_secs=vggish_params.STFT_HOP_LENGTH_SECONDS,
          num_mel_bins=vggish_params.NUM_MEL_BINS,
          lower_edge_hertz=vggish_params.MEL_MIN_HZ,
          upper_edge_hertz=vggish_params.MEL_MAX_HZ,
      )
  
      # Frame features into examples.
      features_sample_rate = 1.0 / vggish_params.STFT_HOP_LENGTH_SECONDS
      example_window_length = int(
          round(
              vggish_params.EXAMPLE_WINDOW_SECONDS
              * features_sample_rate
          )
      )
      example_hop_length = int(
          round(
              vggish_params.EXAMPLE_HOP_SECONDS * features_sample_rate
          )
      )
      log_mel_examples = mel_features.frame(
          log_mel,
          window_length=example_window_length,
          hop_length=example_hop_length,
      )
      return log_mel_examples
  
imports: from .None import mel_features
  from .None import vggish_params
  from turicreate._deps.minimal_package import _minimal_package_import_check
  import numpy
label_desc: Use image node_id 1 for calling a global function with example usage: waveform_to_examples(data, sample_rate) and returns: log_mel_examples