{% extends "base.html" %} {% block title %}Voxint — synthdetect report {{ run.id.hex[:8] }}{% endblock %} {% block body %}
← Back to run {{ run.id.hex[:8] }}
{% if synthdetect_job is none %}No synthdetect job found for this run.
{% elif synthdetect_job.status != "succeeded" %}Scoring {{ synthdetect_job.status }}{% if synthdetect_job.error %}: {{ synthdetect_job.error }}{% endif %}
{% else %}| Scored turns | {{ synthdetect_job.scored_turns }} of {{ synthdetect_job.total_turns }} |
|---|---|
| Skipped turns | {{ synthdetect_job.skipped_turns }} |
| Mean risk | {{ "%.1f"|format(synthdetect_job.mean_risk * 100) }}% |
| Max risk | {{ "%.1f"|format(synthdetect_job.max_risk * 100) }}% |
| Calibration policy | {{ synthdetect_job.calibration_policy_id }} |
| Inference space | {{ synthdetect_job.inference_space }} |
Skipped turns were not scored. An unscored turn is not the same as a clean turn; the model had insufficient audio to make a determination.
Turns with the highest calibrated risk scores, descending. Scores are calibrated risk values specific to this model and calibration policy, not portable probabilities.
| Turn | Speaker | Start | End | Risk | Windows |
|---|---|---|---|---|---|
| {{ loop.index }} | {{ score.speaker_label or "—" }} | {% if score.start_seconds is not none %}{{ "%.1f"|format(score.start_seconds) }}s{% else %}—{% endif %} | {% if score.end_seconds is not none %}{{ "%.1f"|format(score.end_seconds) }}s{% else %}—{% endif %} | {{ "%.1f"|format(score.calibrated_score * 100) }}% | {{ score.window_count }} |
| Speaker | Start | End | Risk | Raw logit | Windows | Skip reason |
|---|---|---|---|---|---|---|
| {{ score.speaker_label or "—" }} | {% if score.start_seconds is not none %}{{ "%.1f"|format(score.start_seconds) }}s{% else %}—{% endif %} | {% if score.end_seconds is not none %}{{ "%.1f"|format(score.end_seconds) }}s{% else %}—{% endif %} | {% if score.calibrated_score is not none %}{{ "%.1f"|format(score.calibrated_score * 100) }}%{% else %}—{% endif %} | {% if score.raw_logit is not none %}{{ "%.3f"|format(score.raw_logit) }}{% else %}—{% endif %} | {{ score.window_count }} | {{ score.skip_reason or "—" }} |
{{ synthdetect_job.calibration_policy_id }}
policy on the {{ synthdetect_job.inference_space }} model.
They are not portable probabilities and should not be compared across
different models or calibration policies.