编辑:好吧,它似乎正在工作......有点......有时会取消,有时它不在同一个通话中。这个问题没有解决,仍然希望得到一些意见。
第二次编辑:我已在 Pulseaudio IRC 中发布,因此希望获得有关此设置的一些建议。
我已经使用pulseaudio加载了模块回声取消,但它似乎无法正常工作,或者它确实工作正常,但我没有做正确的事情...老实说,我无法确认我认为这是我的第一个问题。
我的架构相当简单,我有一台 Windows 10 机器,我从 Linux 进行 rdp 访问。
默认来源:
- ATR(在 HDMI 处具有回声消除功能)
默认接收器:
- HDMI(ATR 时具有回声消除功能)
我不应该认为远程访问会影响取消,因为它仍在本地从 HDMI 扬声器直接处理到麦克风,这两者都是本地设备。
以下是我在 ~/.config/pulse/default.pa 中加载 module-echo-cancel 的方式,并且我只能假设它正在加载,因为我可以在 中看到设备(如上面列出的)pasystray
。
.ifexists module-echo-cancel.so
load-module module-echo-cancel source_master=alsa_input.usb-Conference_USB_microphone_ATR4697-USB-00.mono-fallback sink_master=alsa_output.pci-0000_00_03.0.hdmi-stereo source_name=echocancel sink_name=echocancel1
set-default-source echocancel
set-default-sink echocancel1
.endif
我需要考虑任何额外的控制吗?或者这应该可以开箱即用吗?我在手册中看不到任何相关的内容。
答案1
据我了解,您打算在 PulseAudio Linux 计算机上使用以下命令进行语音聊天
- USB 麦克风作为您的音频源,以及
- HDMI 作为您的音频接收器。
HDMI 接收器在扬声器上播放,并且您希望防止扬声器音频在通话期间反馈到麦克风中。
我认为 RDP 部分与该问题无关。
是的,PulseAudio 应该能够做到这一点。资料来源:类似设置的个人经验。特别是,我使用 USB 网络摄像头和模拟输出到高保真系统进行语音和视频聊天,效果非常好,我可以与其他人一起玩合作多人游戏,而无需耳机。
您在源和接收器之间设置回声消除的方式对于基本起点来说看起来不错,这正是它在概念上的工作原理。
据我了解,default.pa
配置是在 PulseAudio 启动时处理的。如果 USB 麦克风当时存在,那么它应该可以工作。如果不是,或者拔掉它,我认为回声消除模块没有加载/卸载,因为没有源主控,并且当您再次插入 USB 设备时它不会自动重新应用。
因此,也许您需要某种用户空间守护进程来对 USB 麦克风再次可用做出反应,然后重新应用回声消除。
(免责声明:推广自己的作品)
我没有找到这样的守护进程应用程序,所以我自己写了一个,脉冲自动配置。
截至目前,它仅针对 Arch Linux 进行打包。
我通过手动将脚本和其他文件复制到该计算机上的预期目录,成功地在 Ubuntu 20.04 计算机上运行它。唯一已知的不起作用的是它打印当前接收器和源的表格视图的便利功能,因为 Ubuntu 提供了column
与 Arch 不同的应用程序。
它可能适合你,也可能不适合你。无论如何,其网页可能会为您提供有关 PulseAudio 回声消除的更多见解。