更新记录

1.3.0(2024-10-09) 下载此版本

删除多余代码

1.2.0(2024-10-08) 下载此版本

优化加密逻辑,避免有些版本的hbuildex运营不了

1.1.0(2024-09-05) 下载此版本

修复ios兼容问题,修复多次识别异常问题,优化代码,去除回调地狱

查看更多

平台兼容性

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

<view>

<button @tap="startRecord">开始录音</button>

<button @tap="endRecord">停止录音</button>

<div>

<div>一句话识别结果:</div>

<div>{{ result }}</div>

</div>

</view>

</template>

<script>

// @ts-ignore

const recorderManager = uni.getRecorderManager();

import tool from './tool.js';

const { authForApp } = require('./appPermission');

// @ts-ignore

export default {

data() {

return {

// 填入secretKey和secretId就可以直接使用了

secretKey: '',

secretId: '',

appId: '',

voicePath: '',

// 一句话录音结果

result: '',

// 更多参数参考腾讯文档,全部兼容

defaultData: {

EngSerViceType: '16k_zh',

SourceType: 1,

VoiceFormat: 'mp3',

Data: '',

DataLen: null

},

base64Header: {

mp3: 'data:audio/mpeg;base64,',

wav: 'data:audio/x-wav;base64,',

pcm: 'data:application/PCM;base64,'

}

};

},

onLoad() {

this.dealStop();

},

mounted() {

authForApp('麦克风权限');

},

methods: {

startRecord() {

console.log('开始录音');

// 录音类型要跟defaultData.VoiceFormat保存一致,pcm的情况下录音的入参要传大写PCM

recorderManager.start();

},

endRecord() {

console.log('录音结束');

recorderManager.stop();

},

async dealStop() {

recorderManager.onStop(async path => {

console.log('%c监听录音结束 Line:47 🍖 res', 'color:#465975', path);

// 获取临时路径

this.voicePath = path.tempFilePath;

console.log('%c Line:59 🍰 this.voicePath', 'color:#4fff4B', this.voicePath);

// 临时路径转base64

let base64 = await tool.pathToBase64(this.voicePath);

base64 = base64.replace(this.base64Header[this.defaultData.VoiceFormat], '');

console.log('%c Line:55 🌮 base64', 'color:#f5ce50', base64);

// base64录音内容

this.defaultData.Data = base64;

// 录音长度

this.defaultData.DataLen = uni.base64ToArrayBuffer(base64).byteLength;

console.log('%c Line:60 🍺 this.defaultData.DataLen', 'color:#2eafb0', this.defaultData.DataLen);

const { secretId, secretKey, defaultData } = this;

// 只需要传入secretId + secretKey +

// payload =》腾讯云一句话识别官方文档的入参

// 直接返回识别结果

const res = await tool.sendVoice({

secretId,

secretKey,

payload: defaultData

});

this.result = res.Response.Result;

console.log('%c Line:58 🍕 res', 'color:#3f7cff', res);

});

}

}

};

</script>

隐私、权限声明

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

录音权限

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

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

许可协议

MIT协议

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