我非常高兴地宣布,昨天的 Chrome Canary build (23.0.1270.0) 中新增了一项功能,即能够在 OSX 上通过麦克风或其他音频输入设备以低延迟方式访问实时音频!(此功能尚未在 Windows 上启用,但别担心,我们正在努力解决此问题!)
如需启用此功能,您需要前往 chrome://flags/,启用底部附近的“Web Audio Input”项目,然后重新启动浏览器;现在,您就可以开始使用了!
您可以使用实时输入可视化工具查看输入的频谱,以测试实时音频输入。
对于 Web 音频编码器,请参阅以下内容,了解如何请求音频输入流,以及如何获取一个节点以连接到您喜欢的任何处理图!
// success callback when requesting audio input stream
function gotStream(stream) {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContext = new AudioContext();
// Create an AudioNode from the stream.
var mediaStreamSource = audioContext.createMediaStreamSource( stream );
// Connect it to the destination to hear yourself (or any other node for processing!)
mediaStreamSource.connect( audioContext.destination );
}
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia;
navigator.getUserMedia( {audio:true}, gotStream );
低延迟音频输入具有丰富的应用场景,尤其是在音乐领域。您可以查看我快速编写的简单音高检测器,了解如何使用此 API。只需插入吉他,或者对着麦克风吹口哨即可。
按照约定,我已将实时音频添加为我为 Google IO 编写的声码器的输入源 - 只需在调制器下选择“实时输入”即可。您可能需要调整调制器增益和合成器电平。由于处理(而非输入延迟)原因,会出现轻微延迟。现在,我已经有了实时音频输入,接下来是进行新一轮调整!
最后,您可以查看我的 Web 音频演示集。当您阅读本文时,我可能已经发布了更多实时音频演示!