进行录音
initRecorderManager(){
// 微信自带语音初始化
this.data.recorderManager = wx.getRecorderManager();
// 监听录音开始事件
this.data.recorderManager.onStart(() => {
console.log('录音开始');
});
// 监听录音暂停事件
this.data.recorderManager.onPause(() => {
console.log('录音暂停');
});
// 监听录音继续事件
this.data.recorderManager.onResume(() => {
console.log('录音继续');
});
// 监听录音结束事件
// 监听录音结束事件
this.data.recorderManager.onStop((res:any) => {
// 将res.tempFilePath传入speechToText 进行转换
console.log('录音结束', res);
this.setData({
audioSrc: res.tempFilePath
});
// 获取accessToken的接口
fly.get('wechat/getAccessToken').then((res: { code: number; data: any; }) => {
if (res.code == 200) {
this.setData({
accessToken: res.data
});
speechToText(this.data.accessToken,this.data.audioSrc).then((resf:any) => {
console.log('resf',resf);
// this.setData({
// res:
// })
})
}else{
wx.showToast({
title: '网络错误',
icon: 'error',
duration: 2000
})
}
});
});
// 监听录音错误事件
this.data.recorderManager.onError((res:any) => {
console.error('录音错误', res.errMsg);
});
},
提交语音
- 先以提交音频的形式来上传到微信服务器进行处理
- 在通过接口获取转成文字的数据
示例
// 封装语音转文本
// accessToken是根据appid,AppSecret获取到的token
// formatPath是录音地址
const speechToText = (accessToken:string,formatPath:string) => {
return new Promise<any>((resolve, reject) => {
let voice_id = generateUUID()
// 1.
wx.uploadFile({
url: `https://api.weixin.qq.com/cgi-bin/media/voice/addvoicetorecofortext?access_token=${accessToken}&format=mp3&voice_id=${voice_id}&lang=zh_CN`,
filePath: formatPath,
name: 'voice',
success: function(res:any) {
// 上传成功后的状态码 errcode:0 的时候表示成功了
console.log('success',JSON.parse(res.data).errcode);
if(JSON.parse(res.data).errcode == 0){
// 2.成功后获取
wx.request({
method: 'POST',
url: `https://api.weixin.qq.com/cgi-bin/media/voice/queryrecoresultfortext?access_token=${accessToken}&voice_id=${voice_id}&lang=zh_CN`,
success: function(resf:any) {
var text = resf.data.text;
// 处理识别结果,识别成功后的文件返回
resolve(text)
},
fail:(err)=> {
console.log('speechToTextrequest',err);
}
});
}
},
fail:(err)=> {
console.log('speechToText',err);
}
});
})
}
// 生成一个随机的 uuID
function generateUUID() {
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
var uuid = '';
for (var i = 0; i < 32; i++) {
var index = Math.floor(Math.random() * chars.length);
uuid += chars.charAt(index);
}
return uuid;
}
标签:文字,console,log,程序实现,res,录音,微信,voice,data
From: https://www.cnblogs.com/imxiaoxin/p/17931144.html