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

Flutter speech_to_text插件在Android端无识别输出问题求助

你遇到的识别无返回问题和控制台的命名空间映射、启动页弃用警告无关,这些警告不会影响语音识别功能正常运行,可按以下优先级排查修复:

  • 优先检查运行环境
    Android原生模拟器默认未内置语音识别服务,会出现仅触发提示音但无识别结果的问题,可直接使用实体Android设备测试,若需在模拟器运行,需刷入Google Play服务并安装Google App启用语音识别能力。
  • 补全动态权限申请
    Android 6.0及以上版本中录音权限属于高危权限,仅在AndroidManifest.xml中声明不会生效,需要在初始化语音识别前主动申请权限,可借助permission_handler插件实现:
// 先在pubspec.yaml中添加permission_handler依赖
import 'package:permission_handler/permission_handler.dart';

void _initSpeech() async {
  // 先申请麦克风权限
  PermissionStatus micStatus = await Permission.microphone.request();
  if (micStatus.isGranted) {
    _speechEnabled = await _speechToText.initialize();
  } else {
    _speechEnabled = false;
    // 可自行添加权限被拒的提示逻辑
  }
  setState(() {});
}
  • 补全listen调用参数
    当前调用listen方法未指定识别语言、结果返回规则,部分设备默认语言与你输入语音语言不匹配时也不会返回结果,可修改调用逻辑:
void _startListening() async {
  await _speechToText.listen(
    onResult: _onSpeechResult,
    localeId: 'zh_CN', // 识别中文填写zh_CN,识别英文填写en_US
    partialResults: true, // 开启实时返回识别过程中的临时结果
    listenFor: const Duration(seconds: 30), // 自定义最长识别时长
  );
  setState(() {});
}
  • 添加调试日志确认回调触发
    可在结果回调中增加打印,确认识别逻辑是否正常触发回调:
void _onSpeechResult(SpeechRecognitionResult result) {
  print('识别回调触发,返回内容:${result.recognizedWords}');
  setState(() {
    _lastWords = result.recognizedWords;
  });
}

内容的提问来源于stack exchange,提问作者Aida Qilah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:06:07