MatthewCYM/VoiceBench
[TACL'26] VoiceBench: Benchmarking LLM-Based Voice Assistants
VoiceBench – Benchmark for LLM‑based Voice Assistants
What it is – VoiceBench is a research‑grade benchmark that lets you evaluate how well large language models (LLMs) work when they are used as voice assistants. It provides a collection of audio‑driven question‑answering and instruction‑following tasks, a Hugging‑Face dataset, and a small command‑line toolkit that runs a model, gathers its spoken responses, and scores them automatically (using GPT‑4o‑mini for some subsets).
Why it matters – As LLMs gain audio capabilities (speech‑to‑text, text‑to‑speech, and end‑to‑end speech‑language models), there is no standard way to compare them. VoiceBench fills that gap by offering:
- Multiple test suites covering open‑ended QA, multiple‑choice QA, reasoning, safety, and instruction following.
- Both synthetic (Google TTS) and human‑recorded audio sources, so you can see how models handle clean TTS versus noisy real speech.
- A public leaderboard where researchers can submit results via GitHub issues.
How to get started
- Create the environment (Python 3.10, PyTorch 2.1.2 with CUDA 12.1,
xformers).conda create -n voicebench python=3.10 conda activate voicebench pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 \ --index-url https://download.pytorch.org/whl/cu121 pip install xformers==0.0.23 --no-deps pip install -r requirements.txt - Load the data – the benchmark lives on Hugging Face.
Sub‑sets includefrom datasets import load_dataset ds = load_dataset("hlt-lab/voicebench", "alpacaeval")alpacaeval,commoneval,wildvoice,openbookqa,bbh,advbench, etc. - Run a model – the provided
main.pygenerates a JSONL of model responses.
Replacepython main.py --model naive --data alpacaeval --split test --modality audionaivewith any model you want to test (e.g.,qwen2,diva). - Automatic scoring – for the open‑ended QA sets the script calls the
gpt-4o-miniAPI.python api_judge.py --src_file naive-alpacaeval-test-audio.jsonl - Aggregate results – finally compute the benchmark numbers.
Thepython evaluate.py --src_file result-naive-alpacaeval-test-audio.jsonl --evaluator open--evaluatorflag selects the appropriate metric (open‑ended, MCQ, safety, etc.).
Dataset snapshot
| Subset | # samples | Audio source | Task |
|---|---|---|---|
| alpacaeval | 199 | Google TTS | Open‑ended QA |
| alpacaeval_full | 636 | Google TTS | Open‑ended QA |
| commoneval | 200 | Human | Open‑ended QA |
| wildvoice | 1 000 | Human | Open‑ended QA |
| openbookqa | 455 | Google TTS | Multiple‑choice QA |
| mmsu | 3 074 | Google TTS | Multiple‑choice QA |
| sd‑qa | 553 | Human | Reference‑based QA |
| mtbench | 46 | Google TTS | Multi‑turn QA |
| ifeval | 345 | Google TTS | Instruction following |
| bbh | 1 000 | Human | Reasoning |
| advbench | 520 | Google TTS | Safety |
Leaderboard & community – Results are displayed on a public page (https://matthewcym.github.io/VoiceBench/). New submissions are encouraged through the repository’s issue tracker, and the leaderboard is updated automatically.
Related resources – The README also curates an “Awesome Voice Assistants” list that points to recent papers and codebases (e.g., MiniCPM‑o 4.5, Qwen 3.5‑Omni, VoxMind). This makes VoiceBench a handy hub for anyone tracking the rapid progress of speech‑enabled LLMs.
Citation – If you use VoiceBench in a paper, cite the accompanying arXiv pre‑print (arXiv:2410.17196).
All details above are taken directly from the repository’s README; no additional features have been inferred.
Related
- Project
- Project
- Project
- Project
- Project