KoeAct-JP(音声から直接ロボットを動かす日本語モデル)
日本語の音声を、文字起こしを挟まずに動作の呼び出し(Action JSON)に変える 259 万パラメータのモデルです。PC の CPU と M5Stack CoreS3(ESP32-S3)で、クラウドなしに動きます。
概要
「顔を右に45度向けて」と話すと [{"name":"look","arguments":{"direction":"right","degrees":45}}] が返る、音声操作のための小さなモデルです。音声認識と言語モデルをつなぐのではなく、音声から直接 Action JSON を出します。「やっぱりライトは消さないで」のような否定や、依頼でない発話には [] を返します。デモではブラウザの中で動き、音声はブラウザの外に出ません。
担当
自作の音声認識モデル Ralomi の音声エンコーダーを土台に、文法の制約つきデコーダーの設計、合成音声での学習データ作成、学習、ESP32-S3 向けの量子化、firmware、評価と公開までを担当しました。
技術的なポイント
- Ralomi(2.05M)の上に 0.54M のデコーダーを載せた構成で、合計 2.59M パラメータです。動作は JapaneseTinyAgentLM と同じ 11 種類で、1 回の発話に 2 つまで呼び出せます。
- 同じデータで学習した「文字起こし → 言語モデル」の 2 段構成(5.20M)と比べ、Action の完全一致は 93.2%(2 段構成は 83.6%)、雑音の強い条件(SNR 0 dB)で 88.1%(同 71.1%)でした。いずれも学習にない声の合成音声 6,850 件、5 回の学習の平均です。
- CoreS3 の実機では、話し終えてから Action が出るまで約 0.53 秒(中央値)で、2 段構成の約 1.5 秒より速くなりました。
- 評価に使った依頼の音声はすべて合成音声で、実際の話者ではまだ確かめていません。人の話し声が続く場所では誤って動くことがあるため、ウェイクワードやボタンとの併用を想定しています。重みとコードは Apache-2.0 です。

