見出し画像

Pepperの九九出題アプリを作ってみよう②答えを聞き取ろう(前編:パソコン上でロジックを作る)【ミワ ムラタのRobo Blocks奮闘記】

こんにちは!Robo Blocksチームのムラタ ミワです。プログラミング初心者ながら、プログラミングツールRobo Blocksを担当しています。

今回は、前回のかけ算出題ロジックを進化させて、ユーザーの答えを聞き取れるようにしましょう!ユーザーとやり取りを楽しめるのが、Pepperの醍醐味です。ユーザーの言葉を聞き取って反応するプログラムが作れるようになれば、魅力的なアプリがいろいろ考えられます。

この前編では、まずパソコン上でプログラムを作って、正しく動くことを確認します。ユーザーの言葉を聞き取って、反応を出し分ける基本的なロジック作りに、一緒にチャレンジしましょう。

後編では、ロボットのPepperを使って、正しく言葉を聞き取れるのか実験します。実は、パソコン上ではうまくいっても、Pepperは想定通りに聞き取ってくれない、なんてことも!Robo Blocks中級者以上の皆さんにも、参考にしていただけるコツがあるかもしれません。

ゴール

  • パソコン上で、ユーザーの回答を聞き取る

  • パソコン上で、ユーザーの回答の正解/不正解を判定する

  • パソコン上で、正解/不正解の結果をユーザーに伝える

ポイント

  1. 言葉を聞き取ってみよう

  2. 条件分岐(もし〜なら)を活用しよう

作ってみよう

1. 言葉を聞き取ってみよう

早速、使えそうなブロックを探してみましょう!
ありました、ありました。「を聞きとるようにする」「聞き取り開始/終了」、この2つのブロックを使っていきます。

まず、聞き取る言葉を設定します。Pepperは、人間とは違っていきなりなんでも聞き取れるわけではないので注意です。あらかじめ、聞き取る言葉を決めて、聞き取る準備をしておく必要があります。

ここでは、かけ算の答えを聞き取るようにします。

聞き取る言葉を設定したら、聞き取り開始です。いつも聞き取るようにしていると、周囲の雑音を次々拾ってしまうので、必要なタイミングで聞き取りを開始します。
聞き取る言葉を設定してから、聞き取り開始、この順番を守ってください。

出題直後に聞き取る言葉を設定し、聞き取りを開始しました。

これで、聞き取ることができるようになりました!試しに、パソコンで実行してみると、こんな感じで、バーチャルPepperの下にテキストボックスが出てきます。聞きとってほしい言葉をテキスト入力するか、パソコンのマイクを使って音声で伝えることができます。

さあ、今度は言葉を聞きとったときの動きを作っていきます。
 
まさにその名の通り、「言葉を聞きとったとき」ブロックを使いましょう!初見でもわかりやすくて、ありがたい。
 
「言葉を聞きとったとき」ブロックの直下に、正解を発表する動きを作ります。Pepperのディスプレイの表示は、ユーザーがわかりやすいように、答えだけじゃなく、計算式も表示するようにしてみました。

これで、ユーザーの言葉を聞き取ったら、正解を発表するようになりました。

2. 条件分岐(もし〜なら)を活用しよう

さあ、どんどん進化させましょう!このままでは、ユーザーが何を言ってもPepperは正解を発表するだけです。ユーザーに正解/不正解を教えてあげましょう。ユーザーの言葉によって反応が変わった方が、断然面白味がありますし、Pepperとやりとりしてる感が出ます。
 
正解のときと不正解のときで、Pepperの反応を分けるなど、条件によって処理を変えたいときに使えるのが、こちら!「もし〜なら」ブロックです!
今回は、ユーザーから聞き取った言葉によって、正解のときと、それ以外のときで分けたいので、2つ目の、「もし〜なら/そうでなければ」ブロックが使えそうです。

「もし〜なら」の「〜」の部分、条件の部分は、六角形の枠になっています。つまり、六角形のブロックが入ることになります。今回は、聞き取った言葉の値が、正解なのか、不正解なのかによって、反応を出し分けたいです。聞き取った言葉が、出題したかけ算の「答え」と同じ、つまり「=(イコール)」なら、正解の反応を、そうでないなら、不正解の反応をすることにしましょう。
そこで、使えるのが、こちら!「=」の演算ブロックです!

聞き取った言葉が何なのか、については、「聞きとった言葉の値を取得する」ブロックを使えそうです!その名の通り、聞きとった言葉の値を取得します。

組み合わせるとこんな感じ。これで、聞き取った言葉の値が、正解なのか不正解なのかを判定する条件にできます。

「もし〜ならブロック」と組み合わせてみました。聞きとった言葉の値が、出題したかけ算の「答え」と同じか、そうでないかで分岐しています。今回は、シンプルに「アタリ」と「ハズレ」の音を鳴らすことにしました。おあつらえ向きな「アタリ」「ハズレ」の音が、Robo Blocksの既存の音リストから選べるようになっていたので、そのまま使ってしまいました。

これを、言葉を聞きとったときブロックにつなげれば、その名の通り、言葉を聞きとったときの動きを作ることができます。

パソコン上で、動かしてみると、、
うまくいきました!正解を入力すれば「アタリ」のピポン、不正解だと「ハズレ」のブブッが鳴ります。
 
ここまでで、無事、完了です!ユーザーの答えを聞き取り、正解/不正解に応じて反応できるようになりました!パソコン上では、、、
 
もし〜なら、など条件で分岐するブロックについては、こちらの記事で詳しくご紹介しております。是非ご確認ください!

まとめ

今回は、ユーザーの言葉を聞き取って、聞き取った言葉に応じて反応を変えるプログラムを作ってみました。今回ご紹介したロジックは、言葉を聞き取る際の基本になりますので、ぜひご活用ください!
 
次回の後編では、今回作成したプログラムを実際のPepperで動かしたときにどうなるかを実験していきます。はたしてパソコン上と同じようにうまくいくのか、、、

今回のポイント

  1. 言葉を聞き取ってみよう

  2. 条件分岐(もし〜なら)をしてみよう

前回の記事

次回の記事

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ソフトバンクロボティクス株式会社 ホームページ
https://www.softbankrobotics.com/jp/

Pepper for Education
https://www.softbankrobotics.com/jp/product/education/

STREAMチャレンジ
https://www.softbankrobotics.com/jp/product/academy/stream/

━━━━━━━━━━━━━━━━━━━━Pepperブログ編集部━┛