<!--
{
  "availability" : [
    "iOS: 15.0.0 -",
    "iPadOS: 15.0.0 -",
    "macCatalyst: 15.0.0 -",
    "macOS: 11.0.0 -",
    "visionOS: 1.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CreateML",
  "identifier" : "/documentation/CreateML/MLSoundClassifier/extractFeatures(trainingData:parameters:sessionParameters:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "Create ML"
    ],
    "preciseIdentifier" : "s:8CreateML17MLSoundClassifierV15extractFeatures12trainingData10parameters17sessionParametersAA5MLJobCyAC0H6SourceOGAK_AC017FeatureExtractionK0VAA017MLTrainingSessionK0VtKFZ"
  },
  "title" : "extractFeatures(trainingData:parameters:sessionParameters:)"
}
-->

# extractFeatures(trainingData:parameters:sessionParameters:)

Begins an asynchronous session that extracts sound features from a data source of sound files.

```
static func extractFeatures(trainingData: MLSoundClassifier.DataSource, parameters: MLSoundClassifier.FeatureExtractionParameters = FeatureExtractionParameters(), sessionParameters: MLTrainingSessionParameters = _defaultSessionParameters) throws -> MLJob<MLSoundClassifier.DataSource>
```

## Parameters

`trainingData`

An [`MLSoundClassifier.DataSource`](/documentation/CreateML/MLSoundClassifier/DataSource) instance that contains a collection of labeled audio
files.

`parameters`

An [`MLSoundClassifier.FeatureExtractionParameters`](/documentation/CreateML/MLSoundClassifier/FeatureExtractionParameters) instance you use to configure the feature
extraction session.

`sessionParameters`

An [`MLTrainingSessionParameters`](/documentation/CreateML/MLTrainingSessionParameters) instance you use to configure the feature extraction
session.

## Return Value

An [`MLJob`](/documentation/CreateML/MLJob) that represents the sound feature extraction session.

## Discussion

Use this method to reduce the training time for multiple sound classifiers that use the same training data. Use
the [`MLJob`](/documentation/CreateML/MLJob) instance this method returns to save the audio features as an [`MLSoundClassifier.DataSource`](/documentation/CreateML/MLSoundClassifier/DataSource).
Then use the audio features data source to train one or more sound classifiers.

You can also create a data source from a <doc://com.apple.documentation/documentation/TabularData/DataFrame> or
an [`MLDataTable`](/documentation/CreateML/MLDataTable) that contains audio features by using
[`MLSoundClassifier.DataSource.featuresDataFrame(_:featureColumn:labelColumn:parameters:)`](/documentation/CreateML/MLSoundClassifier/DataSource/featuresDataFrame(_:featureColumn:labelColumn:parameters:)) or
[`MLSoundClassifier.DataSource.features(table:featureColumn:labelColumn:parameters:)`](/documentation/CreateML/MLSoundClassifier/DataSource/features(table:featureColumn:labelColumn:parameters:)), respectively.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)