Is there a way to use iOS speech recognition in offline mode?

一曲冷凌霜 提交于 2019-11-27 02:36:41

问题


I want to know if there's a way to use iOS speech recognition in offline mode. According to the documentation (https://developer.apple.com/reference/speech) I didn't see anything about it.


回答1:


I am afraid that there is no way to do it (however, please make sure to check the update at the end of the answer).

As mentioned at the Speech Framework Official Documentation:

Best Practices for a Great User Experience:

Be prepared to handle the failures that can be caused by reaching speech recognition limits. Because speech recognition is a network-based service, limits are enforced so that the service can remain freely available to all apps.


As an end user perspective, trying to get Siri's help without connecting to a network should displays a screen similar to:

Also, When trying to send a massage -for example-, you'll notice that the mike button should be disabled if the device is unconnected to a network.

Natively, the iOS itself won't able this feature until checking network connection, I assume that would be the same for the third-party developer when using the Speech Framework.


UPDATE:

After watching Speech Recognition API Session (especially, the part 03:00 - 03:25) , I came up with:

Speech Recognition API usually requires an internet connection, but there are some of new devices do support this feature all the time; You might want to check whether the given language is available or not.

Adapted from SFSpeech​Recognizer Documentation:

Note that a supported speech recognizer is not the same as an available speech recognizer; for example, the recognizers for some locales may require an Internet connection. You can use the supported​Locales() method to get a list of supported locales and the is​Available property to find out if the recognizer for a specific locale is available.


Further Reading:

These topics might be related:

  • Which iOS devices support​ offline speech recognition?
  • How to Enable Offline Dictation on Your iPhone?
  • Will Siri ever work offline?



回答2:


Offline transcription will be available starting in iOS 13. You enable it with requiresOnDeviceRecognition.

Example code (Swift 5):

// Create and configure the speech recognition request.
recognitionRequest = SFSpeechAudioBufferRecognitionRequest()
guard let recognitionRequest = recognitionRequest else { fatalError("Unable to create a SFSpeechAudioBufferRecognitionRequest object") }
recognitionRequest.shouldReportPartialResults = true

// Keep speech recognition data on device
if #available(iOS 13, *) {
    recognitionRequest.requiresOnDeviceRecognition = true
}


来源:https://stackoverflow.com/questions/42900254/is-there-a-way-to-use-ios-speech-recognition-in-offline-mode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!