ノイズキャンセルソフトウェア「Krisp」の使用方法と効果

テレワークで避けられないのがテレカン(リモート会議)ですが、相手の環境音が気になって集中できないという事はよくあるようです。
AirPods Pro を始めとしたハードウェア側の解決策は出始めていますが、ソフトウェア側でも解決策があると教えてもらった Krisp を使ってみた様子を記しておきます。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">先週のALGYANに参加したときに西田さん（だったと思う、間違ってたらゴメンさい🙏）に教えてもらったソフトウェアノイズキャンセラーのKrispを試した。これはイイ。</p>&mdash; 松下享平 《IoTの事例や技術紹介してます》(Max@ソラコム) (@ma2shita) <a href="https://twitter.com/ma2shita/status/1248590715870822401?ref_src=twsrc%5Etfw">April 10, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

※ Krisp は米国 Krisp Technologies の製品で、そこからダウンロードや購入も可能ですが、日本だと[ブイキューブが代理店](https://jp.vcube.com/service/krisp)(なのかな？)をやってるようです。

## ノイズキャンセルの様子は動画にまとめました

ノイズキャンセルソフトウェア Krisp の効果は [Krisp のページ上で試す](https://krisp.ai/#environment-image)ことができますが、**テレカンの実環境で検証した様子**として、動画にまとめました。
以下の音が背後で発生している状況で話したときに「相手が聞こえている様子」を実収録しています。

1. キーボードのタイプ音
2. コーヒーメーカー動作時の音
3. 救急車のサイレン

収録環境は以下の通り。
テレカンには Google Meets を、マイクは PC 内蔵マイクを使用。(PC = FUJITSU LIFEBOOK WU2/B3)
![ma2shita / blog images / 収録環境](https://docs.google.com/drawings/d/e/2PACX-1vRbNFMxxAoOnMG6YBVKSkVn7jBbDSB2XFcOZBwcO2McBTsi8GQZflPvs4CTJmWXMmdM4zle-9fP9lOl/pub?w=794&h=297)

1分くらいの動画です。どぞ。

[![ノイズキャンセルソフトウェア「Krisp」使用時の "相手への音の伝わり方"](http://img.youtube.com/vi/b-9SzMu9oEc/0.jpg)](http://www.youtube.com/watch?v=b-9SzMu9oEc)

## Krisp の設定方法

Krisp はデスクトップアプリケーションですので、PC にインストールして使います。また、Krisp は仮想オーディオデバイスとして動作するため Krisp の設定の他に、テレカンのソフトウェア側の設定も必要となります。

インストールから設定は [Setup and Use](https://help.krisp.ai/hc/en-us/sections/360003594739-Setup-and-Use) にスクリーンショット付きで解説されてるので、そっちを見てください。

英語、やだなーって方には、インストール後のアプリケーション上で「Krisp 設定ガイド」で動画を見ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/22754/56c681ae-3d42-9f95-75cf-5b59755389d2.png)
でも、結局動画は英語なんだけどね！

## Krisp の動作原理

動作原理を知っておけば、トラブルシュートや他のソフトウェア、仮想オーディオミキサーとの組み合わせもできるようになりますので、覚えておいて損はありません。

通常は以下のように、スピーカーやマイクはテレカンアプリから入出力先として直接指定されています。

![ma2shita / blog images / Direct](https://docs.google.com/drawings/d/e/2PACX-1vSdHmCkhRidDL38ISKKE4Dxv8zk9Nh4D8y617Da6AVooReeoOStVUsY41vxo-vDDl6vBI-GlOI5dmfp/pub?w=947&h=282)

Krisp は「その間に挟み込む」形で動作するアプリケーションです。

![ma2shita / blog images / with Krisp](https://docs.google.com/drawings/d/e/2PACX-1vQ2ZihKAV3_w82JmyJwikcwGa9G5F5jYYwN2Cp3cfLivUR3EpNKnkSMntzfnIXRhKOao9UXen2VcvlX/pub?w=947&h=282)

### 仮想オーディオミキサーと組み合わせる場合

[VoiceMeeter](https://www.vb-audio.com/Voicemeeter/banana.htm) や [LadioCast](https://apps.apple.com/jp/app/ladiocast/id411213048?mt=12) といった仮想オーディオミキサーと組み合わせる場合、Krisp は「ノイキャンしたい入力の直前」に挟み込むようにした方が良いでしょう。（図だと上の方の構成）

![ma2shita / blog images / Chain](https://docs.google.com/drawings/d/e/2PACX-1vTm3YV6okfS1dmxg_Y0TN44AwT0Ur4EzEG8GFx0t3mJM9nYWl2biVR9BCoaIwbk1Ow5noebBKnHd9QX/pub?w=833&h=283)

仮想オーディオミキサーとアプリの間に挟む（図だと下の構成）だと、その他の音源からの入力も Krisp を通ることになるため、ノイズキャンセルされます。例えば「その他の音源」をBGMとして入力する場合、ノイキャンは不要になるのに、ノイキャンされてBGMが流れなかったといった事があり得ますので注意が必要です。（意図的に Krisp を通すのなら、それはそれで OK でしょう）

## CPU 負荷があります

いいことづくめのようですが、気をつけたいのは CPU リソースです。
FUJITSU LIFEBOOK WU2/B3 の Core i7(世代、クロック忘れた) で以下の通りでした。

![ma2shita / blog images / cpu](https://docs.google.com/drawings/d/e/2PACX-1vTWwUUsb98pHb0LP-qryYk2dZyl0Q0Gze2shy8LxJV9D3ARuoWm7w202yt0VbnGjen5yHaUBjteTmRp/pub?w=645&h=117)

処理落ちすると「プツプツ」と音が切れるようなので、そこはご注意ください。

## あとがき

いかがでしたでしょうか？（書いてみたかった

IoT における開発において「[デバイスはシンプルにしようね、できればクラウド側に寄せておいた方が変化に強いよ](https://www.slideshare.net/SORACOM/ifup-2019-c4-esim/38)」って言ってる手前、なるべくハードウェアに頼らない生活を心がけております。
実際、この構成であれば理論上どのようなマイクでもノイズキャンセル機能を持たせることができるため、状況や要件に応じた柔軟な構成をとることができるでしょう。

[Discord](https://automaton-media.com/articles/newsjp/20200411-119849/) や [Google Meets](https://www.itmedia.co.jp/news/articles/2004/23/news119.html) もサービス内にノイズキャンセルの機能を加えてきていますし、不要になるのかもしれませんが、オンデマンドコンテンツ収録の際のスタジオが確保できない場合などには役立つことは間違いないと思いますでの、ぜひ使ってみてください。

※ Discord は Krisp を組み込んでいるようですね。

EoT