Categories: 工作・開発

マイコンだけで喋る音声合成「sanoTTS」、337KBに全工程が収まる

マイコン単体で文章を読み上げるニューラル音声合成「sanoTTS」が公開された。作ったのはAmpixa LabsのAshish Thapa氏で、ネットにはつながない。ESP32-S3のGPIOから出た音声を小型アンプに通せば、スピーカーが喋る。ボードの外へは何も出ない。

規模は29万4000から230万パラメーターに収まる。最も音質のよい「heart」で227万、同じ声を29万4000まで削った「heart-nano」なら、音声合成の全工程がint8で337KBに入る。1つの声あたり4MB未満で、外部の依存もない。書記素を音素に変換する部分まで同梱している。

速度も出ている。ESP32-S3では4.5秒ぶんの文を約1秒で生成する。ニューラルネットワークの処理だけを見れば実時間の0.225倍で、音素変換と再生を含めた全体でも実時間の1.1倍程度に収まる。シングルコアのESP32-C3でも動くという。

Thapa氏は、汎用マイコンで実時間動作する最小のニューラル音声合成だと主張し、論文をarXivに公開した。比較対象として挙げるのはTinyTTSの162万、Inflect Nanoの463万、Kokoroの8200万パラメーターである。

声は11種類、言語は6つに対応する。英語とネパール語、ヒンディー語のほか、ベトナム語とインドネシア語、中国語が入る。日本語はない。ブラウザーで動くデモも用意する。WebAssemblyで完結するため、サーバーを介さずに試せる。

ソースコードはGitHubにGPL-3.0で公開してある。ESP-IDF向けの動作プログラムと、Arduino・PlatformIO用のラッパーがどちらも入る。名称のsanoはネパール語で「小さい」を意味する。

関連情報

FabScene編集部

FabScene編集部