：ボイスエージェントによる生活支援〜行動解析〜
初鳥 花苗

1(指導教員：椎尾 一郎)

はじめにスプログラムと制御プログラムはそれぞれデータベースと接続している．生活習慣アドバイスプログラムの中で制御プログラムを呼び出し，センサーからの入力やスピーカーからの出力を行う．ソフトウェアの開発
言語には python を使用した．生活行動アドバイスプ
ログラムは後述で詳しく説明する．

１人暮らしの生活では, 親や配偶者と同居している場合に比べ, 規則正しい生活を行うことができない場合が多い. この理由の一つは，同居人がいる場合にはお互いに生活リズムの乱れを注意したり，相手の健康への配慮から生活習慣の改善を促すよう声をかけたりするが，1 人暮らしの場合にはこのような働きかけが得られないためである。
そこで，同居人の代わりに生活支援システムによる声かけを行うことで規則正しい生活できると考えた．
ここで，ユーザーにとって好ましい行動を取るもの全般を，俗に気に入ったキャラクターのことを意味する「嫁」という言葉で表現する．ユーザーにとって好ましい「嫁」からの生活支援ならば，影響力が増すだろう．
本研究では，家屋内の複数個所に人感センサとスピーカーを設置し，一人暮らしをしているユーザーの現在位置と屋内移動を常に認識し，適切なタイミングで音声アドバイスをユーザーに提供することに加え，「嫁」としての付加価値のある，ボイスエージェントによる生活支援システムの開発を行った．
また、本研究は同研究室の金村容華との共同研究であり、本システムのハードウェアに関しては、金村の卒論要旨で説明する。

24

パラレル変換モジュール2 を用いて，複数のセンサーからの入力を取得する．説明のため，入力の一例を図で示した（図 2）
最初に，モジュールごとに識別番号を割り振る．例の場合では，モジュール 1 に 1 番，モジュール 2 に２番を与える．センサーからモジュールの各ピンに，人物を検出した場合には 1，検出していない場合には０の値を送る．センサー接続のないピンは全て入力を 1とし，モジュールのピン 8 本分の値を 16 進数で制御プログラムに送る．モジュールごとに得た値は，最初に指定したモジュールの識別番号を配列のキーとした配列に格納する．
(1) [ 1: /xf4 , 2: /xce” ]次に，16 進数を 2 進数に変換する．
(2) [ 1:11110100, 2:11001110 ]最後に，2 進数の値を桁毎に区切って配列に格納したものを返す．
(3) data = [ 1:[0,0,1,0,1,1,1,1], 2:[0,1,1,1,0,0,1,1] ]以上の方法で，i 番モジュールの j 番ピンの値をdata[i][j] に格納している．

関連研究，商品

Gatebox1 はカメラによるユーザの認識やマイクによる音声認識機能を備えており，円筒形の透明ケース内の半透明スクリーンに投影されたアニメーションキャラクターがユーザと挨拶を交わしたり，天気などの情報を音声で伝えたりすることができる．また，赤外線学習リモコン機能により，音声認識による家電の操作も可能である．しかし，本体を設置した場所でしか使用することができないため，家屋内の位置情報をもとにしたアドバイスを行う本研究とは異なる．

3

制御プログラム

5

データベース本システムでは，MySQL によるデータベースを使用する．本システムでは，ユーザーの行動習慣を「何時に何処へ移動する」という行動予定の情報として，ユーザーがあらかじめ記録しておく必要がある．また，ボイスエージェントが状況に応じて話す文章と，ボイスエージェントの声色に関する設定も，事前にユーザーが記録しておく．その他には，ユーザーの行動履歴と，システムのために必要な各種設定情報が記録されている．

システム構成システム全体の構造図を示す（図 1）
著者は主にソフトウェアの実装を行った．Linux 上にデータベースサーバーを設置し，生活行動アドバイ

図 2: センサーからの情報取得

図 1: 構造図
1 http://gatebox.ai

2 http://akizukidenshi.com/catalog/g/gK-01799/

17

6

生活行動アドバイスプログラム

6.1

概要を判定する．この部分は現在実装中であり，行動判定のためにより正確性の高い方法を模索中である．また，予定が達成されたと判定された場合，次に，ボイスエージェントがユーザーに声かけを行うための文章生成処理に移行する．

本プログラムは，センサーからの入力の状態にしたがってユーザーの行動を推定し，生活行動のためのアドバイスをボイスエージェントが話すことを目標とし，そのための方法を 2 つ提案する．
方法 1 ユーザーがあらかじめ設定した行動予定と，検出されたユーザーの行動を参照してアドバイスする
方法 2 日々の行動から抽出した生活習慣と，検出されたユーザーの行動を参照してアドバイスする
現段階では，方法 1 についての開発を進め，その一部が完成した．方法 1 について，概要を図に示す (図3) 本プログラムの開発言語は python で，macOS 上で開発を行った後に，Linux へと移植を行った．

6.2

6.4

行動予定のうちのどれかが，予定時刻になっても達成が確認されていない場合や，ユーザーの行動判定によって予定のどれかが達成した場合に，ボイスエージェ
ントがユーザーに対して声をかける．ボイスエージェ
ントが喋る文章は，ユーザーがあらかじめデータベースに登録したものに限られる．から判断して適切な文章を取得し，それらを組み合わせることによって文章生成を行う．例として，「起床した」「予定よりも早い時刻だった」という場合には，「おはようございます，今日は頑張りましたね」といった文章が生成される．この部分は，行動判断と同様に現在実装中である．

行動検出

前述した制御プログラムで，センサーからの入力が得られた．生活行動アドバイスプログラムでは，得られたセンサー入力値からユーザーの現在位置を検出する．まず，屋内の行動ごとに識別記号を与える．図 2の例を取り，場所 A に A, 場所 B に B，場所 C に C を与える．
制御プログラムから得た値(1) [ 1:[0,0,1,0,1,1,1,1], 2:[0,1,1,1,0,0,1,1] ]次に，場所の識別記号をキーとした配列に，場所と対応する位置に設置されたセンサーからの入力を格納する(2) [ A:[0,0], B:[1,0,0], C:[1,1,1,0,0] ]センサーの個数に対し，人物の検出が最も多い (値 1の頻度が最も高い) 場所を，ユーザーの現在地をする．
今回の例では，場所 C に人物がいると判断される．
生活行動アドバイスプログラムにおいて，モジュールの制御プログラムを毎秒実行することで，ユーザーの位置を毎秒取得する．ユーザーの位置として得られるデータの中には誤差が含まれる可能性があるため，後の処理では平滑化処理を行った後のデータを使用する．また，平滑化後のデータにおける変化点を，ユーザーの行動履歴として記録する．

6.3

アナウンス文章生成

6.5

ボイスエージェントの音声再生

ボイスエージェントの音声再生のために、Linux 日本
語音声合成エンジン Open Jtalk 3 を使用する．OpenJTalk の機能として，音声ライブラリの変更，声の高さ、抑揚、話す速さなどの調整が可能である。なお、
OpenJTalk 以外の音声読み上げシステム（AITalk4 など）を使用することによって、さらに幅広い音声設定が可能である。使用する音声ライブラリや声色の設定をデータベースに記録しておくことで，読み上げの音声をユーザーが任意に設定することができる．

7

動作結果

現時点での実装状況で動作確認を行った．センサー
情報から検出できたユーザー位置の正確性が高いと感じたが，屋内に 2 人以上いる場合には予期せぬエラーが発生することが確認された．また，ユーザーによるデータベース編集があまり簡単ではないと感じた．

8

まとめと今後の課題

一人暮らしをしているユーザーの生活行動を検出し，ユーザーの好みに合った音声アドバイスを行うボイスエージェントによる生活支援システムの開発を行った．
現在は，ユーザーが習慣としたいと考える生活行動をあらかじめ入力し，これを元に音声アドバイスを提示している．今後は，ユーザーの数日分の行動履歴から規則的な生活行動を自動的に分析する機能を実装し，より使いやすいシステムに発展させていきたい．

行動判定

ユーザーの屋内移動を検出した場合に，ユーザーの移動前後の場所，移動時刻を判断材料として，データベースの検索を行い，達成された予定があるかどうか

参考文献
[1]

横山 淳一, 山本 勝：生活習慣の自己評価方法の基本
設計 (2011)[2] 植田 浩光 , 赤松 徹 , 吉田 博哉:サーバ監視システム
Nagios を使用した高齢者生活監視システムの構築 (2010)

図 3: 生活行動アドバイスプログラム概要

3 http://open-jtalk.sourceforge.net
4 http://www.ai-j.jp

18