更新记录

1.0.0(2023-10-12)

首次上传


平台兼容性

Vue2 Vue3
×
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>

注意

错误码参考地址

隐私、权限声明

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

<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

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

插件使用的百度 SDK会采集数据,详情可参考:https://ai.baidu.com/ai-doc/SPEECH/Ek39uxgre

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

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问