会話型ロボットを作った話 sh4869
会話型ロボットを作った話
sh4869
自己紹介
名前:笠井信宏
学校:東京工業大学附属高校
所属:マイコン制御部
ハンドルネーム:sh4869
Twitter:@sh4869sh
RubyとかDartとか好き(書けるとは言っていな
い)
宣伝
FRC(First Robotics Competition)
という海外のロボットの大会に
Tokyo Technical Samurai
というチームで出場します!!!
詳しくはここ→http://tokyotechnicalsamurai.ml
スポンサー募集中です!!
宣伝失礼しました。
m(_ _)m
・会話型ロボットを作った話
・会話型ロボットの技術的な話
・会話型ロボットを作る上での辛さ
・これからの改善点
今日話したいこと
・会話型ロボットを作った話←これ
・会話型ロボットの技術的な話
・会話型ロボットを作る上での辛さ
・これからの改善点
今日話したいこと
ロボット・セラピーとは
・ロボット介在療法(Robot Assisted Therapy)
動物の代わりとしてロボットを介在した心理療法
・ロボット介在活動(Robot Assisted Activity)動物の代わりとしてロボットを介在した触れ合い活動
↑
こっちっぽいものを僕らは作った
画像引用株式会社知能システム(http://intelligent-system.jp/)
・部活で「文化祭で全体の出し物を作ろう」ということになった→なぜか部長ある人が「ぬいぐるみ使おう」と言い出す→熊のぬいぐるみを加工することになる→じゃあソフトどうしようか→→くまが喋ったら可愛いよね!!!
作ることになったきっかけ
完成したものがこちら
機能・喋ると手を振ってくれる・音声認識によって(上手くいけば)ちゃんとした返事を返してくれる学校の文化祭展示と早稲田大学の理工展に出した
デモは懇親会の時に
・会話型ロボットを作った話
・会話型ロボットの技術的な話←これ
・会話型ロボットを作る上での辛さ
・これからの改善点
今日話したいこと
ロボットの技術的な説明
このロボットがしてること
・音声認識
・返答生成
・返答音声生成
ロボットの技術的な説明
このロボットがしてること
・音声認識←これについて
・返答生成
・返答音声生成
音声認識
RubyとJuliusを利用した
1.Juliusをサーバーモードで起動
2.Rubyで送られてくるXMLを解析
→解析結果から発話だけを取り出す
→返答生成になげる
そもそもJuliusって?
大語彙連続音声認識エンジン
・オープンソース高性能音声認識ソフトウェア
・マルチプラットフォーム
・単純に言えばマイクからの音声を認識して
解析結果を返してくれる
Juliusの凄いところ
・音声モデルと言語モデルと認識システムが
独立している
→状況に合わせた開発が可能
・文のパターンを自分で書ける
→用途が限定されたシステムを構築可能
Juliusの凄いところ 2
・オープンソースライセンスなので
自由に自分で拡張可能(GPLではない)
・サーバーモード(TCP/IP)を使うことで
ネットワーク経由で音声解析結果が受け取れる
→普通のプログラミング言語でも扱える
ロボットの技術的な説明
このロボットがしてること
・音声認識
・返答生成←これについて
・返答音声生成
返答生成
・いわゆるパターンマッチを利用した
・辞書(っぽいもの)を作成した
このことについては反省が多いので
次の辛さのところで述べます....
ロボットの技術的な説明
このロボットがしてること
・音声認識
・返答生成
・返答音声生成←これについて
返答音声生成
・Open jTalkを利用した
Open jTalkとは
日本語テキストを渡すと音声結果を返してくれ
る
いわゆる音声合成システム
返答生成で生まれた返答をOpen jTalkに渡した
返答音声生成
流れ
1.返答をテキストファイルに書き込む
2.それをOpen jTalkに渡す
3. Wavファイルが生成される
4.それをmplayerで再生
このへんはシェルスクリプトでやりました....
ここまで一連の流れの処理はGitHubで公開中
GitHub sh4869/AVAWSW
pull requestとかお待ちしています...
・会話型ロボットを作った話
・会話型ロボットの技術的な話
・会話型ロボットを作る上での辛さ←これ
・これからの改善点
今日話したいこと
つらみ1:音響モデルについて
今回のロボットは子どもの相手的なのを想像し
てる
→音響モデルが通常のものではまずい
→デモ(理工展)の時までに
児童用の音響モデルを探しきれなかった
→小さい子の声にうまく反応してくれない
→小さい子拗ねる→僕ら悲しむ(´・ω・`)
つらみ2:返答生成について(1)
最初はちゃんと人工無能を生成しようとした
→「そもそもセラピーロボットって
どういう人格持たせればいいの?」
→わからないのでCSVで書くという手段に出る
左側にあった文字列が解析した結果に含まれていれば、右側の言葉を返す(いわゆるパターンマッチ)
つらみ2:返答生成について(2)
もちろん良い点もあった
(優先度が決められる、人格が設定できる)
ただ体験しに来た人は
「ちゃんと会話してくれるロボット」だと思っ
ている
日常会話的なことも言ってくる
→CSV辞書にない
つらみ2:返答生成について(3)
辞書にないものは
docomoの雑談対話APIというものを使おうと
した雑談対話 | docomo Developer support
しかしこれが間違いだった。
つらみ2:返答生成について(4)
普段の会話は大丈夫
しかし音声認識に失敗してるということは、
わけのわからない文章が送られているというこ
と。
つらみ2:返答生成について(5)
試しにわけのわからない文字を送った結果
ちゃんと認識されていない時点で
会話が成り立たない
→docomoAPIを叩くともっとおかしくなる(´・
ω・`)
・会話型ロボットを作った話
・会話型ロボットの技術的な話
・会話型ロボットを作る上での辛さ
・これからの改善点←これ
今日話したいこと
音声認識に関しての改善
・音響モデルの変更
可能であれば相手を判断して
音響モデルが変えられるようにしたい
・記述文法の利用
セラピーロボットなので
そこまで会話のパターンは多くないはず
→記述文法を利用することで精度を上げる
返答生成についての改善点
1. CSV形式の辞書をもっと大きくする
音声認識の精度があがれば大部分のものは
パターンマッチでカバーできるのではないか
→辞書を大きくすることでカバーできる範囲を増
やす
→何かの文章から辞書を生成できるようにする
→どの文章を選ぶかが重要
返答生成についての改善点
2. パターンマッチの方法を変えてみる
現在の方法では単語から文章の返答しかできない
「”{名詞}が好きです”
→”どうして{名詞}が好きなんですか?”」
みたいな返答ができると汎用性が高まる
形態素解析も必要になってくるか?(mecabなど)
参考文献
The Julius Book http://julius.sourceforge.jp/juliusbook/ja/
荒木雅弘 (2007) 『フリーソフトでつくる音声認識システム』森北出版株式会社
232pp
御清聴ありがとうございました!