CopyrightⒸ2021 一般社団法人 日本機械学会

3408
対話エージェントを活用した音声対話によるマイクロサービス実行フレームワークの考察
Study of Microservice Execution Framework Using Spoken Dialogue Agents○学 大薗 隼人*1，陳 思楠*1，中村 匡秀*1*2
Hayato OZONO*1, Sinan CHEN*1, Masahide NAKAMURA*1*2
神戸大学 Kobe University
理化学研究所・革新知能統合研究センター RIKEN AIP*1*2

Japan is currently facing a super-aging society, and there is a need for technology to support the self-help andmutual aid of the elderly. In order to support elderly people who cannot use Internet services due to lack of access todevices, we aim to build a system that can execute various services through dialogue with agents. In this paper, as a
stepping stone to this goal, we discuss a framework for executing microservices through spoken dialogue using dialogue
agents. In this paper, we present a framework for executing microservices through spoken dialogues with agents. The
framework consists of two essential elements. The first element is to centrally manage user information for the various
services. The second element is to correctly configure the behavior of the agents when executing the services. Theseelements are discussed in detail in this paper. We then demonstrate the effectiveness of the framework by applying it to
the actual integration of a dialogue agent and several microservices.
Key Words : Dialogue agent, Spoken dialogue, Microservice, Voice manipulation, Self-help support

1. 緒

言

近年日本は超高齢化社会を迎えており，高齢化率は年々増加している．政府は高齢者介護の施策に関して，従来の施設介護から在宅介護への転換を進めている．しかし，在宅介護における「自助」「互助」は簡単なものではない．そうした中で，テクノロジによる支援に大きな期待が寄せられている．
我々の研究グループでは，在宅高齢者の自助・互助を支援するサービスを研究・開発している．その一つとして，MMDAgent(1)「メイちゃん」を用いて高齢者と対話を行い，その発話内容をログに記録し，センサでは観測できない心のうちを取得することを目的とした傾聴サービスを開発している(2)(3)．現在は，このシステムを拡張し，高齢者の自助支援を行うサービスの開発を目指している．
高齢者の自助支援を行うにあたり，Web 上の様々なコンテンツやサービスを活用することは有望である．しかし，高齢者の多くは PC やスマートフォン等のデバイスの操作に慣れていないため，Web 上のサービスや情報を正しく利用することが困難である．この問題に対して，Web サービスの多くがマイクロサービス(4)を公開しており，Application Programming Interface (API) を通してプログラムから直接サービスを実行できる点に着目した．そして，エージェントとの音声対話を通して，様々なマイクロサービスの API を実行し，結果を対話で説明できるようにすることで，デバイスを操作する必要がなくなり，高齢者の自助支援につながると考えた．
本研究の目的は，対話エージェントとの音声対話を通して，エージェントが高齢者の代わりにマイクロサービ
スを実行し，結果をわかりやすく説明するシステムを実現することである．そのために，対話エージェントを活用した音声対話によるマイクロサービス実行フレームワークの考察をすることである．アプローチとして，(A1) :「様々なマイクロサービスのユーザ情報を一元管理する」，(A2) :「API の実行とその時のエージェントの振る舞[No.21-4] 日本機械学会 第 31 回設計工学・システム部門講演会講演論文集〔2021.9.15.-17, オンライン開催〕

CopyrightⒸ2021 一般社団法人 日本機械学会

いを適切に設定する」の 2 つを考える．
そして，考案したフレームワークを適用し，対話エージェントとマイクロサービスの連携ができることを確かめる．メイちゃんにマイクロサービスである「ToDo 管理サービス」と「YouTube」を連携させ，このフレームワ
ークの有効性を示す．
最後に，結論で本研究の成果と課題について述べる．考案したフレームワークを適用することにより，対話エージェントとマイクロサービスの連携ができ，音声対話でサービスを実行できた．しかし，音声認識の誤りによりサービスを正しく利用できないことがある点や，一回の発言でキーワードが複数含まれていた場合の処理が曖昧である点が課題である．今後は，高齢者を対象とした実験を行うことで，性能を改善していく予定である．
2. 準

備

2・1 日本の高齢者の現状
近年，日本では諸外国に例をみない速度で高齢化が進行している．65 歳以上の人口は 2042 年の約 3,900 万人でピークを迎えると予想されており，さらに 75 歳以上の人口割合は増加し続けると予想されている．団塊の世代が75 歳以上となる 2025 年(令和 7 年)以降は，国民の医療や介護の需要がさらに増加することが見込まれている．このような現状を受け，政府は従来の施設介護から在宅介護への転換を進めている．これをサポートする地域包括ケアシステムは，自助，互助，共助，控除の 4 つの「助」に基づいている．少子高齢化や財政を考えると「共助」「公助」の拡充は難しく，「自助」「互助」を意識した取り組みがより一層重要になってくる．しかし，在宅介護における「自助」「互助」は簡単なものではない．家族にのしかかる介護負担，老々介護，認人介護，独居などの状況で，人手による介護には限界がある．そのような中，テクノロジによる支援に大きな期待が寄せられている．
2・2 先行研究：在宅高齢者を支援する対話エージェント
こうした現状を受け，我々の研究グループでは，在宅の高齢者・認知症患者を対象とした，在宅生活における自助・互助をサポートする方法を考案し，一般家庭に導入可能なシステムとして構築する取り組みを行っている．
その 1 つとして，高齢者の発話を傾聴し発話内容をログに記録し，センサでは観測できない心のうちを取得する，
MMDAgent(1)「メイちゃん」を用いた傾聴サービスを開発している(2)(3)．図 2.1 と図 2.2 は，それぞれ傾聴サービスのアーキテクチャと状態遷移図である．エージェントは，センサや時間によるイベントを検知することで対話状態になり，ユーザの話を傾聴したり，ユーザに何か問いかけを行ったりする．そして，対話のログや音声をデータベースに保存し，ユーザの心のうちを取得する．

Fig 2.1 Architecture of listening service

Fig 2.2 State transition diagram of listening service[No.21-4] 日本機械学会 第 31 回設計工学・システム部門講演会講演論文集〔2021.9.15.-17, オンライン開催〕

CopyrightⒸ2021 一般社団法人 日本機械学会

2・3 着目する課題
この傾聴サービスを拡張し，対話エージェントを活用した自助支援サービスを開発しようと考えた．現在，インターネット上には様々な情報や便利なサービスが存在する．しかし，高齢者の多くは PC やスマートフォンの操作に慣れていない．そのような人にとって，Web ブラウザを操作して情報やサービスを正しく利用することは困難である．その一方で，最近では様々なサービスが Web-API を公開しており，プログラムから直接呼び出すことが可能になっている．そこで，エージェントとの対話を通して，様々なマイクロサービスの Web-API を実行し，結果を説明できるようにすれば，高齢者の自助支援につながると考えた．
2・4 マイクロサービスの定義と具体例
マイクロサービスとは，ある機能を持つ互いに独立した小さなサービスを組み合わせて 1 つのアプリケーショ
ンを作るアーキテクチャである．マイクロサービスはそれぞれの機能に対応する API を持ち，外部からその機能を実行できるという特徴を持つ(4)．我々の研究室で開発した「ToDo 管理サービス」もその一つである．
ToDo 管理サービスとは，ユーザのやることを ToDo として管理するサービスである．ユーザは自分のやることを ToDo として登録し，その一覧を見ることができる．また，自分が登録した ToDo を達成すると，それを Doneに変更し，その一覧も見ることができる．さらに，全ユーザの ToDo と Done の一覧を見ることもできる．
ToDo 管理サービスが持つ Web-API を以下の表にまとめる．これらの API を実行することにより，他のプログ
ラムから ToDo 管理サービスの対応する機能を実行することができる．
Table 2.1 API of ToDo Management Service
Operations

API

Return values

Get user's ToDo List

GET /api/{uid}/todos

User's ToDo List

Create ToDo

POST /api/{uid}/todos {"title":"Title", "description":"Description"}

Created ToDo

Accomplish ToDo

PUT /api/{uid}/todos/{seq}/done

Accomplished ToDo

Delete ToDo

DELETE /api/{uid}/todos/{seq}

True or False

3.

音声対話によるマイクロサービス実行フレームワークの考察

3・1 提案システムの概要
2・3 節で述べた課題を解決するため，対話エージェント「メイちゃん」との対話を通し，高齢者の代わりに様々なマイクロサービスを実行するシステムの開発を目指す．本稿では，その目的を達成するため，対話エージェン
トを活用した音声対話によるマイクロサービス実行フレームワークを考察する．
3・2 提案システムのアーキテクチャ
前節で述べた目的の実現には，異なるマイクロサービスをシームレスに連携する必要性と，サービスの操作・パラメータの準備・実行結果の説明を対話で行う必要性がある．これらを満たすために次の 2 つのアプローチが必要であると考えた．
(A1): ユーザ情報管理サービスによる ID 随時名寄せ
各サービスのユーザ ID を一元管理し，傾聴サービスを利用しているユーザとの紐付けを行う．
(A2): 対話に基づくマイクロサービスの消費（実行および結果説明）
ユーザとの対話から操作やパラメータを取得し，マイクロサービスを実行する際のエージェントの振る舞いを設定する．
考案したシステムのアーキテクチャを図 3.1 に示す．傾聴の部分については，2・2 節ですでに述べた．A1，
A2 について，メイちゃんと ToDo 管理サービスとの連携を例に用いて説明する．以降では，ユーザの ToDo 管理
サービスの ID を”ozono”とする．

[No.21-4] 日本機械学会 第 31 回設計工学・システム部門講演会講演論文集〔2021.9.15.-17, オンライン開催〕

CopyrightⒸ2021 一般社団法人 日本機械学会

Fig 3.1 Architecture of proposed system
3・3 A1: ユーザ情報統合サービスによる ID 随時名寄せ
3・3・1 ユーザ情報統合サービス「You-ID サービス」
対話エージェントとの音声対話を通して複数のマイクロサービスを実行するためには，マイクロサービスごとに異なるユーザの ID や設定を一元管理するサービスが必要である．そこで，ユーザ情報統合サービスとして「You-ID サービス」を実装した．You-ID サービスは，個人を表すエンティティ「Person」，対話アプリケーショ
ンやサービスのエンティティ「Application」，アプリごとの個人設定のエンティティ「Preference」の 3 つのオブジ
ェクトを持つ．また，それぞれのエンティティに対し CRUD の操作をする Rest API を持つ．
3・3・2 You-ID サービスのオブジェクト
You-ID サービスが持つ 3 つのオブジェクトについて述べる．
・Person クラス
Person クラスはユーザ自身の情報を扱うクラスである．個人の識別子となる，暗号化された文字列「uid」，ユーザの名前「name」，メールアドレス「email」，誕生日「birthday」を持つ．この uid で傾聴サービスにログインすることでメイちゃんはユーザを識別し，name に設定した名前を呼び名にして傾聴を行う．また，email と birthday
は，uid を忘れてしまった場合に本人確認をするために設定している．
・Application クラス
Application クラスは，傾聴サービスを含む，あらゆるアプリやサービスそれ自身の設定を扱うクラスである．
アプリケーションを識別する ID「aid」，アプリケーション名「name」，アプリケーションの説明「description」，
アプリケーションのグローバル設定やキーバリューのマップ「attributes」を持つ．
・Preference クラス
Preference クラスは，
各アプリケーションの個人設定を扱うクラスである．
プリファレンスを識別する ID「prefId」，
ユーザ ID「uid」，アプリケーション ID「aid」，そのユーザのそのアプリケーションの設定「preferences」を持つ．
Preferences には，アプリ内で消費するマイクロサービスのユーザ ID や API-key などを JSON で記入する．
メイちゃんと ToDo 管理サービスを連携するためには，
まず ToDo 管理サービスを You-ID サービスに Application
として登録する必要がある．aid を”todo_app”，name を”ToDo 管理サービス”，さらに description と attributes もそ
れぞれ適当に入力し，You-ID サービスに ToDo 管理サービスを登録する．そして，ToDo 管理サービスのユーザ
情報を Preference として登録する．つまり，uid に”傾聴サービスを利用するユーザの uid”，aid に”todo_app”，そ[No.21-4] 日本機械学会 第 31 回設計工学・システム部門講演会講演論文集〔2021.9.15.-17, オンライン開催〕

CopyrightⒸ2021 一般社団法人 日本機械学会

して preferences に{”uid”:”ozono”}を入力し，Preferences を作成する．これにより，uid と ToDo 管理サービスのユーザ情報が紐づけされた．
3・3・3

You-ID サービスの API

You-ID サービスには，3 つのクラスのオブジェクトに対して，取得(GET)・作成(POST)・変更(PUT)・削除(DELETE)する Rest API を実装している．その中で，このフレームワーク内で利用している 3 つの API について，
以下の表にまとめる．
Table 3.1 API of You-ID Service
Operations

API

Return values

Get User

GET /api/{uid}Specified User

Get Application

GET /api/apps/{aid}Specified Application

Get Preferences

GET /api/prefs/{uid}/{aid}Specified Preferences

3・4 A2: 対話に基づくマイクロサービスの消費
A2 では，音声対話によってマイクロサービスを実行する際のエージェントの振る舞いを設定する．以下の図
3.2 は提案システムの状態遷移図である．

Fig 3.2 State transition diagram of invented system
このような振る舞いをするシステムを実装するためには，次の 4 つの Step を行う必要があると考えた．
(Step1): キーワードによる状態遷移(Step2): 対話による操作選択・メータ取得(Step3): マイクロサービス実行(Step4): 対話による実行結果の説明
3・3・1 Step1: キーワードによる状態遷移
S1：「対話モード」のエージェントは，キーワードを受け取ると対応したサービスの S2：「サービス実行準備」
状態に移行する．キーワードは，そのサービスを表す簡単で短い言葉で，かつエージェントが認識できる言葉に設定する必要がある．
ToDo 管理サービスの場合は，そのまま「ToDo」をキーワードにしてもエージェントが「ToDo」という言葉を認識できないので，キーワードは「やることリスト」に設定する．
3・3・2 Step2: 対話による操作選択・パラメータ取得
S2：「サービス実行準備」状態のエージェントは，ユーザとの対話を通して何の操作を行うかを取得する．このとき，サービスのすべての操作と連携する必要はなく，そのサービスの本質となる操作とその他必要な操作と[No.21-4] 日本機械学会 第 31 回設計工学・システム部門講演会講演論文集〔2021.9.15.-17, オンライン開催〕

CopyrightⒸ2021 一般社団法人 日本機械学会連携できてればよい．そして，その操作を行うのに必要なパラメータをユーザに尋ね，適当な形に組み立てておく．
ToDo 管理サービスの場合は，連携する操作を，「自分の ToDo の確認」，
「ToDo の作成」，
「ToDo の達成」の 3つに設定する．エージェントは，まず 3 つの操作中からどの操作を行うかをユーザに尋ねる．
「作成」を実行する
場合，作成する ToDo のタイトルをユーザに尋ねる(ここでは「病院に行く」とする)．そして，パラメータを{”title”:”病院に行く”,"description":""}という形に組み立てる．また，「達成」を実行する場合，達成した ToDo のタイトル
をユーザに尋ねる．そして，尋ねたタイトルと一致する ToDo の tid を求める．
3・3・3 Step3: マイクロサービス実行
ユーザから聞き出したパラメータや対応するサービスの API を用いて，マイクロサービスを実行する．
ただし，重要な操作を実行するときには，必ず事前にユーザに確認を取るようにする．そしてマイクロサービスの実行が完了すると，その結果を取得し，S3：「実行結果説明」状態に移行する．
ToDo 管理サービスの場合は，それぞれの操作に対して次のようにふるまう．
「確認」を行う場合は，表 3.1 の「自分の ToDo 一覧を取得する API」を実行する．
「作成」を行う場合は，実行前にユーザに確認を取り，Step 2
で組み立てたパラメータを body として表 3.1 の「ToDo を作成する API」を実行する．
「達成」を行う場合は，実行前にユーザに確認を取り，表 3.1 の「ToDo を達成する API」を実行する．
3・3・4 Step4: 対話による実行結果の説明
マイクロサービスを実行して得られた結果を，対話によってわかりやすくユーザに説明する．このとき，マイクロサービスの返り値をそのまま説明するのではなく，利用者にわかりやすいように変換して説明する必要がある．そして，実行結果の説明が終わると，S2：「サービス実行準備」状態に移行する．
ToDo 管理サービスの場合は，それぞれの操作に対して次のようにふるまう．
「確認」を行った場合は，API を実行して得られた ToDo のリストからそれぞれの ToDo のタイトルを取得し，見やすいように整形して画面に表
示する．
「作成」
，
「達成」を行った場合は，成功・失敗した旨をわかりやすく説明する．

4. 考案フレームワークの適用例
本章では，3 章で考案したフレームワークを適用し，メイちゃんといくつかのマイクロサービスの連携を行う．
連携するマイクロサービスは，ToDo 管理サービスと YouTube とする．それぞれの場合における A1，A2 について述べ，ユーザと対話エージェントのやり取りの一例を載せる．
4・1 メイちゃんと ToDo 管理サービスの連携考案したフレームワークを適用し，メイちゃんと ToDo 管理サービスの連携を行った．このときのアーキテク
チャを図 4.1 に示す．
ToDo 管理サービスと連携するときの A1，A2 については，3 章ですでに述べたので，その時のメイちゃんのふるまいについて，ユーザとエージェントのやり取りの一例を用いて説明する．
まず，ユーザは対話モードのメイちゃんにキーワードの「やることリスト」と発話する．すると，メイちゃん
は ToDo 管理サービスの実行準備状態に移行する．サービス実行準備状態になると，メイちゃんは「確認」
，
「作
成」
，
「達成」
，
「終了」の中から実行する操作をユーザに尋ねる．ユーザが「確認」と発話すると，メイちゃんはユーザの ToDo 一覧を取得する API を実行し，結果を取得する．そして，メイちゃんは実行結果説明状態へ移行
し，取得した結果を整理してわかりやすく説明する．ユーザが「作成」と発話すると，メイちゃんは作成する ToDoのタイトルをユーザに尋ねる．そして，この条件でサービスを実行してもよいかユーザに確認を取る．確認が取れたら，メイちゃんは ToDo を新規作成する API を実行し，実行結果説明状態に移行し，ToDo の作成が成功したかどうかを簡潔に説明する．ユーザが「達成」と発話すると，メイちゃんは達成した ToDo のタイトルをユーザに尋ねる．そして，この条件でサービスを実行してもよいかユーザに確認を取る．確認が取れたら，メイちゃん
は指定した ToDo を Done にする API を実行し，実行結果説明状態に移行し，ToDo の達成が成功したかどうかを簡潔に説明する．ここで，
「確認」
，
「作成」
，
「達成」の実行結果の説明を終えると，メイちゃんはサービス実行準
備状態に戻り，再びユーザに実行する操作を尋ねる．そして，ユーザが「終了」と発話すると，メイちゃんはサービス実行準備状態を終了し，対話モードに戻る．

[No.21-4] 日本機械学会 第 31 回設計工学・システム部門講演会講演論文集〔2021.9.15.-17, オンライン開催〕

CopyrightⒸ2021 一般社団法人 日本機械学会

このやり取りの一例を以下に示す．図 4.1 は「確認」，図 4.2 は「作成」，図 4.3 は「達成」のエージェントとユーザのやり取りである．ただし，ユーザの発話を U，エージェントの発話を A とする．

Fig 4.1 Examples of dialogue 1

Fig 4.2 Examples of dialogue 2

Fig 4.3 Examples of dialogue 3

4・2 メイちゃんと YouTube の連携考案したフレームワークを適用し，メイちゃんと YouTube を連携をすることで，メイちゃんに YouTube の動画検索機能を実装した．このときのアーキテクチャを図 4.2 に示す．
ここでは，まず YouTube と連携する際の A1，A2 について簡単に述べる．そして，その時のメイちゃんのふる
まいを，ユーザとエージェントのやり取りの一例を用いて説明する．
まず，YouTube と連携する際の A1，A2 について述べる． A1 については，今回はユーザ情報の紐づけを必要としないので，特になにも行わない．次に A2 について，各 Step について簡単に述べる．まず Step1，キーワー
ドを「YouTube」に設定する．次に Step2，実行する操作は動画の検索なので，検索するワードをユーザに尋ねる．
次に Step3，YouTube Data API をラップした自作の動画検索 API を実行する．この API の実行結果は，指定したワードを YouTube で検索した結果の上から 10 件の情報を格納した配列の JSON である．そして Step4，実行結果の中から動画であるものを選別し，そのタイトルを最大 5 件まで画面に表示する．ここで，後で詳しく述べるがもう一度 Step2 に移行する．Step2 として，直前に表示した動画のタイトルの中から，見たいものをユーザに尋ねる．そして Step3 で Iframe Player API を実行し，選択された動画を Iframe に埋め込む．最後に Step4 で動画を表示
し，傾聴を終了する．
次に，YouTube と連携した時のメイちゃんのふるまいについて述べる．まず，ユーザは対話モードのメイちゃんにキーワードの「YouTube」と発話する．すると，メイちゃんは YouTube 動画検索の実行準備状態に移行する．
サービス実行準備状態になると，メイちゃんは検索するワードをユーザに尋ねる．ユーザが検索ワードを答えると，メイちゃんは動画を検索する API を実行し，結果を取得する．そして，メイちゃんは実行結果説明状態へ移行し，検索結果を整理してわかりやすく説明する ．その後メイちゃんはサービス実行準備状態に戻り，表示した検索結果の中からどの動画を見たいかをユーザに尋ねる．ユーザが見たい動画を答えると，動画を表示させる API
を実行し，メイちゃんは実行結果説明状態に移行して動画を画面に表示する．そして，メイちゃんは実行結果説
明状態からサービス実行準備状態に戻り，さらにそこから対話モードに戻り，傾聴を終了しアイドル状態に移行する．
このやり取りの一例を図 4.4 に示す．ただし，ユーザの発話を U，エージェントの発話を A とする．また，実際の画面を図 4.5 に示す．

[No.21-4] 日本機械学会 第 31 回設計工学・システム部門講演会講演論文集〔2021.9.15.-17, オンライン開催〕

CopyrightⒸ2021 一般社団法人 日本機械学会

Fig 4.4 Examples of dialogue 4

Fig 4.5 User interface

5. 結

論

本稿では，エージェントとの対話を通して様々なマイクロサービスを実行するシステムを実現するために，対話エージェントを活用した音声対話によるマイクロサービス実行フレームワークについて考察した．そして，考案したフレームワークを適用し，メイちゃんと ToDo 管理サービス・YouTube の連携を行った．これにより，実際に操作をすることなく，エージェントとの対話のみでサービスを実行することができた．しかし，音声認識の誤りにより，期待した通りにサービスが実行できないことがあった．また，一回の発言に複数のキーワードが含まれていた時の処理が不十分であった．今後は，これらの課題を解決しつつ，実際に高齢者に使用して頂き，性能を改善していく予定である．
謝

辞本研究の一部は JSPS 科研費 JP19H01138, JP18H03242, JP18H03342, JP19H04154, JP19K02973，JP20K11059,
JP20H04014, JP20H05706 および，立石科学技術振興財団の研究助成を受けて行われている．
文

献(1) L. Akinobu, O. Keiichiro, and T. Keiichi. “MMDAgent—A fully open-source toolkit for voice interaction systems”. In: 2013
IEEE International Conference on Acoustics, Speech and Signal Processing. IEEE, (2013), pp. 8382-8385.
(2) S. Sakakibara, S. Saiki, M. Nakamura, and K. Yasuda. “Generating personalized dialogue towards daily counseling system forhome dementia care”. In: International Conference on Digital Human Modeling and Applications in Health, Safety,
Ergonomics and Risk Management. Springer, Cham, (2017), pp. 161-172.
(3) H. Maeda, S. Saiki, M. Nakamura, and K. Yasuda. “Memory Aid Service Using Mind Sensing and Daily Retrospective byVirtual Agent”. In: International Conference on Human-Computer Interaction. Springer, Cham, (2019), pp. 353-364.
(4) Dragoni, N., Giallorenzo, S., Lafuente, A. L., Mazzara, M., Montesi, F., Mustafin, R., and Safina, L., “Microservices: yesterday,
today, and tomorrow.”, Present and ulterior software engineering, (2017), pp. 195-216.

[No.21-4] 日本機械学会 第 31 回設計工学・システム部門講演会講演論文集〔2021.9.15.-17, オンライン開催〕