![需要蓝牙设备(输出)和 PulseAudio 的模块回声消除帮助](https://linux22.com/image/1020621/%E9%9C%80%E8%A6%81%E8%93%9D%E7%89%99%E8%AE%BE%E5%A4%87%EF%BC%88%E8%BE%93%E5%87%BA%EF%BC%89%E5%92%8C%20PulseAudio%20%E7%9A%84%E6%A8%A1%E5%9D%97%E5%9B%9E%E5%A3%B0%E6%B6%88%E9%99%A4%E5%B8%AE%E5%8A%A9.png)
我正在尝试在我的蓝牙扬声器(仅输出)上运行 PulseAudio 的“模块回声取消”过滤器。
我是/etc/pulse/default.pa
这样编辑的:
.ifexists module-echo-cancel.so
load-module module-echo-cancel aec_method=webrtc source_name=echocancel sink_name=echocancel1
set-default-source echocancel
set-default-sink echocancel1
.endif
因此,当我打开机器时,“module-echo cancel”被激活,它可以与我的内置扬声器配合使用。但是当我连接蓝牙扬声器时,过滤器不工作(因为在机器/PulseAudio 启动时未连接蓝牙设备?)。尝试在蓝牙扬声器连接时重新启动 PulseAudio(模拟 PulseAudio 的启动,当蓝牙设备连接时,就像机器启动时的内部扬声器一样)将断开所有蓝牙设备的连接。所以我刚开始,无法让“module-echo cancel”与我的蓝牙扬声器配合使用。
您有什么经验、建议或技能可以帮助我解决这个烦人的问题吗?:))
链接到 PulseAudio 的 module-echo-cancel 文档:https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#module-echo-cancel
答案1
“如果您插入 USB 声卡或耳机,或者例如您有 5.1 扬声器配置,并在加载模块回声取消后在前置音频连接器上插入耳机,则必须手动卸载并再次加载模块回声取消,因为不幸的是没有办法告诉模块它应该自动切换到新的默认‘source_master’和‘source_sink’。”
来源:https://wiki.archlinux.org/index.php/PulseAudio/Troubleshooting#Enable_Echo/Noise-Cancellation
*有什么想法如何在蓝牙连接或断开连接后自动卸载和加载模块?