オフラインで実行可能、ESP32-S3で7言語を文字起こしする音声認識ソフト

ボタンを押しながら「flash the light blue」と話すと、基板のLEDが青く点滅する。声を文字に起こす処理は、ネットにもスマホにもつながず、マイコンボードESP32-S3の中で完結する。「whistle-esp32」として公開された。作ったのはカナダ・トロントの開発者、Andris Gauračs氏だ。

同氏によると、whistle-esp32は決まった言い回しの一覧と照らし合わせるのではなく、話した内容をそのまま文字にし、その文から色と点滅の指示を読み取る。英語やフランス語、ポーランド語など7言語に対応し、どの言語で話したかは自動で判別する。

使っているのは、Cactus Computeが公開している音声認識モデル「Whistle」だ。モデルは16.9MBあり、ボードのフラッシュメモリー全体より大きい。同氏は文字を組み立てる部分を4層まで削って14.5MBにし、フラッシュに収めた。Cactus ComputeはESP32で動かすためのソフトを出していないため、同氏は推論の処理をC言語で一から書き、公式のソフトと計算結果を照合した。

処理時間は、2秒の英語の命令で6.3秒かかる。同氏は計算を8ビットの整数に置き換えてESP32-S3のベクトル演算命令で処理し、最初の版の23.9秒から縮めた。合成音声で測った命令の正答率は、英語で78%、スペイン語で80%だった。

Whistleは公式のソフトで動かしても、誰もいない部屋の雑音を「Thank you.」と書き起こしてしまう。同氏のファームウェアは、ボタンを押していない間に周囲の雑音の大きさを測り、それを上回る声が聞こえたときだけモデルを動かす。雑音しか聞こえなかったときは、LEDが赤く2回点滅する。

必要な部品は、16MBのフラッシュと8MBの外付けRAMを積むESP32-S3のボード、マイク基板INMP441、押しボタン、ジャンパー線8本だ。コードはApache-2.0で公開されており、モデルの重みは手順の中で別にダウンロードする。

同氏は、Cactus Computeの別のモデル「Needle 2」を同じボードへ移植するところから始めたと書いている。FabSceneでは9月に、Needle 2がラズパイ5で動く例を紹介している。whistle-esp32は、ネットに頼らない多言語の音声操作を手元で試したい人には、参考になる作りだろう。

関連情報

fabsceneの更新情報はXで配信中です

この記事の感想・意見をSNSで共有しよう
  • URLをコピーしました!

最新記事

YouTube / PodCast

【PR】読んで役立つ注目記事

目次