Android 讯飞离线语音听写/离线语音识别SDK

平台

Android + 讯飞离线语音SDK

SDK包

下载路径及方法见讯飞官方SDK文档:
离线语音听写 Android SDK 文档 #

在开发者控制台, 可以直接下载SDK.

Android 讯飞离线语音听写/离线语音识别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.xml

42 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语法的支持,这里略过.

运行:

Android 讯飞离线语音听写/离线语音识别SDK

Android 讯飞离线语音听写/离线语音识别SDK

一个小插曲: SDK中的DEMO运行离线识别时, DEMO居然报错了??

Android 讯飞离线语音听写/离线语音识别SDK
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.jetiat/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说明

Original: https://blog.csdn.net/ansondroider/article/details/123470879
Author: ansondroider
Title: Android 讯飞离线语音听写/离线语音识别SDK

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/497650/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球