webvoice
v0.0.4
Published
a web voice solution for browser
Readme
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矩阵点)|
