Android 讯飞离线语音听写/离线语音识别SDK
平台
Android + 讯飞离线语音SDK
SDK包
下载路径及方法见讯飞官方SDK文档:
离线语音听写 Android SDK 文档 #
在开发者控制台, 可以直接下载SDK.
SDK包中的文件结构
~/Downloads/Android_esriat_exp1143_5a2b58b9$ tree
.
├── assets 带UI需要用到的一些图片等资源
│ └── iflytek
│ ├── recognize.xml
│ ├── voice_bg.9.png
│ ├── voice_empty.png
│ ├── voice_full.png
│ ├── waiting.png
│ └── warning.png
├── libs JNI库能JAR包, 只支持v7, v8 64
│ ├── arm64-v8a
│ │ └── libmsc.so
│ ├── armeabi-v7a
│ │ └── libmsc.so
│ └── Msc.jar
├── readme.txt
├── release.txt
├── res SDK资源
│ ├── asr
│ ├── iat
│ │ ├── common.jet
│ │ └── sms_16k.jet
│ ├── ivw
│ ├── layout
│ │ └── ifly_layout_mnotice_image.xml
│ ├── tts
│ └── xtts
└── sample 参考DEMO└── mscV5PlusDemo├── build.gradle├── libs│ ├── arm64-v8a│ │ └── libmsc.so│ ├── armeabi-v7a│ │ └── libmsc.so│ └── Msc.jar├── lint.xml├── msc.cfg└── src└── main├── AndroidManifest.xml├── assets│ ├── asr│ ├── call.bnf│ ├── grammar_sample.abnf│ ├── iat│ ├── iattest.wav│ ├── iflytek│ │ ├── recognize.xml│ │ ├── voice_bg.9.png│ │ ├── voice_empty.png│ │ ├── voice_full.png│ │ ├── waiting.png│ │ └── warning.png│ ├── ivw│ ├── layout│ │ └── ifly_layout_mnotice_image.xml│ ├── tts│ ├── userwords│ ├── wake.bnf│ ├── wake_grammar_sample.abnf│ └── xtts├── java│ └── com│ └── iflytek│ ├── mscv5plusdemo│ │ ├── AsrDemo.java│ │ ├── IatDemo.java│ │ ├── IvwActivity.java│ │ ├── MainActivity.java│ │ ├── OneShotDemo.java│ │ ├── SpeechApp.java│ │ ├── TtsDemo.java│ │ └── WakeDemo.java│ └── speech│ ├── setting│ │ ├── IatSettings.java│ │ └── TtsSettings.java│ └── util│ ├── FucUtil.java│ ├── JsonParser.java│ ├── SettingTextWatcher.java│ └── XmlParser.java└── res├── drawable│ ├── cancel_button.xml│ ├── list_bg_color.xml│ ├── main_setting_btn_np.xml│ ├── ok_button.xml│ ├── setting.png│ └── setting_p.png├── drawable-hdpi│ ├── bg.png│ ├── btn_left_f.9.png│ ├── btn_left_n.9.png│ ├── btn_left_p.9.png│ ├── btn_left.xml│ ├── btn_right_f.9.png│ ├── btn_right_n.9.png│ ├── btn_right_p.9.png│ ├── btn_right.xml│ ├── button_login.xml│ ├── cancel.9.png│ ├── cancel_p.9.png│ ├── editbox.9.png│ ├── edittext_name.9.png│ ├── head.png│ ├── icon.png│ ├── login.png│ ├── login_p.png│ ├── mic_0.png│ ├── mic_1.png│ ├── mic_2.png│ ├── mic_3.png│ ├── name_left.png│ ├── name_right.png│ ├── ok.9.png│ ├── ok_d.9.png│ ├── ok_p.9.png│ ├── pane_bg.9.png│ └── superman.9.png├── drawable-ldpi│ └── icon.png├── drawable-mdpi│ └── icon.png├── layout│ ├── iatdemo.xml│ ├── isrdemo.xml│ ├── ivw_activity.xml│ ├── list_items.xml│ ├── main.xml│ ├── oneshot_activity.xml│ ├── title.xml│ ├── ttsdemo.xml│ └── wake_activity.xml├── values│ ├── colors.xml│ ├── dimen.xml│ ├── strings.xml│ └── styles.xml└── xml├── iat_setting.xml├── tts_setting.xml└── understand_setting.xml42 directories, 101 files
使用
首先可以尝试使用SDK中的DEMO, 将Sample下的mscV5PlusDemo导入到Android Studio中,
~/StudioProjects/TestCodes/mscV5PlusDemo$ ll
total 612
drwxrwxr-x 5 anson anson 4096 3月 14 10:43 ./
drwxrwxr-x 20 anson anson 4096 3月 14 10:37 ../
-rw-rw-r-- 1 anson anson 836 3月 14 09:14 build.gradle
drwxrwxr-x 4 anson anson 4096 3月 14 10:07 libs/
-rw-rw-r-- 1 anson anson 53 3月 14 09:14 lint.xml
-rw-rw-r-- 1 anson anson 5517 3月 14 09:14 msc.cfg
drwxrwxr-x 3 anson anson 4096 3月 14 10:07 src/
PS: 需要打开 android.useAndroidX=true配置, 有可能还需解决一些JDK版本不支持LAMBA语法的支持,这里略过.
运行:
一个小插曲: SDK中的DEMO运行离线识别时, DEMO居然报错了??
2022-03-14 10:56:34.643 18483-18483/com.iflytek.mscv5plusdemo W/System.err: java.io.FileNotFoundException: iat/common.jet
2022-03-14 10:56:34.643 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.content.res.AssetManager.nativeOpenAssetFd(Native Method)
2022-03-14 10:56:34.643 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.content.res.AssetManager.openFd(AssetManager.java:966)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.cloud.util.ResourceUtil.a(SourceFile:11)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.cloud.util.ResourceUtil.generateResourcePath(SourceFile:4)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.mscv5plusdemo.IatDemo.getResourcePath(IatDemo.java:358)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.mscv5plusdemo.IatDemo.setParam(IatDemo.java:326)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.mscv5plusdemo.IatDemo.onClick(IatDemo.java:116)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.view.View.performClick(View.java:7312)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.view.View.performClickInternal(View.java:7286)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.view.View.access$3600(View.java:838)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.view.View$PerformClick.run(View.java:28242)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.os.Handler.handleCallback(Handler.java:900)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.os.Handler.dispatchMessage(Handler.java:103)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.os.Looper.loop(Looper.java:219)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.app.ActivityThread.main(ActivityThread.java:8668)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
2022-03-14 10:56:34.644 18483-18483/com.iflytek.mscv5plusdemo W/System.err: java.io.FileNotFoundException: iat/sms_16k.jet
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.content.res.AssetManager.nativeOpenAssetFd(Native Method)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.content.res.AssetManager.openFd(AssetManager.java:966)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.cloud.util.ResourceUtil.a(SourceFile:11)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.cloud.util.ResourceUtil.generateResourcePath(SourceFile:4)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.mscv5plusdemo.IatDemo.getResourcePath(IatDemo.java:360)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.mscv5plusdemo.IatDemo.setParam(IatDemo.java:326)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.iflytek.mscv5plusdemo.IatDemo.onClick(IatDemo.java:116)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.view.View.performClick(View.java:7312)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.view.View.performClickInternal(View.java:7286)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.view.View.access$3600(View.java:838)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.view.View$PerformClick.run(View.java:28242)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.os.Handler.handleCallback(Handler.java:900)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.os.Handler.dispatchMessage(Handler.java:103)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.os.Looper.loop(Looper.java:219)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at android.app.ActivityThread.main(ActivityThread.java:8668)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
2022-03-14 10:56:34.645 18483-18483/com.iflytek.mscv5plusdemo W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
有两个文件找不到: iat/common.jet 和 iat/sms_16k.jet
这两个文件在SDK包中的:
Android_esriat_exp1143_5a2b58b9/res/iat/
total 32020
drwxr-xr-x 2 anson anson 4096 3月 14 09:14 ./
drwxr-xr-x 8 anson anson 4096 3月 14 09:14 ../
-rw-r--r-- 1 anson anson 9781778 3月 14 09:14 common.jet
-rw-r--r-- 1 anson anson 22994400 3月 14 09:14 sms_16k.jet
找到并把这两个文件拷贝到项目相应的目录下: src/main/assets/iat/
完整文件目录结构如下:
├── build.gradle
├── libs
│ ├── arm64-v8a
│ │ └── libmsc.so
│ ├── armeabi-v7a
│ │ └── libmsc.so
│ └── Msc.jar
├── lint.xml
├── msc.cfg
└── src└── main├── AndroidManifest.xml├── assets│ ├── asr│ ├── call.bnf│ ├── grammar_sample.abnf│ ├── iat│ │ ├── common.jet│ │ └── sms_16k.jet│ ├── iattest.wav│ ├── iflytek│ │ ├── recognize.xml│ │ ├── voice_bg.9.png│ │ ├── voice_empty.png│ │ ├── voice_full.png│ │ ├── waiting.png│ │ └── warning.png│ ├── ivw│ ├── layout│ │ └── ifly_layout_mnotice_image.xml│ ├── tts│ ├── userwords│ ├── wake.bnf│ ├── wake_grammar_sample.abnf│ └── xtts├── java│ └── com│ └── iflytek│ ├── mscv5plusdemo│ │ ├── AsrDemo.java│ │ ├── IatDemo.java│ │ ├── IvwActivity.java│ │ ├── MainActivity.java│ │ ├── OneShotDemo.java│ │ ├── SpeechApp.java│ │ ├── TtsDemo.java│ │ └── WakeDemo.java│ └── speech│ ├── setting│ │ ├── IatSettings.java│ │ └── TtsSettings.java│ └── util│ ├── FucUtil.java│ ├── JsonParser.java│ ├── SettingTextWatcher.java│ └── XmlParser.java└── res├── drawable│ ├── cancel_button.xml│ ├── list_bg_color.xml│ ├── main_setting_btn_np.xml│ ├── ok_button.xml│ ├── setting.png│ └── setting_p.png├── drawable-hdpi│ ├── bg.png│ ├── btn_left_f.9.png│ ├── btn_left_n.9.png│ ├── btn_left_p.9.png│ ├── btn_left.xml│ ├── btn_right_f.9.png│ ├── btn_right_n.9.png│ ├── btn_right_p.9.png│ ├── btn_right.xml│ ├── button_login.xml│ ├── cancel.9.png│ ├── cancel_p.9.png│ ├── editbox.9.png│ ├── edittext_name.9.png│ ├── head.png│ ├── icon.png│ ├── login.png│ ├── login_p.png│ ├── mic_0.png│ ├── mic_1.png│ ├── mic_2.png│ ├── mic_3.png│ ├── name_left.png│ ├── name_right.png│ ├── ok.9.png│ ├── ok_d.9.png│ ├── ok_p.9.png│ ├── pane_bg.9.png│ └── superman.9.png├── drawable-ldpi│ └── icon.png├── drawable-mdpi│ └── icon.png├── layout│ ├── iatdemo.xml│ ├── isrdemo.xml│ ├── ivw_activity.xml│ ├── list_items.xml│ ├── main.xml│ ├── oneshot_activity.xml│ ├── title.xml│ ├── ttsdemo.xml│ └── wake_activity.xml├── values│ ├── colors.xml│ ├── dimen.xml│ ├── strings.xml│ └── styles.xml└── xml├── iat_setting.xml├── tts_setting.xml└── understand_setting.xml
再次运行, 成功!!
参考
SDK说明
Android 讯飞离线语音听写/离线语音识别SDK相关推荐
- Android讯飞语音云语音听写学习
讯飞语音云语音听写学习 这几天两个舍友都买了iPhone 6S,玩起了"Hey, Siri",我依旧对我的Nexus 5喊着"OK,Google".但种种原因, ...
- Android——讯飞语音唤醒简介及实现
前段时间写了一个关于百度语音唤醒文章,最近有做了一个讯飞语音的应用,在这里把学习的资料整理一下. 唤醒的整个过程如下: (图源自讯飞官网) 讯飞的语音唤醒功能实现起来挺方便的(相比百度,百度语音And ...
- 讯飞社区android 源码,android 讯飞语音 demo
[实例简介] android 讯飞语音 demo 博客地址:http://blog.csdn.net/chenshufei2/article/details/8496905 [实例截图] [核心代码] ...
- Unity 讯飞实时语音转写(二)—— 接收转写结果
目录 Unity 讯飞实时语音转写(一)-- 使用WebSocket连接讯飞语音服务器 Unity 讯飞实时语音转写(二)-- 接收转写结果 Unity 讯飞实时语音转写(三)-- 分析转写结果 正文 ...
- 讯飞智能语音鼠标G50:AI语音、转写翻译、记录截图一键搞定!
随着互联网的发展,智能鼠标已经成为我们生活和工作中不可或缺的组成部分.然而,鼠标滚轮异响.按键失灵.驱动难用.手感不合适等一系列问题仍时有发生,所以选择一款智能鼠标尤为重要,它不仅可以提高我们的工作效 ...
- android 讯飞语音 提示组件未安装,讯飞语音听写API 未安装组件 错误码21001
在使用讯飞语音听写时,使用云端听写而不是使用本地出现这个未安装组件错误那可能就是so文件没有成功导入.文档中都是ADT环境的配置,在AndroidStudio中jar包等都和ADT差别不大,但是SO文 ...
- Android讯飞语音集成【在线语音合成2】
前言: 语音合成: 与语音听写相反,语音合成是将一段文字转换为语音,可根据需要合成出不同音色.语速和语调的声音,让机器像人一样开口说话 效果图: 2.直接上代码,配置不再重复说明了: ①.TTSAct ...
- android 讯飞语音引擎3.0默认粤语播报
粤语语音引擎apk及粤语资源包 android 6.0 平台老人机需求设备默认支持粤语离线播报,在网上找了许多资料都没有价值. 发现讯飞的TTS3.0联网下载粤语包后可以完美支持.然后尝试反编译和预置 ...
- Android 讯飞语音开发
*本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 前段时间火了一个很牛的讯飞语音,去看官方文档,瞬间蒙逼,官方是用的eclipse,我用的Android Studio.好了,能上代 ...
最新文章
- 07 分支管理 —— Feature分支
- 乐观锁 -业务判断 解决高并发问题
- Struts2.3.4.1+Spring3.2.3+Hibernate4.1.9整合
- CD marker 是什么?
- GDCM:读取和打印DICOM的属性的测试程序
- delphi查看源码版本_[Mybatis]-IDEA导入Mybatis源码
- 简洁UI好玩的文字转换emoji表情微信小程序支持句子词语转换_源码
- 【ElasticSearch】ElasticSearch在数十亿级别数据下,如何提高查询效率? 性能优化
- PAT排名汇总(排序)
- 使用sphinx+reStructuredText制作文档
- 以后 博文 要做 中文对照,利于国际化,利于自己熟悉英语。
- poj2391 Ombrophobic Bovines 拆点连边要注意
- freeswitch1.10.7 安装部署排坑
- 伸缩门遥控器c语言程序,伸缩门遥控器匹配方法是什么呢? 如何学会电动门的遥控编码...
- git使用meld的方法
- 解决 jack server is not running
- 加速器 (Accelerator or Offload Engine)
- 解决PS等软件出现应用程序无法正常启动(0xc000007b)
- 微信视频服务器能保存多久,微信视频动态保存多久(微信背景视频只能一天吗)...
- Codeblocks 新建操作(单c文件新建和c工程创建)