analyze_file.py example from the Python SDK.
Get an SDK License
Self-service SDK Keys can be generated on the developer platform.You also need uv installed — the script declares its own dependencies, so there is nothing else to set up.
These keys are configured to authorize with our backend and collect telemetry.
Create the script
Save the following as
analyze_calls.py. It downloads the tyto-l-16khz model on first run, analyzes every recording in a folder with Tyto’s 5-second window sliding in 1-second steps, and writes a single dashboard-ready JSON file.analyze_calls.py
Supported formats are WAV, FLAC, MP3 and OGG. Multi-channel recordings are mixed down to mono, and any sample rate works — the analyzer resamples internally.
Run it on your recordings
Point the script at a folder of recordings:The first run downloads the model (≈20 MB) into
Output
./models; subsequent runs reuse it.Tyto operates on fixed 5-second windows and emits one score set per window. The script slides that window in 1-second steps so the dashboard timeline stays smooth. Recordings shorter than 5 seconds carry too little context for a meaningful score and are skipped with a warning.
Upload to the dashboard
Open call-analysis.ai-coustics.com, click Load data and drop
analysis.json on the Analysis JSON zone.Optionally add the folder of recordings as the Audio folder — they are matched to calls by filename so you can listen while reviewing scores. Without audio, the player uses an animated playhead instead.Read the results
Each row is one recording. The table shows the average of each score array, plus p95 and % degraded (the fraction of windows in the Warn band or above) for triage, and the Driver — the dimension that contributed most to the risk.The Tyto Risk Score is bucketed into indicative bands:
Keep in mind that
| Band | Range | Reading |
|---|---|---|
| 🟢 Good | < 0.35 | No meaningful degradation; downstream models should be unaffected |
| 🟡 Warn | 0.35 - 0.60 | Noticeable degradation; expect elevated error rates |
| 🔴 Bad | > 0.60 | Severe degradation; downstream failure likely; flag the call/intervene |
speaker_loudness is a neutral level meter, not a degradation score, i.e. high values are usually fine.A simple triage workflow: sort by risk score descending, review the top N, and group flagged calls by their worst dimension. See aggregating over calls for more strategies.Find out more
Tyto: Audio Insight
What Tyto measures, how to interpret each dimension, and real-time usage.
SDK Quickstart
Real-time speech enhancement with the SDK in your preferred language.
Developer Platform
Generate SDK license keys and explore the SDK playground.
Python SDK Examples
More examples, including real-time analysis on live streams.