微信小程序目前录音仅能生成 mp3和acc两种格式,而百度语音识别,讯飞语音识别都不支持mp3和acc的;
最后发现腾讯云和阿里云支持mp3,反正用的是腾讯的小程序,将就着用腾讯的接口咯
不想解说了,直接说流程+代码+注释吧
准备:
1.小程序账号(appid)
2.腾讯云控制后台申请语音识别服务(获取SecretId 和SecretKey),对应代码中的马赛克,自行替换
不建议直接搬代码就用,所以多少看下接口文档吧
主要流程:
一、小程序录音及临时路径获取
二、根据临时读取录音文件并转换成base64编码
三、调用语音识别接口(submit())
-
参数获取
-
加密并获取签名(需要用到hmac_sha1加密,找了挺久才找到的,在最下面)
-
发送请求
const app = getApp();
const recorder = wx.getRecorderManager();
const player = wx.createInnerAudioContext();
const file = wx.getFileSystemManager();
var that;
Page({
/**
* 页面的初始数据
*/
data: {
apikey: '马赛克',
secret_id:'马赛克',
token:"",
recording: false,
cancel_record:false,
start_y: '',
fileBase64: '', //base64的文件
rate: 8000,
filePath: '',//录音文件
fileLen:0,//录音长度
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
that = this;
//先定好停止录音后要干嘛
recorder.onStop(function suc(e) {
//保存录音文件的临时路径
that.setData({
filePath: e.tempFilePath,
})
wx.setStorageSync('filePath', e.tempFilePath);
//友好的菊花加载
wx.showLoading({
title: '文件读取中...'