我正在一个项目中,我想捕获内部播放(任何应用程序的声音输出),对其进行记录/处理,然后将其播放回扬声器。我以为实现此目的的理想方法是将输出音频路由到虚拟输入设备(麦克风),以便从sounddevice或pyaudio(我想用来处理和输出音频)中看到它。我看过几篇使用插孔,脉冲音频,alsa回送模块等的文章,以实现此目的(例如this one和this one),但是我看不到虚拟的从pyaudio或sounddevice列出的麦克风,无法从中录音。有人能在最后一步帮助我吗?我正在使用Ubuntu 16.04。
编辑:以下是更多详细信息-
按照here中的说明,我已经加载了alsa snd_loop模块,可以通过执行以下操作查看卡:
arecord -l
但是,编辑/etc/pulse/default.pa
文件使其包含load-module module-alsa-sink device=hw:2,1
(我的回送卡为#2)会在pavucontrol中产生以下内容:
在输入侧显示只有回送监视器正在主动捕获声音。例如,从sounddevice看设备列表,我看到
python2 -m sounddevice
0 HDA Intel PCH: ALC3234 Alt Analog (hw:0,2), ALSA (2 in, 0 out)
1 HDA Intel PCH: HDMI 0 (hw:0,3), ALSA (0 in, 8 out)
2 HDA Intel PCH: HDMI 1 (hw:0,7), ALSA (0 in, 8 out)
3 HDA Intel PCH: HDMI 2 (hw:0,8), ALSA (0 in, 8 out)
4 Loopback: PCM (hw:2,0), ALSA (2 in, 32 out)
5 Loopback: PCM (hw:2,1), ALSA (32 in, 32 out)
6 hdmi, ALSA (0 in, 8 out)
7 pulse, ALSA (32 in, 32 out)
* 8 default, ALSA (32 in, 32 out)
在环回设备不允许我将其记录为输入的地方。如何使它显示为输入麦克风?