0.0.4 • Published 6 years ago
webvoice v0.0.4
webvoice
一个网页语音对讲库。
使用
npm install webvoice --save
设计
采集
- 通过
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
并进行播放
Document
音频格式浏览器支持情况
内容\浏览器 | 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矩阵点) |
参考资料
0.0.4
6 years ago