更新记录
1.0.2(2023-11-12)
支持引用APK内部语音包
1.0.1(2023-05-04)
解决与其他插件编译冲突的问题
1.0.0(2022-12-07)
首次发布
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.1 - 10.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
离线语音识别插件(基于VOSK封装)
注意
本插件只是基于VOSK-API对语音识别功能进行了封装,并不包括语音识别的语音包,语音包需要单独下载。
下载地址:https://alphacephei.com/vosk/models
使用方式一(引用APK外部语音包)
-
引用插件
const testModule = uni.requireNativePlugin("firefly-vosk")
-
下载语音包(如果有的话,可跳过)
testModule.downloadModel( "http://192.168.0.105:8080/test/vosk-model-small-cn-0.22.zip", // 下载地址 "vosk-model-small-cn-0.22.zip", // 下载后,存放的文件名称 (result) => { modal.toast({ message: result.data, // 这个是下载后zip文件的存放位置 duration: 2 }); } );
-
解压语音包(如果已解压,可跳过)
testModule.unzipModel( “xxxx”, // 第2步获取的zip文件位置 "vosk-model-small-cn", // 解压要存放的文件夹名称 (result) => { modal.toast({ message: result.data, // 解压后,语音模型的文件夹 duration: 2 }); } );
-
初始化语音模型(识别之前必须要初始化)
testModule.init( { "modelFilePath" : "xxxxxx" // 第3步解压后的文件夹 }, (result) => { modal.toast({ message: result.msg, duration: 2 }); } );
-
启动语音识别并获取结果
testModule.startMic(); // 启动定时任务,每隔500毫秒,获取语音识别结果 setInterval(() => { testModule.getResult((ret) => { console.log(ret.data) if (ret.data.partial != "") { console.log(ret.data.final + ret.data.partial) } if (ret.data.result != "") { console.log(ret.data.final + ret.data.result) } }); }, 500);
-
停止语音识别
// 停止之前,最好延迟一下,避免识别不全 setTimeout(() => { testModule.stopMic() }, 2000);
使用方式二(引用APK内部语音包)
-
引用插件
const testModule = uni.requireNativePlugin("firefly-vosk")
-
HBuilder中添加语音包
将语音包(zip格式的文件),放到HBuilder项目的static目录下。
注意:云打包超过40M是要收费的,所以打自定义基座的时候,先不要把语音包(zip格式的文件)放到static目录下,等打完自定义基座再放。
-
初始化语音模型
testModule.init({ // static目录下压缩包的名字(默认为vosk-model-small-cn.zip),压缩文件要放到static目录下 "zipFileName" : "vosk-model-small-cn.zip", // 解压之后文件夹名称,如非必要请不要修改 "modelName" : "vosk-model-small-cn" }, (result) => { // result.data是压缩包解压之后的路径,为了避免每次初始化都解压缩, // 前端可把这个路径放到localStorage中, // 下次初始化的时候,直接把这个路径传过去,参数格式参照方式一的第4步 console.log(result.data); modal.toast({ message: result.msg, duration: 2 }); });
-
启动语音识别并获取结果
testModule.startMic(); // 启动定时任务,每隔500毫秒,获取语音识别结果 setInterval(() => { testModule.getResult((ret) => { console.log(ret.data) if (ret.data.partial != "") { console.log(ret.data.final + ret.data.partial) } if (ret.data.result != "") { console.log(ret.data.final + ret.data.result) } }); }, 500);
-
停止语音识别
// 停止之前,最好延迟一下,避免识别不全 setTimeout(() => { testModule.stopMic() }, 2000);