録音のノイズを除去して声を収録するシステム
以前から、Windowsではなく、音がよいとされているLinuxにて録音システムを作りたいと思っていて、先ごろよいシステムができたので、記事にします。LinuxOSには、デスクトップ環境が軽快で、シンプルなLXQTを使ったLubuntu(ルブンツ)とUbuntuStudio インストーラー、そして noise-suppression-for-voice を使います。Lubuntuのインストール方法や日本語化については公式サイト等をご覧ください。・LubuntuのインストールLubuntu – The official Lubuntu homelubuntu.me公式サイトからイメージをダウンロードし、USBメモリー等に、起動メディアとして書き込み、PCにインストールしてください。Lubuntu 24.04はWaylandには対応していませんが、次のバージョンで対応するそうです。・UnubtuStudio Installer をインストール端末ターミナルを起動して、UbuntuStudio installer をインストールします。sudo apt updatesudo apt install ubuntustudio-installerデスクトップかスタートメニュー等からUbuntuStudio installer アイコンを探し起動します。グラフィック関連のソフトやオーディオ関連のソフトなど、選んでインストールできるようになっていますが、ここでは録音システムに特化した環境にしたいので、 linux-lowlatency ubuntustudio-lowlatency-settings ubuntustudio-audioを最低限、選んでおきます。Modify Installed Package Selection をクリックしてインストールします。・noise-suppression-for-voiceをビルドするビルドに必要なツールをインストールしておきます。 sudo apt install git sudo apt install cmake sudo apt install ninja-build sudo apt install g++ sudo apt install pkg-config sudo apt install juce-tools 公式Githubサイトへアクセスしソースコードをダウンロードします。GitHub - werman/noise-suppression-for-voice: Noise suppression plugin based on Xiph's RNNoiseNoise suppression plugin based on Xiph's RNNoise. Contribute to werman/noise-suppression-for-voice development by creating an account on GitHub.github.comグリーンの「CODE」と書かれたところをクリックし、httpsの項目を確認し文字列をコピー。任意の場所でターミナルを開いて(ここではホームディレクトリー)に以下のコマンドでgitファイルをダウンロードします。 git clone https://github.com/werman/noise-suppression-for-voice.gitダウンロードしたgitのフォルダーに移動します。 cd noise-suppression-for-voice.gitビルドファイルの生成し。 sudo cmake -Bbuild-x64 -H. -GNinja -DCMAKE_BUILD_TYPE=Releaseビルドファイルができたら、ビルド実行。 sudo ninja -C build-x64注意 システムが32ビットの場合は、ビルドのコマンドが変わります。公式ページをご覧ください。生成されたプラグインファイルをシステムにディレクトリーを作ってからコピーします。ディレクトリーを作成sudo mkdir /usr/local/bin/linux-rnnoiseコピー実行 build-x64にあるbinの中身を作成したディレクトリーにコピーするsudo cp -a /home/[ユーザー名]/noise-suppression-for-voice/build-x64/bin/* /usr/local/bin/linux-rnnoise・Pipewire用のコンフィグファイルを作る公式のページに書いてある通り行います。(文章も引用しています。)ディレクトリーを作るmkdir /home/[ユーザー名]/.config/pipewire/pipewire.conf.dプラグイン用の設定をエディタで作成し設定を貼り付けます。(エディタは好みのものを使ってください。例では vim を使っています)vim /home/[ユーザ名]/.config/pipewire/pipewire.conf.d/99-input-denoising.conf貼り付ける設定context.modules = [{ name = libpipewire-module-filter-chain args = { node.description = "Noise Canceling source" media.name = "Noise Canceling source" filter.graph = { nodes = [ { type = ladspa name = rnnoise plugin = /path/to/librnnoise_ladspa.so label = noise_suppressor_mono control = { "VAD Threshold (%)" = 50.0 "VAD Grace Period (ms)" = 200 "Retroactive VAD Grace (ms)" = 0 } } ] } capture.props = { node.name = "capture.rnnoise_source" node.passive = true audio.rate = 48000 } playback.props = { node.name = "rnnoise_source" media.class = Audio/Source audio.rate = 48000 } }}]注意pipewireがバージョン0.3.45未満の場合以下の場所に設定を貼り付けます。/usr/share/pipewire/pipewire.confを/home/[ユーザー名]/.config/pipewire/pipewire.confにコピーし、以下の設定を既に存在するcontext.modulesの場所に貼り付けます。・設定の編集と確認貼り付け後、/path/to/librnnoise_ladspa.so の部分をシステムにコピーしたプラグインの場所に書き換えます。/path/to/librnnoise_ladspa.so → /usr/local/bin/linux-rnnoise/ladspa/librnnoise_ladspa.soステレオ出力が必要な場合は noise_suppressor_mono の部分を noise_suppressor_stereo に書き換えます。実際には、声の収録はモノラルで問題ないのでそのままにします。ステレオにすると2倍のリソースを消費するので、たとえマイクがステレオを収音し出力するとしても意味がないということが公式に書かれていました。・プラグインの初期パラメーターを設定します。 "VAD Threshold (%)"= 50.0, しきい値 RNNOISEでは、入力された音が、音声か雑音かを確率で数値化します。しきい値を設定することで、出力するかしないかを設定します。公式では85%~95%で問題ないそうですが、演技や表現を伴った音声の場合、あまり数値が高すぎると、息遣いや呼吸音は聞こえなくなるかもしれません。僕はとりあえず初期値の50.0で使っています。 "VAD Grace Period (ms)" = 200 最後の音声検出後、出力を消さない期間を設定します。公式では単語や文の終わりが切り取られる場合に役立つとあります。実際のこの初期値200で運用すると、「○○だった。」と発話するとき、最後の「た」が消えることが頻繁にあります。しっかり発音すれば消えにくいですが、まぁ、よく消えますねぇ。400ぐらいでもいいかもしれません。 "Retroactive VAD Grace (ms)" = 0 VAD Grace Periodに似ていて、言葉の終わりでなく始まりに利いてくるようです。設定すると、遅延が発生するそうです。しゃべりはじめが聞こえなくなるんでしょうか。ここは初期値の0で問題ないでしょう。設定が終わったら、保存してエディタを終了します。・PipeWireの再起動をします。 # systemctl restart --user pipewire.serviceこれで、音声録音ソフト等から音声ソースに「Noise Canceling source」を選択できるようになります。(もしかしたら、入力マイクとプラグインをシステムのサウンド設定で関連付ける必要があったかもしれません…)以上、録音のノイズを除去して声を収録するシステムの構築でした。楽器の録音にはまったく向きませんが、朗読やナレーションの録音にはすこぶる威力を発揮します。近所で家の建築をしていても、まったく雑音が乗りません。最初、UbuntuStudio24.04で行いましたが、日本語入力が英語入力に戻るという不具合があったので、Lubuntu24.04を使用しUbuntuStudioInstallerをインストールすることにしました。この24.04のUbuntuディストリビューションですが、カーネルバージョンによっては、HDMI出力の音声が出ないことがあります。カーネルをダウングレードするか、Ubuntuのバージョンを23.10にするかということになるかと思います。それでは、次回の更新までごきげんよう。