基于阿里云实现简单的语音识别功能

本文介绍了如何利用阿里云的语音识别服务在前端实现语音识别功能。通过JavaScript录音,将PCM格式的音频数据发送到后端,再由后端调用阿里云API进行识别。前端采用fetch API发送二进制数据,后端使用Node.js处理并转发给阿里云服务。此外,还探讨了将二进制数据转换为Base64编码在JSON中传递的方法。
摘要由CSDN通过智能技术生成

前面了解过纯js实现了录音功能,并也自学了一些关于前端二进制的内容,现在终于可以利用阿里云来实现下智能语音识别的功能了。

一、准备

首先,先登录阿里云官网查看下官方文档(一句话识别),提供了java,c++,ios等,可惜我只会些node啊,所以直接看下restful api,毕竟node也是可以发送http请求的嘛。

功能介绍中阐明了产品的功能,也说明了使用的一些条件,比如POST方式、不超过一分钟,当然重要的还是音频编码格式和音频采样率的限制。这儿我使用PCM格式,和16k的音频采样率。

回看我前面用js实现的录音文件,我们只需要使用他的encodePCM()接口就行了。

二、直接传递二进制

前端部分

html与js

简单的用两个按钮实现开始录音和结束录音,第三个按钮实现上传到服务器翻译的功能,最后页面上设置个div存放翻译的内容。

js部分的话,引入recorder.js文件(在纯js实现录音与播放里有)。全局定义了两个变量,一个是对div的引用和录音对象的引用。var oDiv = document.getElementById('box'),recoder = null;

首先看下开始录音的函数,function startRecord() {

if (!recorder) {

recorder = new Recorder({

sampleRate: 16000 // 阿里云要求16000的采样率

});

}

recorder.start();

}

停止比较简单,只需要调用对应的stop()接口就行了,function endRecord (e) {

recorder && recoder.stop();

}

将得到的blob数据放在formdata中,以post的方式发送给后端,content-type得设置成multipart/form-data。function transRecord (e) {

let pcm = recorder.getPCMBlob(),formdata = new FormData();

formdata.append('file',pcm);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值