采用前端录音,Websocket搭建Node服务器,音频对象Blob使用Websocket传给后端服务器后写入本地音频文件,然后调用百度AI语音识别本地音频文件,最后将识别结果传给前端显示。
百度语音识别
查看文档知道了我想要的信息,如果想要实现实时语音识别、长时间段的语音、唤醒词功能、语义解析功能,需要使用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
├─ RecordRTC.js
├─ 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'