一个网页语音对讲库。
- 通过
MediaDevices.getUserMedia()
进行语音采集 - 需要在
https
的环境下调用 - 把麦克风数据塞给
MediaStreamAudioSourceNode
- 建立
ScriptProcessNode
处理节点 - 把建立的
MediaStreamAudioSourceNode
连接到ScriptProcessNode
然后连接到AudioContext.destination
- 在
ScriptProcessNode
的onaudioprocess
事件中处理Buffer
- 把
Buffer
进行压缩和wav
编码
- 通过
websocket
加密方式进行传输
- 任意后台进行数据处理
node/java/c#/c++
- 然后转发到目的地
- 把结果通过
websocket
发送出来
- 通过
websocket
进行接收
- 通过
AudioContext
的decodeAudioData
方法对wav
格式音频文件解码
- 构建
AudioBufferSourceNode
节点 - 连接到
AudioContext.destination
并进行播放
内容\浏览器 | Chrome | IE | FireFox | Safari | Opera |
---|---|---|---|---|---|
<audio> |
4.0 | 9.0 | 3.5 | 4.0 | 10.5 |
mp3 | Y | Y | Y | Y | Y |
wav | Y | N | Y | Y | Y |
ogg | Y | N | Y | N | Y |
文件类型 | 媒体类型 | 文件大小 |
---|---|---|
mp3 | audio/mpeg | |
ogg | audio/ogg | |
wav | audio/wav | 1B=取样频率x量化位数x声道x时间/8 |
类型 | 值范围 |
---|---|
量化位数 | 8位、16位、24位 |
取样频率 | 11025Hz(11kHz)、22050Hz(22kHz)、44100Hz(44kHz) |
声道 | 单声道(nx1矩阵点)、立体声(nx2矩阵点) |