<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Speech",
  "identifier" : "/documentation/Speech/CaptureInputSequenceProvider/provider(from:in:compatibleWith:priority:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "Speech"
    ],
    "preciseIdentifier" : "s:6Speech28CaptureInputSequenceProviderC8provider4from2in14compatibleWith8priorityACSo15AVCaptureDeviceC_So0L7SessionCSayAA0A6Module_pGScPSgtYaKFZ"
  },
  "title" : "provider(from:in:compatibleWith:priority:)"
}
-->

# provider(from:in:compatibleWith:priority:)

Returns an input sequence provider that reads from an audio capture device.

```
static func provider(from captureDevice: AVCaptureDevice, in session: AVCaptureSession, compatibleWith modules: [any SpeechModule], priority: TaskPriority? = nil) async throws -> CaptureInputSequenceProvider
```

## Parameters

`captureDevice`

The capture device to use.

`session`

The capture session that manages the audio capture operation.

`modules`

The speech modules that will analyze the audio.

`priority`

The desired priority of the audio-capture task.

## Return Value

An instance of this class.

## Discussion

This method also creates an `AVCaptureAudioDataOutput` object suitable for adding to an existing `AVCaptureSession`. It does not reconfigure or alter the session.

Use the [`captureAudioDataOutput`](/documentation/Speech/CaptureInputSequenceProvider/captureAudioDataOutput) property to access the output object and add it to your session.

---

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)