实现前端录音,并将音频blob传输到服务器,然后服务器使用百度AI语音识别将结果返回给前端。更多内容请关注GitHub。上一篇是演示百度AI语音识别NodejsSDK版,并将识别结果返回给前端显示。这里是一段完整的前端录音,然后将压缩后的音频对象Blob传给服务器,在服务器端使用百度AI语音识别,最后将识别结果返回给前端显示。本文调用第三方库Recorder.js,如何调用这个库在HTML5中抓取WAV音频上传到服务器或者下载到本地,可以查看这篇博客,但是里面说明了上传到PHP服务器,这里我换成了一个基于Node.js的Websocket服务器。这是本博客的语音识别结果:百度语音识别查文档就知道我要的信息了。如果要实现实时语音识别、长时语音、唤醒词功能、语义分析功能,需要使用Android和IOSSDK或者LinuxC++SDK版本,我使用的NodejsSDK不支持它。1、规格参数要求语音时长为60s上线,超过则录音原文件为pcm、wav或amr格式,不区分大小写。推荐使用pcm录音,采样率16000,单声道支持普通话、英语、粤语、四川话项目结构在百度AI平台调用NodejsSDK进行语音识别,具体调用方式可以查看通过查看快速入门文档。首先下载nodejs-sdk,下载完成后将目录下的speech文件夹复制到你的项目文件夹下,其中assets是存放录音音频的地方,然后进入node文件夹下的位置安装依赖包:npminstallMy项目文件夹目录如下:audio_asr_baidu├─package-lock.json└─speech├─.gitignore├─assets│├─16k_test.pcm│└─recorder.wav├─cpp│├─.gitignore│├─README。md│├─build.sh│└─main.cpp└─node├─.gitignore├─README.md├─index.html├─main.js├─node_modules├─package-lock.json├─包。node文件夹中的json└─style.css和index.html是我的客户端文件,main.js是我的服务端文件。搭建Websocket服务器在main.js文件中搭建websocket服务器,先安装相关依赖模块:npmiws-S然后build:letServer=require('ws').Server;constwss=newServer({port:9001})//连接到服务器wss.on('connection',ws=>{console.log('serverconnected');})ws.on('error',error=>{console.log('Error:'+error);})ws.on('close',()=>{console.log('Websocketisclosed');})})//断开wss.on('disconnection',ws=>{ws.on('message',msg=>{console.log('serverrecivedmsg:'+msg);})})然后在index.html中:让ws=newWebSocket('ws://localhost:9001');ws.onopen=e=>{console.log('Connectiontoserveropened');}启动服务:nodemain.js可以看到这样的打印信息在控制台上://客户端打印信息:Connectiontoserveropened//在服务器上打印信息:serverconnected前端录音客户端实现录音后,将压缩后的音频对象blob发送到服务器:
