製品のAIスピーカーとしてユーザがそのアプリを開発可能なのは、現状ではAmazonのAlexaに限られる。ただ、音声制御を指向したアプリ開発環境としてはVoiceflowがあり、APIを介してAlexaに加えPythonやJavascriptなどの環境でも使用できる。
この資料では最初にAIスピーカーの基本的な処理の流れを説明した後、AlexaとVoiceflowの基本的なアプリ作成法、さらにはそれらのAPIアクセス方法について説明する。本資料の構成は次の通りで、各章を独立した記事としている。
1.AIスピーカーの処理の流れ
2.Amazon開発環境でのAlexaスキル作成
3.Voiceflowでのプロジェクト作成法
4.Web APIによる他のアプリケーションとの連携
1.1 AIスピーカーと生成AI
生成AIが話題となる中、AIスピーカー=生成AI会話器のようなとらえ方もあるが実際は少し異なる。もともとAIスピーカーは(多少あいまいさのある)人間の音声入力にしたがって確実な動作(リモコン機器の操作)や情報提供を行うものである。生成AIは条件によりハルシネーション(誤情報の作成)を起こすことが知られており創成活動においてはともかく、AIスピーカーにおいては本来の目的にそぐわない。そのため同じAIを名乗りながらも、プログラミングの面からはAIスピーカーはルールベースに基づく古典的なプログラミング技法に沿ったものとなっている。
もちろんAIスピーカーのアプリの一部として生成AIを活用することはあり、チャットボットのような使い方もできる。
1.2 AIスピーカーにおける処理の流れ
ここではAmazon Alexa用のアプリであるAlexaスキルの処理の流れについて説明する。Amazon Alexaを例としているが、かつて公開されていたGoogle Assistant(Google nest hub) 向けソフトの基本構成、あるいはサードパーティーのVoiceflowも類似の形態となっているのである程度の汎用性はあると考えてよい。なおAIスピーカー環境特有の耳慣れない用語も出てくるので注意。
一般にAIスピーカーは常に命令待ちの状態で周囲の音声をチェックしている。特定の作業を実行させるには処理のキーとなる言葉を定め、あわせて付随的に必要な情報も与えなければならない。
Alexaではそれは次のような構成となっている。
英語と日本語とで語順が違うように見えるが実は語順はあまり問題とならない。重要なのは最初に ”wake word”(起動語)が来て、引き続き「何を」(invocation name)、「はじめる(または起動する)」(launch word)の情報が自然な順番で現れることである。各言語に対応したAIの自然言語処理システムが、”wake word”、”invocation name”、”launch word”を抽出する。
“wake word”は端末にいわば「耳を傾けさせる」キーワードである。“wake word”は周辺の会話により不慮の処理が実行されないよう、メーカーによりあらかじめ一定の名称が決められている。Alexaの場合には、”Alexa”, ”Computer”, ”Amazon”, ”Echo”のいずれかひとつを設定できる。
残りの二つの項目は処理項目と処理内容である。AIによる言語解析機能があるので、少々の表現のゆらぎは許容される。次の三つの例はいずれも同じ意味となる。
・Alexa、マイ時刻表を開いて
・Alexa、マイ時刻表を起動して
・Alexa、マイ時刻表を実行
もう少し、細かい指示が必要な場合には、次のように ”utterance”を指定する。
”utterance”はスキル処理の中では、対応する”intent”(関数ルーチンのようなもの)を起動するイベントとなる。次の図では”湘南線”に類する語がutteranceとして入力されると、対応するintentである”GetShonanIntent”が起動されるイメージを示している。
なお、実際の処理で頻繁に使用される汎用的なintent(関数)である ”Cancel”、”Help”、”Stop”、”Repeat”などはあらかじめシステムで用意されている。
以上を整理して、音声入力とその後の処理の関係を図示すると次のようになる。
(1) ”アレクサ”というwake wordで音声の取り込みを開始
(2) “マイ時刻表で”というinvocation nameならびにlaunch wordでスキル(アプリ)が起動する。
(3) “湘南線”というutteranceをもとに対応するintentの処理に飛ぶ。
なお、Alexaで実行するスキル(アプリ)はあらかじめ端末への登録が必要である。登録されていないスキルや存在しないスキル名が指定された場合には、自然言語処理システムが関連するスキルの登録を提案したり、ネット検索により関連情報の提示を行う。
1.3 AIスピーカーのアプリ開発環境
AIスピーカーのアプリ開発は上述のような構成のアプリを開発する作業となる。ただ、実際の処理は、音声認識やデータベース操作等、複数の技術要素から構成されている。これらをすべて自前で開発もしくはライブラリなどを使用して実装できるのであれば、ソフト開発にあたり開発言語や環境は問われない。しかし音声合成以外の機能は、端末単体では処理能力に限界がありオンライン接続されたクラウドシステムを利用するのが普通である。
現状ではAmazonがAlexaスキル用の純正開発環境を提供している。かつてはGoogleもGoogle nest hub用の環境を提供していたが現在は廃止されている。またサードパーティ製の開発環境も以前はいくつかみられたが、今はVoiceflowぐらいしか見当たらない。
これらの開発環境での操作方法については次章以降で説明してゆく。