ロボット【Pepper(ペッパー)】QiChatで対話をさせてみる(会話のレスポンスや聞き取りの精度を上げる)

こんばんわ〜♪

今回は、タイトル通りQiChatを使用して会話をさせてみたいと思います。

SpeachRecoとSayボックスで対話させてもいいんですけど、あんまり聞き取ってくれなかったり、編集が面倒だったり、レスポンスが悪かったりするので、QiChatでやってるって人が多いんじゃないかなぁ?

SpeechRecotoとswitchCaseとかだと、たくさん言葉を入れようとするとswitchCaseが、めちゃくちゃ縦長になっちゃったり、面倒だし、コードはぐちゃぐっちゃのスパゲッティだしで散々なので、「まだQiChat使った事ない」、「なんかちょっと見てみたけど難しそう・・・」って方向けでQiChatの使い方を書いちゃいます( ´ ▽ ` )ノ

とりあえず、下の画像の青い十字ボタンをクリックして、新規ダイアログトピックを新規追加を更にクリックして、適当にダイアログトピックに名前をつけて、Japaneseをチェックして(Englishを外して)追加ボタンをクリックします。

画像では名前は「QiChat」にしています♪

choregraphe_0001

上みたいにフォルダが1つと、その中にファイルが2つ出来てたらOKです(*^ω^*)b

次は、とりあえず「QiChat_jpj.top」をダブルクリックして開きます。

ついでに、「QiChat.dlg」は、ドラッグしてフローダイアグラムに置いておきます。

んで、開いた「QiChat_jpj.top」に対話の内容を書き込んでいきたいと思います!

とりあえず、画像をみてみてねっ♪

dialog_0001

ブログ用に適当に作っちゃったら思ったより長くなっちゃったので、今回は途中までのせる事にしました・・・( ;´Д`)

あ、でも必要なのは全部入ってるので大丈夫です!(笑)

じゃあ、まずは4,5,6行目にあるconcept:()[]ですね。

これは、()内にかいた文字列で、[]内に書いた言葉の全てに反応するようになる、QiChatの一番のメリットとも言えるものです。

conceptに関しては、色々と使いまわせるのですが、今回は割愛したいと思います。

長くなっちゃうので・・・。

次はu:()かな?

このuはもし、u:(“テスト”)であれば、Pepperに向かって、テストと言った時に、この対話が始まるのですが、今回は実行したらすぐにPepperが話し出すようにu:(e:onStart)としています。

onStartに入力された時に実行します。

u2:()やu3:()は、みたまんまですが、u2はu1の次にしか対話できず、u3は更にu2の対話の後でないと実行されません。

順序よくって事ですねっ♪

proposal:は一段落、メソッドの様なものです。

proposal:で区切っておけば、^sameProposalで同じプロポーザルを再度実行したり、^nextProposalで次のプロポーザルを実行したりできるので、とても便利です♪

・・・というか、ないと困ります(笑)

最後は$end=1ですね。

これは、endという名前の変数を作って、値として1を格納して出力してます。

今回はプロジェクトを終了させる契機として使用してます。

説明はこのくらいにして、上の画像と同じ内容でも良いし、好きな内容でも良いので、ちゃっちゃっと書いちゃってください♪

書き終わったら、さっきフローダイアグラムにドラッグした「QiChat.dlg」の出力側にある「onStopped」を右クリックして、出力を追加をクリックして、出力を新規追加ウィンドウを開きます。

proj_qichat002

上のを開いたら、名前をend、型を数、性質を即時に変更してOKボタンを押下します。

できたら、下の画像通りに繋いでみてね♪

proj_qichat001

繋いだら、いつも通り実行して、ダイアログに設定した通りに受け答えしてみてね。

コンセプトに登録した言葉のどれでも認識したよね?

ちなみに、u1:(e:Dialog/NotUnderstood)とかいうやつは、分岐に設定したどれにも該当しなかった時に実行します( ´ ▽ ` )ノ

喋らせる時に使うタグの使い方忘れたって人はコチラ

福岡のロボット開発、システムトランジスタからでした!

  • このエントリーをはてなブックマークに追加

コメント

  1. まさこ より:

    QiChatをバーチャルで発話しようとしています。
    set languageもjapaneesでセットしたのですが、再生すると、現在のプロジェクトを送信できませんとなり、ダイヤログで入力しても、全く動きません。
    何が悪いのか全くわからないです。
    助けてください。

    • maki より:

      コメントありがとうございます。
      下記の4点を確認して頂いて、それでも「現在のプロジェクトを送信できません」となった場合は再度コメントお願いできますか?

      ・ダイアログボックスの言語設定が「Japanese(jpj)」となっているか。
      ・Set LanguageボックスのLanguageが「Japanese」となっているか。また、ダイアログボックスの前に結線されているか。
      ・トピックファイルの2行目「language: jpj」となっているか。
      ・トピックファイルの中身が実行できる形式となっているか。
       例.  topic: ~トピック名()
          language: jpj
          u:(テスト) ダイアログ成功

      よろしくお願いします。

      • まさこ より:

        アドバイスありがとうございます。
        確認しましたが、すべて、そのとおりになっておりました。
        いろいろやってみているのですが、別のパソコンで同じようにしたときには
        再生ができるので、
        もしかしたら、このパソコンによるものなのかなとも思ったりもしています。

        • maki より:

          こちらも原因追求の為、色々試行した結果、同事象が発生しました。
          現象としては、同じソースコードで複数回試行したところ、
          「現在のプロジェクトを送信できません」が稀に発生した。
          という結果です。
          別PCでは全く発生しないということもあり、環境に依存する何かがあるのかもしれません。
          原因を掴むには至っていないので、お力になれず申し訳ないです。

          また他の内容でも何かありましたら、気軽にコメント頂けるとありがたいです。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です