#topicpath

*2.5. 音声再生・音声認識を使ったプログラム [#ee47495d]

#contents

~次に、音声データの再生や音声認識を使ったプログラムを作成してみましょう。ロボット本体には音声再生の機能が備わっており、音楽や効果音・あらかじめ吹き込んだ音声などの、waveサウンド形式のファイルを再生することが可能です。また、ネットワークを利用して音声認識を使ったプログラミングが可能です。それでは、これらの機能を使ったプログラムを作成してみましょう。
~
~
~
~
** 音声再生を行う [#n0eda15c]
-○ リソースファイルの追加
~音声再生の命令ブロックでは、音声ファイル等外部に記録したファイルをプログラムから読み込んで使用します。このように、プログラムの外部に存在し、プログラムから読み込まれるファイルを「リソースファイル」と言います。リソースファイルをプログラムから使用するためには、最初にファイルをエクスプローラに追加する必要があります。
~
~リソースファイルの追加は、エクスプロ―ラの「resource」の項目を右クリックしてポップアップメニューを表示し、「追加」→「リソースファイル」をクリックします。クリックするとwavサウンドファイルを選択する画面を開くので、再生したい音声ファイルを選んで「開く」をクリックしてください。クリックすると、エクスプローラのresouceフォルダに選択したファイルが追加されます。
~
~
~
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image136.png,70%)
 
~
~
~
~
~追加したリソースファイルは、エクスプローラ上の項目をダブルクリックすると、ファイルの種類(拡張子)に対してお使いのPCで割り当てられているアプリケーションを起動し、ファイルを開くことができます。
~
 リソースファイルは、必ず半角英数のファイル名の物を使用してください。
 また、説明中のファイルは参考例です。実際のプログラムの際には、waveサウンド形式のファイルを別途ご用意ください。
~
~
~
~
-○ 音声再生ブロックの設定
~追加したwavサウンド形式のリソースファイルは、soundブロックで再生することができます。soundブロックは、プロパティウィンドウの「file」の項目で、再生する音声ファイルを選択できます。
~
~
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image137.png,70%)
 
~使用するリソースファイルは、プログラムの実行時に、プログラムのファイルと併せて本ソフトウェアからロボットに転送されます。一度ファイルを送信したら、ファイルが更新されない限り、次回以降転送を省略します。それでは、先ほど作成したプログラムに、任意のwavサウンドファイル(リソースファイル)を追加し、soundブロックで再生してみましょう。
~
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image138.png,70%)
 
~
~
~
~
** 音声認識を行う [#ae895d97]
~
|COLOR(#FF0000){※ 音声認識機能はオプションサービスであり、別途費用が必要です。また、ネットワークに接続できない環境ではご利用いただけません。サービスが利用できない環境でブロックを使用すると、ロボット本体がエラーメッセージを発話します}|
~音声認識は、ロボット本体のマイクより周囲の人の声を取り込んで、文字列に変換します。変換結果は単一ではなく、スコアや文節などに応じた複数種類が用意されるため、目的の認識ワードのみを設定すれば、それ単体の発音だけでなくそれを内包する発音でも識別しやすくなっています。
~
~
~ 音声認識は、ロボット本体のマイクより周囲の人の声を取り込んで、文字列に変換します。音声認識ブロックでは、聞き取った文字列を元に条件分岐を設定します。分岐条件には、任意の文字列を一つ設定できます。このブロックでは、認識結果に設定した文字列が含まれると条件が成立します。例えば「こんにちは」を条件に設定したら、「こんにちは」以外に「どうも、こんにちは」など、条件の文字列を含む結果でも成立します。
|COLOR(#FF0000){※ 音声認識機能はオプションサービスであり、別途ご登録が必要です。また、ネットワークに接続できない環境ではご利用いただけません。サービスが利用できない環境でブロックを使用すると、ロボット本体がエラーメッセージを発話します}|
~
~

-○音声認識(ベストスコア)ブロック
~

音声認識(ベストスコア)ブロックでは、分岐一つに対して認識ワードを一つ設定します。以下のはブロックを使ったサンプルです。聞き取れた音声に対してロボットが返答する構造で、「こんにちは」に対して「こんにちは」、「さようなら」に対して「さようなら」、「お名前は」に対して「ソータです」と返し、それ以外のワードでは「何ですか」と返します。

~
~
~
~
~ブロックをダブルクリックすると分岐条件の内容が表示され、wordの設定項目に、認識させるワードを入力します。
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image142.png,70%)
 
~
~音声認識を使うブロックを実行すると、以下のようにコンソールに全ての変換結果と各結果に対するスコアを表示します。認識精度が悪い場合は、こちらの表示を参考に認識ワードの設定などを調整してください。
~
~以下は、音声認識・音声合成を使ったプログラム例です。無限ループで何度も音声認識を行い、認識された言葉に「こんにちは」が含まれたら「こんにちは」と言ってmot1を、「ありがとう」が含まれたら「どういたしまして」と言ってmot2を実行します。いずれの単語も含まれない場合は、一番下の分岐に進んで「何ですか?」と言いポーズブロックを1個実行します。
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image141_.png,100%)
~
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image142_2.png,80%)
~
~上記サンプルプログラムの、音声認識ブロックの条件分岐設定です。各分岐のpartBの項目に、(文字列入力)で反応する単語を設定します。
~
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image142_3.png,100%)
~
~
~
~

-○音声認識(正規表現)ブロック
~
音声認識(正規表現)ブロックでは、ベストスコアのブロックと類似しますが、分岐一つに対して正規表現を含む認識ワードを一つ設定します。
~例えば「今日はいい天気ですね」「いい天気だな」等の発話から「いい天気」を認識したい場合、認識ワードを「.*いい天気.*」に設定すると、検索結果内に「~~いい天気~~」のように「いい天気」が含まれる語句があれば、認識させることができます。

~
~ブロックをダブルクリックすると分岐条件の内容が表示され、wordの設定項目に、認識させるワードを入力します。
#ref(http://www.vstone.co.jp/sotamanual/sotamanual_pict/vstonemagic/image142.png,70%)
 
~
~
~
~
-○
~
~
~
~
~
~
~
~
[[目次>MenuBar]]  [[次のページへ>>>../変数を使ったプログラムの作成]]