覚え書き程度ですが、よろしかったら読んでください。
音声から機器を制御する方法について、いろいろやってみました。きっかけは、障がいのある子が電源を入れたり、動かしたりできないかという相談を受けたことから始めました。
よくアレクサやスマホの音声認識は、ネットワーク下で行い、技術が進歩する分認識率も高いようです。しかし、この方法だと、ネットワークがなければ機能しない分、例えば車椅子で外出したり、突然のトラブルでつながらなくなる可能性があります。
文脈まで理解しなくても、短い単語での命令で実行できるような方法がないかいろいろ調べたところ、ネットワーク無しに、単独で音声認識できるよさそうな部品があったので、お試しに購入してみました。
音声認識モジュールVoiceRecognitionV3というもので、Aliexpressで2500円前後で売られています。まあ、安くないけれど高くもないという値段でしょうか・・・。音声登録は80個までですが、同時に認識できるのは7個までだそうです。
https://www.elechouse.com/elechouse/images/product/VR3/VR3_manual.pdf
この音声認識ボードをArduinoにつなげて、①自分で認識させる音声を登録していく ②使用するコマンドをロードする という順に作業を進める必要があり、購入時から音声認識はできません。
まずは、音声認識ボードとArduinoを接続しますが、ボード間はシリアル通信を使用するので簡単です。
Arduino側 音声認識ボード側
5V VCC
GND GND
2Pin(ソフトでRXD) TXD
3Pin(ソフトでTXD) RXD
接続が完了したら、次のソフトで動かしますが、libraryが必要なのでGithubから用意して追加が必要です。
ここまで準備すると、ArduinoIDE内にプログラム例がありますので、最初は[vr_sample_train]を使って音声を登録していきます。
シリアルモニター上で、train 0 →登録 train 1→登録 train2→登録と試しに3つ登録し終わったら、最後にload 0 1 2 として登録した音声を読み込みます。
あとは、マイクに話しかけると、登録した音声とともに番号が表示されたら成功です。Youtubeにもいろいろな説明ビデオがありますので、詳しくはそちらを見るといいでしょう。(外国語でも、いまじゃあ字幕で日本語変換してくれるので、ホント便利ですよね!)
その後、サンプルプログラムを改造して、NeoPixel(フルカラーLED)を制御するプログラムを作ってみました。
ここまでできたら、LEDやサーボモーター、リレーなどを取り付けて、外部機器を制御できます。
本のページめくりを、音声で操作できる装置を作ってみたいと思います!