yousan
Get in touch

← Back to Works

sanoTTS-jp (Japanese TTS on a microcontroller)

A 559K-parameter Japanese TTS that synthesizes faster than real time entirely on an ESP32-S3, including on-device reading and pitch-accent estimation for kanji text.

Date
Role
Design, distillation, C99 inference, on-device testing, release
Tech
TTS, Knowledge distillation, ESP32-S3, int8, C99, WebAssembly

Overview

I applied the distillation recipe from the sanoTTS paper (arXiv:2608.21378) to Japanese, using my own TTS, piper-plus, as the teacher, and built a 559K-parameter Japanese TTS. After flashing the firmware to an M5Stack CoreS3 (Stack-chan), you type “今日は良い天気ですね。” over serial and it speaks. The demo runs the same C99 code as the microcontroller, compiled to WebAssembly, in the browser.

What I did

I handled everything from teacher-label generation and distillation into three small models (duration, acoustic and waveform) to the dependency-free C99 inference core, on-device G2P, the ESP32-S3 firmware and Arduino / PlatformIO library, on-device measurement and release. I wrote it independently from the paper and the piper-plus code, without referring to the official implementation (GPL-3.0).

Technical notes

Links