docstr: Performs both audio preprocessing and VGGish deep feature extraction.
docstr_tok: ["Performs","both","audio","preprocessing","and","VGGish","deep","feature","extraction","."]
code: def get_deep_features(self, audio_data, verbose):
      """
      Performs both audio preprocessing and VGGish deep feature extraction.
      """
      preprocessed_data, row_ids = self._preprocess_data(
          audio_data, verbose
      )
      deep_features = self._extract_features(preprocessed_data, verbose)
  
      output = _tc.SFrame(
          {"deep features": deep_features, "row id": row_ids}
      )
      output = output.unstack("deep features")
  
      max_row_id = len(audio_data)
      missing_ids = set(range(max_row_id)) - set(
          output["row id"].unique()
      )
      if len(missing_ids) != 0:
          empty_rows = _tc.SFrame(
              {
                  "List of deep features": [
                      [] for _ in range(len(missing_ids))
                  ],
                  "row id": missing_ids,
              }
          )
          output = output.append(empty_rows)
  
      output = output.sort("row id")
      return output["List of deep features"]
  
file_path: turicreate/src/python/turicreate/toolkits/sound_classifier/_audio_feature_extractor.py
imports: import time
  import numpy
  import turicreate.toolkits._tf_utils
  import turicreate
  from .vggish_params import SAMPLE_RATE
  from .._internal_utils import _mac_ver
  from .._pre_trained_models import VGGish
  from turicreate._deps.minimal_package import _minimal_package_import_check
label_desc: Use image node_id 5 for calling the VGGishFeatureExtractor obj's underlying member method code with example usage: obj.get_deep_features(audio_data, verbose) and returns: output