🚧 Work in progress — this arena is under active development. Leaderboards, fighters and data are incomplete and may change or reset without notice; don't rely on these numbers yet.

Which plugin should I use?
Let them fight.

Reproducible benchmarks rank OpenVoiceOS plugins on labelled datasets; blind A/B battles let the community refine those rankings with human judgement. No servers, no arena account — voting posts a free GitHub issue from yours.

⚔️ Start votingLeaderboardsMeet the fighters

Leaderboards

Benchmark boards straight from prediction runs, beside ELO boards seeded from them and refined by votes.

View leaderboards

Battle

Pick the better plugin output in a blind A/B comparison. Votes go through GitHub Issues — no arena account.

Start voting

Fighters

Browse the bestiary league by league: every engine with its voices and models, its rank, and the config to run it.

Open the bestiary

Cost vs. Quality

The cheapest fighter that still scores within reach of the best — memory and speed plotted against every league's quality metric.

Find the frontier

Fork your arena

Every fighter and dataset is a JSON file; every benchmark is a Python script. Fork, point at your data, done.

Fork on GitHub

How it works

  1. Benchmarks run offline. A dedicated script per benchmark trains each fighter and publishes per-sample predictions to HuggingFace — public, reproducible, versioned.
  2. CI assembles the arena. A scheduled Action turns predictions into benchmark boards, blind battle pools, and a benchmark-seeded ELO ledger.
  3. You vote. A battle shows two anonymous outputs for the same input; your pick opens a prefilled GitHub issue.
  4. CI tallies. Hourly, vote issues are parsed, deduplicated, and replayed on top of the ELO seed; updated boards are committed and the site redeploys.

Every vote is public and the ELO standings are deterministically replayable from the issue history — the vote log is the audit trail.