Satya-Vani
checking…

Upload a recording — the risk score and its full breakdown will appear here.

Drop a WAV/FLAC/MP3/OGG file here, or click to choose one
?
Call details (optional — feeds the contextual signal)
Click to start — your browser will ask for microphone permission.
Call details (optional — feeds the contextual signal)

Enroll a caller's voiceprint once, then set "Claimed caller identity" (in Call details, above) to that same name when scoring a call — the Third signal will compare the live voice against this enrollment instead of abstaining.

Drop a clean voice sample (WAV/FLAC/MP3/OGG), or click to choose one
Enrolled voiceprints

Every window ever scored is kept here — pick a past session to replay it. Nothing is lost when you close this tab or restart the browser.

Upload a call recording or start the microphone — the risk score and its full breakdown will appear here.

Analysing...

Running every configured detector over every window.

0.0s elapsed

–
no data yet

Run an analysis to see a recommended action here.

Score over time

            

How this score is calculated

Every number this dashboard shows can be traced back to something concrete — nothing here is a black box. This page shows the same pipeline the API actually runs, with today's real configuration pulled live from /v1/config.

Audio in — the call's audio, either an uploaded recording or the live microphone, before any processing happens. Audio in Windowing — the audio is cut into overlapping windows (2s long, sliding forward every 0.5s by default) so the score has visible momentum instead of jumping between unrelated slices. Windowing 2s / 0.5s hop Detectors — every configured signal (Acoustic, Prosodic, Third signal, Intent, Watermark check, Phase coherence) scores this one window independently, and can abstain if it genuinely has nothing to say. See the cards below for exactly how each one works. Detectors 6 pluggable signals Fusion — every non-abstaining signal's score is combined into one raw 0-100 number, weighted by how much that signal is trusted. See "Step 1" below for the exact formula with today's real weights. Σ Fusion weighted sum Smoothing — the raw score is blended with the session's previous smoothed score (an exponential moving average) so it doesn't jump wildly window to window. See "Step 2" below for the exact formula. Smoothing EMA Banded score — the final smoothed number is classified into low / elevated / high, each with its own recommended action. See "Step 3" below for the real thresholds. Banded score low · elevated · high

The six pluggable signals — how each one actually computes its number

Step 1 — Fusion: weighted sum, renormalized

fused = Σ weight × score, over signals that didn't abstain

If a signal abstains (near-silent audio, no transcript, no enrolled voiceprint) it's dropped from the sum entirely and the remaining weights are rescaled to still add up to 100% — an abstained signal never silently drags the score toward zero just for having nothing to say.

Step 2 — Smoothing across time (EMA)

smoothed = α × raw_this_window + (1 − α) × smoothed_previous_window

Keeps the score from jumping wildly window to window — a higher α reacts faster to new evidence, a lower α is steadier.

Step 3 — Banding: what the number means