如何将浏览器采集的实时音频流输入到Cubase、Audacity、Logic Pro X等软件
实时音频流从浏览器到专业录音软件的实现流程
1. 浏览器端人声采集配置
- 调用浏览器原生
MediaDevices.getUserMedia()API 申请麦克风访问权限,配置音频采集参数,用于专业处理的场景建议关闭浏览器自带的算法优化,参考参数如下:
const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: { sampleRate: 48000, channelCount: 2, echoCancellation: false, noiseSuppression: false, autoGainControl: false } })
- 若需要做前端侧的预处理(如增益调节、EQ调整),可通过Web Audio API的
AudioContext实例挂载对应的音频处理节点,处理完成后再输出流。
2. 本地虚拟音频环路配置
浏览器无法直接将音频流推送至第三方专业录音软件,需要通过虚拟音频设备做中转:
- 安装对应系统的虚拟音频工具:Windows平台使用VB-Cable,macOS平台使用BlackHole,Linux平台使用PulseAudio虚拟Sink模块,安装完成后系统会生成一对配对的虚拟输入/输出音频设备。
- 将浏览器的默认音频输出设备修改为已安装的虚拟音频输出设备,此时浏览器播放的实时音频流会直接写入虚拟设备的环路通道,不会从本地扬声器输出。如果需要同时本地监听,可通过系统音频路由工具(macOS的音频MIDI设置、Windows的Voicemeeter)配置多输出路由,将流同时分发到本地耳机和虚拟音频设备。
3. 专业录音软件接入配置
- 打开Cubase/Logic Pro X/Audacity等目标软件,在音频设置页将输入设备选为已安装的虚拟音频输入设备,统一所有设备的采样率为48kHz或者44.1kHz,避免采样率转换带来的失真和延迟。
- 新建音频轨道,将轨道输入源指定为虚拟设备对应的声道,开启轨道监听即可实时获取浏览器传输的音频流,可直接进行录制、效果器挂载等后续处理。
低延迟优化建议
- DAW侧将音频缓冲区大小调整为128~256样本,在不出现爆音的前提下尽可能降低端到端延迟。
- 浏览器页面禁用无关的后台进程,避免音频线程被抢占出现断流。
内容的提问来源于stack exchange,提问作者Nikhil Khedlekar
相关产品推荐
相关产品推荐

