Dive into the technical aspects of audio on your device, including codecs, format support, and customization options.

Audio Documentation

Posts under Audio subtopic

Post

Replies

Boosts

Views

Activity

Can't create a key for MusicKit
I'm trying to create an app that can access a users Apple Music library to play music (the app will do far more than that when finished) but I am unable to generate a key. When I go to Register a New Key, it says: "There are no identifiers available that can be associated with the key" under Media Services (MusicKit, ShazamKit, Apple Music Feed). MusicKit is already checked under App Services in Certificates, Identifiers & Profiles. I've been stuck on this for two days. Please help!
0
0
89
Jun ’26
SpeechTranscriber Faster Results
I am experimenting with SpeechTranscriber and am curious if I can get quicker results when using buffered audio, rather than a file. The use case is a voice ordering experience for a restaurant. When I've been playing with it, it takes about 3 seconds for faster results and 7-8 seconds for accurate results. Is there any way to bring this down a bit? In this WWDC demo, the results appear nearly instantaneously. I'm curious how to replicate this in my app. I presume DicationTranscriber is faster, but how is siri detecting when the user stops speaking? Is it custom code, or is it using SpeechDetector? I tried using SpeechDetector with SpeechTranscriber but the detector didn't emit any results and seemed to slow down the results of SpeechTranscriber. I also assumed SpeechTranscriber makes more sense than DictationTranscriber in this use case, but want to confirm.
1
0
264
Jun ’26
Voice Processing
Why voice processing enabled on AVAudioInputNode makes output audio noticable lower than without it and how to overcome it using voice processing enabled
4
0
308
Jun ’26
AirPods Custom EQ interaction
In iOS 27, when a user has configured a custom AirPods EQ (three-band lows/mids/highs), does that EQ apply on top of audio output from AVAudioEngine in my app, or only to media playback through AVPlayer/MPMusicPlayerController? My app generates therapeutic frequencies (e.g. 528 Hz pure tones) where precise frequency output matters - is there any API to detect or opt out of the system AirPods EQ?
1
0
236
Jun ’26
Real-time synthesis vs. files for long background sessions
For a sleep app running 8–12 hours in background, is AVAudioSourceNode with a real-time render block more power-efficient than looping a pre-encoded audio file via AVAudioPlayerNode? I want to migrate from files to procedural synthesis but not at the cost of battery. What does Instruments / Energy Log show as the typical CPU overhead difference, and is there Apple guidance on this trade-off?
1
0
232
Jun ’26
BlietoothHFP to MFi hearingaids
Is it possible to port a bluetooth microphone (BluetoothHFP) to MFi hearing aids connected to an iPhone. When I try to do that the BluetoothHFP grabs input and output. When I pull the output away (BluetoothA2DP) it gives up the input.
5
0
306
Jun ’26
Voice Isolation Suggestions
We are working on a voice app that uses ASR/TTS on the backend and run into some difficulties in noisy environments. We have compiled the DeepFilterNet3 library into an XCFramework and are using that on the app, but it's sometimes a bit ambitious with trimming out noise and removes some of the voice. Is there any way to make use of Apple's on-device voice isolation mic mode? I see that we can detect the user's mic mode, but we cannot programmatically set it. While we could prompt the user to enable it manually, this adds a bit of friction to the user experience. Do you have any suggestions for enabling voice isolation, or for performing denoising in general?
1
0
227
Jun ’26
Acoustic Echo Cancellation doesn't initially work
We are using AEC in our voice app and it mostly works. However, when the experience begins we play a greeting through the speaker, and the initial few hundred milliseconds of the greeting are being captured by the inputNode. This is throwing off our ASR/TTS. For now, we've disabled audio capture while playing audio, but would prefer to be able to capture all audio with echo cancellation working. Below is some relevant code snippets. Do you have any suggestions to get AEC working more quickly? I've tried a few things like enabling voice processing before setting the audio session to active. public init() { recorderNode = engine.inputNode speakerNode = engine.outputNode mainMixerNode = engine.mainMixerNode engine.attach(audioPlayer) engine.connect( audioPlayer, to: mainMixerNode, format: nil ) playbackFormat = mainMixerNode.outputFormat(forBus: 0) } public func setupAudioSession() async throws(AudioError) { do { let audioSession = AVAudioSession.sharedInstance() try audioSession.setCategory( .playAndRecord, mode: .voiceChat, policy: .default, options: [ .defaultToSpeaker, .allowBluetoothHFP, ] ) try audioSession.setActive(true) } catch { throw .audioSessionSetupFailed(error) } do { try recorderNode.setVoiceProcessingEnabled(true) try speakerNode.setVoiceProcessingEnabled(true) } catch { throw .enableVoiceProcessingFailed(error) } }
1
0
215
Jun ’26
Acoustic Echo Cancellation does not work initially
I have a voice app that is both playing and recording audio. I have enabled voice processing and am setting AVAudioSession.Category to .playAndRecord and AVAudioSession.Mode to .voiceChat. When the experience first launches, we play a greeting. The first few hundred milliseconds of that greeting are being captured by the inputNode before AEC seems to start working. Is there any way to get AEC working the entire time? For now we've had to disable recording while we're playing audio, but would prefer to both play and record simultaneously. Here's some code snippets: public init(denoiseModelPath: URL? = nil) { noiseReducer = denoiseModelPath.flatMap { NoiseReducer(modelPath: $0) } recorderNode = engine.inputNode speakerNode = engine.outputNode mainMixerNode = engine.mainMixerNode engine.attach(audioPlayer) engine.connect( audioPlayer, to: mainMixerNode, format: nil ) playbackFormat = mainMixerNode.outputFormat(forBus: 0) } public func setupAudioSession() async throws(AudioError) { do { let audioSession = AVAudioSession.sharedInstance() try audioSession.setCategory( .playAndRecord, mode: .voiceChat, policy: .default, options: [ .defaultToSpeaker, .allowBluetoothHFP, ] ) try audioSession.setActive(true) } catch { throw .audioSessionSetupFailed(error) } do { try recorderNode.setVoiceProcessingEnabled(true) try speakerNode.setVoiceProcessingEnabled(true) } catch { throw .enableVoiceProcessingFailed(error) } }
1
0
423
Jun ’26
Voice Isolation Suggestions
We are working on a voice app that uses ASR/TTS on the backend and run into some difficulties in noisy environments. We have compiled the DeepFilterNet3 library into an XCFramework and are using that on the app, but it's sometimes a bit ambitious with trimming out noise and removes some of the voice. Is there any way to make use of Apple's on-device voice isolation mic mode? I see that we can detect the user's mic mode, but we cannot programmatically set it. While we could prompt the user to enable it manually, this adds a bit of friction to the user experience. Do you have any suggestions for enabling voice isolation, or for performing denoising in general?
2
0
305
Jun ’26
Live Activity sleep timer without push
My app has a sleep timer (up to 12 hours). Can I drive a Live Activity countdown in the Dynamic Island purely from the foreground/background app process using Activity.update(), without requiring a push notification server? And does Text(timerInterval:) in SwiftUI continue counting down accurately when the app process is suspended by the OS?
0
0
204
Jun ’26
Foundation Models for audio recommendation
Is it appropriate to use the Foundation Models framework on-device to power a natural language sound recommendation feature (e.g. user types 'I can't focus' → model returns a frequency/playlist recommendation from a predefined set)? Or is this use case better served by a custom Core ML model? What's the recommended on-device inference approach in iOS 27 for this type of structured recommendation with a small output space?
0
0
172
Jun ’26
App Intents for audio playback actions in iOS 27
With SiriKit deprecated in iOS 27, I'm implementing App Intents from scratch for a frequency/ambient sound app. Should I conform to AudioPlaybackIntent from the Media framework or build a custom AppIntent? Specifically, I need intents for: play a named frequency, start sleep timer with duration, stop playback. Is there a recommended Intent entity type for audio content that isn't music (i.e. not MusicKit-backed)?
0
0
184
Jun ’26
Does the OS has dedicated volume levels for each AVAudioSessionCategory.
We have an VoiP application, our application can be configured to amplify the PCM samples before feeding it to the Player to achieve volume gain at the receiver. In order to support this, We follow as below. If User has configured this Gain Settings within application, Application applies the amplification for the samples to introduce the gain. Application will also set the AVAudioSessionCategory to AVAudioSessionCategoryPlayback Provided the User has chosen the output to Speaker. This settings was working for us but we see there is a difference in behaviour w.r.t Volume Level System Settings between OS 26.3.1 and OS 26.4 When user has chosen earpiece as Output, then we will set the AVAudioSessionCategory to AVAudioSessionCategoryPlayAndRecord. User would have set the volume level to minimum. When user will change the output to Speaker, then we will set the AVAudioSessionCategory to AVAudioSessionCategoryPlayback. The expectation is, the volume level should be of AVAudioSessionCategoryPlayback what was set earlier instead we are seeing the volume level stays as minimum which was set to AVAudioSessionCategoryPlayAndRecord Could you please explain about this inconsistency w.r.t Volume level.
7
0
1.4k
Jun ’26
Visualization of Apple Music audio
Certain apps (eg. DJay) at least seem to have access to audio data from Apple Music streams, either directly or via an indirect dataset for visualization purposes either generated from audio data on the device or delivered from a remote service. Is there any framework provided by Apple or special agreement with Apple that gives access to Apple Music audio data, or sets of visualization meta data, or the ability to run processing of audio data on device or remotely (either on-demand or via preprocessing)?
0
2
282
Jun ’26
Can't create a key for MusicKit
I'm trying to create an app that can access a users Apple Music library to play music (the app will do far more than that when finished) but I am unable to generate a key. When I go to Register a New Key, it says: "There are no identifiers available that can be associated with the key" under Media Services (MusicKit, ShazamKit, Apple Music Feed). MusicKit is already checked under App Services in Certificates, Identifiers & Profiles. I've been stuck on this for two days. Please help!
Replies
0
Boosts
0
Views
89
Activity
Jun ’26
SpeechTranscriber Faster Results
I am experimenting with SpeechTranscriber and am curious if I can get quicker results when using buffered audio, rather than a file. The use case is a voice ordering experience for a restaurant. When I've been playing with it, it takes about 3 seconds for faster results and 7-8 seconds for accurate results. Is there any way to bring this down a bit? In this WWDC demo, the results appear nearly instantaneously. I'm curious how to replicate this in my app. I presume DicationTranscriber is faster, but how is siri detecting when the user stops speaking? Is it custom code, or is it using SpeechDetector? I tried using SpeechDetector with SpeechTranscriber but the detector didn't emit any results and seemed to slow down the results of SpeechTranscriber. I also assumed SpeechTranscriber makes more sense than DictationTranscriber in this use case, but want to confirm.
Replies
1
Boosts
0
Views
264
Activity
Jun ’26
Real-time audio level monitoring improvements
Have there been any changes in macOS 27 or iOS 27 that improve real-time audio level monitoring, WidgetKit updates, Live Activities, or audio route change handling for professional monitoring applications?
Replies
0
Boosts
0
Views
276
Activity
Jun ’26
Voice Processing
Why voice processing enabled on AVAudioInputNode makes output audio noticable lower than without it and how to overcome it using voice processing enabled
Replies
4
Boosts
0
Views
308
Activity
Jun ’26
AirPods Custom EQ interaction
In iOS 27, when a user has configured a custom AirPods EQ (three-band lows/mids/highs), does that EQ apply on top of audio output from AVAudioEngine in my app, or only to media playback through AVPlayer/MPMusicPlayerController? My app generates therapeutic frequencies (e.g. 528 Hz pure tones) where precise frequency output matters - is there any API to detect or opt out of the system AirPods EQ?
Replies
1
Boosts
0
Views
236
Activity
Jun ’26
Real-time synthesis vs. files for long background sessions
For a sleep app running 8–12 hours in background, is AVAudioSourceNode with a real-time render block more power-efficient than looping a pre-encoded audio file via AVAudioPlayerNode? I want to migrate from files to procedural synthesis but not at the cost of battery. What does Instruments / Energy Log show as the typical CPU overhead difference, and is there Apple guidance on this trade-off?
Replies
1
Boosts
0
Views
232
Activity
Jun ’26
Bluetooth mic in, live listen out
Is it possible to link a HFBluetooth input device with the output iPhone speaker while Live Listen is active?
Replies
10
Boosts
0
Views
584
Activity
Jun ’26
BlietoothHFP to MFi hearingaids
Is it possible to port a bluetooth microphone (BluetoothHFP) to MFi hearing aids connected to an iPhone. When I try to do that the BluetoothHFP grabs input and output. When I pull the output away (BluetoothA2DP) it gives up the input.
Replies
5
Boosts
0
Views
306
Activity
Jun ’26
Voice Isolation Suggestions
We are working on a voice app that uses ASR/TTS on the backend and run into some difficulties in noisy environments. We have compiled the DeepFilterNet3 library into an XCFramework and are using that on the app, but it's sometimes a bit ambitious with trimming out noise and removes some of the voice. Is there any way to make use of Apple's on-device voice isolation mic mode? I see that we can detect the user's mic mode, but we cannot programmatically set it. While we could prompt the user to enable it manually, this adds a bit of friction to the user experience. Do you have any suggestions for enabling voice isolation, or for performing denoising in general?
Replies
1
Boosts
0
Views
227
Activity
Jun ’26
Acoustic Echo Cancellation doesn't initially work
We are using AEC in our voice app and it mostly works. However, when the experience begins we play a greeting through the speaker, and the initial few hundred milliseconds of the greeting are being captured by the inputNode. This is throwing off our ASR/TTS. For now, we've disabled audio capture while playing audio, but would prefer to be able to capture all audio with echo cancellation working. Below is some relevant code snippets. Do you have any suggestions to get AEC working more quickly? I've tried a few things like enabling voice processing before setting the audio session to active. public init() { recorderNode = engine.inputNode speakerNode = engine.outputNode mainMixerNode = engine.mainMixerNode engine.attach(audioPlayer) engine.connect( audioPlayer, to: mainMixerNode, format: nil ) playbackFormat = mainMixerNode.outputFormat(forBus: 0) } public func setupAudioSession() async throws(AudioError) { do { let audioSession = AVAudioSession.sharedInstance() try audioSession.setCategory( .playAndRecord, mode: .voiceChat, policy: .default, options: [ .defaultToSpeaker, .allowBluetoothHFP, ] ) try audioSession.setActive(true) } catch { throw .audioSessionSetupFailed(error) } do { try recorderNode.setVoiceProcessingEnabled(true) try speakerNode.setVoiceProcessingEnabled(true) } catch { throw .enableVoiceProcessingFailed(error) } }
Replies
1
Boosts
0
Views
215
Activity
Jun ’26
MusicUnderstanding and Apple Music / MusicKit
Am I correct in my understanding that the new MusicUnderstanding is not intended to be able to support analysis of Apple Music streams via MusicKit or in other ways?
Replies
1
Boosts
0
Views
221
Activity
Jun ’26
iOS and macOS support of Bluetooth LC3
Do iOS and/or macOS support Bluetooth LC3? If yes, since what iOS/macOS version? is there any limitation and/or caveat?
Replies
2
Boosts
0
Views
135
Activity
Jun ’26
Acoustic Echo Cancellation does not work initially
I have a voice app that is both playing and recording audio. I have enabled voice processing and am setting AVAudioSession.Category to .playAndRecord and AVAudioSession.Mode to .voiceChat. When the experience first launches, we play a greeting. The first few hundred milliseconds of that greeting are being captured by the inputNode before AEC seems to start working. Is there any way to get AEC working the entire time? For now we've had to disable recording while we're playing audio, but would prefer to both play and record simultaneously. Here's some code snippets: public init(denoiseModelPath: URL? = nil) { noiseReducer = denoiseModelPath.flatMap { NoiseReducer(modelPath: $0) } recorderNode = engine.inputNode speakerNode = engine.outputNode mainMixerNode = engine.mainMixerNode engine.attach(audioPlayer) engine.connect( audioPlayer, to: mainMixerNode, format: nil ) playbackFormat = mainMixerNode.outputFormat(forBus: 0) } public func setupAudioSession() async throws(AudioError) { do { let audioSession = AVAudioSession.sharedInstance() try audioSession.setCategory( .playAndRecord, mode: .voiceChat, policy: .default, options: [ .defaultToSpeaker, .allowBluetoothHFP, ] ) try audioSession.setActive(true) } catch { throw .audioSessionSetupFailed(error) } do { try recorderNode.setVoiceProcessingEnabled(true) try speakerNode.setVoiceProcessingEnabled(true) } catch { throw .enableVoiceProcessingFailed(error) } }
Replies
1
Boosts
0
Views
423
Activity
Jun ’26
Voice Isolation Suggestions
We are working on a voice app that uses ASR/TTS on the backend and run into some difficulties in noisy environments. We have compiled the DeepFilterNet3 library into an XCFramework and are using that on the app, but it's sometimes a bit ambitious with trimming out noise and removes some of the voice. Is there any way to make use of Apple's on-device voice isolation mic mode? I see that we can detect the user's mic mode, but we cannot programmatically set it. While we could prompt the user to enable it manually, this adds a bit of friction to the user experience. Do you have any suggestions for enabling voice isolation, or for performing denoising in general?
Replies
2
Boosts
0
Views
305
Activity
Jun ’26
Why are none of my posts showing up in the Audio Q&A?
Why are none of my posts showing up in the Audio Q&A? There are no errors or any useful messaging... my posts just aren't showing.
Replies
2
Boosts
0
Views
214
Activity
Jun ’26
Live Activity sleep timer without push
My app has a sleep timer (up to 12 hours). Can I drive a Live Activity countdown in the Dynamic Island purely from the foreground/background app process using Activity.update(), without requiring a push notification server? And does Text(timerInterval:) in SwiftUI continue counting down accurately when the app process is suspended by the OS?
Replies
0
Boosts
0
Views
204
Activity
Jun ’26
Foundation Models for audio recommendation
Is it appropriate to use the Foundation Models framework on-device to power a natural language sound recommendation feature (e.g. user types 'I can't focus' → model returns a frequency/playlist recommendation from a predefined set)? Or is this use case better served by a custom Core ML model? What's the recommended on-device inference approach in iOS 27 for this type of structured recommendation with a small output space?
Replies
0
Boosts
0
Views
172
Activity
Jun ’26
App Intents for audio playback actions in iOS 27
With SiriKit deprecated in iOS 27, I'm implementing App Intents from scratch for a frequency/ambient sound app. Should I conform to AudioPlaybackIntent from the Media framework or build a custom AppIntent? Specifically, I need intents for: play a named frequency, start sleep timer with duration, stop playback. Is there a recommended Intent entity type for audio content that isn't music (i.e. not MusicKit-backed)?
Replies
0
Boosts
0
Views
184
Activity
Jun ’26
Does the OS has dedicated volume levels for each AVAudioSessionCategory.
We have an VoiP application, our application can be configured to amplify the PCM samples before feeding it to the Player to achieve volume gain at the receiver. In order to support this, We follow as below. If User has configured this Gain Settings within application, Application applies the amplification for the samples to introduce the gain. Application will also set the AVAudioSessionCategory to AVAudioSessionCategoryPlayback Provided the User has chosen the output to Speaker. This settings was working for us but we see there is a difference in behaviour w.r.t Volume Level System Settings between OS 26.3.1 and OS 26.4 When user has chosen earpiece as Output, then we will set the AVAudioSessionCategory to AVAudioSessionCategoryPlayAndRecord. User would have set the volume level to minimum. When user will change the output to Speaker, then we will set the AVAudioSessionCategory to AVAudioSessionCategoryPlayback. The expectation is, the volume level should be of AVAudioSessionCategoryPlayback what was set earlier instead we are seeing the volume level stays as minimum which was set to AVAudioSessionCategoryPlayAndRecord Could you please explain about this inconsistency w.r.t Volume level.
Replies
7
Boosts
0
Views
1.4k
Activity
Jun ’26
Visualization of Apple Music audio
Certain apps (eg. DJay) at least seem to have access to audio data from Apple Music streams, either directly or via an indirect dataset for visualization purposes either generated from audio data on the device or delivered from a remote service. Is there any framework provided by Apple or special agreement with Apple that gives access to Apple Music audio data, or sets of visualization meta data, or the ability to run processing of audio data on device or remotely (either on-demand or via preprocessing)?
Replies
0
Boosts
2
Views
282
Activity
Jun ’26