0.0.4 • Published 5 years ago

webvoice v0.0.4

Weekly downloads
5
License
Apache
Repository
github
Last release
5 years ago

webvoice

一个网页语音对讲库。

使用

npm install webvoice --save

设计

npm.io

采集

  1. 通过MediaDevices.getUserMedia()进行语音采集
  2. 需要在https的环境下调用
  3. 把麦克风数据塞给 MediaStreamAudioSourceNode

编码

  1. 建立ScriptProcessNode处理节点
  2. 把建立的 MediaStreamAudioSourceNode 连接到 ScriptProcessNode 然后连接到 AudioContext.destination
  3. ScriptProcessNodeonaudioprocess 事件中处理 Buffer
  4. Buffer 进行压缩和 wav 编码

传输

  1. 通过websocket加密方式进行传输

处理

  1. 任意后台进行数据处理 node/java/c#/c++
  2. 然后转发到目的地
  3. 把结果通过websocket发送出来

接收

  1. 通过websocket进行接收

解码

  1. 通过 AudioContextdecodeAudioData 方法对 wav 格式音频文件解码

播放

  1. 构建AudioBufferSourceNode节点
  2. 连接到 AudioContext.destination 并进行播放

Document

API

音频格式浏览器支持情况

内容\浏览器ChromeIEFireFoxSafariOpera
<audio>4.09.03.54.010.5
mp3YYYYY
wavYNYYY
oggYNYNY

媒体类型

文件类型媒体类型文件大小
mp3audio/mpeg
oggaudio/ogg
wavaudio/wav1B=取样频率x量化位数x声道x时间/8

声音参数

类型值范围
量化位数8位、16位、24位
取样频率11025Hz(11kHz)、22050Hz(22kHz)、44100Hz(44kHz)
声道单声道(nx1矩阵点)、立体声(nx2矩阵点)

参考资料

网页音频接口的基本概念