ワークショップ基礎編#3...

18
Softbank Robotics Corp. 2015 All rights reserved. ワークショップ基礎編#3 Dialogを使ってみよう

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詳細