更新记录
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>
购买说明
- 购买插件前请先试用,试用通过再购买。在试用中如果遇到任何问题,可与作者联系,将全力协助你使用本插件。