更新记录

1.0.1(2025-01-11) 下载此版本

更新使用方式文档,修复web使用的bug

1.0.0(2025-01-10) 下载此版本

开发火山引擎语音识别


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
11 53 × × 53 × 79 68 11

yue-asr-bt

功能介绍

字节跳动火山引擎的流式语音识别,支持android和web的流式输出,解决app上录音不支持分片的功能

基础配置

请将模块下static目录的资源放到项目的static目录下面

//内部语音对象创建
this.recorder = new RecorderManager(path + 'static/dist')

请放置路径正确

1.权限问题

当前项目打包在app上面,需要配置系统权限

<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

对于android应用,基于安全权限,请在调用时动态申请危险权限

// #ifdef APP
plus.android.requestPermissions(["android.permission.RECORD_AUDIO"], (e) => {}, (e) => {})
// #endif

2.支持问题

1.在uniapp 在app上不支持录音分片(截止到2025-01-01)为了解决这个问题,底层使用了renderjs

使用了web相关的技术。

2.内置录音采用 MediaDevices接口,不兼容ie浏览器、夸克浏览器和uc浏览器,其他浏览器兼容性具体文档可参考 https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices

3.浏览器测试时,请改为移动端模式。

使用demo

<template>
    <view class="content">
        <view placeholder="转文字" class="inputarea">
            {{msg}}
        </view>
        <view class="down-ui" v-if="downed" :style="{backgroundColor:downtime==-1?'#e43d33':'#1acf3b'}">
            <!-- 效果显示 -->
            <view v-if="downtime==-1">
                建立连接中
            </view>
            <view v-else>
                语音倒计时
                <text style="color: red;">{{downtime}} </text>
            </view>
        </view>

        <button class="btn-bottom" :disabled="disabled" @touchstart.stop="start" @touchend.stop="end">按下说话</button>

        <yue-asr-bt ref="yueAsrRefs" :options="optionsbt" @countDown="countDown" @result="resultMsg" @onStop="onStop"
         @onOpen="onOpen" @change="change"></yue-asr-tx>
    </view>
</template>

<script>
    export default {
        data() {

            let second = 60;
            return {
                title: 'Hello',
                msg: '转文字',
                optionsbt: {
    receordingDuration: second,
    APPID: '',
    API_SECRET: '',//Secret Key
    API_KEY: '' //  Access Token
},
                downtime: -1, //默认-1
                downed: false,
                disabled: false,
            };
        },
        onLoad() {
            // #ifdef APP
            plus.android.requestPermissions(["android.permission.RECORD_AUDIO"], (e) => {}, (e) => {})
            // #endif
        },
        methods: {

            resumeUi() {
                this.downed = false;
                this.downtime = -1;
                this.disabled = false;
            },

            start() {
                if (this.disabled) {
                    return;
                }
                console.log("开始")
                this.downed = true;
                this.$refs.yueAsrRefs.start();
                this.disabled = true;
                //建立连接
            },
            end() {
                console.log("结束")
                this.$refs.yueAsrRefs.end();
            },
            countDown(e) {
                console.log('countDown', e);
                this.downtime = e;
            },
            onStop(e) {
                console.log('onStop', e);
                this.resumeUi();
            },
            onOpen(e) {
                console.log('onOpen', e);
            },
            change(e) {
                console.log('change', e);
            },
            resultMsg(e) {
                this.msg = e
                console.log('resultMsg', e);
            }
        }
    };
</script>

<style>
    .btn-bottom {
        width: 100vw;
        position: absolute;
        bottom: 0px;
    }
    .inputarea {
        text-align: left;
        color: red;
        height: 200rpx;
        border: 1px solid #ccc;
        margin: 10rpx;
        border-radius: 10rpx;
        padding: 5rpx;
        overflow-y: scroll;
    }

    .down-ui {
        height: 100px;
        width: 100%;
        position: absolute;
        bottom: 50px;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
    }
</style>

隐私、权限声明

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

<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

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

插件不采集任何数据

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

许可协议

MIT协议

暂无用户评论。

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