Smile Engineering Blog

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

モスキートーンのAIスピーカー(?) 後編

「AIスピーカ」の音声入力

モスキートーンのAIスピーカー(?) - Smile Engineering Blog (前編)では、「モスキートーン」を中心に書きましたが、今回は「AIスピーカ」の音声入力がモスキートーンや高周波に反応するのか? を考えてみます。

素朴な疑問は、8kHz(サンプリング周波数16kHz)程度の帯域にしか対応していない音声認識が、モスキートーン(17kHz前後)や、さらには人間に聞こえないような高周波(20kHz以上)に反応するのでしょうか?

AIスピーカの入出力(代表的な例)

入出力 バイス 目的 周波数帯域
入力 マイク ウェイクワード
音声認識
~8kHz(サンプリング周波数16kHz)
出力 スピーカ 回答の音声再生(音声合成
音楽再生が可能
~24kHz(サンプリング周波数48kHz)

前回紹介した記事について

モスキートーンのAIスピーカー(?) - Smile Engineering Blog (前編)の特殊な音や、超音波でAIスピーカが反応するという記事をもう少し詳しく調べてみました。

  • 「AIスピーカに特殊な音で指示 勝手に操作可能に」
  • 「AIスピーカは超音波で乗っ取れることを証明! 第三者による悪用を懸念」

検索すると次のような記事が目につきます。

人の声を特定の方向にしか伝わらない特殊な音に変換し、AIスピーカに指示を出す実験を行いました。その結果、周囲にいる人には何も聞こえないのに、AIスピーカがスケジュールを読み上げたり通販サイトで商品を検索したりするなど、指示に従って動いたということです。

これらの記事は、次の研究がメディアに取り上げられたものだと思います。

AIスピーカへの攻撃評価に関する研究がメディアに取り上げられました

AIスピーカへの攻撃評価に関する研究がメディアに取り上げられました - Network Security Laboratory

実験にはいくつかの条件があるようです。

  • 攻撃者の存在が気が付かれないこと
  • 攻撃者とAIスピーカの間に障害物がないこと
  • AIスピーカの設定として、話者認識がONになっていないこと

再生にはパラメトリックスピーカ」を使用しています。これがこの実験の技術的な最大のポイントとだと思います。また、この記事には、次のような背景により、「こんなことが出来るのか!」みたいな印象を与えたとのだと思います。

研究者側からのコメント:

「AIスピーカ」への攻撃に「パラメトリックスピーカ」を使ったと表現すると2つの「スピーカ」で混乱を招くため、報道では「パラメトリックスピーカ」という用語を敢えて外しているようです。

研究者側からのコメント:

「指向性」という言葉が一般には馴染みがないため、「特殊な音」といった表現になったようです。

パラメトリックスピーカとは

振幅変調した超音波を利用する(超音波をキャリヤ波として利用する)超指向性のスピーカーで、可聴音を特定の領域のみに伝達することができるようです。言葉としての意味も、目的も分かるのですが、、、アルゴリズム的に説明ができない部分もあるので、もう少し勉強して次の機会に。

なぜ、AIスピーカが高周波に反応するか?

研究者側からのコメント:

横に並んだ複数の超音波端子から生成された超音波は、空気中で元の音声に復調する面白い性質があり、一定の距離を進んだ後に音声として聴こえるようになります。

ここまでの情報から、「パラメトリックスピーカ」によって、音声を振幅変調した超音波で(超音波をキャリア波として)AIスピーカに向けて信号を送ると、周りの人には聞こえないが(この時点では高周波)、AIスピーカにたどり着く位置では聞くことが可能な周波数*1になり、その結果、ウェイクワード検出や音声認識が反応したと理解できます。AIスピーカにピッタリくっ付いて聞いてみたいですね。

「攻撃者とAIスピーカの間に障害物がないこと」とは、パラメトリックスピーカにより、AIスピーカの位置にピンポイントで狙っていると思われます。また、「話者認識がONになっていないこと」これはひとまず安心でしたね。おそらく技術的には話者識別のことでしょう。持ち主の音声を事前に登録(話者の特徴を分析)し、本人確認を行う話者識別は、まだ突破されなかったようです。

モスキートーンのAIスピーカを実現するためには

マイク側の話

f:id:jspnet:20190804012353p:plain:right:w500 パラメトリックスピーカを使わずに、モスキートーンのような高周波をAIスピーカにぶつけても、まず、マイクの仕様で入力できない可能性があります。ローパスフィルタ*2をかけている場合もあります。

マイク入力は音声を対象としたもので、ウェイクワード検出や音声認識エンジンに送る目的なので、これらの仕様に合わせたサンプリング周波数が自然な構成です。

音声認識 の周波数帯域が8kHzまで*3ならば、マイクのA/D変換*4や、ウェイクワード検出も、同じ周波数が都合が良いです。

マイク入力 ➞ A/D変換 ➞ ウェイクワード検出 ➞ 音声認識エンジン
アナログ信号 ~8kHz
サンプリング周波数16kHz
~8kHz
サンプリング周波数16kHz
~8kHz
サンプリング周波数16kHz

この条件では、モスキートーンやそれ以上の高周波(17kHz~20kHz)は、マイク入力の後のA/D変換の時点でデジタルデータに変換ができません。

仮にマイクのA/D変換が44.1kHzとか48kHzのサンプリング周波数だった場合この時点ではOKですが、その後のウェイクワード検出や、音声認識エンジンの仕様に合わせて、ダウンサンプリングが必要になり高周波は消えてしまいます(ローパスフィルターを通すので)。 従って、17kHz~20kHz位の高周波に対応させることを考えたとき、A/D変換ウェイクワード検出音声認識のサンプリング周波数を、全部48kHzにすれば理論上は可能になります。この場合、現状の製品と比較して3倍の処理量(演算量)と、メモリが必要になります。搭載されているCPU、またはオーディオ用プロセッサの動作クロックとメモリが3倍のスペックで必要になるイメージです。用途としては音楽の識別でしょうか。。。

スピーカ側の話

AIスピーカが高周波で反応したような記事があったので、マイク側の入力の話が中心になってしまいましたが、特定の人にしか聞こえない(若者にしか聞こえない)というスピーカ側の話でいうと、モスキートーンの再生だけなら可能です。ただ、「キーン」という信号なので、音声としては聞き取れません。仮にやるとすると、AIスピーカの再生用スピーカにパラメトリックスピーカのような技術を応用するすれば、それっぽいことが出来るかも知れません。

参考サイト

Amazon社はAlexaをEchoなどの同社製品だけでなく、商用デバイスメーカーに向けてAlexaのSDKを一般公開しています。AIスピーカ向けオーディオ入出力の要件についてはこれらの仕様を参考にしました。

Alexa Voice Service(AVS) Device SDK

Amazon Alexa Auto Software Development Kit

AVS 要件 → 機能設計ガイド → 1. コアの要件と推奨事項

機能設計ガイド | Alexa Voice Service

AVS APIリファレンス → SpeechRecognizer インターフェース

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

*1:音声帯域

*2:低域通過フィルタ

*3:サンプリング周波数が16kHz

*4:アナログ→デジタル変換