如何让 PulseAudio 回声取消与 Ofono 一起使用

Emi*_*oni 6 pulseaudio

我正在尝试将小型嵌入式设备变成功能齐全的 A2DP+HFP 接收器。

我已经让一切正常工作,但我真的很难弄清楚如何module-echo-cancel使用ofono

这是我所拥有的: - PulseAudio 7.1 - Ofono 1.15

我正在运行一个无头系统,所以一切都在 root 用户下运行。

我试过module-echo-cancel从配置文件加载,模块加载,但是当我打电话时,一个新的接收器和一个新的源被添加,并且module-echo-cancel不会自动添加到它们中。

我尝试module-echo-cancel在建立呼叫并添加新的接收器和源后手动加载。这确实创建了一个新的虚拟 echo_cancelled 源和接收器,但它只是处于空闲状态然后被暂停,声音仍然通过最初创建的接收器/源。

建立连接后列出模块向我展示了这一点:

Module #21
        Name: module-loopback
        Argument: source=bluez_source.30_5A_3A_19_C0_5B.echo-cancel sink_dont_move=true source_output_properties=media.role=phone
        Usage counter: n/a
        Properties:
                module.author = "Pierre-Louis Bossart"
                module.description = "Loopback from source to sink"
                module.version = "7.1"

Module #22
        Name: module-loopback
        Argument: source=bluez_source.30_5A_3A_19_C0_5B source_dont_move=true sink_input_properties=media.role=phone
        Usage counter: n/a
        Properties:
                module.author = "Pierre-Louis Bossart"
                module.description = "Loopback from source to sink"
                module.version = "7.1"
Run Code Online (Sandbox Code Playgroud)

如果我尝试卸载此模块,请加载回声消除模块,然后加载回送模块,声音会反弹回手机,而不是从设备扬声器中听到。

我试图这样做,但也没有帮助:

PULSE_PROP="filter.want=echo-cancel" ofonod
Run Code Online (Sandbox Code Playgroud)

关于如何为 Ofono 启用回声消除的任何建议?

谢谢你。

dir*_*rkt 3

不确定这是否有帮助,但如果没有其他人有想法:

我有一个基于 Linux 的Jolla Sailphone,使用 Pulseaudio 和 Ofono。

音频设置很复杂,我不完全理解。除此之外,它还用于module-intended-roles分配角色属性(例如电话、音乐)、路由表/etc/pulse以及可能还有其他我尚未发现的东西。

在 的末尾/etc/pulse/default.pa,有以下几行:

### Modules to allow autoloading of filters (such as echo cancellation)
### on demand. module-filter-heuristics tries to determine what filters
### make sense, and module-filter-apply does the heavy-lifting of
### loading modules and rerouting streams.
load-module module-filter-heuristics
load-module module-filter-apply
Run Code Online (Sandbox Code Playgroud)

所以我假设这些模块激活了回声消除。查看这些模块的源代码可能会给出一些正确使用的提示。