PulseAudio エコー キャンセラを機能させようとしています。
レコーダーとプレーヤーの 2 つのアプリケーションがあり、どちらも PulseAudio を使用しています。次のようにプレーヤーとレコーダーを作成します。
// pulseAudio
pa_simple *paS=0;
pa_sample_spec ss;
void initPulseAudio()
{
ss.format = PA_SAMPLE_S16LE;
ss.channels = 1;
ss.rate = 8000;
paS = pa_simple_new(NULL, // Use the default server.
"bottomPlayer", // Our application's name.
PA_STREAM_PLAYBACK,
NULL, // Use the default device.
"playStream", // Description of our stream.
&ss, // Our sample format.
NULL, // Use default channel map
NULL, // Use default buffering attributes.
NULL // Ignore error code.
);
if(!paS)
{
fprintf(stderr,
"unable to create recorder\n");
myExit(1);
}
}
エコーキャンセルを除いて、すべてが機能しています。私はそれを有効にしました
pactl load-module module-echo-cancel
しかし、そのモジュールの有無に違いはありません-エコーが存在します。私は PulseAudio を初めて使用し、エコー キャンセラの使用法に関する適切なマニュアルを見つけることができませんでした。動作させるには、デバイスのセットアップで何を追加または調整する必要がありますか?
OSはlinux、今はubuntuですが、最終的にはopenWrtになります