Pepperの音声認識を使ってクイズアプリを作るPepperで始めるロボットプログラミング(3)(1/4 ページ)

Pepperには音声認識機能が搭載されており、GUIで簡単に「音声に反応するロボット」をプログラミングできる。プログラミングに有効な「ボックス」の使い方も覚えよう。

» 2015年03月27日 11時00分 公開
[大塚実MONOist]

 「人間が話す言葉を理解する」これが音声認識機能である。技術としては古くからあるものだが、広く一般に普及したといえるのはiOSの「Siri」あたりからだろうか。Pepperでは、GUIベースの開発環境「Choregraphe(コレグラフ)」を使って、簡単に音声認識を利用したアプリケーションを作ることが可能だ。今回は、Pepperの音声認識について、使い方を紹介していくことにしたい。

音声認識の基本「Speech Reco.」

 キーボードやマウスといった入力デバイスがあるPCとは違い、Pepperのようなロボットでは、音声認識が基本的なユーザーインタフェースとなる。Pepperは音声認識のために、頭部にマイクを搭載しているのだが、ちょっと変わっているのはその場所。じつはマイクがあるのは頭頂部だ。たまに、Pepperの耳元に話しかけている人を見かけるが、耳に入っているのはスピーカーなので、間違えないようにしよう。

photo Pepperの耳となるマイクは頭頂部に内蔵されている

 普通に音声認識するだけならマイクは1つでも構わないのだが、Pepperでユニークなのは、マイクが頭頂部の左前方/右前方/左後方/右後方の4カ所に設置されていることだ。このようにすることで、各マイクへの音の到達時間の差から、Pepperのどの方向から音が来たのかまで分かるというわけだ。Choregrapheには、この機能を利用した「Sound Tracker」というボックスも用意されている(ただ、通常は4つのマイクを意識する必要はない)。

photo Sound Trackerボックス。これだけで音の発生した方角に向かせることができる

 Choregrapheで音声認識機能を利用するときに、まず覚えて欲しいのが「Speech Reco.」と「Switch Case」という2つのボックスを組み合わせるやり方だ(基本ボックスライブラリで、Speech Reco.はAudio→Voiceフォルダに、Switch CaseはFlow Controlフォルダにそれぞれ格納されている)。

photo 「Speech Reco.」ボックスと「Switch Case」ボックス

 まずSpeech Reco.ボックスは、あらかじめ設定しておいたワードリストの中から、音声入力に最も近いと思われる単語を選択し、出力するというものだ。認識させたい単語は、スパナのアイコンをクリックして開くパラメータ画面の"Word list"の欄に「単語A;単語B;単語C…」というように、半角のセミコロンで区切って指定しておく。その他のパラメータについては、とりあえずデフォルトのままでいいが、もし誤認識が多いようなら、「Confidence threshold」(信頼性)の数値を高めに設定しても良いだろう。

 認識した単語により、処理を分岐させるのが次のSwitch Caseボックスである。ここでは、先ほどのSpeech Reco.で設定した単語を、「"単語A"」「"単語B"」「"単語C"」のように、ダブルクォーテーション( " )付きの形式で空欄に入力する。入力欄は初期状態で3段しかないが、3段目に入力するとその下に4段目が現れるようになっているので、それを繰り返せば、選択肢が4つ以上あるケースにも対応できる。

 ちなみに、文字列をダブルクォーテーションで囲むのは、プログラミングでは良くある作法の1つだ。こういった文法はプログラミング言語によっても異なるのだが、ここでは「そういうもの」と思って、先に進んで欲しい。

 Switch Caseボックスの右側には、各段の単語に対応した出力ポートが並んでいるので、その先に、実行したいボックスを並べておけば良い。以下は、サンプルとして作成したクイズアプリである(サンプル03A)。二択の回答を用意しておき、それぞれ、正解と不正解の処理をつなげている。たったこれだけで音声認識を使ったアプリができるというのは驚きだ。

photo サンプル03Aのフローダイアグラム
「サンプル03A」実行の様子。Speech Reco.で音声入力を待っているとき、Pepperは自動的に話を聞いているようなジェスチャーをする

 なお、Pepperの実機が無い場合でも、Choregrapheのバーチャルロボットを使って、音声認識を模擬できる。Speech Reco.で音声入力待ちになったら、ダイアログパネルから単語を入力すれば、その単語が認識されたことになり、処理を続行させることができるのだ。ダイアログパネルからの入力は、実機でアプリを動かしているときも有効なので、テストで毎回音声入力するのが面倒なときなどには便利だ。

photo 実機がなくても、音声入力を使ったアプリのテストは可能だ
       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.