我想知道是否有办法在离线模式下使用iOS语音识别。根据文档(https://developer.apple.com/reference/speech),我没有看到任何相关内容。
我想知道是否有办法在离线模式下使用iOS语音识别。根据文档(https://developer.apple.com/reference/speech),我没有看到任何相关内容。
很抱歉,目前没有方法可以做到这一点(但请确保查看答案末尾的更新)。
为提供出色的用户体验而实施的最佳实践:
准备好处理可能由于达到语音识别极限而引起的故障。因为语音识别是基于网络的服务,因此会执行限制, 以便该服务可供所有应用程序免费使用。
从终端用户的角度来看,如果未连接到网络,则尝试获取Siri的帮助应显示类似以下屏幕:
此外,当尝试发送短信时,您会注意到如果设备未连接到网络,则麦克风按钮会被禁用。
原生iOS本身不会在检查网络连接之前启用此功能。我认为第三方开发者使用Speech Framework也是如此。
观看语音识别API会话(特别是03:00 - 03:25的部分)后,我得出结论:
语音识别API通常需要Internet连接,但有一些新设备始终支持此功能;您可能需要检查所提供的语言是否可用。
请注意,支持的语音识别器与可用的语音识别器不同。例如,某些区域设置的识别器可能需要互联网连接。 您可以使用
supportedLocales()
方法获取受支持的区域设置列表,使用isAvailable
属性查找特定区域设置的识别器是否可用。
更多阅读:
这些主题可能相关:
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
}