SpeechTranscriber not supported

I've tried SpeechTranscriber with a lot of my devices (from iPhone 12 series ~ iPhone 17 series) without issues. However, SpeechTranscriber.isAvailable value is false for my iPhone 11 Pro. https://developer.apple.com/documentation/speech/speechtranscriber/isavailable

I'am curious why the iPhone 11 Pro device is not supported. Are all iPhone 11 series not supported intentionally? Or is there any problem with my specific device?

I've also checked the supportedLocales, and the value is an empty array. https://developer.apple.com/documentation/speech/speechtranscriber/supportedlocales

The fact that it's not supported on Simulator is annoying. What an inconvenience. Is this going to change soon? I'm on Xcode 26.1 and Simulator iOS 26.1.

I've tested and found that SpeechTranscriber.isAvailable returns false on these devices.

  • iPhone 11
  • iPhone 11 Pro
  • iPhone 11 Pro Max
  • iPhone SE 2nd Generation

Here is my assumption:

  • iOS 26 models with an 8-core Neural Engine do not support SpeechTranscriber
  • iOS 26 models with a 16-core Neural Engine support SpeechTranscriber

You can check your model's neural engine core from the link below. https://www.apple.com/iphone/compare/

This assumption perfectly aligns with the test result I've done so far. If it's true, Apple should clearly state this requirement in their documentation.

I just hit this bug where SpeechTranscriber is not available on iOS 26 Simulator using latest tools. Annoying and unexpected. Why?

I didn't see this thread before I created a mine. I have made a swift class to to determine if the device supports SpeechTranscriber see here: https://developer.apple.com/forums/thread/807739

The 16-core Neural Engine theory lines up with what I have seen in practice on Mac hardware as well. Mac mini M4 (16-core NE) runs SpeechTranscriber and SpeechAnalyzer without issues. M1 devices (also 16-core NE) work too.

For the Simulator issue — this is expected unfortunately. SpeechTranscriber relies on the Neural Engine for on-device inference, and the Simulator does not emulate the ANE. The isAvailable check returns false because the underlying model cannot run there.

Practical workaround for development: use a conditional compilation check and fall back to SFSpeechRecognizer (the older API) in Simulator builds. SFSpeechRecognizer still works on Simulator and gives you a close-enough approximation for UI development and integration testing. You only need a real device for final accuracy testing.

Regarding the 8-core vs 16-core cutoff: my guess is that SpeechTranscriber uses a model size that requires the throughput of a 16-core Neural Engine to meet real-time latency requirements. The 8-core NE in A13 devices might be able to run the model, but not fast enough for streaming transcription.

SpeechTranscriber not supported
 
 
Q