由于想在语音识别时候给麦克风加噪声,所以就在思考有没有办法通过混合麦克风输入和 电脑的音频输出混合起来实现加噪声的效果呢?经过Google找到以下的解决办法 ,这种方法依赖 PulseAudio。
安装工具
首先需要安装 pavucontrol用来管理 Pulse。
emerge -a media-sound/pavucontrol
修改配置文件
修改配置文件/etc/pulse/default.pa
,添加以下模块
load-module module-null-sink
load-module module-loopback
load-module module-loopback
然后重启电脑或者重启Pulse服务器。
上面的步骤也可以不重启Pulse服务器,直接通过pacmd
这个命令行工具配置Pulse服务 器,可以在这个命令行的交互工具中,执行以上三个命令。
通过pavucontrol配置音频混合
我们添加了两个loopback,这时候就可以在pavucontrol的Playback标签页下面看到
两个新的Loopback,需要把Show
这个过滤器选择为All Streams
,结果如下图所示:
这两个Loopback一个是麦克风(Loopback from Bulit-in Audio Analog Stero)另一个
是电脑的音频输出(Loopback of Monitor of Bult-in Audio Analog Stero),需要把
这两个的输出设定成Null Output
。
接着需要设定一下我们录音的时候使用哪个声音源,设置如下图
可以看到ALSA Capture from
被我们设置成Monitor of Null Output
,相当于把Null
这个设备的输出当作声音源进行捕获,而Null这个设备输出是麦克风和电脑声音的混合, 所以可以正常工作。