如何在Pipewire中限制音频接口为单声道录制/强制输出单声道信号?
如何在Pipewire中限制音频接口为单声道录制/强制输出单声道信号?
嘿,我完全懂你的困扰!之前靠PulseAudio的桥接设置搞定了单声道问题,现在切换到Pipewire后不知道怎么复刻这个效果对吧?结合你用Focusrite Scarlett 2i2、Virtualbox XP和Chrome录音插件的场景,给你几个实用的办法:
方法一:修改Pipewire配置文件(永久生效)
这个办法会让你的音频接口默认输出单声道信号,适合长期使用:
- 先检查用户目录下的Pipewire配置文件夹:
~/.config/pipewire/pipewire.conf.d/,如果没有就自己新建一个;要是你想全局生效,可以用/etc/pipewire/pipewire.conf.d/目录。 - 在里面新建一个配置文件,比如命名为
90-scarlett-mono.conf,把下面的内容复制进去:
context.modules = [ { name = libpipewire-module-protocol-pulse } { name = libpipewire-module-rtkit } { name = libpipewire-module-profiler } { name = libpipewire-module-metadata } { name = libpipewire-module-spa-device-factory } { name = libpipewire-module-spa-node-factory } { name = libpipewire-module-client-node } { name = libpipewire-module-client-device } { name = libpipewire-module-port-config args = { # 针对Focusrite Scarlett 2i2设置单声道输入 capture.props = { node.name = "Scarlett 2i2 Mono Capture" audio.channels = 1 audio.position = [ FL ] } } } ]
- 保存文件后,重启Pipewire服务让配置生效:
systemctl --user restart pipewire pipewire-pulse
- 这样你的Scarlett 2i2就会强制输出单声道信号,Virtualbox和Chrome插件应该就能正常识别到完整的麦克风音频了。
方法二:用pw-metadata临时调整(测试用)
如果你只是想临时测试单声道效果,不想改配置文件,可以用这个命令行方法:
- 先找到你的Scarlett 2i2输入设备的node ID:
pw-cli list-objects | grep -A5 -B5 "Scarlett"
- 找到输出里的
node.id = X(X是数字),然后执行下面的命令替换X:
pw-metadata -n X 0 audio.channels 1
- 这个设置是临时生效的,重启Pipewire或者电脑后会恢复原样,适合快速测试。
方法三:用Ubuntu Studio Controls图形界面操作(最直观)
新版的Ubuntu Studio Controls已经支持Pipewire了,操作和之前PulseAudio的方式差不多:
- 打开Ubuntu Studio Controls,找到「Pipewire Bridging」相关的选项(可能叫Pulse Bridging,但现在会适配Pipewire)。
- 把输入桥接的声道数设置为1,保存设置后重启音频服务,就能得到单声道信号了。
额外注意事项
- Virtualbox设置:打开虚拟机的音频配置,选择Pipewire对应的单声道输入设备,确保虚拟机能正确识别到修改后的信号。
- Chrome插件设置:在Chrome的「设置-隐私和安全-网站设置-麦克风」里,把默认麦克风改成你设置的单声道设备(比如显示为「Scarlett 2i2 Mono Capture」)。
备注:内容来源于stack exchange,提问作者John Kinell
相关产品推荐
相关产品推荐

