「Amazon Echo」の裏側--「Alexa」が突然笑いだした原因を考える - (page 2)

David Gewirtz (Special to ZDNet.com) 翻訳校正: 川村インターナショナル2018年03月14日 07時30分
  • 一覧
  • このエントリーをはてなブックマークに追加

 まず、デバイスには複数のマイクがあるので、それぞれが異なる波形構造を拾うことができる。マイクはデバイス内部で円を囲むように配置されているため、個々のマイクが聞き取る一連の音は、ごくわずかな時間差があり、波形も微妙に異なる。

 そして、デバイスが聞き取った音声を起動ワードであると判断したら、そのときにだけ、後に続く音声を処理し始めるのだ。

 だが、まだAlexaのコマンド処理に話を進めるわけにはいかない。筆者が波形を録音したのは、理想的なスタジオ環境だった。いつもこんなスタジオ環境だったら、Alexaも起動ワードの解析に苦労はしないだろう。

 しかし、現実には、そうはいかない。

 Amazonをはじめとする音声アシスタントベンダーが克服しなければならない本当の技術的課題は、「多様性」だ。ユーザー数が膨大なので、「Alexa」という言い方も多種多様である。アクセントも違えば、声質や調子、高低、話す速さなども違う。

 周囲のノイズもさまざまだろう。バタン、と車のドアを閉める音。テレビがついていたり、隣の部屋で音楽が鳴っていたりもする。犬が吠えていることもある。換気扇が回っていれば、ホワイトノイズがずっと続いているかもしれない。そんな具合だ。

 だが、どんな環境だろうと、起動ワードが発せられたかどうかAlexaは判断しなければならないのである。

 膨大な台数の分だけ、使われる状況も音声も千差万別ということで、起動動作の信頼性を上げようとした開発者の苦労がいかに大きかったか、お分かりになってきたことだろう。自発的に起動させるわけにはいかない。そうなったら、きっと邪魔なだけだ。かと言って、いくら話しかけても反応がなかったら、ユーザーはさぞ苛立ちを覚えることだろう。

 このように、あらゆる可変要素を解析できる機械学習システムを開発し、誤検出が多発するなかでリクエストを無視しないように現実的なバランスを達成するのは、(同じ言葉をまた使うが)並大抵のことではない。

Alexaが勝手に反応した原因として考えられること

 以上の点をふまえると、Alexaが勝手に反応した原因として最もありそうなのは、音声の誤認識だろう。起動ワードを処理するとき、Alexaはきわめて敏感に反応しなければならないので、ときには何かの音に(人間の耳が気づかない音にさえ)反応して、起動ワードと解釈してしまうことがある。

 確率はもっと低いが、アップデートでAlexaのプログラムが変更されたときに、バグが混入した可能性もある。

コマンドが解釈される仕組み

 Alexaは、無数のコマンドに反応する。そのときの波形すべてを解析するのは、Alexaデバイスのプロセッサがローカルで処理するには、あまりにも負荷が高い。Alexaがその処理に利用しているのが、Amazonのクラウドインフラだ。

 時刻を尋ねる、リマインダーを設定させる、温度設定を変える、コメディ番組の有名な場面を流すよう命令する。どんなコマンドや質問もすべて、結局のところ、個々の波形ということになる。

 Alexaの内部機能について、Amazonは詳細な技術仕様を公開していない。だが、こうしたコマンドをすべて解析するという複雑な課題が、ローカルのCPUにとって大きい負荷になることはわれわれにも分かる。音の波形(あるいは、それを圧縮したデータ)は、Amazonのデータセンターにアップロードされ、コンピュータ分析されなければならない。

 アップロードされると、AlexaのバックエンドAIがある重大なタスクを処理する。波形をAlexaの特定のコマンド文字列と照合するのだ。

 Alexaには、想定されるコマンドの膨大なライブラリが用意されている。リマインダーや時刻の確認といったネイティブコマンドだけでなく、今なお増え続けているAlexaの「スキル」ライブラリに関連するコマンドもすべて対象となる。

 スキルライブラリは、Alexaのアプリストアのようなものだ。Amazon以外の外部開発者が、特定のAlexaコマンドを待ち受けて何らかの動作を実行させるというカスタムコードを開発できる。

 Alexaの使い勝手を向上させるには、同じコマンドのさまざまなバリエーションに対応できなければならない。例えば、「Alexa, tell me the time(Alexa、時間を教えて)」という質問にも、「Alexa, what time is it(Alexa、今何時)」という質問にも応じられる必要がある。大抵のAIは、機能語(英語ならis、theなど)を無視し、音声を語幹と正規化したシーケンスに変換することで、この問題に対処している。こうすることで、システムは多様な発話を聞き取って、同じコマンドとして扱うことができる。

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]