Top Banner
会話型ロボットを作った話 sh4869
34

会話型ロボットを作った話

Jul 17, 2015

Download

Engineering

Kasai Nobuhiro
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 会話型ロボットを作った話

会話型ロボットを作った話

sh4869

Page 2: 会話型ロボットを作った話

自己紹介

名前:笠井信宏

学校:東京工業大学附属高校

所属:マイコン制御部

ハンドルネーム:sh4869

Twitter:@sh4869sh

RubyとかDartとか好き(書けるとは言っていな

い)

Page 3: 会話型ロボットを作った話

宣伝

FRC(First Robotics Competition)

という海外のロボットの大会に

Tokyo Technical Samurai

というチームで出場します!!!

詳しくはここ→http://tokyotechnicalsamurai.ml

スポンサー募集中です!!

Page 4: 会話型ロボットを作った話

宣伝失礼しました。

m(_ _)m

Page 5: 会話型ロボットを作った話

・会話型ロボットを作った話

・会話型ロボットの技術的な話

・会話型ロボットを作る上での辛さ

・これからの改善点

今日話したいこと

Page 6: 会話型ロボットを作った話

・会話型ロボットを作った話←これ

・会話型ロボットの技術的な話

・会話型ロボットを作る上での辛さ

・これからの改善点

今日話したいこと

Page 7: 会話型ロボットを作った話

ロボット・セラピーとは

・ロボット介在療法(Robot Assisted Therapy)

動物の代わりとしてロボットを介在した心理療法

・ロボット介在活動(Robot Assisted Activity)動物の代わりとしてロボットを介在した触れ合い活動

こっちっぽいものを僕らは作った

画像引用株式会社知能システム(http://intelligent-system.jp/)

Page 8: 会話型ロボットを作った話

・部活で「文化祭で全体の出し物を作ろう」ということになった→なぜか部長ある人が「ぬいぐるみ使おう」と言い出す→熊のぬいぐるみを加工することになる→じゃあソフトどうしようか→→くまが喋ったら可愛いよね!!!

作ることになったきっかけ

Page 9: 会話型ロボットを作った話

完成したものがこちら

機能・喋ると手を振ってくれる・音声認識によって(上手くいけば)ちゃんとした返事を返してくれる学校の文化祭展示と早稲田大学の理工展に出した

デモは懇親会の時に

Page 10: 会話型ロボットを作った話

・会話型ロボットを作った話

・会話型ロボットの技術的な話←これ

・会話型ロボットを作る上での辛さ

・これからの改善点

今日話したいこと

Page 11: 会話型ロボットを作った話

ロボットの技術的な説明

このロボットがしてること

・音声認識

・返答生成

・返答音声生成

Page 12: 会話型ロボットを作った話

ロボットの技術的な説明

このロボットがしてること

・音声認識←これについて

・返答生成

・返答音声生成

Page 13: 会話型ロボットを作った話

音声認識

RubyとJuliusを利用した

1.Juliusをサーバーモードで起動

2.Rubyで送られてくるXMLを解析

→解析結果から発話だけを取り出す

→返答生成になげる

Page 14: 会話型ロボットを作った話

そもそもJuliusって?

大語彙連続音声認識エンジン

・オープンソース高性能音声認識ソフトウェア

・マルチプラットフォーム

・単純に言えばマイクからの音声を認識して

解析結果を返してくれる

Page 15: 会話型ロボットを作った話

Juliusの凄いところ

・音声モデルと言語モデルと認識システムが

独立している

→状況に合わせた開発が可能

・文のパターンを自分で書ける

→用途が限定されたシステムを構築可能

Page 16: 会話型ロボットを作った話

Juliusの凄いところ 2

・オープンソースライセンスなので

自由に自分で拡張可能(GPLではない)

・サーバーモード(TCP/IP)を使うことで

ネットワーク経由で音声解析結果が受け取れる

→普通のプログラミング言語でも扱える

Page 17: 会話型ロボットを作った話

ロボットの技術的な説明

このロボットがしてること

・音声認識

・返答生成←これについて

・返答音声生成

Page 18: 会話型ロボットを作った話

返答生成

・いわゆるパターンマッチを利用した

・辞書(っぽいもの)を作成した

このことについては反省が多いので

次の辛さのところで述べます....

Page 19: 会話型ロボットを作った話

ロボットの技術的な説明

このロボットがしてること

・音声認識

・返答生成

・返答音声生成←これについて

Page 20: 会話型ロボットを作った話

返答音声生成

・Open jTalkを利用した

Open jTalkとは

日本語テキストを渡すと音声結果を返してくれ

いわゆる音声合成システム

返答生成で生まれた返答をOpen jTalkに渡した

Page 21: 会話型ロボットを作った話

返答音声生成

流れ

1.返答をテキストファイルに書き込む

2.それをOpen jTalkに渡す

3. Wavファイルが生成される

4.それをmplayerで再生

このへんはシェルスクリプトでやりました....

Page 22: 会話型ロボットを作った話

ここまで一連の流れの処理はGitHubで公開中

GitHub sh4869/AVAWSW

pull requestとかお待ちしています...

Page 23: 会話型ロボットを作った話

・会話型ロボットを作った話

・会話型ロボットの技術的な話

・会話型ロボットを作る上での辛さ←これ

・これからの改善点

今日話したいこと

Page 24: 会話型ロボットを作った話

つらみ1:音響モデルについて

今回のロボットは子どもの相手的なのを想像し

てる

→音響モデルが通常のものではまずい

→デモ(理工展)の時までに

児童用の音響モデルを探しきれなかった

→小さい子の声にうまく反応してくれない

→小さい子拗ねる→僕ら悲しむ(´・ω・`)

Page 25: 会話型ロボットを作った話

つらみ2:返答生成について(1)

最初はちゃんと人工無能を生成しようとした

→「そもそもセラピーロボットって

どういう人格持たせればいいの?」

→わからないのでCSVで書くという手段に出る

左側にあった文字列が解析した結果に含まれていれば、右側の言葉を返す(いわゆるパターンマッチ)

Page 26: 会話型ロボットを作った話

つらみ2:返答生成について(2)

もちろん良い点もあった

(優先度が決められる、人格が設定できる)

ただ体験しに来た人は

「ちゃんと会話してくれるロボット」だと思っ

ている

日常会話的なことも言ってくる

→CSV辞書にない

Page 27: 会話型ロボットを作った話

つらみ2:返答生成について(3)

辞書にないものは

docomoの雑談対話APIというものを使おうと

した雑談対話 | docomo Developer support

しかしこれが間違いだった。

Page 28: 会話型ロボットを作った話

つらみ2:返答生成について(4)

普段の会話は大丈夫

しかし音声認識に失敗してるということは、

わけのわからない文章が送られているというこ

と。

Page 29: 会話型ロボットを作った話

つらみ2:返答生成について(5)

試しにわけのわからない文字を送った結果

ちゃんと認識されていない時点で

会話が成り立たない

→docomoAPIを叩くともっとおかしくなる(´・

ω・`)

Page 30: 会話型ロボットを作った話

・会話型ロボットを作った話

・会話型ロボットの技術的な話

・会話型ロボットを作る上での辛さ

・これからの改善点←これ

今日話したいこと

Page 31: 会話型ロボットを作った話

音声認識に関しての改善

・音響モデルの変更

可能であれば相手を判断して

音響モデルが変えられるようにしたい

・記述文法の利用

セラピーロボットなので

そこまで会話のパターンは多くないはず

→記述文法を利用することで精度を上げる

Page 32: 会話型ロボットを作った話

返答生成についての改善点

1. CSV形式の辞書をもっと大きくする

音声認識の精度があがれば大部分のものは

パターンマッチでカバーできるのではないか

→辞書を大きくすることでカバーできる範囲を増

やす

→何かの文章から辞書を生成できるようにする

→どの文章を選ぶかが重要

Page 33: 会話型ロボットを作った話

返答生成についての改善点

2. パターンマッチの方法を変えてみる

現在の方法では単語から文章の返答しかできない

「”{名詞}が好きです”

→”どうして{名詞}が好きなんですか?”」

みたいな返答ができると汎用性が高まる

形態素解析も必要になってくるか?(mecabなど)

Page 34: 会話型ロボットを作った話

参考文献

The Julius Book http://julius.sourceforge.jp/juliusbook/ja/

荒木雅弘 (2007) 『フリーソフトでつくる音声認識システム』森北出版株式会社

232pp

御清聴ありがとうございました!