← humanoreleven

Methodology

This is a benchmark, not a marketing page. Everything below is exactly what the code does. Raw per-clip aggregates: CSV export.

The task

Players hear one 5–15 second clip and vote Human or AI, then get instant feedback. Clips come from a fixed pre-generated deck; nothing is synthesized at request time. The deck covers 24 scripts × 2 languages (English, Polish) across 8 emotion categories: neutral narration, angry rant, grief, sarcasm, joke delivery with timing, whisper, excited sports commentary, and hesitant filler-heavy speech. Scripts were written with natural disfluencies, breaths, and mid-sentence restarts baked into the text — both humans and the AI read the same words.

Scoring definitions (exact)

Both are reported with their n. Rates are rounded to one decimal by standard rounding — never truncated or nudged in either direction.

A vote is “counted” when all of these hold:

As a robustness check, /stats also reports the fool rate counting at most one vote per (IP, clip), using salted IP hashes. Raw IP addresses are never stored.

Human recordings

AI generation

Normalization (identical for both kinds)

Every clip — human and AI — passes the exact same chain, so loudness or format artifacts can't leak the label:

ffmpeg -i in -af "silenceremove(head/tail → uniform 250ms),
               loudnorm=I=-16:TP=-1.5:LRA=11"
       -ar 44100 -ac 1 -c:a libmp3lame -b:a 128k
       -map_metadata -1  out.mp3

Integrity

Known biases and limitations

Data access

Per-clip aggregates (kind, condition, language, emotion, votes, fooled count, average decision time): /api/stats/clips.csv. Aggregate endpoint: /api/stats.

One deliberate limitation: the CSV identifies clips by a stable pseudonymous clip_ref (salted hash), not by the live clip UUID. Publishing the UUID→kind mapping would hand bots a downloadable answer key for gaming the benchmark. Everything else about each clip is disclosed.