必须严格遵循讯飞听见sdk官方集成路径:先注册获取appid并开通语音听写服务,再按规范导入jar包、so库(含arm64-v8a)及assets资源;配置gradle依赖与sourcesets;声明并动态申请record_audio等权限;最后在initlistener回调完成后再初始化speechrecognizer并设置iat、zh_cn、mandarin及asr_source=1参数调用识别。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Android项目中稳定接入讯飞听见语音识别SDK并实现可用的语音转写功能,必须严格遵循官方最新集成路径,避开常见so库加载失败、权限拒绝、初始化超时等高频故障点。
获取APPID与下载SDK
访问讯飞开放平台(https://www.xfyun.cn)注册开发者账号,登录后进入「我的应用」→「创建新应用」,平台选择「Android」,填写应用名称后提交。创建成功后,在应用详情页顶部【务必复制并保存APPID,后续任何初始化都不可替换】。
点击「添加服务」→勾选「语音听写(流式版)」→「确认开通」。返回「SDK下载」页,选择「讯飞听见语音识别SDK(Android)」,下载最新稳定版(非Beta),解压后得到完整目录结构。
项目结构配置
将解压包中 libs/ 目录下全部内容按类型归位:
① 把 Msc.jar 和 SpeechSDK.jar 复制到 Android Studio 项目 app/libs/ 目录下 → 右键 →「Add as Library」;
② 将 libs/armeabi-v7a/、libs/arm64-v8a/ 整个文件夹(含 libmsc.so 等)复制到 app/src/main/jniLibs/(注意是 jniLibs,不是 jni,且首字母 j 必须小写);
③ 将 assets/ 目录整体复制到 app/src/main/assets/,确保路径为 app/src/main/assets/speech/ 下存在资源文件;
这一步若漏掉 arm64-v8a 文件夹,真机(尤其是华为Mate系列、小米13/14等)会直接报 UnsatisfiedLinkError 崩溃,无法恢复。
Gradle依赖与构建配置
在 app/build.gradle 的 android { } 块内添加:
sourceSets { main { jniLibs.srcDirs = ['libs', 'src/main/jniLibs'] } }
在 dependencies { } 块中添加:
implementation files('libs/Msc.jar')
implementation files('libs/SpeechSDK.jar')
同步项目(Sync Now)。若出现「Duplicate class」错误,说明旧版 iflytek.jar 或其他冲突SDK残留,需彻底删除 libs/ 中重复JAR并清理 .gradle/caches/。
权限声明与动态适配
在 AndroidManifest.xml 的 <manifest></manifest> 根节点内添加以下权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
Android 6.0+ 设备必须在运行时申请 RECORD_AUDIO 权限。调用识别前执行:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, 1001); }
用户拒绝后,SDK不会抛异常但会静默失败,界面无提示——必须自行拦截 onRequestPermissionsResult 并弹窗引导设置。
初始化与语音识别调用
在 Application 类或主 Activity 的 onCreate() 中执行初始化:
SpeechUtility.createUtility(this, SpeechConstant.APPID + "你的APPID字符串");
初始化是异步过程,不能立即创建识别器。建议监听 InitListener 回调确认完成后再启用按钮。
创建识别器实例:
SpeechRecognizer mIat = SpeechRecognizer.createRecognizer(this, null);
设置关键参数:
mIat.setParameter(SpeechConstant.DOMAIN, "iat");
mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
mIat.setParameter(SpeechConstant.ACCENT, "mandarin");
mIat.setParameter(SpeechConstant.ASR_SOURCE, "1"); // 启用讯飞听见高精度模型
绑定识别监听器后调用 mIat.startListening(mRecoListener) 即可开始录音识别。











