gpt4 book ai didi

javascript - 是否可以在图表末尾提取原始数据?

转载 作者:行者123 更新时间:2023-11-29 20:49:39 25 4
gpt4 key购买 nike

我正在探索 Web Audio api,试图将 api 的某些方面调整到我正在使用的非 web 框架中(将通过 Emscripten 为 web 编译)。

采用以下代码:

  var audioCtx = new AudioContext();

// imagine I've called getUserMedia and have the stream from a mic.
var source = audioCtx.createMediaStreamSource(stream);

// make a filter to alter the input somehow
var biquadFilter = audioCtx.createBiquadFilter();
// imagine we've set some settings

source.connect(biquadFilter);

假设我想获取输入流被 BiQuadFilter(或任何其他过滤器)更改后的原始数据。有什么办法吗?据我所知,看起来 AnalyserNode 可能是我正在寻找的,但理想情况下,如果可能的话,从图表的末尾拉出一个缓冲区会很棒。

如有任何提示或建议,我们将不胜感激。

最佳答案

有两种方法...

脚本处理器节点

您可以使用通常用于在您自己的代码中处理数据的 ScriptProcessorNode 来简单地记录原始的 32 位浮点 PCM 音频数据。

此节点是否输出任何内容取决于您。出于方便起见,我通常将输入数据复制到输出,但这会产生轻微的开销。

媒体记录器

MediaRecorder 可用于录制 MediaStreams,包括音频和/或视频。首先,您需要一个 MediaStreamAudioDestinationNode。一旦你有了它,你就可以使用 MediaRecorder 和结果流来记录它。

重要的是要注意,通常使用 MediaRecorder,您是使用有损编解码器录制压缩音频。这本质上是 MediaRecorder 的目的。但是,至少 Chrome 最近添加了对 WebM 中 PCM 的支持。实例化 MediaRecorder 时只需使用 {type: 'audio/webm;codecs=pcm'}

(我还没有测试过这个,但我怀疑你最终会得到 16 位 PCM,而不是 Web Audio API 内部使用的 32 位 float 。)

关于javascript - 是否可以在图表末尾提取原始数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52545773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com