AsmoKoskinen/SanoTTS_Finnish_Model
SanoTTS Finnish Model
Finnish voice for sanoTTS.
This model is a compact Finnish TTS voice distilled from my Finnish Piper teacher voice:
- Teacher: https://huggingface.co/AsmoKoskinen/PiperFinnishModel
- Related Finnish F5-TTS work: https://huggingface.co/AsmoKoskinen/F5-TTSFinnishModel
- sanoTTS project: https://github.com/Ampixa/sanoTTS
The final release candidate was validated as a pure NumPy deployment on a Raspberry Pi Zero 2 W.
Voice package
The deployable piperlite package contains:
manifest.json
weights.fp16.bin
piper-phoneme-config.jsonModel details:
- Language: Finnish (
fi) - eSpeak voice:
fi - Sample rate: 22,050 Hz
- Package format:
roota.raw-fp16.v1 - Parameters: 4,356,478
- Weight blob: 8,712,956 bytes (~8.4 MiB)
- Neural stack:
- duration student
- calibrated A20/250 acoustic student
- A91 piperlite compact decoder
The neural package input boundary is Piper-compatible phoneme IDs. Arbitrary text synthesis uses an eSpeak/Piper-compatible Finnish frontend.
Validation
FP16 package validation
The exported weights.fp16.bin was reloaded independently from the package manifest and compared against the locked RC1 checkpoints.
Structural FP16 roundtrip: PASS
Pure NumPy kernel parity
32 held-out Finnish examples:
duration token exact fraction 1.000000
duration chunk exact fraction 1.000000
acoustic mean cosine 0.9999999999999787
decoder mean cosine 0.9999999999998381
end-to-end mean cosine 0.9999999999994740
end-to-end mean length ratio 1.000000Raspberry Pi Zero 2 W
Test platform:
Raspberry Pi Zero 2 W
4 x Cortex-A53 @ 1.0 GHz
64-bit Raspberry Pi OS / Debian 13
pure NumPy runtimeMeasured with the final Finnish RC1 package:
The four-thread run reached 56.9 °C with no throttling.
RTF < 1 means faster than real time.
Python use
Download the voice package, for example with Hugging Face Hub:
hf download AsmoKoskinen/SanoTTS_Finnish_Model \
--local-dir SanoTTS_Finnish_ModelThe model was validated with the sanoTTS pure NumPy runtime.
from sanotts.engine import Synthesizer
tts = Synthesizer(voice_dir="SanoTTS_Finnish_Model")
audio = tts.synthesize("Hei maailma!")Runtime compatibility note
This Finnish RC uses a calibrated depthwise_lowrank acoustic output adapter. The runtime used for the release also includes scalar-tensor compatibility for raw-FP16 scalar parameters.
If the current upstream sanoTTS release does not yet include these two compatibility fixes, see runtime_patches/ in this repository.
The runtime code and patches are separate from the model-weight license and follow the sanoTTS/GPLv3 code licensing requirements.
Raspberry Pi / local API
This voice has also been tested as a local systemd TTS service using:
Finnish text
-> eSpeak/Piper frontend
-> sanoTTS pure NumPy runtime
-> 22.05 kHz PCM
-> PipeWire/ALSA
-> Bluetooth speakerA Raspberry Pi Zero 2 W reaches real-time synthesis with four CPU threads.
Training / distillation notes
The final acoustic student was trained from a larger Finnish text coverage set and distilled against the Finnish Piper teacher. The final release does not redistribute the training corpus or intermediate training checkpoints.
The teacher voice is my own Finnish Piper voice and is available separately at:
https://huggingface.co/AsmoKoskinen/PiperFinnishModel
Files
README.md
manifest.json
weights.fp16.bin
piper-phoneme-config.json
SHA256SUMS
PACKAGE_VALIDATION.json # when included
runtime-kernels.md # package/runtime notes
runtime_patches/ # compatibility patches, when needed
samples/ # optional audio examplesLicense
Model weights
CC BY-NC 4.0
This follows the license used for the Finnish Piper teacher from which this voice was distilled.
Runtime code
sanoTTS is GPLv3:
https://github.com/Ampixa/sanoTTS
Any runtime compatibility patch files in runtime_patches/ are code rather than model weights and should be treated under the applicable GPLv3 code licensing terms.
Arduino Nano ESP32
The ESP32-S3 / Arduino Nano ESP32 deployment is maintained separately:
https://huggingface.co/AsmoKoskinen/SanoTTSFinnishArduinoNanoESP32
Credits
- sanoTTS: Ampixa — https://github.com/Ampixa/sanoTTS
- Finnish Piper teacher: https://huggingface.co/AsmoKoskinen/PiperFinnishModel
- Finnish F5-TTS model: https://huggingface.co/AsmoKoskinen/F5-TTSFinnishModel
