如何在javascript中从输入声音生成负音频波?

时间:2016-06-28 09:19:07

标签: javascript audio microphone getusermedia

我找到了一个javascript来捕获当前的麦克风输入,只是为了再次发送它。你可以在这里看到它:

https://codepen.io/MyXoToD/pen/bdb1b834b15aaa4b4fcc8c7b50c23a6f?editors=1010(仅适用于https)。

我想知道如何能够产生所捕获声音的“负”波。就像“噪音消除”一样。所以脚本会检测到我周围的当前噪音,每当波浪上升时,我想生成一个向下相互抵消的波。有没有办法在javascript中执行此操作?

因此,这会输出当前录制的声音:

var input = audio_context.createMediaStreamSource(stream);
volume = audio_context.createGain();
volume.gain.value = 0.8;
input.connect(volume);
volume.connect(audio_context.destination);

问题是如何产生这种声音的负面效果并输出它。

1 个答案:

答案 0 :(得分:1)

您已经通过网络音频链流式传输信号了。您需要做的是在输入和输出节点之间链接AudioWorker node(在增益节点之前或之前,无关紧要)。工人的脚本将是一个非常简单的符号反转。

var negationWorker = audio_context.createAudioWorker( "negate.js" )
var negationNode = negationWorker.createNode()
input.connect(negationNode)
negationNode.connect(volume)