藤本健のDigital Audio Laboratory
第932回
声以外が消える!? 無料のノイズ除去「NVIDIA Broadcast」がスゴい
2022年3月14日 08:10
先日、知人から「このノイズリダクションシステム、すごいからチェックしてみて」と紹介されたのが、「NVIDIA Broadcast」というWindows 10用のフリーウェアだ。
AIを用いてノイズを取り除くというのだが、最大の特徴はその処理をリアルタイムにできるという点だ。すでに1年半も前からあるソフトだったようだが、実際に試してみたところ、その威力の凄まじさに正直驚いた。
フリーウェアではあるけれど、動作条件としてNVIDIAのそこそこハイスペックなGPUを搭載していることが条件であり、筆者の手元にあるPCでは動かせそうにない。そこで、マウスコンピューターにお願いしたところ、NVIDIA GeForce RTX 3060を搭載した「G-Tune HM-B」というゲーミングPCをお借りすることができた。今回はこのマシンを使って、NVIDIA Broadcastがどのくらいノイズを消せるのか検証してみた。
リアルタイムで声以外を消す、驚異の除去性能
本連載ではこれまで、さまざまなノイズリダクションソフトを見てきた。「ザー」というヒスノイズを取り除いたり、「ブーン」というハムノイズを取り除いたり、レコードの「プチプチ」いうポップノイズを取り除いたり、色々と実験や比較をしてきたわけだが、どれも基本は後処理で“リアルタイム処理”というわけではなかった。
リアルタイムのノイズ除去というと、これまではノイズキャンセリングヘッドフォンがあった。
ノイズキャンセリングヘッドフォンの場合、周辺の音の逆相をヘッドフォンから出すことによって打ち消すというもので、アナログやデジタル処理が存在するが、今回扱うNVIDIA Broadcastアプリのノイズリダクションは、従来とは根本的に異なるもののようだ。
具体的には、“ターゲットとなる人の声以外を消す”というもので、人のしゃべり声とそれ以外をAIが学習していて、その学習効果で、ノイズをリアルタイムに除去しているのだという。
まず、ちょっとテストしてみた結果をビデオにしてみたので、まずはご覧いただきたい。
これはバックに音楽を流しながらマイクに向かってしゃべった際、NVIDIA Broadcastのノイズ除去のスイッチをオン/オフするとどうなるかを試したものだ。
動画の通り、オフの状態ではBGMのように音楽が流れているが、オンにすると音楽がほぼ完全に消え去ってしまう。よく聴くと声の隙間に若干音楽が鳴っている瞬間もあるが、従来ではありえなかったノイズリダクション処理といっていいのではないだろう。
さらに、同じようなことを音楽の変わりにヘアドライヤーをノイズとして使ってみた。マイクでしゃべる真横でヘアドライヤーをオンにして、「ガーー!!」というノイズの中で喋りながら、ノイズ除去のオン/オフを操作している
これを聴いてみると分かる通り、しゃべり声と同等か、もしかするとそれより大きいドライヤーの音が、ノイズ除去オンで、キレイに消えていることが分かる。しかも、それをリアルタイムに行なっているのだ。ただし、先ほどの音楽のときと比較すると声質が落ちている。特に高域が落ちているので、ちょっと籠った感じの音になってはいるが、聴き取る上では十分な音質。NVIDIA Broadcastによるノイズ除去が大きな効果を出していることが分かる。
NVIDIA製のグラフィックカードが必須
もう少し、具体的に何をしているのかを見ていこう。
使ったPCは前述した通り、マウスコンピューターの「G-Tune HM-B」というもの。タワー型PCで、Intel Core i7-11700FのCPUと32GBメモリ、そしてGeForce RTX 3060が搭載されている。
あらかじめGeForce RTX 3060のドライバはセッティングされているが、NVIDIA Broadcastアプリはインストールされていない。NVIDIAのサイトを検索してみると、現在のNVIDIA Broadcastのバージョンは1.3となっている。特にユーザー登録なども一切なく、簡単にダウンロードできた。
システム要件はWindows 10となっているが、今回のPCにはWindows 11 Home 64bitがプリインストールされている。とくに問題はないだろうと、インストールしてみたところ、先ほどのビデオの通り、しっかり動作してくれたわけだ。
借りたPC本体にもサウンド機能が搭載されてはいるが、しっかりしたコンデンサーマイクで試してみたかったので、PreSonusが先日発売した小さなオーディオインターフェイス「AUDIOBOX GO」を接続し、ここにマイクを接続。+48Vのファンタム電源を供給する形で入出力を可能にした。
NVIDIA Broadcastを起動すると、上部にマイク、スピーカー、カメラの3つのタブがある。
マイクタブはマイクからの入力に対し、リアルタイムでノイズ除去を行なうための設定。スピーカータブは、再生される音に対し、リアルタイムにノイズ除去を行なうための設定。そしてカメラタブはベータ版となっているが、カメラから入力される映像の背景などを除去するための設定となっている。ここではマイクタブにおいて、まずマイクソースの設定が先ほどのAUDIOBOX GOであることを確認した。
画面中央には、動作チェックするための録音機能がある。そこでエフェクト欄のノイズ除去をオンにし、マイクからしゃべる声を録音し、再生してみたところ、驚くほど見事にノイズが除去されていることが確認できた。
このエフェクトとしてノイズ除去と、ルームエコー除去(ベータ版)の2つが用意されている。筆者の部屋自体、それほど反響があるわけではないが、試してみたところルームエコー除去をオンにしているほうが、ノイズ除去のかかりもいいようだったので、これをオンにして使った。また強度というパラメーターがあり、0~100で値を設定することができるが、極端な100にするとより効果がハッキリ見えたので、先ほどのビデオでは100の状態でオン/オフを繰り返している。
では、先ほどのビデオはどのように作成したかというと、動画配信ソフト「OBS Studio」の録画機能を使っている。
OBSのオーディオ入力を見ると、もともとあったAUDIOBOX GOに加え、NVIDIA Broadcastというドライバが追加されており、NVIDIA Broadcastを起動することで仮想ドライバが誕生し、ノイズ除去した結果を入力できるようになっている。つまりOBSに限らず、ZoomやGoogle Meets、Microsoft Teams、Skypeといったオンライン会議システムなどでもすぐに使うことができるわけだ。
ここでもう一つ、ルームエコー除去がどのくらいの効果があるのか、またエアコンなどの比較的小さいノイズに対してどのくらいの効果があるのかも試してみた。
どうだろうか? まず、ルームエコーの除去については、ヘッドフォンなどで聴くと結構分かると思う。この部屋自体、結構モノが置いてあるし、カーテンなども掛けられているので、部屋鳴りはあまりないのだが、ルームエコー除去をオンにすると、さらにデッドな音になることが分かるだろう。
一方で、ノイズ除去をオンにしてもバックにあるエアコンノイズは軽減されない。試しに強度を変えるなど調整してみたけれど、そもそも最大値となっているために違いはほとんどない。使い方の問題があるのかもしれないが、通常の生配信などでは、こうしたエアコンノイズなどが一番気になるところなので、これをうまくクリアにするセッティングなどを用意してくれると嬉しい。
レイテンシーは0.119秒。“しゃべり”ならほとんど気にならない
ところで、リアルタイム処理とはいえ、気になるのがレイテンシーだろう。プラグインエフェクトなどでも重い処理のエフェクトだとどうしてもレイテンシーが発生し、実用上の問題になる。そこで、実際どのくらいの遅れが生じるのか比較してみた。
ここでは「SOUND FORGE PRO 15」を用いて実験を行なった。同ソフトはASIOやWDMなどに加え、Windows Classic Waveドライバというものが用意されており、複数のオーディオデバイスで同時に録音できるのだ。
具体的には、Ch.1およびCh.2はオーディオインターフェイスからの音がダイレクトで入るAUDIOBOX GOを設定して、Ch.3およびCh.4はNVIDIA Broadcastを介した仮想ドライバを設定する。この状態で4ch同時録音をしてみた。その結果が下の写真だ。
マイクは左チャンネルのみに接続されているため、ダイレクトで入ってくるのはCh.1のみでCh.2は無音。一方、ノイズ除去などを行なった結果のNVIDIA Broadcastからの音はステレオでCh.3・Ch.4に入っている。
この波形を見比べてみると、やはりCh.1とよく似た波形がCh.3、Ch.4にも入ってきているが、明らかに時間差があることが分かる。そこで、波形の頭を目印に比較すると、時間差が0.119秒あった。音楽演奏だと厳しい数値だが、しゃべりにおいては、ほとんど気にならないレベルと言っていい。ちなみに、ここではドライバ設定も録音設定もすべて48kHz/24bitで行なっている。
またNVIDIA Broadcastでのノイズ処理に、どのくらいのGPUパワーを使っているのかも気になるところ。そこで、Windowsのタスクマネジャーを立ち上げ、GPUをグラフ表示させながら、NVIDIA Broadcastのオン/オフなどを繰り返してみた。
これを見る限り、ドライヤーの音を除去するなどの激しい処理をさせても、GPU使用率は1~3%程度とほとんど動かない。この程度なら、動作条件として、ここまで高性能なグラフィックカードを必須にしなくてもいいのでは? と思ってしまうところだが、NVIDIAの戦略などもあるのかもしれない。
なお、OBS StudioでのNVIDIA Broadcastの利用について調べてみたら、わざわざこのような設定をしなくても、もっと簡単に使える方法が実装されていた。それはNVIDIA Audio Effects SDKなるものをNVIDIAサイトからダウンロードして、インストールする方法だ。
SDKなどと難しそうな名前ではあるけれど、特に技術的なものは一切必要とせず、単純にインストールすればいい。
インストール後、OBSを起動し、オーディオのフィルタ機能を見ると、通常は「Speex」と「RNNoise」の2種類しか用意されていないところに、「NVIDIAノイズ除去」というものが追加された。ここにはルームエコー除去はないので、機能的にいうと、やはりNVIDIA Broadcastを使ったほうがよさそうではあるけれど、OBS単体で完結できるという意味では便利そうだ。
ちなみにちょっと気になるのは、OBSに標準搭載されているリアルタイムノイズ除去機能がどのくらいのものなのかという点。高品質というRNNoiseを使って、先ほどと同様にヘアドライヤーを使った実験を行なってみた。
これは比較するまでもないだろう。手法がまったく違うからだと思うが、NVIDIA Broadcastの圧倒的な勝利。NVIDIA Broadcastがすごい技術であることを改めて実感した。
以上、リアルタイムなノイズリダクションシステム、NVIDIA Broadcastについてみてきたがいかがだっただろうか?
それなりに高価なグラフィックカードが必要になるので、ゲームやグラフィック処理をしない人の場合、まさにノイズリダクションのためにハードウェアを買わなくてはならないし、ノートPCやNUCなどだと増設が難しいところがネックではあるが、業務で配信をしている人などなら、十分導入する価値はありそうだ。最近、この手のリアルタイムノイズ処理が、いくつか出てきているので、ほかの製品についても、また改めて同様の実験をして比較してみたいと思う。