Arduinoを使った音声認識モジュール Voice Recognition V3
A rduinoを使った、音声認識モジュール(アリエクスプレス Voice Recognition V3 \2219)を使ってみました。
このモジュールは、あらかじめ音声をメモリに登録し、登録した音声がマイクから入力されると、登録番号がかえってくるものです。
今回は、あらかじめ「赤(あか)、青(あお)、黄色(きいろ)、緑(みどり)、白(しろ)」の日本語を、モジュールのメモリに登録しました。
そして、
赤(あか)と言えば(入力すれば)、赤色のLEDが点灯がするようにしました。
青(あお)と言えば(入力すれば)、青色のLEDが点灯がするようにしました。
黄色(きいろ)と言えば(入力すれば)、黄色のLEDが点灯がするようにしました。
緑(みどり)と言えば(入力すれば)、緑色のLEDが点灯がするようにしました。
白(しろ)と言えば(入力すれば)、白色のLEDが点灯がするようにしました。
■電子回路
電 子回路は、上の写真の通りです。
音声認識モジュールは、登録した音声ごとに、音声0、音声1、音声2、音声3、音声4、音声5、音声6、音声7のように、番号で管理されます。
データーシートによると、合計80個の音声が登録できるようです(実際、80個登録していないので、未確認です)。
登録された音声が、音声認識モジュールのマイクから入力されると、Arduinoに、音声の番号(音声0なら0、音声1なら1、音声2なら2、音声3なら3、音声4なら4、音声5なら5、音声6なら6、音声7なら7)が、ソフトウェアUART通信で送信されます。
その為、「音声認識モジュールとArduinoの接続は、ソフトウェアUART接続」、「Arduinoとパソコンの接続は、ハードウェアUART接続」でつなぎます。
ソフトウェアUART通信なので、どのデジタル端子(0番と1番以外)でも良いのですが、今回はサンプルプログラムの通り、2番端子と3番端子を使います。
さらに、ArduinoがソフトウェアUART通信で、音声認識モジュールからデータを受信した結果を表示させる為に、5番端子、6番端子、7番端子、8番端子、9番端子にLEDを取り付けました。
■ソフトウェア
音 声認識モジュールを使うために、開発環境が必要です。
ArduinoにライブラリーVoiceRecognitionV3をダウンロード し、Arduinoにインクルードします。
無事にインクルードされると、スケッチ例に、VoiceRecognitionV3 が追加されます。
音声に認識モジュールを使う流れは、次の通りです。
@音声の登録
音声認識モジュールに音声を登録する為、Arduinoにvr_sample_train を書き込みます。
無事に書き込めたら、Arduinoのシリアルモニタ(右上の虫眼鏡みたいなマーク)をクリックします。
シリアルモニタに、train 0と入力してから登録ボタンを押します。
すると、話して下さいと表示されるので、赤(あか)とマイクにしゃべります。
再度、話して下さいと表示されるので、赤(あか)とマイクにしゃべります。
上手く登録できれば、登録出来たと表示されますが、駄目だと、何回も話して下さいと表示されます。
意外と登録が上手くいかないので、上手く登録出来るように、何回もチャレンジします。
コツは、1回目をしゃべった後、一呼吸入れたらすぐに2回目をしゃべると上手くいきます。
青(あお)を登録する時は、 train 1 と入力し 以下同じ操作をします。
5色登録するので、train 0 から train 4まで登録する事になります。
A音声のロード
音声認識モジュールは登録しただけでは使えないので、登録した音声をロードします。
シリアルモニタに、load 0と入力します。
すると記憶メモリから呼び出され、使えるようになります(モジュールが点滅しだします )。
使えるようになれば、マイクにむかって、赤(あか)としゃべると、シリアルモニタに反応した結果が表示されます。
↑音声をロードし、右下LEDが点滅すれば、マイクの入力をうけつます。点滅していない時は、うけつけません。
BLEDを点灯させてみる
次のプログラムをArduinoに書き込みます。
書き込みが出来たら、マイクに向かって、赤(あか)としゃべれば、赤色LEDが点灯します。
青(あお)としゃべれば、青色LEDが点灯します。
登録した音声しか反応しない ので、音声をセキュリティーとして使っても面白そうです。
■動画
音 声認識している様子です。
音声に合わせ、LEDが点灯しているのが、分かります。
VIDEO