【问题标题】:Playing sequence of numbers as sound in JavaScript/Web Audio Api在 JavaScript/Web Audio Api 中播放数字序列作为声音
【发布时间】:2019-08-08 22:58:42
【问题描述】:

我正在尝试使用 Web Audio Api 播放声音。

我的数据是代表麦克风电压数字电平的数字序列。 (它只是数字数组,[2348, 2360, 2380, 2354...])。我的数据以 3kHz 频率采样。

是否可以使用 Web Audio Api 或类似的框架从这些数据中播放声音?

【问题讨论】:

    标签: javascript html5-audio web-audio-api


    【解决方案1】:

    您也许可以做到这一点。音质可能不是很好,具体取决于一些细节。

    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 可能会失败。

    【讨论】:

    • 数组中的数字也需要归一化到范围[-1, 1]。我认为您还需要致电s.start() 开始播放。
    • 是的,我遗漏了一些细节。还需要s.connect(context.destination) 才能听到任何声音。并且归一化可以在源节点之后使用增益节点来完成。
    • 它更像是哔声而不是声音。它是否应该至少接近记录的内容?还是因为这种低采样率而预期?你知道任何其他可以从这些数据中播放声音的工具吗?
    • 你必须提供更多信息才能让任何人说出它是否应该发出哔哔声。一个 jsfiddle 或 codepen 或任何你的例子都会有很长的路要走。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多