更新记录
1.0.0(2023-10-12)
首次上传
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.6.8,Android:不确定,iOS:不确定 |
× |
× |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
× |
× |
× |
× |
× |
× |
× |
× |
× |
GS-BaiduSpeech
开发文档
UTS 语法
UTS API插件
UTS 组件插件
Hello UTS
WakeUp.bin 生成教程
百度AI开放平台
使用示例
<template>
<view class="content">
<button type="primary" @tap="startWakeup">开始唤醒</button>
<button type="primary" @tap="stopWakeup">结束唤醒</button>
<view class=""> 唤醒词:{{word}} </view>
<button type="primary" @tap="startRecognize">开始识别</button>
<button type="primary" @tap="stopRecognize">结束识别</button>
<view class=""> 识别结果:{{recognizeWord}} </view>
</view>
</template>
<script>
import {Wakeup,Recognize} from '@/uni_modules/GS-BaiduSpeech';
// 在百度AI开放平台导出唤醒词文件 'WakeUp.bin',放在本项目的 'static/wakeup/'目录下,如不存在此目录就新建
let wordsFilePath = plus.io.convertLocalFileSystemURL("/static/wakeup/WakeUp.bin");
let bdWakeup = new Wakeup();
let bdRecognize = new Recognize();
export default {
data() {
return {
permissions:false,
word:"",
recognizeWord:"",
Options:{
"appid":"百度AI开放平台申请的appip",
"key":"百度AI开放平台申请的key",
"secret":"百度AI开放平台申请的secret",
"wordsFilePath": wordsFilePath
}
}
},
onLoad() {
this.openPermissions();
},
methods: {
// 打开麦克风权限
openPermissions(){
let _this = this;
plus.android.requestPermissions(
['android.permission.RECORD_AUDIO'],
function(resultObj) {
console.log(resultObj)
for (var i = 0; i < resultObj.granted.length; i++) {
var grantedPermission = resultObj.granted[i];
console.log('已获取的权限:' + grantedPermission);
_this.permissions = true;
}
},
function(error) {
console.log('申请权限错误:' + error.code + " = " + error.message);
}
);
},
// 开始唤醒
startWakeup(){
let _this = this;
if(!_this.permissions){
uni.showToast({title:"请打开麦克风权限",icon:"none"})
return;
}
bdWakeup.startWakeup(_this.Options,(res) => {
console.log("startWakeup: " ,res.name,res);
if (res.name == "wp.enter") {}
if (res.name == "wp.ready") {
console.log("等待唤醒")
}
if (res.name == "wp.data") {
const params = JSON.parse(res.params);
_this.word = params.word;
console.log("唤醒成功!唤醒词:",params.word)
}
if (res.name == "wp.exit") {
console.log("唤醒已停止")
}
if (res.name == "wp.error") {
const params = JSON.parse(res.params);
_this.word = "错误码:" + params.sub_error + "。请参考https://ai.baidu.com/ai-doc/SPEECH/elciq6awu";
}
})
},
// 停止唤醒
stopWakeup(){
let _this = this;
bdWakeup.stopWakeup()
},
// 语音识别
// 启动语音识别
startRecognize(){
let _this = this;
if(!_this.permissions){
uni.showToast({title:"请打开麦克风权限",icon:"none"})
return;
}
bdRecognize.startRecognize(_this.Options,(ret) => {
console.log("语音识别: " ,ret.name,ret);
if(ret.name == "asr.ready"){
console.log("可以开始说话")
}
if(ret.name == "asr.begin"){
console.log("已经开始说话")
}
if(ret.name == "asr.end"){
console.log("已经停止说话")
}
if(ret.name == "asr.volume"){
const params = JSON.parse(ret.params);
// console.log("当前音量:",params.volume,"音量的相对值",params['volume-percent'])
}
if(ret.name == "asr.partial"){
const params = JSON.parse(ret.params);
if(params.result_type == "final_result"){
console.log("最终结果:",params.results_recognition[0])
}
if(params.result_type == "partial_result"){
console.log("临时结果:",params.results_recognition[0])
}
_this.recognizeWord = params.results_recognition[0]
}
if(ret.name == "asr.exit"){
console.log("识别结束,资源释放")
}
})
},
// 停止语音识别
stopRecognize(){
let _this = this;
bdRecognize.stopRecognize()
},
}
}
</script>
<style>
.content {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
</style>
注意
错误码参考地址