Cadence

a gentle wellness check for your voice

Read one short sentence aloud. In a few seconds we’ll show you clear, interpretable insights about your speech patterns.

Your voice is analysed on the spot and then discarded.

How it works

1 · Read

Say one short sentence out loud, nice and natural.

2 · We listen

We measure pitch, rhythm and clarity right on the page.

3 · Insights

Get a friendly voice report you can actually understand.

please read

Cadence is a research demo and screening aid - not a diagnosis. It cannot tell you whether you have any condition. If you are ever worried about your health, please talk to a qualified doctor.

Step 1 of 3 · Read aloud

Read this out loud

Read the passage aloud; tap the mic to start and stop. A new passage appears each time - record about 3 for a reliable result, or upload audio files.

tap the mic to start
Step 2 of 3 · Articulation

Say “pa-ta-ka”

Tap the mic and say "pa-ta-ka, pa-ta-ka" over and over, as fast and steady as you can, for about 5 seconds. This classic test measures articulation speed and rhythm.

Tap to start the pa-ta-ka test

Step 3 of 3 · Sustained vowel

Hold “eee”

Tap the mic and hold a steady “eee” sound (like the “ee” in “see”) at a comfortable pitch for about 4 seconds. This measures how clear and stable your voice is.

Tap to start the vowel test

Listening to your voice…

measuring pitch, rhythm and clarity

Your voice report

0%
screening indicator

What your voice told us

Your voice report card

remember

About Cadence

Cadence is a research prototype that screens for signs of Parkinson’s disease from a short voice recording, using interpretable acoustic biomarkers and honest, confound-aware evaluation.

Ahammad Shawki
Creator & developer - research, modelling, design & build
github.com/ahammadshawki8

An open, research-backed project. Source code: CADENCE repository.

Methodology

How a Cadence test works

You complete up to three short speech tasks, each probing a different part of speech-motor control. Everything is analysed on the spot and your audio is never stored.

Read aloudconnected speech (screening model)
pa-ta-kaarticulation rate & rhythm
eeevoice clarity & stability
eGeMAPSacoustic biomarkers
Channel-invariant modeldomain-adversarial, windowed median
ExplainSHAP biomarker families
Report + PDFcombined, in any language

The problem with “99% accurate”

Many voice-based Parkinson’s classifiers report near-perfect accuracy. We show this is often a mirage: on the Italian Parkinson’s corpus a model reaches an AUC of 1.00 even after controlling for sample rate and age - for both deep embeddings and hand-crafted features - because patients and controls were recorded under different conditions. The model detects the recording “batch signature”, not the disease.

Our approach

  • Interpretable biomarkers. Language-independent phonatory and prosodic measures (jitter, shimmer, harmonics-to-noise ratio, pitch variability, articulation rate, pausing).
  • Leakage-safe splits. Cross-validation grouped by speaker - no speaker appears in both train and test.
  • Honest cross-database validation. Validated across three independently-collected corpora in three languages - Italian, English (MDVR-KCL) and Spanish (NeuroVoz) - training on one and testing on another, each a different language and microphone.
  • Domain-adversarial adaptation. A gradient-reversal domain classifier forces channel-invariant features. On the task-matched reading test it lifts honest cross-lingual AUC from ~0.72 to ~0.80; adding target entropy regularization pushes it to ~0.84.
  • A control that keeps us honest. We re-train with the source labels shuffled: any score that stays high with a useless source is exploiting the target recording's own structure, not transferring disease knowledge. This exposed a tempting ~0.91 average as confound leakage; only the ~0.84 clean-target result survives the control.
  • Multi-task clinical assessment. Beyond connected reading we add the classic bedside tasks - diadochokinetic /pa-ta-ka/ (articulation rate and rhythm) and a sustained vowel /a/ (voice clarity and stability, reported as a measurement only, since the vowel does not transfer across recording channels). Results are grouped into the four speech subsystems a clinician uses: phonation, prosody, articulation, rate.
  • Multiple passages + longitudinal tracking. Several short passages are pooled into one steadier estimate (variance falls with more takes), and every result can be saved on-device to watch the trend over time - as clinical monitoring does.
  • Explainability. SHAP attributes each screening result to specific voice biomarkers.
  • Language-independent. Cadence measures voice quality and prosody, not words, so it works across languages; the reading passage is offered in several languages. Validated so far on Italian, English and Spanish.

Result

The honest number climbed one careful step at a time - and one tempting step was rejected:

Within-corpusAUC ~1.00 (mirage)
Cross-database~0.72 biomarkers
+ DANN~0.80
+ entropy reg~0.84 shuffle-verified

On the strict unseen-channel test, deep speech embeddings (wav2vec2 / HuBERT) collapse to ≈ 0.60, interpretable biomarkers transfer at ≈ 0.72, and domain-adversarial adaptation with entropy regularization reaches a shuffle-verified ≈ 0.84 cross-lingual AUC on connected reading speech. Two further honest checks keep us grounded: pooling several corpora generalises to a held-out corpus at ≈ 0.69-0.76 on its own, and the classic sustained-vowel /a/ biomarker does not transfer across corpora (≈ 0.34-0.46, at or below chance) - proof that within-corpus vowel "accuracy" is the microphone, not the disease. A screening from a single recording on a new device is an uncalibrated indicator, never a diagnosis - these are honest numbers across languages and microphones, not inflated single-dataset scores.

How it's built

Backend: FastAPI (Python). Frontend: a single-page, installable PWA with client-side audio capture and offline caching. Each recording is turned into eGeMAPS functionals (openSMILE), scored over overlapping windows and combined by median for robustness; inference is torch-free, so no deep-learning runtime is needed to serve. The live app ships the interpretable model trained offline on pooled Italian + MDVR-KCL recordings, while the research domain-adversarial network learns channel-invariant features (the ~0.84 cross-lingual result), validated across three corpora and three languages. Nothing you record is uploaded or stored - audio is analysed on the spot and discarded.

Research that backs this project

Parkinson's speech + cross-corpus generalization:

  • Favaro et al., Towards a Corpus (and Language)-Independent Screening of Parkinson's Disease from Voice and Speech through Domain Adaptation, Bioengineering 2023 - mdpi.com/2306-5354/10/11/1316. The domain-adversarial, corpus-independent screening approach we build on.
  • Favaro et al., Analyzing wav2vec embeddings in Parkinson's disease speech: cross-database classification and regression, medRxiv 2024 - medrxiv.org/.../2024.04.10.24305599. Cross-database framing and the collapse of deep embeddings across corpora.
  • Towards a Generalizable Speech Marker for Parkinson's Disease, arXiv:2501.03581 (2025) - arxiv.org/abs/2501.03581.
  • Interpretable Early Detection of Parkinson's Disease through Speech, arXiv:2504.17739 (2025) - arxiv.org/abs/2504.17739.
  • Longitudinal voice-biomarker modelling on mPower with a domain-adaptive encoder (CORAL + gradient reversal), Frontiers in Digital Health 2026 - frontiersin.org/.../fdgth.2026.1864460.

Methods we implemented:

  • Eyben et al., The Geneva Minimalistic Acoustic Parameter Set (eGeMAPS), IEEE T-AFFC 2016 - doi.org/10.1109/TAFFC.2015.2457417. Our acoustic features.
  • Ganin & Lempitsky, Domain-Adversarial Training of Neural Networks, 2016 - arxiv.org/abs/1505.07818. The gradient-reversal DANN.
  • Sun & Saenko, Deep CORAL: Correlation Alignment, 2016 - arxiv.org/abs/1607.01719. Covariance alignment.
  • Shu et al., A DIRT-T Approach to Unsupervised Domain Adaptation (VADA / target entropy minimization), 2018 - arxiv.org/abs/1802.08735. The entropy-regularization that reached ~0.84.

Usage & license

Software

The Cadence source code is released under the MIT License © 2026 Ahammad Shawki (ahammadshawki8). You may use, modify and share it with attribution.

Datasets

Model training and validation used the Italian Parkinson’s Voice and Speech database, the MDVR-KCL database (CC BY 4.0), and the NeuroVoz database (Castilian Spanish). No dataset audio is redistributed in this app. Please cite the original dataset authors if you build on this work.

Medical disclaimer

Cadence is a research prototype and screening aid, not a medical device. It does not diagnose any condition and must not replace professional medical advice.

Waking up backend
Hosted on free Render service. Booting up for the first time...