web-dev-qa-db-ja.com

マイク-Linuxでの静的な背景ノイズ抑制

私のサウンドカードはRealtek ALC 892です。Windows7では公式のRealtekドライバーを使用し、LinuxではPulseAudio(Ubuntu 13.10)を使用しています。 WindowsとLinuxの両方で、マイクブースト+ 30db(マイクが静かなので必要)を有効にすると、非常に不快で大きなバックグラウンドノイズが発生します(両方のシステムでAudacityを使用してバックグラウンドノイズも確認しました)。

ただし、Windows Realtekドライバーには動作するノイズ抑制オプションがあります(有効にすると、Audacityにはバックグラウンドノイズが表示されなくなり、耳にもバックグラウンドノイズがないことが確認されます)。

Image showing noise suppression option

ALSA/PulseAudioでバックグラウンドノイズ抑制を有効にするにはどうすればよいですか?インストールできるモジュールはありますか、それとも構成ファイルで有効にできる設定がありますか?

私はそれの解決策を見つけることができません、これは私が完全にLinuxに切り替えるのを妨げる唯一のことです-私がマイクを使ってたくさん話し、WindowsではRealtekソフトウェアがバックグラウンドノイズを完全に削除し、PulseAudioはそれを削除しません。 Linuxで録音された音声が非常に悪いことを意味します。

私はより良いサウンドカードとマイクを購入できることを知っていますが、前述したように、Windows Realtekドライバーはソフトウェアレベルのノイズをリアルタイムで削除します(つまり、TeamSpeak3/Steam /どんなvoipプログラムで話してもノイズはありません)。そのようなオプションがあることを願っていますLinuxでも同様です。

これもクロスポストされています Ask Ubuntuの場合 既に回答済み ここ

13
user1873947

Realtek仕様 によると、

  • 音声アプリケーション用のマイク音響エコーキャンセレーション(AEC)、ノイズ抑制(NS)、およびビーム形成(BF)テクノロジー

ソフトウェア機能リストに記載されています。 ALC892チップセットデータシート も確認しましたが、実際にはチップセットの機能ではありません。したがって、この機能はソフトウェア機能であり、Windows ALC892ドライバーによって処理されることが確認されています。

したがって、私はLinuxでのノイズ抑制のより一般的な解決策に努力を傾けましたが、この特定のドライバーに縛られていませんでした:

https://stackoverflow.com/q/4875818/684229

5
Tomas

これがデバイスの機能であり、付属のソフトウェアだけではない場合(おそらく前者の場合)、カーネルドライバーに実装する必要があります。1 通常、Realtek PCIサウンドカードは実際にパッチを適用したIntel HDAドライバーを使用してALCコーデックをサポートしているようです(興味のある人は[src]/sound/pci/hda/patch_realtek.c)。

カーネルソースのドキュメントを検索すると、「ノイズ抑制」または「エコーキャンセレーション」はこれらのデバイスに関連して言及されていません。ドライバーのソース自体を検索しても、明示的には言及されていません。それが実装されていれば、ほぼ間違いなく/procまたは/sysどのユーザースペースソフトウェアが使用できるか、またはドライバーモジュールのオプション。

もちろん、問題は、ほとんどのハードウェアメーカーと同様に、Realtekがドライバーのソースコードを秘密と見なしているため、サードパーティがドライバーを作成することを困難または不可能にすることです。たとえば、LinuxなどのRealtekが完全にサポートしていないシステム。 Realtekには Linuxドライバーをリストするページ はありますが、リンクは機能していないようです。運が良ければ、誰かがそれをインストールする手順を教えてくれます here (これはMint指向のサイトですが、プロセスはどのディストリビューションでも同じです)。2

ただし、どこかにコピーを見つけることができたとしても、ドライバが必要な機能を実装していることは疑わしいです。見つけることができます。ほとんどの場合、それはあなたが既に持っているものとほぼ同じです。それは少し良いかもしれません(Mintページでカーネルドライバーがサイドスピーカーとリアスピーカーを入れ替えることについて言及している)かもしれませんが、ツリーの外のドライバーはカーネル開発者によって吟味されていないので、それはまた悪化するか、完全に機能しなくなるかもしれませんまた、作成者が認識していないカーネルに関連する問題が含まれている可能性があります(ツリー内hdaパッチの作成者は@realtek.com.tw メールアドレス)。

だから、何か違うことを聞かない限り、あなたはおそらく運が悪いでしょう。あなたはこれに対するソフトウェアソリューションを探すことができます、そのような機能は明らかにLinux上のSkypeによって実装されているので、明らかにソフトウェアのみを使用してリアルタイムで動作することができます。誰かも書いています 論文 その上で、笑。残念ながら、それ以上の検索はできませんでした。

いくつかのノイズ低減を達成するためにalsamixerの機能を使用する ここでのいくつかの議論 があります。 I thinkこれを行うには、pulseaudioを無効にする必要があります。


1. Pulseaudioは実際には、カーネルのサウンドサブシステムであるALSAの上に構築されたユーザー空間ツールです(つまり、pulseaudioはハードウェアアクセスを実装せず、カーネルドライバーからのストリームまたはカーネルドライバーへのストリームでのみ機能します)。

2.見つかった場合は、2.6バージョンではなく3.0バージョンが必要です。これらの番号は、互換性のあるLinuxカーネルのバージョンを示しており、3.xカーネルを使用しています。ただし、繰り返しになりますが、サウンドに問題がなければ、私はstronglyこれを気にしないことをお勧めします。

3
goldilocks

PulseAudioのwebrtcプラグインを有効にすると、私の場合に役立ちました。 askubuntuの回答で有効にする ステップを投稿しました。

1
sumwale