過去の記事で、聞きたい音だけを分離する技術について、電話品質向上の歴史と深層学習を用いた最新の手法について書きました。
深層学習を用いることで性能の向上は期待できるものの、大量のデータが必要になってしまうなど、デメリットも多数存在します。
深層学習を使う必要のないアプリケーションに関しては、それに適した既存の技術についても知っておく必要があると考えています。
今回は、音源分離の代表的なアレイ信号処理という技術について書きます。
なぜ人間は音の方向を聞き分けられるのかをおさらい
このように、複数の音源が存在するような環境で、聞きたい音だけを聞き分けることを
カクテルパーティー効果と呼びます。
人間は左右の耳での聞こえ方の差を使って、音源方向の特定や聞きたい音の分離を行っています。
基本的には同じ戦略で、この機能をロボットに実装します。
具体的に言うと、複数のマイク信号を処理するアレイ信号処理という技術を用います。
アレイ信号処理の基本原理(ビームフォーマ)
アレイ信号処理には多数のアルゴリズムが開発されていますが、基本的な原理は、音の到達時間差を利用します。
下の図は、3個のマイクを持つアレイマイクに対して、ある方向から音が到来したときの波形を示しています。
同じ音源が各マイクに到達するので、ほぼ同じ波形が各マイクに収録されますが、音源からの距離が微妙に異なるため、遠いマイクにはわずかに遅れて信号が収録されます。
マイク間の距離と音源方向角度から、どの程度の遅れが発生するかは計算ができるので、ある音源方向に応じた時間分だけ遅延補正をしてやると、特定方向の音だけが増幅されます。
聞きたい音源とは別の方向からの音は増幅されないので、聞きたい音源だけを分離することができます。
聞きたい方向だけにビームを形成することができるので、この手法はビームフォーマと呼ばれています。
ただし、単純にある一定時間のち円補正をするだけでは、分解能が荒くなってしまうなどの課題があるので、さまざまなタイプのビームフォーマが提案されています。
これらの手法はアレイ信号処理をベースにしており、数学的に非常に難解なので、個々では割愛しますが、詳細は以下の教科書に書かれています。唯一の日本語の教科書なので、興味がある方は参考にしてみてください。
一般家庭にも普及しているアレイマイク
かつては、何十個もマイクを使った高価なアレイマイクが一企業で使われていることがほとんどだったのですが、近年では、アレイマイクの値段も安くなってきたため、一般家庭にもたくさん普及するようになってきました。
その代表例がアマゾンエコーです。アレクサは7個のマイクを持っており、おそらく、その内部ではビームフォーマを用いて、音声コマンドを認識していると思われます。
この技術のおかげで、ある程度雑音があっても、音声コマンドを認識することができるようになっているはずです。
実は、生産中止になってしまいましたが、KINECTにも実は複数のマイクが使用されていました。私はゲームはやらないので、何に使われていたかはわかりませんが、プレーヤーの音声の解析に使用していたのかもしれません。
も述べましが、その理由は音圧や到達時間に左右差があり、その情報を脳内で処理しているためです。
まとめ
アレイ信号処理という 深層学習を用いない音源分離技術について書きました。深層学習と比べると性能は劣りますが、大量データがいらないこと、計算量が少ないなどのメリットがあります。
今後、アレイ信号処理もさらに深層学習に組み込まれていくものと思われますが、盲目的なAI信者になるのではなく、既存技術のメリットもしっかり抑えて、アプリケーションごとに最適なアルゴリズムを使用していくスキルが必要かと思っております。