我想知道是否有一种在离线模式下使用iOS语音识别的方法。根据文件(https://developer.apple.com/reference/speech),我没有看到任何相关内容。
答案 0 :(得分:18)
我担心没有办法去做(但是,请确保在答案结尾处检查更新)。
正如Speech Framework Official Documentation所述:
良好用户体验的最佳实践:
准备好应对达到语音识别限制可能导致的失败。 因为语音识别是基于网络的服务,所以限制是 强制执行,以便所有应用程序都可以免费使用该服务。
作为最终用户的观点,尝试在不连接网络的情况下获取 Siri的帮助应显示类似于以下的屏幕:
此外,当尝试发送按摩时 - 例如 - 您会注意到如果设备未连接到网络,则应禁用麦克风按钮。
在本地,iOS本身在检查网络连接之前无法使用此功能,我认为在使用语音框架时第三方开发人员也是如此。
看完Speech Recognition API Session后(特别是03:00~03:25),我想出了:
语音识别API 通常 需要互联网连接,但有些新设备始终支持此功能;您可能想要检查给定的语言是否可用。
改编自SFSpeechRecognizer Documentation:
请注意,支持的语音识别器与a不同 可用的语音识别器;例如,某些人的识别器 区域设置可能需要Internet连接。你可以使用 获取受支持的语言环境列表的
supportedLocales()
方法isAvailable
属性以查明特定的识别器 语言环境可用。
进一步阅读:
这些主题可能是相关的:
答案 1 :(得分:2)
离线转录将从iOS 13开始可用。您可以使用requiresOnDeviceRecognition
启用它。
// 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
}