蒙特雷错误 102 上的 SFSpeechRecognizer

Rod*_*igo 7 macos sfspeechrecognizer

我已更新到 macOS Monterrey,但我的 SFSPeechRecognizer 代码刚刚损坏。如果我尝试为 macOS 配置离线语音识别器,我会收到此错误

\n
Error Domain=kLSRErrorDomain Code=102 "Failed to access assets" UserInfo={NSLocalizedDescription=Failed to access assets, NSUnderlyingError=0x6000003c5710 {Error Domain=kLSRErrorDomain Code=102 "No asset installed for language=es-ES" UserInfo={NSLocalizedDescription=No asset installed for language=es-ES}}}\n
Run Code Online (Sandbox Code Playgroud)\n

这是演示项目中的代码片段:

\n
private func process(url: URL) throws {\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0speech = SFSpeechRecognizer.init(locale: Locale(identifier: "es-ES"))\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0speech.supportsOnDeviceRecognition = true\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0let request = SFSpeechURLRecognitionRequest(url: url)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0request.requiresOnDeviceRecognition = true\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0request.shouldReportPartialResults = false\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0speech.recognitionTask(with: request) { result, error in\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0guard let result = result else {\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0if let error = error {\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0print(error)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0return\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0}\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0return\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0}\n\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0if let error = error {\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0print(error)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0return\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0}\n\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0if result.isFinal {\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0print(result.bestTranscription.formattedString)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0}\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0}\n\xc2\xa0\xc2\xa0}\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试过使用不同的语言(es-ES、en-US),但每次都显示相同的错误。

\n

关于如何安装这些资产或如何解决这个问题有什么想法吗?

\n

Con*_*ous 0

问题是您强制它离线运行。

request.requiresOnDeviceRecognition = true

此功能需要 A12 仿生、M1 或更新的 SoC,因为它们具有神经引擎。在没有神经引擎的设备上,您需要在Apple的服务器上执行语音识别。