Speech Recognizer(音声認識)
マイクロフォンと専用チップを搭載して、あらかじめ登録された22個の音声コマンド(英語)を認識できるGroveデバイス「Speech Recognizer」を紹介します。後半では、音声認識の結果をmicro:bitで取得するプログラムを紹介します。
Speech Recognizer
seeedのSpeech Recognizerは、マイクロフォンと音声認識専用のチップ(Nuvoton ISD9160)を搭載したGroveデバイスで、あらかじめ登録されている22個の音声コマンド(英語)を認識して、対応するコードをコンピューターボード側へ返します。マイクロフォンは、無指向性のため、どの方向からの音声でもキャプチャすることができます。また、外部スピーカー用の端子(JST2.0)があり、別売りのスピーカーを接続することで、認識した音声コマンドを復唱させることができます。
音声認識の流れ
ボードが通電すると、すぐに認識待ちの状態となります。音声認識を開始するためのウェイクワードは「HiCell」です。「Hi」と「Cell」を区切らずに、続けて一言で発します。ウェイクワードを認識すると、ボード上の赤色LEDが点灯するので、5秒以内に音声コマンド(英語)をしゃべります。音声コマンドは、あらかじめ登録された22個の言葉で、追加や変更は行えません。
音声コマンドを認識すると、ボード上の青色LEDが点灯して、シリアル接続されたコンピューターボード側へコード(1~22)を返します。例えば「HiCell,Turn on the light.」が正しく認識されると、コード「1」が返ります。
コード | 音声コマンド(英語) |
---|---|
1 | Turn on the light |
2 | Turn off the light |
3 | Play music |
4 | Pause |
5 | Next |
6 | Previous |
7 | Up |
8 | Down |
9 | Turn on the TV |
10 | Turn off the TV |
11 | Increase temperature |
12 | Decrease temperature |
13 | What’s the time |
14 | Open the door |
15 | Close the door |
16 | Left |
17 | Right |
18 | Stop |
19 | Start |
20 | Mode 1 |
21 | Mode 2 |
22 | Go |
ハイセル?ハイセロゥ!
英語に耳慣れしていないと、最初のウェイクワード「HiCell」の認識すら難しく、日本語のカタカナ読みで「ハイセル」では、無情にもきっぱりと無視されます。「ハ」と「セ」にアクセントを置いて「ハイセロゥ」とか「ハイセロォ」な雰囲気で。恥ずかしがらずに大きな声ではっきりと呼びかけましょう。Google翻訳の「音声を聞く」や、この動画を観て練習するのがおすすめです。まずは、目指せ赤色LEDの点灯です。
micro:bitで音声認識の結果を取得する
micro:bitとSpeech Recognizerを接続して、音声認識の結果(音声コマンドのコード)を取得するプログラムを紹介します。まず、準備としてmicro:bitとSpeech Recognizerを接続します。
micro:bitとSpeech Recognizerの接続
micro:bitにGroveデバイスを接続するには「Grove Shield for micro:bit v2.0」などの拡張ボードを使用すると便利です。本記事では、Grove Shield for micro:bit v2.0の端子P1/P15に接続しました。
プログラム(ブロック)
音声認識の結果(音声コマンドのコード)を取得して、LED画面にコード(1~22)を表示します。
最初だけ実行するプログラム
Speech Recognizerを接続したGrove端子(P1/P15)に対して、シリアル通信の設定を行います。micro:bitから見て、P15が送信端子、P1が受信端子となります。ただし、本ボードでは送信は使用せず、コードの受信のみとなります。ボーレートは9,600です。
ずっと実行するプログラム
Speech Recognizerから送信されるコード(1~22)を読み取ります。読み取った結果が、1~22の場合は、LED画面に表示します。
プログラム(JavaScript)
プログラム(JavaScript)です。
動作確認
動作確認です。「HiCell,Turn on the light.」と「HiCell,What’s the time.」の2つを認識するようすです。LED画面には、それぞれ「1」と「13」が表示されています。ウェイクワードを認識した直後に赤色LEDが点灯、その後音声コマンドを認識して青色LEDが点灯するようすも確認できます。
Speech Recognizerが認識する音声コマンドには「Turn on the light」「What’s the time」以外にも「Play music」「Turn on the TV」「Open the door」など、スマートホームを意識したものが多く含まれています。また、「Start」「Left」「Mode 1」など、ロボットやスマートトイを操縦する音声コマンドも複数あります。micro:bitを中心としたプロトタイピングにぴったりですね。