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

myx*_*tod 5 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);
Run Code Online (Sandbox Code Playgroud)

问题是如何产生这种声音的否定并输出它。

Tou*_*ffy 1

您已经通过网络音频链传输信号。您需要做的是在输入和输出节点之间链接一个AudioWorker 节点(在增益节点之后或之前,并不重要)。工作线程的脚本将是一个非常简单的符号反转。

var negationWorker = audio_context.createAudioWorker( "negate.js" )
var negationNode = negationWorker.createNode()
input.connect(negationNode)
negationNode.connect(volume)
Run Code Online (Sandbox Code Playgroud)