You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置SFSpeechAudioBufferRecognitionRequest端上识别属性时遇1101错误求助

解决SFSpeechAudioBufferRecognitionRequest requiresOnDeviceRecognition=true时的1101错误

错误原因分析

Error Code 1101属于kAFAssistantErrorDomain,核心原因是设备未正确安装或加载离线语音识别模型——即便SFSpeechRecognizer.supportsOnDeviceRecognition返回true,也可能存在模型未下载、损坏或加载异常的情况。

解决方案

1. 检查并重新下载离线语音模型

  • 打开iPhone「设置」→「通用」→「键盘」→「语音」→「下载语音」
  • 找到当前App使用的语言(如简体中文、英文),确认对应离线模型已完成下载
  • 若已下载,可尝试删除后重新下载,排除模型损坏问题

2. 调整音频会话模式

你的代码中使用了.measurement音频会话模式,该模式对资源调用有严格限制,不适合离线语音识别场景,建议修改为.spokenAudio模式:

try audioSession.setCategory(.record, mode: .spokenAudio, options: .duckOthers)

.spokenAudio是专门针对语音交互优化的模式,能更好适配离线识别需求。

3. 延迟启动音频引擎(适配iOS 16小版本bug)

iOS 16.0.2存在离线模型加载延迟的问题,可在设置requiresOnDeviceRecognition后短暂延迟再启动音频引擎:

request.requiresOnDeviceRecognition = true
// 添加0.5秒延迟,确保模型加载完成
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
    do {
        try audioEngine.start()
    } catch {
        // 处理引擎启动错误
    }
}

注意调整代码结构,将audioEngine.start()移至延迟闭包中,避免同步启动导致模型未就绪。

4. 确认App权限配置

确保Info.plist中已正确添加以下权限:

  • NSMicrophoneUsageDescription:说明麦克风使用场景
  • NSSpeechRecognitionUsageDescription:说明语音识别使用场景
    权限缺失可能间接导致离线识别初始化失败。

5. 升级系统版本

iPhone X的iOS 16.0.2存在离线识别的小版本bug,建议升级至iOS 16.x系列的最新正式版,苹果通常会在后续版本修复这类模型加载问题。


内容的提问来源于stack exchange,提问作者Laur Stefan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 13:21:27