超低消費電力MCUによるスマート・センシング – 第5部:スマート・マイク

このスマート・センシング・シリーズの第5回では、現在民生用として利用されているGoogle HomeやAmazon Echoなどの一般的な家庭用自動化製品においても見られる、ユーザー・インターフェイスの新たなトレンド、スマート・マイクについて説明します。

スマート・マイクとは、人間の声からコマンド情報を抽出するために、従来のマイクに超低消費電力のデジタル信号処理テクノロジを組み込んだデバイスです。少数のコマンドだけで操作できるアプリケーションの場合は、メイン・システムのウェイクアップやサーバーへの接続を行わずに、スマート・マイク内のデジタル信号処理機能ですべての演算処理をローカルに実行することができます。この機能は、スマート家電/機器、テレビ、ロボットなどのデジタル・アシスタントの音声インターフェイスと連動する鍵となる機能であり、民生用と産業用、両方のアプリケーションに対応しています。

では、スマート・マイクはどのような仕組みで動作するのでしょうか。以下の図1は、スマート・マイクに必要なテクノロジの概念ブロック図を示しています。

図1では、マイクによって音波が電気信号に変換されています。この電気信号は、アナログ/デジタル・コンバータで適切にサンプリングできるように、アナログ・アンプによって増幅され、ローパス・フィルタが適用されます。音響特性抽出ブロックでは、マイクのデータから音響特性ベクトルが取得され、その結果がコマンド・デコーダ・ブロックに渡されます(これについての詳細は後述します)。コマンド・デコーダ・ブロックでは、短いコマンドを認識するために、蓄積された(約1秒間)音響特性ベクトルが音響モデルやコマンド・リスト・テーブルの情報と照合され、有効なコマンドの有無が判定されます。有効なコマンドが見つかった場合は、そのコマンドがスマート・マイクからメイン・システムに送信されます。

では、音響特性抽出について十分に理解するために、関連する処理を調べてみましょう。

まず、音響特性抽出により音声の言語成分が除去され、背景の雑音などの無関係な成分が破棄されます。この機能は、多くの場合、音声認識において最も集中的に計算が行われる部分です。声紋抽出用として最も正確で広く受け入れられている特性は、メル周波数ケプストラム係数(MFCC)と呼ばれています。未処理の音声データからMFCCを計算するには、以下の手順に従う必要があります。

  1. 信号を短いフレームに分ける。
  2. 各フレームのパワースペクトルを計算する。
  3. メル・フィルタ・バンクをパワースペクトルに適用し、各フィルタのパワーを合計する。
  4. メル・フィルタ・バンクパワーの対数を取得する。
  5. 対数フィルタ・バンクパワーの離散コサイン変換(DCT)を取得する。
  6. 通常、DCT係数の2~13を保持し、その他は破棄する。

音声は時変信号です。高速フーリエ変換(FFT)アルゴリズムによる短時間パワースペクトルの計算は、時変信号の分析によく使用される手法です。音声信号は、まず短いフレームに分けられます。これにより、フレーム内の音声を"統計的に定常"と見なすことができます。また、このフレームは、最も低い対象周波数をカバーできる大きさにする必要があります。音声認識の一般的なフレーム・サイズは20~40msです。

音声信号を適切に表すために、各フレームをオーバーラップさせる必要があります(通常は75%)。フレームを40msと仮定すると、MFCCの計算は、直前の10ms間に収集されたデータとその前の30ms間に取得されたデータに基づき、10msごとに更新されます。すべてのMFCC処理は、受信データに遅れずに対応できるよう10ms以内に完了する必要があります。

人間の耳は、音声に含まれる高周波成分を聞き分ける能力が劣っているので、人間の耳に合わせるために、元のFFTパワースペクトルがメル・フィルタ・バンクにグループ分けされます。各メル・フィルタ・バンク・ビンのパワーは、メル・フィルタ・バンク・ビン内の各FFTビンの合計です。メル・フィルタ・バンクのサイズは低周波数では小さく、周波数が上昇するにつれて大きくなります。一般的には、20~30個のメル・フィルタ・バンク・ビンが計算されます。メル・スペクトルのパワーは、音の強度に対する人間の聴覚感度に合わせるため、対数値に変換されます。その後、データをさらに圧縮するために離散コサイン変換(DCT)が実行されます。

では、MFCCの計算例を見てみましょう。サンプル・レートは12.8kHz、フレーム・サイズは40msとします。ARM® Cortex-M4F中央処理装置(CPU)が48MHzで動作した場合、MFCCアルゴリズムを完了するまでに約4msかかります。この種のシステムには、低エネルギー・アクセラレータ(LEA)を備えたMSP430FR5994 MCUが適しています。概算で、MSP430FR5994(LEAモジュールによる支援を含む)はMFCCアルゴリズムを約4msで完了できます(16MHzクロックで動作)。また、MSP430FR5994は、ARM Cortex-M4Fと比較して約33%の電力しか消費しません。この点は、バッテリ駆動のシステムでは非常に重要です。

LEAモジュールは、FIRフィルタリングやFFTなどのベクトル数学演算のために特別に設計されたハードウェア・アクセラレータです。LEAは、MFCCアルゴリズムに必要とされる以下の計算をサポートしています。

  • データのフィルタリングとウィンドウ処理:LEAモジュールの有限インパルス応答(FIR)機能を必要に応じてフィルタリングに利用できます。スペクトル内のサイド・ローブを減らすために、通常はFFTアルゴリズムの前にHammingウィンドウ処理操作が入力データに適用されます。このタスクは、LEAモジュールのベクトル乗算機能を使って簡単に実行できます。
  • FFTとパワースペクトル:LEAモジュールがFFTアルゴリズムを直接サポートします。LEAモジュールのベクトル乗算および加算機能により、パワースペクトルを簡単かつ迅速に計算できます。
  • メル・スペクトルの対数変換:対数変換では、一般にテイラー級数が使用されます。ベクトルに対するこうした操作の実行には、非常に時間がかかります。LEAモジュールには、ベクトルでこのような計算を実行するために、多項式関数が用意されています。
  • DCT:LEAモジュールのFFT機能では、DCTを計算することもできます。

事前に設定されている期間の後に、コマンド・デコーダ・ブロックでは蓄積されたMFCC特性がデータベース内の情報と照合され、有効なコマンドの有無が判定されます。たとえば、12個のMFCC特性が10msごとに生成される場合、1秒間では1,200個のMFCC特性が蓄積されます。照合するMFCC特性の数はユーザーが選択できます。MFCC特性の数が増えると出力の精度が向上しますが、消費する演算能力も大きくなります。

LEAモジュールには最大および最小検索機能も搭載されています。ベクトル内の値は、符号付きにも符号なしにもできます。ベクトルの最大および最小検索機能をベクトル加算および減算機能と組み合わせることで、データベースをより効率的に検索できるようになります。

皆様のアプリケーション設計に、スマート・マイクをどのように組み込みますか?

その他のリソース

上記の記事は下記 URL より翻訳転載されました。

http://e2e.ti.com/blogs_/b/industrial_strength/archive/2017/05/29/smart-sensing-with-ultra-low-power-mcus-part-5-smart-microphones

*ご質問は E2E 日本語コミュニティにお願い致します。