有没有办法在离线模式下使用iOS语音识别?

时间:2017-03-20 09:44:55

标签: ios swift speech-recognition apple-speech

我想知道是否有一种在离线模式下使用iOS语音识别的方法。根据文件(https://developer.apple.com/reference/speech),我没有看到任何相关内容。

2 个答案:

答案 0 :(得分:18)

我担心没有办法去做(但是,请确保在答案结尾处检查更新)

正如Speech Framework Official Documentation所述:

  

良好用户体验的最佳实践:

     

准备好应对达到语音识别限制可能导致的失败。   因为语音识别是基于网络的服务,所以限制是   强制执行,以便所有应用程序都可以免费使用该服务。

作为最终用户的观点,尝试在不连接网络的情况下获取 Siri的帮助应显示类似于以下的屏幕:

enter image description here

此外,当尝试发送按摩时 - 例如 - 您会注意到如果设备未连接到网络,则应禁用麦克风按钮。

enter image description here

在本地,iOS本身在检查网络连接之前无法使用此功能,我认为在使用语音框架时第三方开发人员也是如此。

<强>更新

看完Speech Recognition API Session后(特别是03:00~03:25),我想出了:

语音识别API 通常 需要互联网连接,但有些新设备始终支持此功能;您可能想要检查给定的语言是否可用。

改编自SFSpeech​Recognizer Documentation

  

请注意,支持的语音识别器与a不同   可用的语音识别器;例如,某些人的识别器   区域设置可能需要Internet连接。你可以使用   获取受支持的语言环境列表的supported​Locales()方法   is​Available属性以查明特定的识别器   语言环境可用。


进一步阅读:

这些主题可能是相关的:

答案 1 :(得分:2)

离线转录将从iOS 13开始可用。您可以使用requiresOnDeviceRecognition启用它。

示例代码(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
}