対話してみよう

ロボットがしゃべるようになったので、今度は音声認識を使っておしゃべりしてみましょう。

音声認識(ベストスコア)のブロックをドラッグ&ドロップしてください。

音声認識のブロックはデフォルトの設定で「こんにちは」の言葉を認識するようになっています。これを使って、ロボットに「こんにちは」と話しかけると答えるプログラムを作ってみましょう。

既にメソッドに発話ブロックがつながっているので、SHIFTキーを押しながらブロックをドラッグし、メソッドブロックとの接続を切り離してください。続いて、音声認識ブロックをメソッドブロックと 接続してください。

次に音声認識ブロックと発話ブロックをつなぎます。音声認識ブロックは分岐構造で各分岐に一つずつコネクタが備わっています。それぞれの分岐が成立した場合、そこにつないだブロックへ進みます。

上側の分岐条件が「「こんにちは」を認識した」なので、先程切り離したブロックを上側の分岐に接続してください。

また、それ以外の言葉を認識した場合、及び認識できなかった場合は下側の分岐へ進みます。こちらにも発話ブロックを一つドラッグ&ドロップして接続し、しゃべる言葉に「何ですか?」と入力してください。

プログラムが完成したら実行してみましょう。 実行すると、ロボットの目が水色に変化して認識を開始するので、額にあるマイクに向かって「こんにちは」と話しかけましょう。 「こんにちは」と正しく聞き取れた場合はロボットが「こんにちは」と返し、うまく聞き取れなかったり別の言葉を話しかけると「何ですか?」と返します。

マイクに近すぎたり遠すぎたりすると正しく聞き取れない場合があります。

  • ○分岐条件を追加してみる

次に、条件分岐の設定を変更して、「名前は?」と聞いたら「Sotaです」と答えるようにしてみましょう。

分岐に関する設定はプロパティウィンドウに表示されません。設定を行う場合、ブロックをダブルクリックして、別途条件分岐の設定ダイアログを開きます。

分岐条件の設定ダイアログは、左側にはブロックが持つ全ての分岐条件のリスト、右側には個々の分岐条件の詳細設定が、それぞれ表示されます。

まず、「条件の挿入」をクリックしましょう。クリックすると条件分岐のリストに新しい条件分岐が追加されます。続いてリストに追加された項目をクリックし、右側に条件分岐の設定内容を表示してください。

音声認識の条件分岐には「word」という項目があり、ここに認識する文字列を設定します。発話ブロックと同じくword内の「(定数入力:String)」に、「名前は」と入力し、Enterキーを押してください。設定を変更すると、条件分岐のリストの表示も変化します。

設定ができたので「OK」をクリックしてダイアログを閉じてください。ダイアログを閉じると、音声認識のブロックが縦に伸びて、条件分岐が一つ追加されます。

それでは、新しく発話ブロックを追加して発話内容を「ソータです」に設定し、追加された条件分岐に接続しましょう。

接続したらプログラムを実行し、ロボットに「名前は」と話しかけてみましょう。正しく認識されたら「Sotaです」と返答します。

  • ○認識結果を確認する

音声認識の認識結果は、コンソールウィンドウに逐次表示されます。

複数の候補が表示され、

認識結果の中に条件分岐の認識ワードと完全一致するワードが見つかれば、条件成立とみなされます。目的の言葉が認識されない場合、ここで表示される結果を参照して認識ワードを調整しましょう。

  • ○無限ループを追加して、何度も