更新记录

1.0.0(2025-10-16)

安卓讯飞离线命令词识别(新版)UTS原生插件是根据讯飞AIkit命令词识别 Android SDK 文档开发的插件,插件功能为用户对设备(手机、玩具、家电等)说出操作指令(即“命令词”),设备即作出相应的反馈,开启语音交互,支持的语种有中文、英文,插件UTS开发,支持uniapp和uniapp x


平台兼容性

uni-app(4.51)

Vue2 Vue2插件版本 Vue3 Vue2插件版本 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
1.0.0 1.0.0 × × - - 5.0 × -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × ×

uni-app x(4.51)

Chrome Safari Android Android插件版本 iOS 鸿蒙 微信小程序
× × 5.0 1.0.0 × - ×

其他

多语言 暗黑模式 宽屏模式
× ×

插件介绍

安卓讯飞离线命令词识别(新版)UTS原生插件是根据讯飞AIkit命令词识别 Android SDK 文档开发的插件,插件功能为用户对设备(手机、玩具、家电等)说出操作指令(即“命令词”),设备即作出相应的反馈,开启语音交互,支持的语种有中文、英文,插件UTS开发,支持uniapp和uniapp x

用法:

在需要使用插件的页面加载以下代码

  import * as module from "@/uni_modules/leven-uts-xfCmdWord"

使用文档

插件方法

  • 申请插件所需权限
  • 检查是否有所有文件访问权限
  • 跳转到所有文件访问权限页面
  • 初始化SDK
  • 注册能力监听回调
  • 初始化引擎
  • 释放引擎
  • 开始会话
  • 结束会话
  • 释放资源

具体方法的使用请参考使用说明文档

页面内容参考

     <template>
   <view>
     <button type="primary" @click="start(2)">录音方式识别</button>
     <button type="primary" @click="start(1)">录音文件识别</button>
   </view>
 </template>

 <script>
   import {
     initConfig
   } from '../../utils/sdkConfig';

   // const module = uni.requireNativePlugin("leven-xfSdk-CmdWordModule");
   import * as module from "@/uni_modules/leven-uts-xfCmdWord"
   export default {
     data() {
       return {

       }
     },
     mounted() {
       this.initData();
     },
     beforeDestroy() {
       //释放资源
       module.destroy({
         //执行能力,可以为空,为空的话默认为初始化sdk的ability
         ability: initConfig.ability,
         //个性化资源key
         key: "FSA",
         //个性化资源索引
         index: 0,
       }, res => {
         console.log("释放资源")
       })
     },
     methods: {
       //初始化数据
       initData() {
         //注册能力监听回调
         this.registerListener();
         //初始化引擎
         this.engineInit();
       },
       //注册能力监听回调
       registerListener() {
         module.registerListener({
           ability: initConfig.ability
         }, res => {
           console.log("识别数据:" + JSON.stringify(res))
           if (res.code == 0) {
             //判断监听数据
             let type = res.data.type;
             if (type == "onResult") {
               //识别结果
               let outputData = res.data.outputData;
               let handleID = res.data.handleID;
               if (outputData != null && Array.isArray(outputData)) {
                 for (let i = 0; i < outputData.length; i++) {
                   let outputDataValue = outputData[i];
                   //引擎结果的key
                   let key = outputDataValue.key;
                   /**
                    * key的取值以及含义
                    * pgs:progressive格式的结果,即可以实时刷屏
                    * htk:带有分词信息的结果,每一个分词结果占一行
                    * plain:类比于htk,把一句话结果中的所有分词拼成完整一句,若有后处理,则也含有后处理的结果信息,plain是每一段话的最终结果
                    * vad:语音端点检测结果(需要打开vad功能才会返回)bg:前端点,ed:后端点。单位:帧(10ms)
                    * readable:json格式的结果。
                    */
                   //识别结果字节
                   let value = outputDataValue.value;
                   //识别结果字符串
                   let valueString = outputDataValue.valueString;
                   console.log("handleID:" + handleID)
                   console.log("key:" + outputDataValue.key)
                   if (key.indexOf("pgs") >= 0 || key.indexOf("plain") >= 0) {
                     console.log("key:" + valueString)
                   }
                 }

                 if (outputData.length > 0 && outputData[0].status == 2) {
                   //识别完成
                   console.log("识别完成")
                   module.finish(res1 => {})
                 }
               }
             } else if (type == "onEvent") {
               //事件回调
               let event = res.data.event;
               let eventData = res.data.eventData;
             } else if (type == "onError") {
               //错误回调
               let err = res.data.err;
               let msg = res.data.msg;
             }
           }
         })
       },
       /**
        * 初始化引擎
        * 注意:在初始化引擎成功以后,如果需要重新初始化引擎,需要调用一次engineUnInit释放引擎
        * 接口可参考插件文档
        */
       engineInit() {
         module.engineInit({
           //执行能力,可以为空,为空的话默认为初始化sdk的ability
           ability: initConfig.ability,
           decNetType: "fsa",
           punishCoefficient: 0.0,
           wfst_addType: 0 //0.中文,1.英文
         }, res => {
           console.log(res.code == 0 ? "初始化成功" : "初始化失败")
         })
       },
       //开始会话
       start(type) {
         module.start({
           //命令词文件路径
           fsaPath: initConfig.workDir + "CNENESR/fsa/cn_fsa.txt",
           //语种类型,0:中文, 1:英文
           languageType: 0,
           //开启vad,true:开启, false:关闭
           vadOn: true,
           //vad子句连接,true:开启, false:关闭
           vadLinkOn: false,
           //子句分割时间间隔,中文建议60,英文建议75,最小值:0, 最大值:100
           vadEndGap: 60,
           //解码控制beam的阈值,中文建议20,英文建议25,最小值:0, 最大值:100
           beamThreshold: 20,
           //解码Gram阈值,建议值3000,最小值:1, 最大值:10000
           hisGramThreshold: 3000,
           //vad后段点,最小值:0, 最大值:999999
           vadSpeechEnd: 80,
           //vad前端点,最小值:0, 最大值:999999
           vadResponsetime: 1000,
           //后处理开关,true:开启, false:关闭
           postprocOn: false,
           //vad能力阈值
           vadEnergyThreshold: 9,
           //vad阈值
           vadThreshold: 0.1332,
           //执行能力,可以为空,为空的话默认为初始化sdk的ability
           ability: initConfig.ability,
           //个性化资源key
           key: "FSA",
           //个性化资源索引
           index: 0,
           //启动会话方式,1.录音文件,2.录音器
           type: type,
           //录音文件,type=1时必传
           audioPath: "/storage/emulated/0/iflytek/20250224_105858.m4a"
         }, res => {
           console.log("开始识别")
           console.log(res)
         })
       }
     }
   }
 </script>

 <style>

 </style>

购买说明

  • 购买插件前请先试用,试用通过再购买。在试用中如果遇到任何问题,可与作者联系,将全力协助你使用本插件。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android.permission.WRITE_EXTERNAL_STORAGE android.permission.MANAGE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE android.permission.RECORD_AUDIO android.permission.INTERNET

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 讯飞离线命令词识别SDK会采集数据,详情可参考:https://www.xfyun.cn/doc/asr/AIkit_commandWord/Android-SDK.html

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。