【发布时间】:2019-08-08 22:58:42
【问题描述】:
我正在尝试使用 Web Audio Api 播放声音。
我的数据是代表麦克风电压数字电平的数字序列。 (它只是数字数组,[2348, 2360, 2380, 2354...])。我的数据以 3kHz 频率采样。
是否可以使用 Web Audio Api 或类似的框架从这些数据中播放声音?
【问题讨论】:
标签: javascript html5-audio web-audio-api
我正在尝试使用 Web Audio Api 播放声音。
我的数据是代表麦克风电压数字电平的数字序列。 (它只是数字数组,[2348, 2360, 2380, 2354...])。我的数据以 3kHz 频率采样。
是否可以使用 Web Audio Api 或类似的框架从这些数据中播放声音?
【问题讨论】:
标签: javascript html5-audio web-audio-api
您也许可以做到这一点。音质可能不是很好,具体取决于一些细节。
让data 成为您拥有的数字数组。然后您可以执行以下操作:
context = new AudioContext({sampleRate: 3000});
b = new AudioBuffer({length: data.length, sampleRate: 3000})
b.copyToChannel(data, 0, 0);
s = new AudioBufferSourceNode(context, {buffer: b})
但是,浏览器不要求支持低采样率 为 3000。所需的最低速率为 8 kHz。因此,建设 AudioContext 或 AudioBuffer 可能会失败。
【讨论】:
s.start() 开始播放。
s.connect(context.destination) 才能听到任何声音。并且归一化可以在源节点之后使用增益节点来完成。