PulseAudioでリアルタイムのノイズ除去を行うことはできますか?そのため、出力されるサウンド出力はよりスムーズになりますか?
PulseAudioでリアルタイムのノイズ除去を行うことはできますか?そのため、出力されるサウンド出力はよりスムーズになりますか?
回答:
module-echo-cancel
PulseAudioとそれが持っている「隠された」オプションについてたくさん読み始めたので、この質問に似たものを見つけることができました。私が見つけたのはノイズキャンセルモジュールでした。これは、マイクの静的ノイズとバックグラウンドノイズを大幅に低減し、基本的には自分の声だけを優れた品質で録音する利点を提供します(オーディオ録音用例えば)。これを行うには、次の手順を実行します。
sudo nano /etc/pulse/default.pa
ファイルの任意の場所に次の行を追加しますが、ほぼ最後にエコーキャンセルに関するコメントを見つけることをお勧めします(〜行140)。
load-module module-echo-cancel
PulseAudio(pulseaudio -k
)をリロードするか、単にコンピューターを再起動します。入力デバイスセクションから新しいノイズキャンセルオプションを選択できるはずです:
Echo Cancel Moduleページで詳細を確認できます
デフォルトとしてエコーキャンセルデバイスを設定する場合は、上記の行を次のように変更します。
load-module module-echo-cancel source_name=logitechsource
そして、ファイルの下部に追加します
set-default-source logitechsource
この場合、sourceという名前を付けましたlogitechsource
が、好きな名前を付けて単純にpulseaudioを再起動できます。
最後に、サウンド設定で超ロングネームが必要ない場合(入力/出力デバイスを選択する場合)。私の提案は、入力デバイスの名前を次のように変更することです。
load-module module-echo-cancel source_name=logitechsource source_properties=device.description=LogitechHD
そして再び、pulseaudioを再起動します。最終結果は次のようになります。
load-module module-echo-cancel aec_method=webrtc aec_args="analog_gain_control=0 digital_gain_control=1"
/ pulseaudio
これは古い質問ですが、私は同じ問題を抱えており、いくつかのグーグル(それは不可能だと同意した人をほとんど見つけました)といくつかのマニュアルページを読んだ後、user2330377のアイデアに基づいたソリューションを開発しました。
最初に、SoXのノイズプロファイルを作成する必要があります。音声録音プログラムを使用して、数秒のノイズを録音し、cd
保存先のディレクトリに保存してくださいsox noise.wav -n noiseprof noise.prof
。
次に、ALSAループバックデバイスを作成する必要があります。
sudo modprobe snd_aloop
pulseaudioはジャックとは異なり、オーディオソフトウェアを直接接続できないため、これが必要です。したがって、ループバックデバイスをプロキシとして使用します。
ここでpaman
、マイク(または他の録音デバイス)と作成したばかりのループバックデバイスの両方の名前を開始して見つける必要があります。これらが見つかったら、次のコマンドを実行して、マイクからサウンドの録音を開始し、SoXを介してパイプし、ループバックデバイスで再生します。
pacat -r -d alsa_input.pci-0000_00_14.2.analog-stereo --latency=1msec|sox -b 16 -e signed -c 2 -r 44100 -t raw - -b 16 -e signed -c 2 -r 44100 -t raw - noisered noise.prof 0.2|pacat -p -d alsa_output.2.analog-stereo --latency=1msec
(-dパラメーターを正しいデバイス名に置き換える必要がある場合-最初のpacat呼び出しの入力デバイスと、2番目のループバックデバイス出力)。
ほぼ完了です!最後のステップとして、選択したアプリケーションで音声の録音を開始しpavucontrol
、起動して「録音」タブに切り替え、録音に使用するオーディオデバイス(右の灰色のボタンとして表示)を「ループバックオーディオのモニター」に設定します端末"。これで、クリアでノイズのない録音ができました!
調査の結果、Linuxサブシステムでリアルタイムノイズリダクションフィルタリングを実行する方法は知られていないことがわかりました。一部のWebサイトでは、ソフトウェアフィルターを使用するよりもはるかに優れたトリックを実行できる、購入可能なハードウェアを示しています。
あるいは、これが録音用である場合、サウンドをAudacityに渡し、そこでノイズフィルターを使用できます。
module-echo-cancel
にはAEC(Acoustic Echo Cancellation)アルゴリズムのみがあり、webrtc | speex。
これは、簡単な方法で、webrtc-aecを
http://wiki.gentoo.org/wiki/PulseAudio
webrtc-aecありwebrtc.org AudioProcessingライブラリを使用して、音響エコーキャンセレーション、アナログゲイン制御、ノイズ抑制、およびその他の処理を実行することにより、VoIP呼び出しをサポートするアプリケーションでVoIP呼び出しを大幅に強化します。
これは、2013年のテーマに関する論文です(特にwebrtc-aecではなくpulseaudioを使用したノイズ除去) http://lac.linuxaudio.org/2013/papers/37.pdf
「PulseAudioの上に構築されたマルチチャンネルノイズ/エコー低減ソリューションの最初の結果を提示し、設計の決定を動機付けました。この作業により、PulseAudioエコーキャンセレーションおよび信号処理フレームワークが改善されました。バージョン3.0 / 4.0の開発サイクル中に貢献し、将来の組み込みLinuxオーディオソリューションを促進します。さらなる作業には、オーディオストリームミキシングのコードの最適化、より効率的なリサンプリング方法、マルチチャネル処理パイプラインでの効率的なAECの実装が含まれます。
モジュールのドキュメントページには、ノイズキャンセルに関する情報はありません。module-echo-cancel内にはAEC(Acoustic Echo Cancellation)アルゴリズムのみがあり、webrtcなどの実装がいくつかあります。speex。
したがって、可能な限りノイズキャンセル機能を内蔵したヘッドセット|マイクを購入する必要があります。
ubuntuで音声録音をテストしたところ、いくつかの特定の品質が見つかりました。
Skype、Telegramはデフォルトデバイス(私の場合はfront-in-mic | backward-micジャック)からの生の入力を使用します。このアプリでノイズをキャンセルする必要がある場合は、統合されたノイズキャンセル機能付きのヘッドセット|マイクのみを購入する必要があります
ブラウザで音声通話を使用する必要がある場合、ブラウザにはWebRTCなどの独自の音声処理アルゴリズムの実装があることに注意してください。
また、webrtc hangout -analysisに基づくことができるという事実にもかかわらず、Webアプリケーション(トーキー、ハングアウト、appear.inなどのサイト)は、独自の音声処理アルゴリズムの実装を持つことができます。