OfonoでPulseAudioエコーキャンセルを使用する方法

Ofonoで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"

このモジュールを取り外してエコーキャンセルモジュールをロードしてからループバックモジュールをロードしようとすると、サウンドはデバイススピーカーから聞こえずに電話に戻ります。

私はこれを試しましたが、それも役に立ちませんでした。

PULSE_PROP="filter.want=echo-cancel" ofonod

オフォノのエコー除去機能を有効にする方法についての提案はありますか?

ありがとうございます。

ベストアンサー1

これが役に立つかどうかはわかりませんが、他の人にアイデアがない場合:

チョラ帆船Linuxベースの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

したがって、このモジュールではエコーキャンセル機能が有効になっていると仮定します。これらのモジュールのソースコードを見ると、正しい使い方についていくつかのヒントが得られます。

おすすめ記事