Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

AIスピーカーの主役はマイク

スピーカーといっても・・・マイクが重要

モスキートーンのAIスピーカー(?) 後編 - Smile Engineering Blog では、高周波でAIスピーカーが反応するかというテーマで考えてみましたが、今回はAIスピーカーについてもう少し調べてみました。代表的なものは、Amazon Echo, google home, LINE Clova あたりでしょうか。例えば、Amazon社では、Amazon Echoのようなデバイスを開発するために「Alexa Voice Service(AVS) Device SDK」というもの公開しています。

Alexa Voice Service(AVS) Device SDK

Amazon Alexa Auto Software Development Kit
Alexa Voice Serviceの概要(v20160207) | Alexa Voice Service

Amazon社はAlexaをEchoなどの同社製品だけでなく、商用デバイスメーカーに向けてAlexaのSDKを一般公開しています。このSDKを利用してEcho以外にも幅広いデバイスに載せることが可能になります。

AVS 機能設計ガイド

機能設計ガイド | Alexa Voice Service

接続先のAIエージェントがAlexaである場合に、提供すべき機能が示されています。音声に関係することでは、オーディオ入力、オーディオ出力、音量調整、マイクミュートボタンとか、etc。

例えば、こんなことが、書かれています。

1. コアの要件と推奨事項

1.1. 製品は、SpeechRecognizerインターフェースに指定された仕様に従い、オーディオ入力(1つ以上のマイクを使ったユーザー音声のキャプチャなど)と、キャプチャした音声のクラウドへのストリーミングに対応していなければならない。

ここに、興味深いことが書かれていました。

2. 音声起動の製品

2.1. 製品は、承認されたAmazon Alexaのウェイクワード(“Alexa”など)のみを使用しなければならない。

ウェイクワードが、Alexaと OK googleに対応できたらまずいのでしょうか。。。 Amazon Echo 製品では、Alexa アプリからの設定で、Alexa以外にも決められたワードに変更が可能ですが、さすがにOK googleはありません。 例えば、Amazon AlexaGoogleアシスタントの両方に対応したAIスピーカが発売されていますが、ウェイクワードは何になるのでしょうか。。。

Alexaのウェイクワードとは

Alexaに指令を出す前に必要な呼びかけで、Googleアシスタントの「OK google」や、Siriでいうところの「Hey Siri」ですが、例えば、Android版のアレクサアプリでは【設定】→【デバイスの設定】→ デバイスを選択 →【ウェイクワード】で、「Alexa」「Amazon」「Echo」「コンピューター」から選択可能です(2019年9月現在)。

SpeechRecognizer インターフェース (v2.0)

SpeechRecognizer インターフェース | Alexa Voice Service

ここにマイク入力の仕様がありました。 「モスキートーンのAIスピーカー(?)」で、マイク側のサンプリング周波数等の見解を書きましたが、その根拠について詳しくお伝えしていませんでしたのでここで追記します。

  • 16ビットのリニアPCM (LPCM16)
  • 16kHzのサンプルレート
  • シングルチャンネル
  • トルエンディアンのバイトオーダー

簡単に言うと、サンプリング周波数16kHz、量子化ビット数16bitのPCM(Pulse Code Modulation)です。

SpeechRecognizer インターフェース (v2.0)より

Recognizeイベント 解説 備考
16ビットのリニアPCM 量子化ビット数 が16ビットで、 A/D変換(アナログ➞デジタル変換)したそのままの値。差分で表す方式や、符号化(圧縮)されていないデータです。 量子化ビット数とは、1サンプルに割り当てられるビット数で、16bitでは0~65535(-32768 ~ 32767)の範囲で音の信号を再現できます。
16kHzのサンプルレート サンプリング周波数が16kHz 表現できる信号は8kHzまで (サンプリング定理)
Wide Band
シングルチャンネル モノラルと言うことでしょう (ステレオではない)
トルエンディアンのバイトオーダー PCMがリトルエンディアン 16ビットのリニアPCMは2バイトなので、バイトオーダーがリトルエンディアン

マイクが重要

あるテレビ番組で

AIスピーカーを購入した家庭を取材した話がありました。家族4人(父、母、子供2人)で、AIスピーカに呼びかけてその反応がどうか?検証していました。 お母さんと、子供には反応するのですが、お父さんには反応が悪く、、、お父さんが寂しそうで、このAIのリアルな反応に苦笑いした記憶があります。そこまで学習しないでくれ・・・
お父さんの声も、ちゃんとAIに届けるために、各メーカがマイクの収音技術を争っていると思います。

スピーカー側を充実させる理由は・・・

一方スピーカー側を充実させる狙い(戦略)は、聞いている本人に対して直ぐに音質を実感させる事ができます(認識率はともかく)。例えば、音響的に話者の条件が一定であるのならば、ウェイクワード検出や認識率は安定すると思われます。こうしたケースでは、AIが反応した後の再生音が高品質である方が、良い製品と実感するかも知れません。

AIスピーカーの主役はマイクです

でも、やっぱりウェイクワード検出が出来なければ話にならし、認識率を上げるためには、やっぱりマイク側の音響特性が問われます。周囲の雑音を抑圧し、複数の話者からウェイクワードに反応し、ウェイクワードを発した人の音声を音声認識エンジンに届ける、遠い人、近い人、、、AIの応答(スピーカ再生)がマイクから回り込んで、またAIに、、、 こんなことを、AIが全部まとめて面倒見てくれるような、、、そんな日が来るまでマイク側の信号処理は今のところまだまだ超えるべきことが多そうです。