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/Piper_Finnish_Model
- Related Finnish F5-TTS work: https://huggingface.co/AsmoKoskinen/F5-TTS_Finnish_Model
- 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.json
Model 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.000000
Raspberry 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 runtime
Measured with the final Finnish RC1 package:
| Threads | RTF | Realtime | Peak RSS |
|---|---|---|---|
| 1 | 1.163 | 0.860x | 176.3 MiB |
| 2 | 0.943 | 1.060x | 165.8 MiB |
| 4 | 0.857 | 1.167x | 177.9 MiB |
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_Model
The 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 speaker
A 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/Piper_Finnish_Model
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 examples
License
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.
Credits
- sanoTTS: Ampixa — https://github.com/Ampixa/sanoTTS
- Finnish Piper teacher: https://huggingface.co/AsmoKoskinen/Piper_Finnish_Model
- Finnish F5-TTS model: https://huggingface.co/AsmoKoskinen/F5-TTS_Finnish_Model