Sadda (Pali: सद्द) — sound, voice.
An open-source toolkit for phonetics and speech-science research: a Rust engine, a Python API, and a desktop app for acoustic analysis, annotation, forced alignment, and clinical-style voice metrics.
→ Main repository: sadda-speech/sadda
A single engine with three ways in:
- Python — the primary API.
pip install sadda(add[ml]for VAD + embeddings). Pre-built wheels for Linux / macOS / Windows on Python 3.10–3.13. - Desktop app — an egui GUI with waveform, spectrogram, and measure-track lanes, tier editing, live recording, reference-distribution overlays, and an embedded Python script panel. Bundles on the Releases page.
- Rust — the
sadda-enginecrate underneath both.
- Acoustic DSP — STFT, spectrogram, intensity, LTAS, MFCC; pitch via Boersma / YIN / pYIN / SWIPE'; LPC formants. Multiple, separately-cited methods where the field offers more than one.
- Corpus + annotation — projects and bundles over six tier types, plus a full annotation-campaign suite: rubric-as-data, computational criteria that auto-propose annotations, annotator assignment, an inter-annotator agreement engine (Cohen's κ), a QA dashboard, and a PI lab-notebook.
- Clinical voice metrics (research & education, non-diagnostic) — jitter, shimmer, HNR, CPP / CPPS, H1–H2, GNE, and the composite AVQI / ABI indices; validated against reference implementations where one exists, clean-room from the source publications where none does.
- Reference distributions — install, query, pin, and publish normative distributions and target zones.
- ML inference — bundled Silero VAD plus a wav2vec2 / Whisper-style embedding harness via load-dynamic ONNX Runtime.
- Interop — Praat TextGrid and ELAN
.eafimport/export, with documented round-trip lossiness. - Live recording, calibration & provenance, recipes — streaming capture; absolute dB-SPL calibration; every analysis records a provenance row and can emit a runnable script + a citation list for the methods it used.
Written and under review on the main repo, shipping in the next release:
- Forced alignment & ASR — phone-level forced alignment, native espeak-ng G2P, syllabification, MFA gold-standard passthrough, and a no-transcript path (Whisper ASR → transcript → align).
- Publication-quality figure export — waveform / spectrogram / measure / tier figures to SVG, PDF, or TikZ, or straight to the clipboard.
- Adaptive speaker pitch ranges — two-pass and speaker-level (pooled / empirical-Bayes) f0-range estimation.
Public and actively developed at v0.5.x, solo part-time. Stable: corpus,
dsp, clinical (research-use). Provisional: live, recipe, refdist,
ml. Further out: articulatory channels (EGG / EMA / ultrasound), an experiment
runner, and mobile (iOS / Android via UniFFI).
Not a medical device. The clinical-style measures are for research and education; sadda makes no diagnostic or treatment claims.
- sadda — the toolkit (engine + Python + desktop app).
- SpectroGame — phonetics training activities built on sadda.
Dual-licensed under Apache-2.0 or MIT, at your option.