外观
如何使用 SpeechRecognizer 实现离线语音转文字?
标准回答
API 31 及以上先调用 SpeechRecognizer.isOnDeviceRecognitionAvailable 检查端侧识别服务,再用 createOnDeviceSpeechRecognizer 创建,设置监听器并按所需语言开始识别。仍需设备/服务支持该语言及相应模型;仅设置 RecognizerIntent.EXTRA_PREFER_OFFLINE 只是离线偏好,识别器可能忽略它。
通俗例子
用户在飞机模式说话,若离线模型未安装就可能失败。先检查端侧能力与语言支持,再提供文字输入等替代方式。
深入解释
**离线支持由谁提供:**SpeechRecognizer 是系统识别服务的客户端接口,具体识别引擎和离线语言资源由设备环境提供。调用一个偏好参数并不保证所有设备都离线识别。
**怎样设计可用流程:**先检查目标设备能力,测试断网与所需语言,监听错误并提供重试或触摸输入。语音识别出的文字还需要后续意图理解,不等于动作已确定。
参考资料
内容来源
- Android · AI Agent 知识手册 · 原条目
22.4.1