ワークショップ基礎編#3...
Transcript of ワークショップ基礎編#3...
-
Softbank Robotics Corp. 2015 All rights reserved.
ワークショップ基礎編#3Dialogを使ってみよう
-
Softbank Robotics Corp. 2015 All rights reserved.
Dialogの特徴
①簡単なスクリプトで多様な表現ができる-‐‑‒⼈人間との応対に特化したスクリプト、qichatで簡単にプログラムできる-‐‑‒animatedSayで使った動作や他のアプリを動かすことができる
台本を書くようなイメージでPepperの会話をつくる ことができる。
②⼈人間らしい⼊入⼒力力に対応-‐‑‒⾔言いよどみや⾔言い換え、語順の変化などにも対応
SpeechRecoボックス(キーワード認識識)では難しかった「⼈人間らしい会話」をさせることができる。
-
Softbank Robotics Corp. 2015 All rights reserved.
ダイアログの作り⽅方① トピックファイルの作成
①”プロジェクトの内容”パネルに ダイアログのトピックを作成
②日本語の会話を設定し、 トピックの名前を設定
A
③トピックファイルができた!
B
C
-
Softbank Robotics Corp. 2015 All rights reserved.
ダイアログの作り⽅方② トピックファイルの利利⽤用⽅方法①自分の設定したトピック名のフォルダから*.dlgファイルをドラッグ&ドロップすると、ボックス化され、他のボックスと同じようにリンクでつなぐことができるようになる。
②*_jpj.topファイルをダブルクリックすると、 会話の内容を設定できるようになる。
-
Softbank Robotics Corp. 2015 All rights reserved.
⼈人間側の「⾔言ったこと」、「やったこと」に対してPepperが「どう返すか」というルールを記述するスクリプト
①⼈人間が⾔言った事をu:(○○)と書いて、リアクションをそのあとに記述する。u:(鏡よ鏡、世界で⼀一番美しいのは)そなたじゃカッコの半⾓角、全⾓角、半⾓角スペースの挿⼊入などに注意。
②⼈人間の曖昧な表現に対応する。u:({*}世界 {*} 強い{*})そなたじゃ例例:「鏡よ鏡、鏡さん、世界で⼀一番強いのはだあれ?」 「世界⼀一強いのは?」
にたいして、同じリアクションをする。
Qichatとは① いろんな受けごたえ -‐‑‒1
-
Softbank Robotics Corp. 2015 All rights reserved.
Qichatとは① いろんな受けごたえ -‐‑‒2⼈人間側の「⾔言ったこと」、「やったこと」に対してPepperが「どう返すか」というルールを記述するスクリプト
③複数の問いかけに対応する。u:({*}世界{*}[美しい きれい かわいい]{*}) そなたじゃu:({*}世界{*}[強い こわい]{*}) ゴジラかな例例:「鏡よ鏡、世界で⼀一番(強いorこわい)のは?」『ゴジラかな』④複数の返答を⽤用意する。u:({*}世界{*}美しい{*})[そなた クレオパトラ 楊貴妃]じゃ例例:「鏡よ鏡、世界で⼀一番美しいのは?」『そなたじゃ』or『クレオパトラじゃ』
⑤類義語をあらかじめ設定するconcept:(beautiful) [美しい きれい かわいい] u:({*}世界{*} ~∼beautiful {*}) そなたじゃ例例:「鏡よ鏡、世界で⼀一番(美しいorきれいorかわいい)のは?」『そなたじゃ』
-
Softbank Robotics Corp. 2015 All rights reserved.
Qichatとは② 会話の流流れ
①u1, u2, u3.. で会話の流流れを作る。
u: (こんにちは) こんにちは。ところでペット飼っていますか?
u1: ([はい 飼ってる]) そうですか、飼っているペットは、犬、猫、それ以外?
u2: (犬 {*}) わんわん。犬って賢いですよね!
u2: (猫 {*}) ニャアニャア。猫ってかわいいですよね!
u2: (それ以外{*}) どんなペットですか?興味あります!
u1: ([いいえ 飼ってない]) そうですか。ぜひペッパーを置いてください
-
Softbank Robotics Corp. 2015 All rights reserved.
Pepperの内部メモリと連携して動かす
①u:(e:RightBumperPressed)蹴らないで 右側のバンパーが押されると同時に発話。
②u:(e:onStart)こんにちは。はじめまして!
ボックスのonStartが刺刺激されると同時に発話。
③u:(e:Dialog/NotUnderstood)え?なんじゃ?もー⼀一回。 Pepperが聞き取れなかったときに書き込まれるメモリをキーに発話。
この際のメモリイベントはオリジナルのイベントでも構いません。 たとえば、qiitaの笑顔認識識ボックスを使った場合。
Qichatとは③ メモリイベントとの連携
-
Softbank Robotics Corp. 2015 All rights reserved.
Pepperが「どう返すか」に様々な付加機能をつける
①読み上げの表現⼒力力\pau=500\(待機 ms)や\rspd=100\ (速さ 50〜400) \vct=200\(⾳音程 50〜200)
②^start,^wait,^runなどによる動きの指定
u:(こんにちは) ^start(animations/Stand/Gestures/Hey_̲2) \vct=170\ こんにちは。はじめまして!\vct=100\ ^wait(animations/Stand/Gestures/Hey_̲2)
Qichatとは④ 様々なリアクション
-
Softbank Robotics Corp. 2015 All rights reserved.
Pepperが「どう返すか」に様々な付加機能をつける
③外部のボックスとの連携
ボックスの出⼒力力側にonCheckSmile という端⼦子を追加し Dialogの応答側に$onCheckSmile=1と追記すると出⼒力力端⼦子が発⽕火する。
u: (e:onStart) こんにちは。ところで笑顔チェックしませんか? u1: (はい) $onCheckSmile=1 u1: (いいえ) そうですかあ。何か⽤用事があったら呼んでね!
Qichatとは④ 様々なリアクション
-
Softbank Robotics Corp. 2015 All rights reserved.
Githubからコードをダウンロード「PepperのAPIを使って表情認識識」でqiitaを検索索、GitHubのURLへ。https://github.com/Atelier-‐‑‒Akihabara/pepper-‐‑‒face-‐‑‒characteristics-‐‑‒example
⾚赤枠部をクリックしてダウンロード
Qichatとは⑤ ボックスとの連携 -‐‑‒ 1
Click
-
Softbank Robotics Corp. 2015 All rights reserved.
Getsmileを引っこ抜く
①⾚赤枠部をコピー
②Dialogのプロジェクトにペーストして、ifとRaise Eventボックスを追加
Qichatとは⑤ ボックスとの連携 -‐‑‒ 2
Copy
Paste&Edit
-
Softbank Robotics Corp. 2015 All rights reserved.
Qichatとは⑤ ボックスとの連携 -‐‑‒ 3
③Dialog ボックスを作成、次のスクリプトを⼊入⼒力力
concept:(yes) [はい お願い そうだね やってみよう いいね] concept:(no) [いいえ いいです またこんど] u: (e:onStart) こんにちは。ところで笑顔チェックしませんか? u1: (~yes) ^start(animations/Stand/Emotions/Positive/Happy_4) オッケエ ^wait(animations/Stand/Emotions/Positive/Happy_4) \vct=110\じゃあ僕に向かってえ \pau=1000\ \vct=170\ 笑顔 \vct=110\ $onCheckSmile=1 u1: (~no) そうですかあ。何か⽤用事があったら呼んでね! u:(e:smilecheck/goodsmile) いい笑顔です!その調⼦子で! $onStopped=1u:(e:smilecheck/badsmile) もっと笑って!
-
Softbank Robotics Corp. 2015 All rights reserved.
出⼒力力 checksmile の追加④Dialog ボックス、出⼒力力の追加
ボックスの出⼒力力側にonCheckSmileという端⼦子を追加し Dialogの応答側に$onCheckSmile=1と追記すると出⼒力力端⼦子が発⽕火する。
Qichatとは⑤ ボックスとの連携 -‐‑‒ 4
-
Softbank Robotics Corp. 2015 All rights reserved.
⑤⾃自分で作ったダイアログとつなげる。
と⼊入れると、笑顔値が60%を超えた時「いい笑顔です!その調⼦子で!」と⾔言ってアプリが終了了する
Qichatとは⑤ ボックスとの連携 -‐‑‒ 5
smilecheck/goodsmile イベントを出すように設定
smilecheck/badsmile イベントを出すように設定
0.6 以上で条件が成立するよう設定
-
Softbank Robotics Corp. 2015 All rights reserved.
① Insert Data ボックスを追加する
② Qichat に次を追加すると
u:(e:smilecheck/badsmile) あなたの笑顔は $smilecheck/smile \pau=500\ もっと笑って!
笑顔が⾜足りない時、今の笑顔値を教えてくれる
Qichatとは⑥ 変数の使⽤用 -‐‑‒ 1
キーを smilecheck/smile に設定
-
Softbank Robotics Corp. 2015 All rights reserved.
①u:(ラーメン⾷食べたい) ラーメンですね。ありがとございます。$wantedFood = ラーメン u:(さっき頼んだやつまだ?) $wantedFood ですね。今作ってます。
②u:(_̲[ラーメン チャーハン カレー]⾷食べたい) $1 ですね。ありがとございます。$wantedFood=$1
③concept:(Food) [ラーメン チャーハン カレー]u:(_̲~∼Food) $1 ですね。ありがとございます。$wantedFood=$1
Qichatとは⑥ 変数の使⽤用 -‐‑‒ 2
-
Softbank Robotics Corp. 2015 All rights reserved.
ここで紹介したのは QiChat の記法の中の基本的なものです。そのほか記法、詳細はオンラインドキュメントを参照ください。
http://doc.aldebaran.com/2-‐‑‒1/naoqi/audio/dialog/aldialog_̲syntax_̲toc.html#dialog-‐‑‒toc
Qichat詳細