语音识别 |
您所在的位置:网站首页 › 百度怎么发音频 › 语音识别 |
实现前端录音,将音频blob传给服务器,然后在服务器端使用百度AI语音识别将结果返回给前端 上一篇文章是将百度AI语音识别Nodejs SDK版的进行了一遍演示加识别结果返回给前端显示,这里是完整的进行前端录音,然后将压缩后的音频对象Blob传给服务器,在服务端使用百度AI语音识别,最后将识别结果返回给前端进行显示。 本篇调用的是第三方库Recorder.js,如何调用该库捕获HTML5中的WAV音频并将其上传到服务器或者本地下载,可以查看这篇博客,不过它讲解的是上传到PHP服务端,这里我改成了基于Node搭建的Websocket服务器。 这是本篇博客的语音识别结果: 查看文档知道了我想要的信息,如果想要实现实时语音识别、长时间段的语音、唤醒词功能、语义解析功能,需要使用Android、IOS SDK或者Linux C++ SDK版本,而我使用的Nodejs SDK是不支持的。 1、规格参数要求语音时长上线为60s,超出讲返回错误 原始录音文件为pcm、wav或者amr格式,不区分大小写,推荐使用pcm 录音采样率为16000,声道为单通道 支持普通话、英文、粤语、四川话 项目结构调用百度AI平台语音识别的Nodejs SDK,查看文档快速入门,可以查看如何调用。 首先将nodejs-sdk下载下来,下载后将目录里的speech文件夹拷贝到你的项目文件夹中,其中assets是存放录音音频的地方,然后进入node文件夹下的位置进行安装依赖包: npm install我的项目文件夹目录如下: 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 ├─ package.json └─ style.css然后在node文件夹里的index.html是我的客户端文件,main.js是我的服务端文件。 搭建Websocket服务器在main.js文件里搭建websocket服务器,首先安装相关依赖模块: npm i ws -S然后搭建: let Server = require('ws').Server; const wss = new Server({ port: 9001 }) // 连接服务器 wss.on('connection', ws => { console.log('server connected'); }) ws.on('error', error => { console.log('Error:' + error); }) ws.on('close', () => { console.log('Websocket is closed'); }) }) // 断开连接 wss.on('disconnection', ws => { ws.on('message', msg => { console.log('server recived msg:' + msg); }) })然后在index.html中: let ws = new WebSocket('ws://localhost:9001') |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |