模仿微信语音输入html,微信小程序语音识别、合成

网上前篇一律的微信小程序语音识别博客,在小程序api更新之后让莘莘学子看的一头雾水,这里只叙述前端的工作内容,毕竟朕也只是初出茅庐。

先送上预览图:

91068a7347bb790c8c499d469e0bf393.png

fde360996c767581b2f8f1acb21cc04d.png

先叙述下原理:

利用微信小程序api,录音结束后返回mp3文件;

90e9c9e0de9221bcc8feee45aefc5e22.png

使用方法请看:https://developers.weixin.qq.com/miniprogram/dev/api/getRecorderManager.html

e9de38ab93be4e6e7381991ccb7652f8.png

录音转换成文件的格式只有两种:acc mp3,所以网上老api返回的是silk格式的都是过时的。

切记:

16297a556166352bd2a7dc02b57ef1de.png

微信开发者工具拿到的MP3连接是不可用的,只有在真机上调试返回的是本地文件的路径,这个路径指向录音的mp3文件,是可以用的。

如此轻松的拿到mp3文件了,很简单吧~

接下来我们将利用百度语音识别合成api:http://ai.baidu.com/docs#/ASR-API/top

也许看的一头雾水,没事~

百度语音要求:

3147a372958b0f845bf6d37324004834.png

这里配置微信小程序录音api

96ab397661e990f51d36048930de0e6b.png

90db934dded74b1a45cf1e07ec843e46.png

配置后start的值为:

{

numberOfChannels: 1,

sampleRate:16000,

format: 'mp3',

frameSize: 50

}

这样录音后取到的mp3文件是百度语音想要的。

方式一 :是不是要问了百度语音识别不支持mp3格式啊,这就是java后台的事了,网上java mp3转pcm格式的博客数不胜数,让你的java后台去看百度语音api获取token顺便将转换后的pcm格式给转换成文字传给前台吧。

是不是百度一大堆的配置和前端没有关系了~

松了一口气~好强的前端当然可以拿到后台传输过来的pcm文件地址再去调百度api。

选择方式一跳过方式二,直接看再续。

方式二 :如果前端要去做的话,请看api详解:

8aa8ebb165187d3ced1f5e24fa6cd01c.png

151a2b662be06e68de428e8705b8c941.png

再续: 这样录音后的mp3文件就被转换成了文字。如果想要语音播放的功能,请继续往下看~很简单

微信小程序api:

wx.createInnerAudioContext(),地址:https://developers.weixin.qq.com/miniprogram/dev/api/createInnerAudioContext.html

看参数;

c6ff761e732a957a9018f027c65ee974.png

这里要的是src即是MP3的链接啊,我只拿到后台穿过来的文字啊。

对,百度语音合成API,不去百度官网看了,太简单了,奉上:

https://tsn.baidu.com/text2audio?tok=xxxx&cuid=867905025778863&ctp=1&spd=6&lan=zh&tex=xxxx;

tok:百度语音token,  (获取请看额外篇)

text:你想要播报的文字。

这是一个完整的mp3链接,调用微信小程序api可直接播放。

额外:百度token的获取;

/*百度语音合成获取token*/

export let getBaiDuToken=()=>{

return new Promise((resolve)=>{

wx.request({

url: 'https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=xxxxxxxx&client_secret=xxxxxxxxxx',

method:'GET',

success: function(r){

resolve(r);

},

fail(res){

wx.showToast({

title:"百度语音合成获取token接口错误",

icon:'none'

});

}

})

});

};

这里的client_id和client_secret是注册百度语音识别平台在控制台中创建应用获取的。

9e20a1dcfe7f5db5e2d01cef27fa9d5e.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值