NTTドコモの「セバスチャン」で作る会話デバイス 開発方法とその魅力に迫る
「おはよう、今日の天気教えて」
『おはようございます。日中は晴れですが、帰りにパラパラと雨が降りそうなので、折り畳み傘があると安心です。』
「ありがとう。朝ごはん何にしようかな。今ある食材ですぐに作れそうなのは?」
『簡単フレンチトーストなどいかがでしょうか』
これは未来の家の中。あなたは冷蔵庫に話しかけて、朝ごはんの献立を決めていることでしょう。未来の家の中では、冷蔵庫だけでなく、色々なモノが喋り出すかもしれません。
このように「あらゆるモノに対話型AIサービスを提供する」というミッションで開発されているのが、ドコモの内部プロジェクト「project:SEBASTIEN(プロジェクト・セバスチャン)」によって開発中のAIエージェント基盤です。
ドコモの「AIエージェント基盤」のプロジェクト責任者を務める秋永和計さんは、このプロジェクトの意義をこう語ります。「今後あらゆる家電が喋るようになります。しかし、メーカーが天気予報を喋らせたり、レシピを読み上げたりするために時間を割くのはもったいない。メーカーさんには家電本来の機能面の開発に注力してもらうために、私たちは会話部分をサポートしていきます」。
AIエージェント基盤(セバスチャン)の魅力
例えばロボットや喋るデバイスを開発する際、冒頭の会話例のように、「雑談だけでなく色んな情報を教えてもらいたい」と思い浮かべることでしょう。そんな時、セバスチャンを利用することで、サービス連携が簡単になるのは大きな魅力です。自前でレシピサービスと連携することなく、セバスチャン上の「エキスパートエージェント」という追加機能と連携することで、簡単にレシピサービスを追加できてしまうのです。
AIエージェント基盤は2つのシステムから構成されており、それぞれ「メインエージェント」「エキスパートエージェント」と呼ばれています。
「メインエージェント」とは、メインの会話機能を司る存在。一方の「エキスパートエージェント」とはスマートフォンにおける「アプリ」、スマートスピーカーでいう「スキル」のような追加サービスとしての役割を果たす存在です。
メインエージェントが各端末において身近な応答を行い、必要とあれば専門的なサービスを提供するエキスパートエージェントを呼び出す仕組みとなっています。これらは、ドコモのシステム基盤を利用することにより簡単に開発が可能で、あらかじめ登録してあるシナリオで動作する「シナリオ対話」形式で作ることができます。
これまでチャットボット系のサービスは多々あれど、モノを喋らせるところを想定したサービスも、外部サービスとの連携が標準でできるサービスもありませんでした。セバスチャンは、ロボットやIoTデバイスにも入れやすいカタチで展開されているため、今後のロボット・IoTの普及に伴い、真価を発揮していくことでしょう。
今回の記事では、6月に開催された、ロボスタ主催のセバスチャン勉強会の模様の一部のレポートとともに、セバスチャン魅力に迫っていきます。
51種類の声色から選択可能
勉強会の冒頭、NTTドコモの秋永和計さんから、AIエージェント基盤の概要が説明されました。
NTTドコモでR&Dを担当してきた秋永さん。これまでにビッグデータ、パブリッククラウドなどを担当し、その後シリコンバレーに3年間勤務。現在は「project:SEBASTIEN」を牽引しています。
「AIエージェント基盤」は「あらゆるものに対話型AIを提供したい」というコンセプトの元で開発が進められており、実際にその技術の中核となる自然対話技術は、様々なプロダクトに導入されています。講談社が販売しているパートワーク冊子「週刊鉄腕アトムを作ろう!」や「ここくま」「オハナス」などがその代表例です。
喋るプロダクトにおいて、その声はとても重要。信頼できる声、明るい声、子供の声など、デバイスごとに出したい声は違うかもしれません。そんなとき、セバスチャンを活用すれば、51種類の声色から選択できるのです。独自の声色の音声合成を作ることができるサービスも展開予定とのこと。
メインエージェントを作るというのは、「独自のAIアシスタント」を作ることができるということです。会話に使われるシナリオを作成するだけで、様々なハードウェアやソフトウェア上で、AIアシスタントを動作させることができます。
メインエージェントを開発してみよう
さて、それではここから、勉強会に参加した人たちが体験した「AIエージェント基盤の作り方」の一部をご紹介していきます。
今回作るのは、消火栓とネコを組み合わせたオリジナルキャラクター「消火栓ねこ」です。消火栓ねこはクラウド上に作成されるため、あらゆるデバイスから話しかけることができるようになります。
対話は全てシナリオ形式で、ユーザーが喋った音声を基盤システムがテキストに変換してくれるため、テキストに対する応答処理を「AIML」で作成していきます。
AIMLとは、会話のシナリオ(ルール)を作ることができるXMLを応用したマークアップ言語のこと。元々はカーネギーメロン大学のRichard Wallace教授やOSSコミュニティが開発したもので、A.L.I.C.Eという雑談会話ボットなどに採用されています。
ドコモではAIMLの仕様を参考に、xAIMLという独自の仕様を定義していますが、本記事ではAIMLに表記を統一しています。
AIMLは拡張子が「.aiml」のXMLファイル。ここに会話ルールを記述していきます。まずは一問一答から。対話文脈に関係なく、ユーザがAと言ったら消火栓ねこがBと返す例です。
このように、「category」で囲んだところが1つの会話となり、「pattern」で記述したワードを認識すると「template」で記述したワードを返答します。通常、チャットボットなどを作成する際には、このユーザーが発する「おはよう」の部分を「おはよう」「おはようございます」など複数パターンを記述していく必要がありますが、セバスチャンではある程度のゆらぎを吸収してくれるため、細かい記述を必要としません。開発スピードもグッと早くなりそうです。
ちなみに、上記のようにspeakerを指定することで、51種類のなかから好きな声色を選択することができます
また、対話文脈をIDで指定して、一問一答ではない対話を行なうこともできます。そして変数を利用することで、覚えた内容を後で取得することもできます。
このように作成したAIMLファイルを、セバスチャンハッカソン用に準備された管理画面からアップすることで、シナリオをテストすることができました。自分で作ったオリジナルキャラと会話ができるようになる体験は面白いですね。
当日使用した勉強会の資料が公開されていますので、興味のある方は、勉強会の資料をご覧ください。
ロボスタ勉強会資料
AIMLについて更に詳しく知りたい方には「xAIML SUNABA」というサイトがオススメです。こちらのサイトでは、ドコモが開発中の「自然対話プラットフォーム」を誰でも簡単に無料で試すことができます。無料で利用できるので、興味がある方は訪れてみてください。
xAIML SUNABA
セバスチャンを使いたい! という方へ
セバスチャンを使えば、NTTドコモが培ってきた自然言語処理を活用した会話エンジンを作ることができます。そして、それを自社のデバイスに入れることができるのです。つまり、喋るデバイスを比較的簡単に作ることができるということです。
現在セバスチャンはメインエージェントの公開に向けて開発が進められています。ロボスタでは今後も最新動向をお届けしていく予定です。
今回ご紹介したメインエージェントではなく、エキスパートエージェントであればいますぐに作ることができます。興味があるエンジニアの方はまずエキスパートエージェントから挑戦してみるのもおすすめです。エキスパートエージェントの作り方については、ロボスタの過去記事をご覧ください。