2016-06-28 4 views
3

Я нашел javascript, который захватывает текущий вход микрофона, чтобы отправить его снова. Вы можете посмотреть его здесь:Как генерировать отрицательные звуковые волны из входного звука в javascript?

https://codepen.io/MyXoToD/pen/bdb1b834b15aaa4b4fcc8c7b50c23a6f?editors=1010 (работает только с https).

Мне было интересно, как я могу генерировать «отрицательные» волны захваченного звука. Также как «шумоподавление» работает. Таким образом, скрипт обнаруживает текущий шум вокруг меня, и всякий раз, когда возникает волна, я хочу создать волну, которая идет вниз, чтобы отменить друг друга. Есть ли способ сделать это в javascript?

Так что это выводит текущий звук recored:

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

Вопрос заключается в том, чтобы произвести негатив этого звука и выход этого вместо.

ответ

1

Вы уже передаете свой сигнал через цепочку веб-аудио. Что вам нужно сделать, так это цепочка AudioWorker node между входными и выходными узлами (после или до узла усиления, не имеет значения). Сценарий для рабочего был бы очень простой инверсией знаков.

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

 Смежные вопросы

  • Нет связанных вопросов^_^