マイク-Linuxの静的バックグラウンドノイズ抑制


13

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

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

ノイズ抑制オプションを示す画像

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

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

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

これはAsk Ubuntuにもクロスポストされており、Ubuntuはすでにここで回答されています


1
クロスポスト: askubuntu.com/questions/421671/…明示的に指定した場合、そのIMOに問題はありません。そうしないと、重複した回答などを投稿する時間を無駄にする可能性が
生じ

2
@goldilocksは、重複した回答がないことを確認するためにクロスポストされる両方のサイトに情報を追加しました
user1873947 14

回答:


5

Realtek仕様によると、

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

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

そのため、この特定のドライバーに縛られることなく、Linuxでのノイズ抑制のより一般的な解決策に努力します。

/programming//q/4875818/684229


答えてくれてありがとう。ただし、リンクした質問では、エコーキャンセレーションについて述べていますが、これは静的なバックグラウンドノイズの低減とは異なります(エコーはスピーカーからのもので、静的ノイズは一般にハードウェアが原因です)。
user1873947 14

どうやらRealtek(およびその他)は、この機能lexology.com/library/の実装をめぐって特許侵害で訴えられたようです。
フィズ

私はそのリンクの耐久性を確信していないので:「米国特許番号5,825,898( '898特許); 6,483,923(' 923特許); 6,049,607( '607特許); 6,363,345(' 345特許);および6,377,637( '637特許)」。
フィズ

3

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

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

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

ただし、どこかでコピーを見つけることができたとしても、私が見つけることができることについての言及がないので、私はドライバがあなたが望む機能を実装することを非常に疑います。ほとんどの場合、それはあなたがすでに持っているものとほぼ同じです。それはわずかに優れているかもしれません(Mintページではカーネルドライバーがサイドスピーカーとリアスピーカーを交換していると述べています)また、作成者が認識していないカーネルに関連する問題が含まれている場合があります(ツリー内hdaパッチの作成者は@realtek.com.tw電子メールアドレスを持っていることに注意してください)。

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

の機能を使用してノイズを低減する方法について、ここ説明しますalsamixer。私が考えて、あなたがそれを行うには、disableのpulseaudioする必要があります。


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

2.見つかった場合、2.6バージョンではなく3.0バージョンが必要です。これらの番号は、互換性のあるLinuxカーネルのバージョンを示しており、3.xカーネルを使用しています。ただし、あなたの音がそれ以外の場合は大丈夫であれば、あなたのために何もする可能性は低いので、これを気にすることは強くお勧めします。


詳細な回答ありがとうございます。ただし、「webrtc-aecモジュール」と呼ばれるものを見つけました。ここで説明しているのはwiki.gentoo.org/wiki/PulseAudioです。しかし、それはそのモジュールをサポートするアプリでのみ動作するようです、それは正しいですか?また、Ubuntuでこれが無効になっている可能性もあります。万が一PulseAudioでこのモジュールを有効にする方法を知っていますか?それは私の問題への解決策かもしれ
user1873947

すみません。pulseaudioモジュールは、ソフトウェアソリューションの一例です。個別の具体的な質問で最もよく扱われるようなもののように思えます;)
goldilocks 14

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.