0

我想使用 p5.js 在浏览器中可视化麦克风输入(最好是 chrome)。

然而,网络音频 api https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html让我抓狂,因为它非常复杂。

我只想使用声音的幅度来控制 p5 中的绘图。就这么简单。

有人知道是否有任何相关的代码示例吗?

非常感谢。

4

2 回答 2

1

对于任何有兴趣使用处理语法在 JS 中可视化麦克风输入的人,请尝试使用p5.jsp5.sound.js插件库。

这是一个测量 p5.AudioIn 幅度的示例(http://p5js.org/reference/#/p5.AudioIn

var mic;

function setup(){
  mic = new p5.AudioIn()
  mic.start();
}

function draw(){
  micLevel = mic.getLevel();
}

您还可以轻松分析频谱,这是另一个示例 http://p5js.org/learn/examples/Sound_Frequency_Spectrum.php

于 2015-01-03T23:21:03.347 回答
1

看起来这篇文章可以为您提供数据。不过,您必须自己将结果修补到处理中。

http://www.html5rocks.com/en/tutorials/webaudio/games/

此功能着眼于削波强信号,但看起来您应该能够获得音频电平。

function processAudio(e) {
  var buffer = e.inputBuffer.getChannelData(0);

  var isClipping = false;
  // Iterate through buffer to check if any of the |values| exceeds 1.
  for (var i = 0; i < buffer.length; i++) {
    var absValue = Math.abs(buffer[i]);
    if (absValue >= 1) {
      isClipping = true;
      break;
    }
  }
}
于 2012-10-18T16:46:16.310 回答