SFSpeechRecognizer Broken in iPadOS 15.0?

I updated Xcode to Xcode 13 and iPadOS to 15.0. Now my previously working application using SFSpeechRecognizer fails to start, regardless of whether I'm using on device mode or not.

I use the delegate approach, and it looks like although the plist is set-up correctly (the authorization is successful and I get the orange circle indicating the microphone is on), the delegate method speechRecognitionTask(_:didFinishSuccessfully:) always returns false, but there is no particular error message to go along with this.

I also downloaded the official example from Apple's documentation pages: SpokenWord SFSpeechRecognition example project page

Unfortunately, it also does not work anymore.

I'm working on a time-sensitive project and don't know where to go from here. How can we troubleshoot this? If it's an issue with Apple's API update or something has changed in the initial setup, I really need to know as soon as possible.

Thanks.

Post not yet marked as solved Up vote post of KTRosenberg Down vote post of KTRosenberg
3.1k views
  • I've heard from another developer that some other SpeechRecognition apps are no longer working as expected, so this seems to be a bug.

  • I've confirmed that iOS 14.8 is still just fine on a spare non-upgraded iPad.

Add a Comment

Replies

It's possible that there's a data download for speech recognition needed after the update. If that's what's happening, speech recognition should start succeeding after the device has been connected to the Internet for a short while.

I'd suggest a bug report via Feedback Assistant. Please post the bug number here for reference.

  • Thanks for your reply.

    The device has been connected to the internet via WIFI for nearly 24-hours, so what you're suggesting seems a little strange to me. I have filed a bug report: FB9649632 (Potential Major Speech Framework Bug: SFSpeechRecognizer fails to start)

    I did not have an issue like this with iPadOS 14, but I assume there might've been much bigger changes for 15 considering the additional offline on-device support.

Add a Comment

We use the Speech framework in our app and a lot of users have emailed us saying that speech recognition is no longer working after updating to iOS 15. This is definitely a P0 bug for us as our app is completely broken for paying customers without Speech, but we can't reproduce at all so it's very frustrating.

I saw this on Twitter reporting speech recognition issues with Duolingo and iOS 15, so this feels like a major iOS bug: https://twitter.com/Wittyfan/status/1440599663149674500

Is there any update from Apple on this? @Polyphonic?

Any updates? I haven't received word via the bug report or code-level support request (the latter of which is kind of a waste).

Not a direct answer to the above question but wanted to post related SFSpeechRecognition issues in hope it might help others searching for speech recognition related issues popping out in iOS 15.

In our case users started reporting that after upgrading to iOS/iPadOS 15 speech recognition stopped working in our app. It wasn't widespread but there was an increasing number of reports.

Turns out Siri and Keyboard dictation settings can affect SFSpeechRecognition and wether it can perform recognition requests or not. Through logging and analytics events we were able to figure out our users were getting kLSRErrorDomain 201. The error message was fortunately descriptive enough (Siri and Dictation are disabled) to point us to Siri and Dictation settings and the figuring out some of our users had them turned off. Turning either off fixed the issue.

Linking a related forum post: https://developer.apple.com/forums/thread/690976

Hopefully any of the above can help other struggling with speech recognition issues happening after iOS 15.

  • In iOS 14 Siri and dictation didn’t need to be on for speech recognition to work. Do you mean “turning either off CAUSED the issue?” (not fixed). This seems really strange since many people don’t want the global Hey Siri functionality.

    Which settings specifically are you looking at? @adadas

Add a Comment

This is still a problem and unexpected behavior. Dictation or Siri need to be on for recognition to work again, seemingly (as @adadas said) , but iOS 14 had no such requirement. There is also no way to really prompt the user to activate this setting programmatically, and it puts undue burden on them when an app should just have its own permissions that the user approves/authorizes.

Tested on iOS 15.0.2 Enabling Dictation solved the error "Error Domain=kLSR ErrorDomain Code=201 "Siri and Dictation are disabled". Solution: Settings-> General -> Keyboards -> Last But one Section for options on available Keyboards -> Enable Dictation (Toggle it ON) -> Select all Applicable Keyboards.

We definitely need some API to check this permission or setting just like Speech recognition.

  • Yes, I agree. We need the API to prompt the user to make this change, either globally, or selectively for the application.

Add a Comment

Does requestSiriAuthorization() function programatically enabling Siri?