← the estate

offline · on device · no account

Accent Oraclea game about how you sound, not who you are

Four seconds of speech, measured in the browser. It names an accent and the region that accent is usually heard in — and it tells you how sure it is, which is usually not very. Nothing is uploaded, because there is nowhere to upload it to.

live: online tests: 22 passing build: green licence: PolyForm NC 1.0.0 offline: no network deps: 0 runtime
The Accent Oracle app: a record button above a waveform scope, the sentence to read, and the result screen behind it showing an accent name with a confidence band.
the oracle, having just heard four seconds of someone reading a sentence

Try it, right here

The frame below is the app itself, not a picture of it. It needs a microphone — or drop in a clip. No microphone in the frame? Use the buttons to see populated screens.

The app, as a still

The frame is the app itself. Open it full size →

What it does

Eight measurements, taken from the audio in your browser. Then a comparison against twelve accent profiles, and a band on how far ahead the winner is.

01

It measures, not guesses

Median pitch, pitch movement, syllable rate, voiced share, two formants, vowel spread and voice quality. All of it computed here, from the samples themselves.

02

It says how sure it is

A single confident answer is how an app gets to be wrong in public. The result carries a band, and when the top two profiles are tied it says so instead of picking.

03

Every accent has a card

Where it is heard, what it is commonly confused with, and one thing worth knowing. This is the part that turns a party trick into something you keep.

What it refuses to do

  • Name a nationality, an ethnicity or an identity. It names an accent — something you learned from the people around you, which travels when you do.
  • Claim to place you. It reports on the speech in that one sample, and says so on the result screen.
  • Send your audio anywhere. The page carries a Content-Security-Policy that forbids every network connection, so a fetch would be blocked by the browser itself.
  • Keep the recording. It is decoded into eight numbers and dropped — the sample is discarded the moment the guess is made.
  • Pretend the numbers are settled science. The profiles are hand-set starting values, not values measured from a labelled corpus, and the app says so where you can see it.

How it is built

One HTML file. No build step, no dependencies, no model download — which is also why it works with the network switched off.

piecewhat it does
docs/play/index.htmlThe whole app: engine, interface, cards, support panel.
engineFrames the audio, finds pitch by autocorrelation, formants by cepstral smoothing, syllable onsets by spectral flux, then scores twelve profiles.
ACCENTS.mdThe closed set of twelve, the card copy, and what it would take to replace the hand-set profiles with measured ones.
test/engine.test.jsLifts the engine out of the page and runs it in Node against synthesised voices with known pitch and formants.