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

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support