Files
wehub-resource-sync 426e9eeabd
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Waiting to run
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Waiting to run
Build Agent Image / build-and-push (push) Waiting to run
Chat shell gestures / Chat shell gesture + parity e2e (push) Waiting to run
ci / test (push) Waiting to run
ci / lint-and-format (push) Waiting to run
ci / build (push) Waiting to run
ci / dev-startup (push) Waiting to run
Cloud Gateway Discord / Test (push) Waiting to run
Cloud Gateway Webhook / Test (push) Waiting to run
Cloud Tests / lint-and-types (push) Waiting to run
Cloud Tests / unit-tests (push) Waiting to run
Cloud Tests / integration-tests (push) Waiting to run
Cloud Tests / e2e-tests (push) Blocked by required conditions
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Apps Worker (Product 2) / Determine environment (push) Waiting to run
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Blocked by required conditions
Deploy Eliza Provisioning Worker / Determine environment (push) Waiting to run
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Blocked by required conditions
Dev Smoke / Classify changed paths (push) Waiting to run
Dev Smoke / bun run dev onboarding chat (push) Blocked by required conditions
Dev Smoke / Vite HMR dependency-level smoke (push) Blocked by required conditions
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Waiting to run
gitleaks / gitleaks (push) Waiting to run
Markdown Links / Relative Markdown Links (push) Waiting to run
Publish @elizaos/example-code / check_npm (push) Waiting to run
Publish @elizaos/example-code / publish_npm (push) Blocked by required conditions
Publish @elizaos/plugin-elizacloud / verify_version (push) Waiting to run
Publish @elizaos/plugin-elizacloud / publish_npm (push) Blocked by required conditions
Quality (Extended) / Homepage Build (PR smoke) (push) Waiting to run
Quality (Extended) / Comment-only diff guard (push) Waiting to run
Quality (Extended) / Format + Type Safety Ratchet (push) Waiting to run
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Waiting to run
Quality (Extended) / Develop Gate (lint) (push) Waiting to run
Sandbox Live Smoke / Sandbox live smoke (push) Waiting to run
Snap Build & Test / Build Snap (amd64) (push) Waiting to run
Snap Build & Test / Build Snap (arm64) (push) Waiting to run
supply-chain / sbom (push) Waiting to run
supply-chain / vulnerability-scan (push) Waiting to run
Build, Push & Deploy to Phala Cloud / build-and-push (push) Waiting to run
Test Packaging / Validate Packaging Configs (push) Waiting to run
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Waiting to run
Test Packaging / Pack & Test JS Tarballs (push) Waiting to run
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Waiting to run
UI Fixture E2E / ui-fixture-e2e (push) Waiting to run
UI Fixture E2E / fixture-e2e (push) Waiting to run
UI Story Gate / story-gate (push) Waiting to run
vault-ci / test (macos-latest) (push) Waiting to run
vault-ci / test (ubuntu-latest) (push) Waiting to run
vault-ci / test (windows-latest) (push) Waiting to run
vault-ci / app-core wiring tests (push) Waiting to run
verify-patches / verify patches/CHECKSUMS.sha256 (push) Waiting to run
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Waiting to run
Voice Benchmark Smoke / voice bench smoke summary (push) Blocked by required conditions
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Test Packaging / Build & Test PyPI Package (push) Waiting to run
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

4.6 KiB

elizaOS VoiceBench (quality)

Vendored implementation of VoiceBench (Chen et al. 2024) — a quality benchmark for voice-input language assistants across 8 task suites covering 6,783 spoken instructions.

This package is the quality counterpart to the existing latency benchmark at packages/benchmarks/voicebench/. The two are kept separate on purpose: they measure orthogonal axes (latency in ms vs. response quality in [0, 1]) and the latency benchmark is implemented in TypeScript against the runtime, while the quality benchmark is Python and treats the agent as an adapter under test.

Suites

Suite What it measures Scoring
alpacaeval Open-ended instruction following LLM judge
commoneval Open-ended common-knowledge QA LLM judge
sd-qa Spoken-dialect QA (10 English dialects) LLM judge
ifeval Verifiable instruction following Deterministic
advbench Safety / harmful-prompt refusal Deterministic
openbookqa Multiple-choice elementary science Deterministic
mmsu MMLU-Pro spoken, 12 academic domains, MCQ Deterministic
bbh Big Bench Hard, mixed reasoning LLM judge

The judged suites are scored by gpt-oss-120b on Cerebras — the same model LifeOpsBench uses as a simulated user, reused via eliza_lifeops_bench.clients.cerebras so retry / pricing / rate-limit policy is one canonical implementation in the repo.

Sibling — voice-emotion bench

The voice-emotion classifier (Wav2Small + Stage-1 LM text emotion field) is benched in its own sibling package at packages/benchmarks/voice-emotion/ (Voice Wave 2 / R3-emotion / I3). That package covers:

  • Acoustic intrinsic accuracy on IEMOCAP / MELD / MSP-Podcast.
  • GoEmotions text-emotion intrinsic accuracy (Stage-1 LM vs roberta-go-emotions).
  • Closed-loop fidelity over the duet harness.

Kept separate from voicebench-quality because the audio corpora + the duet fidelity loop have requirements (soundfile, onnxruntime, optional running eliza-1 API) that voicebench-quality's response-quality scoring does not.

Audio input

VoiceBench is a speech-in, text-out task. The Eliza, Hermes, and OpenClaw text adapters currently in this repo don't speak audio. For the cascaded baseline we transcribe each sample with Groq Whisper (the same STT provider the latency benchmark uses), then hand the transcript to the text adapter. A native voice-in model can plug in directly by implementing elizaos_voicebench.adapters.VoiceAdapter without going through STT.

CLI

# Run against a live adapter.
python -m elizaos_voicebench \
    --agent eliza \
    --suite all \
    --limit 20 \
    --output ./results

Arguments:

  • --agent {eliza,hermes,openclaw} — adapter under test.
  • --suite {all,alpacaeval,commoneval,sd-qa,ifeval,advbench,openbookqa,mmsu,bbh}
  • --limit N — cap samples per suite.
  • --stt-provider groq — STT for cascaded voice→text input.
  • --judge-model — Cerebras model for the LLM judge.
  • --output — directory for the results JSON.

Output

<output>/voicebench-quality-results.json

Schema (top-level fields):

{
    "agent": "eliza",
    "suites_run": ["openbookqa", "mmsu", ...],
    "score": 0.62,
    "per_suite": {"openbookqa": 0.81, "mmsu": 0.55, ...},
    "n": 160,
    "elapsed_s": 412.3,
    "judge_model": "gpt-oss-120b",
    "stt_provider": "groq",
    "suite_details": [...]
}

score is the unweighted mean of per_suite (each suite contributes equally regardless of sample count, matching upstream).

Environment

  • CEREBRAS_API_KEY — required for the LLM judge on judged suites.
  • GROQ_API_KEY — required for cascaded STT (live adapters).
  • CEREBRAS_MODEL — override the judge model (default gpt-oss-120b).
  • VOICEBENCH_STT_MODEL — override the STT model (default whisper-large-v3-turbo).

Tests

cd packages/benchmarks/voicebench-quality
python -m pytest tests/ -x

Citation

@article{chen2024voicebench,
  title  = {VoiceBench: Benchmarking LLM-Based Voice Assistants},
  author = {Chen, Yiming and others},
  journal= {arXiv preprint arXiv:2410.17196},
  year   = {2024}
}