LoginSignup
9
9

More than 5 years have passed since last update.

Pepperハンズオン ~基本編A 対話基礎~ Dialogを使ってPepperと対話してみる [Tech-Circle#7]

Last updated at Posted at 2015-08-05

本記事は Tech-Circle#7 Pepper ハンズオン のハンズオン ~基本編A~ の内容です。


Dialogを使ってPepperと対話してみる(所要時間目安: 15分)

はじめに

専用の作業ディレクトリを作成して移動します。以降の作業はこのディレクトリで行います。

$ mkdir -p ~/workspace/techcircle
$ cd ~/workspace/techcircle

ハンズオンAで利用するプロジェクトはshiraco/techcircle_pepper_handson_aにあります。作業ディレクトリに一括git cloneでダウンロードしておきます。

$ git clone https://github.com/shiraco/techcircle_pepper_handson_a.git
$ cd techcircle_pepper_handson_a

ディレクトリ構成は以下のようになっています。

$ tree -L 1  # ※tree はディレクトリ階層を表示させるコマンドです。今後も含めて、特に実行の必要はありません。
.
├── pepper_speech_sample # ①で利用
└── pepper_dialog_sample # ②で利用

以降では上記のプロジェクトを利用します。

① (復習) Speech Reco. + SayでPepperと対話してみる

(Speech Reco.の基本的な使い方は、アトリエ秋葉原公式ワークショップ基礎編#1 SDK Basicも参考にしてください。)

Pepperに好きな食べ物を教えてあげよう

プロジェクトのオープン (pepper_speech_sample)

簡単なサンプルとして、好きな果物の色を教えてくれるアプリを動かしてみます。

このプロジェクトは先ほどダウンロードしたpepper_speech_sampleにあります。ここではダウンロードした完成したサンプルアプリを起動してみて動作確認をします。

$ cd ~/workspace/techcircle/pepper_speech_sample

ディレクトリ構成は以下のようになっています。
Choregrapheを起動して、「プロジェクトを開く」から、pepper_speech_sample.pmlを選んで開きます。

$ tree .
.
├── LICENSE
├── README.md
└── pepper_speech_sample
 ├── behavior.xar
 ├── manifest.xml
 └── pepper_speech_sample.pml

(ヒント) プロジェクトを開くときは拡張子が *.pml なファイルを開きましょう

アプリケーションの説明

アプリケーションは以下の様な流れになっています。
1-0-1.png

最初のSayの中のLocalized Text※のテキストは「私はあなたの好きな食べ物の色を答えます。」となっており、Pepperがこのセリフをしゃべりかけてくれます。

※日本語しか対応しないので、Localized TextText Editに置き換えても動作は同じになります。
1-0-2.png

Speech Reco.Word listは「りんご;みかん;ばなな」とします。これはPepperが待ち受ける言葉のリストになります。ここの言葉であればPepperの耳で拾うことができます。
1-0-3.png

Swich Caseへは、先ほどのWord list同様の値が入っています。ここで条件分岐させます。
1-0-5.png

Swich Case直後のSayの中のLocalized TextはPepperに喋らせる内容を入力します。

  • りんご → 赤
  • みかん → オレンジ
  • ばなな → 黄  1-0-4.png

アプリケーションの実行と動作確認

Choregrapheでアプリケーションを実行してみましょう。

するといい感じでPepperが答えてくれます。以下はChoreographeのダイアログビューです。
1-0-5.png

上記で実験したようにSpeech Reco. + SayでPepperに喋らせることができますが、
対話バリエーションに依存してボックスの数が増えてしまいますね。

Dialogを使ってPepperからの質問に答えてみよう

(Dialogの基本的な使い方は、アトリエ秋葉原公式ワークショップ基礎編#3 Dialogを使ってみようも参考にしてください。)

Pepperに都道府県庁所在地を聞いてみよう

Dialogを使って、簡単なサンプルとして、都道府県庁所在地を応えてくれるアプリを作ってみます。

プロジェクトのオープン (pepper_dialog_sample)

さきほどダウンロードしたpepper_dialog_sampleを開きます。ディレクトリ構成は以下のようになっています。Choregrapheを起動して、新たに「プロジェクトを開く」から、pepper_dialog_sample.pmlを選んで開きます。

$ cd ~/workspace/techcircle/pepper_dialog_sample
$ tree .
.
├── LICENSE
├── README.md
└── pepper_dialog_sample
 ├── behavior.xar
 ├── manifest.xml
 ├── pepper_dialog_sample.pml
 └── qa
 ├── qa.dlg
 └── qa_jpj.top

アプリケーションの説明

プロジェクトを開くと、以下のようにボックスを並んでいます。
1-2-1.png

Text EditではSay Textに渡すテキストを入力します。テキストの内容は以下のようにしています。

「こんにちは。私は日本について詳しいです。都道府県名を言ってもらえたら、県庁所在地を答えましょう。」

一番右のDialogは作成時にトピックはqaです。対応しているqa_jpj.topファイルに、人間がなんと答えたら、Pepperになんと答えさせるか応答ルールを記載しています。
プロジェクトの内容ビューからqa_jpj.topファイルを開いて、中身を確認してみてください。

Screen_Shot_2015-07-21_at_19_26_02.png

ここでDialog/NotUnderstoodを使って、ルールが無い場合にも応答できるようにしています。

1-1-5.png

qa_jpj.top
u:(愛媛{県})県庁所在地は松山市です。
u:(徳島{県})県庁所在地は徳島市です。
u:(高知{県})県庁所在地は高知市です。
u:(香川{県})県庁所在地は高松市です。
u:(e:Dialog/NotUnderstood)四国以外は知りません。

アプリケーションの実行と動作確認(バーチャルロボ)

実際にバーチャルロボットに接続して実行してみましょう。

Text Edit Box + Say Text Box で最初にPepperが話しかけます。
1-1-6.png

以降はDialog Box記載のルールの通りPepperが応答してくれます。四国のいづれかの県を答えてみてください。
1-1-7.png

用意していないルールに対しても反応します。
1-1-8.png

アプリケーションの実行と動作確認(Pepper実機)

グループで1名、Pepper実機にアプリケーションをインストールして試してみましょう。

今回、Pepperに質問してみました。次にPepperに聞かれるパターンもやってみます。

Pepperに名前を聞かれて答えてあげる

アプリケーションの作成

アプリケーションの全体の構成としては、ボックスに変更はありません。先ほどのプロジェクトを別名で保存して、新しいプロジェクトとしてそのまま使いましょう。

全体の流れは先ほどと同じです。
1-3-1.png

変更するのは2箇所です。Text Editqa_jpj.topファイルです。

Text Editの中は「あなたのお名前は?」にしてみましょう。

qa_jpj.topファイルの応答ルールを変更してみましょう。例えば以下のようにしてみます。

1-3-3.png

u:(_*{です})$1 さんですね。よろしくおねがいします。

上記についての説明は以下です。

  • *: ワイルドカード
  • _: $1, $2, ..., $n で後方参照
  • {}: 付加情報、あってもなくても良い

その他のDialogのルールは以下を参照してください。

アプリケーションの実行と動作確認(バーチャルロボ)

まず、バーチャルロボットで、アプリケーションを実行してみてください。

1-3-1.png

Pepperに名前を話しかけると、

1-3-2.png

ちゃんと名前の部分を認識してくれています。

アプリケーションの実行と動作確認(Pepper実機)

次にPepper実機につないで音声で話しかけてみましょう。
グループで1名、Pepper実機にアプリケーションをインストールして試してみましょう。

いかがでしょう。あなたの名前はちゃんと認識したでしょうか?
Dialog*(ワイルドカード)を使った場合、可能性のある有限の候補から選ぶ作業ではなくなるため、認識精度が一気に落ちてしまいます。殆どの場合、誤認識されてしまったのではないでしょうか。

解答例

こちらの解答例は以下で確認することができます。
shiraco/pepper_dialog_sample2

次のステップ高精度のクラウドの音声認識を試してみます。


以上で、ハンズオン ~基本編A~ は終了です。

次のステップは以下の内容になります。
~基本B 音声認識~ Google Speech APIを使ってPepperにあなたの名前を知ってもらう - Qiita


本ハンズオンのイベントページ
Tech-Circle#7 Pepper ハンズオン

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9