AI・機械学習
500KB未満で実現する音声認識とTTS
Speech Recognition and TTS in less than 500kb (github.com)
要約
Moonshine Microは、マイクロコントローラーなどの組み込みシステム向けに設計された、軽量なオープンソースAIボイスインターフェイストゥールキットです。音声アクティビティ検出、コマンド認識、ニューラル音声合成機能を備え、わずか470KBのRAMで動作します。このプロジェクトは、リソースが限られたシステムでのリアルタイム音声エージェント開発を目的としています。
全文翻訳
Moonshine Micro — マイクロコントローラー向けのボイスインターフェース
Moonshine Voiceは、開発者がリアルタイムの音声エージェントやアプリケーションを構築するためのオープンソースAIツールキットです。Moonshine Microは、マイクロコントローラーやDSPのような組み込みシステムプロセッサ専用に設計されたバージョンで、参考プラットフォームとしてわずか80セントで販売されているRaspberry Pi RP2350を使用しています。音声アクティビティ検出、コマンド認識、ニューラル音声合成を含み、わずか470KBのRAMで動作します。以下のビデオで完全なウォークスルーを見ることができます。
メモリとコンピューティング要件は、リソースが制約されたシステムに適合するように設計されています。以下の数値はRP2350のデモ用であり、詳細なメモリ予算はそれぞれを分解しています。
コンポーネント | フラッシュ | SRAM (アリーナピーク) | コンピュート
VAD (音声アクティビティ検出) | ~89 KiB | ~36 KiB | ~0.8 MMAC/フレーム (~25 MMAC/秒)
STT (SpellingCNN 音声認識) | ~1.3 MiB | ~346 KiB | ~36 MMAC/秒
TTS (ニューラルダイフォン合成 @ 16 kHz) | ~1.8 MiB ボイスパック | ~340 KiB | ~37 MMAC 通常の応答 (~65 MMAC/秒 外)
合計 (デモパイプライン) | ~3.6 MiB | ~468 KiB プロビジョニング*
分類 + 発話 | ~0.7–1.0 秒
注: フラッシュは .text + .rodata で、デフォルトの moonshine_micro_echo ファームウェア(組み込みニューラルボイスパックを含む)に対して arm-none-eabi-size で測定されています。SRAM は .bss + ヒープ + スタックです。
* VAD、STT、およびニューラルTTSは逐次実行され、約384 KiBのTFLMアリーナを時間共有するため、SRAMは加算されません。約468 KiBは520 KiB RP2350(wifi_hardware ~491 KiB)にプロビジョニングされた合計RAMです。MACは1回の乗算累積であり、MMAC/秒はアクティブ(アイドルでない)ステージ中の百万回/秒を意味します。
コードは、商用アプリケーションに適した、許容度の高いMITライセンスの下でリリースされています。RP2350 MCU上でボイスを使用してマイクロコントローラー上のWi-Fi接続をセットアップする方法を示す、エンドツーエンドの完全な例があります。
VAD、STT、およびTTSライブラリは、組み込まれたTensorFlow Lite Microライブラリをニューラル計算に依存して、互いに独立して使用できます。
ドキュメント
音声アクティビティ検出
音声認識
カスタム単語認識
ニューラルテキスト読み上げ
Wi-Fiセットアップ例
ライセンス
このコードは、third-party/ のソースを除き、MITライセンスの下でライセンスされています — このディレクトリ(リポジトリのルートにもあります)のLICENSEを参照してください。models/ の SpellingCNN および TinyVadCNN モデルはMITライセンスの下でリリースされています。third-party/ のコードは、各サブフォルダのLICENSEファイルの詳細に従って、それが由来するオープンソースプロジェクトの条件に従ってライセンスされています。