Finnish sanoTTS โ ESP32-S3 A91 W8/A12 V44 RC1
This directory freezes the first ESP32-S3 release-candidate stage of the Finnish sanoTTS A91 decoder before Arduino application integration.
This Arduino Nano ESP32 release is derived from the Finnish sanoTTS voice available at:
https://huggingface.co/AsmoKoskinen/SanoTTS_Finnish_Model
Scope
This RC is a validated decoder benchmark / firmware package, not yet a complete arbitrary-text Arduino TTS application. The benchmark embeds a fixed 96-frame latent fixture and its FP32 reference. The next development phase can use this RC as the locked decoder baseline for Arduino Nano ESP32 applications.
Target:
- Arduino Nano ESP32
- ESP32-S3, 240 MHz
- 8 MiB PSRAM
- 16 MiB flash
- ESP-IDF v5.5.5
- A91 piperlite compact decoder
- int8 weights / 12-bit activation lane
- 22,050 Hz output
Validated V44 result
profile total 4218.099 ms
synth_seconds 4.218113
RTF 3.784562
x_realtime 0.264
cosine_vs_fp32 0.999762392417379
max_abs 0.0125584956
mean_abs 0.00134531993
rmse 0.00195513975
nonfinite 0
ESP32-S3 Q8 GOLDEN: PASS
The 96-frame fixture produces 24,576 samples = 1.114558 seconds of audio.
Contents
RELEASE.json
README.md
SHA256SUMS
firmware/
bootloader.bin
partition-table.bin
finnish_a91_q8_nano_bench.bin
finnish_a91_q8_nano_bench.elf
flash.sh
model/
decoder_meta_q8.bin
decoder_weights_q8.bin
piper-phoneme-config.json # included when available
validation/
nano_golden_latent_f32.bin
nano_golden_audio_f32.bin
nano_golden_info.json
BENCHMARK.json
BENCHMARK.txt
source/
nano-a91-q8-bench-esp32s3-a91-q8-v44-rc1-source.tar.gz
BUILD_ENVIRONMENT.json
licenses/
LICENSES.md
Flash the validated benchmark
Activate/export ESP-IDF first, then:
cd firmware
./flash.sh /dev/ttyACM0
The manual equivalent is:
"$IDF_PYTHON_ENV_PATH/bin/python" -m esptool \
--chip esp32s3 -p /dev/ttyACM0 -b 460800 \
--before no_reset --after hard_reset \
write_flash --flash_mode dio --flash_size 16MB --flash_freq 80m \
0x0 bootloader.bin \
0x8000 partition-table.bin \
0x10000 finnish_a91_q8_nano_bench.bin
Reproducibility
Verify the package before use:
sha256sum -c SHA256SUMS
SHA256SUMS covers the frozen release artifacts. README.md is intentionally excluded because the Hugging Face model card may receive documentation-only updates without changing the validated release.
The source archive is the source state corresponding to the validated V44 firmware. Exact build images are also preserved, so validation does not depend on rebuilding with a future compiler.
Arduino application work
For Arduino Nano ESP32 application experiments, treat this RC as the locked A91 decoder reference. The important standalone decoder assets are:
model/decoder_meta_q8.bin
model/decoder_weights_q8.bin
The validation/ fixture is intended for bringing an Arduino wrapper up
without changing the neural input: feed the same 96-frame latent and compare
the generated PCM against the included FP32 reference / V44 metrics.
Text -> phoneme -> duration -> acoustic/latent integration is a separate application layer and is not claimed by this RC package.
Related work
Finnish sanoTTS / Raspberry Pi: https://huggingface.co/AsmoKoskinen/SanoTTS_Finnish_Model
Finnish Piper teacher: https://huggingface.co/AsmoKoskinen/Piper_Finnish_Model
sanoTTS upstream: https://github.com/Ampixa/sanoTTS