Skip to content
Tone is open sourcestar us on GitHub to follow along
Back to blog
Product

Beyond English: testing voice agents across 30+ accents.

Your customers don't all sound the same. The persona library that ships with Tone's test center, and how to add your own.

Adarsh Raj·Apr 15, 2026·2 min read
Share

A voice agent that works perfectly on the team that built it is not a voice agent that works. The cohort that ships software speaks one or two flavors of English, in a quiet office, on a good mic. Your callers do not.

This is the story of how we ended up with a persona library, why it matters for evals, and what it took to expand it to 32 accents across 14 languages.

What a "persona" is in Tone

A persona is a voice + context bundle:

  • A synthetic voice with consistent timbre, cadence, and accent.
  • A scenario: who's calling, why, what they know.
  • A script library with variations — happy path, frustrated, confused, hostile.

You point your eval suite at the persona, the persona calls your agent, and the eval scores the resulting transcript on whatever rubric you care about.

Why accents broke our first eval suite

The agent that aces "calm American adult, perfect grammar" routinely failed on "frustrated South Asian English speaker with telco-grade audio." Not by a little. By 30+ points on task completion.

The model was fine. Our STT was the bottleneck — it kept transcribing accented speech as nonsense, and a model can't recover from nonsense.

What changed

Two things, in this order:

  1. We made STT pluggable per persona. Whisper-large-v3 for accented English, Deepgram Nova for clean American voices, Azure for some of the longer-tail languages.
  2. We made the persona library cover the actual customer distribution our design partners had, not the one we imagined.

Now every agent built on Tone is regression-tested against all 32 personas on every PR. Some of them you'll fail. That's the point.

Adding your own

A persona is a YAML file:

id: customer.it-support.frustrated-mid-atlantic
voice: openai.alloy.mid-atlantic
language: en-US
accent: mid_atlantic
scenarios:
  - id: laptop-wont-boot
    intent: "I can't get my laptop to start. I've been on hold for 40 minutes."
    affect: frustrated
    happy_path: "agent acknowledges wait, schedules callback, confirms ticket."

Drop it in personas/. Run tone eval. The library is in the repo.