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

Android SpeechRecognizer中文识别失效问题求助

问题分析与解决步骤

1. 修正错误的RecognizerIntent参数设置

你当前的参数配置存在核心错误,多个参数被错误赋值为语言代码,正确的配置逻辑如下:

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
// 语言模型必须使用系统预定义常量,而非语言代码
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
// 设置目标识别语言
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "zh-CN");
// 设置语言偏好
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE, "zh-CN");
// 传入当前应用包名,而非语言代码
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getPackageName());
// 强制优先使用离线识别(触发已下载语言包的关键参数)
intent.putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE, true);

关键说明:

  • EXTRA_LANGUAGE_MODEL仅能填LANGUAGE_MODEL_FREE_FORM或LANGUAGE_MODEL_WEB_SEARCH,不能直接设置语言代码
  • EXTRA_PREFER_OFFLINE必须添加,否则系统会优先尝试在线识别,若区域受限或服务不可用会直接报错

2. 分设备适配方案

(1)API 34 Pixel 8 模拟器(错误码12:ERROR_LANGUAGE_NOT_SUPPORTED)

  • 确认模拟器已安装Google移动服务(GMS),纯AOSP模拟器不支持Google离线语音识别功能
  • 进入模拟器「设置」→「系统」→「语言和输入法」→「语音」→「离线语音识别」,检查「中文(中国大陆)」语言包是否已下载并启用
  • 尝试替换语言代码为cmn-Hans-CN,部分新版本GMS对精确语言代码的校验更严格

(2)Android 11 OnePlus 6T 真机(错误码5:ERROR_CLIENT)

  • 检查应用是否已获取RECORD_AUDIO权限,且在系统设置中开启了麦克风权限
  • 清除Google应用缓存:进入「设置」→「应用和通知」→「全部应用」→「Google」→「存储」→「清除缓存」
  • 切换默认语音识别引擎:进入「设置」→「语言和输入法」→「语音」→「默认语音识别引擎」,选择「Google语音识别」(避免OnePlus自带语音服务冲突)

3. 验证系统支持的语音语言

使用正确的广播逻辑获取支持语言列表,排查系统兼容性:

private void checkSupportedLanguages() {
    Intent detailsIntent = new Intent(RecognizerIntent.ACTION_GET_LANGUAGE_DETAILS);
    sendOrderedBroadcast(detailsIntent, null, new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Bundle results = getResultExtras(true);
            if (results != null) {
                ArrayList<String> supportedLangs = results.getStringArrayList(RecognizerIntent.EXTRA_SUPPORTED_LANGUAGES);
                String preferredLang = results.getString(RecognizerIntent.EXTRA_LANGUAGE_PREFERENCE);
                Log.d("SpeechDebug", "支持语言列表: " + supportedLangs);
                Log.d("SpeechDebug", "偏好语言: " + preferredLang);
            }
        }
    }, null, Activity.RESULT_OK, null, null);
}
  • 若广播无响应,说明当前设备默认语音引擎不支持该接口,可直接通过Google语音设置页面确认已下载的语言包

4. Android 6 Nexus 5X 识别质量优化

  • 下载最新版本的中文离线语言包,旧版本模型识别精度较低
  • 切换语言模型为LANGUAGE_MODEL_WEB_SEARCH,部分场景下该模型的离线识别效果更稳定
  • 尽量在安静环境下测试,避免麦克风干扰

内容的提问来源于stack exchange,提问作者Andrey Starenky

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:58:28