Skip to content

Spoken digits

300 recordings of people saying a digit out loud — the even digits, four speakers, fifteen takes each. Every point below is one recording, drawn as its spectrogram.

Click any glyph to hear it. These are the original recordings, not a reconstruction.

Projected with DruidJS: each 36×36 log-mel spectrogram is standardised per feature and reduced to 50 dimensions with new druid.PCA(Z, { d: 50 }), then new druid.TSNE(P, { seed: 2, perplexity: 40, epsilon: 5 }). pnpm fsdd regenerates it, and --sweep re-runs the search that chose those parameters.

300 glyphs · cell 0.4 px → glyph 0.13 · 83 overlapping pairs

Reading a recording

A spectrogram: time left to right, frequency low at the bottom to high at the top, brightness for energy. The frame is the class.

Click any glyph to hear it. These are the original recordings, streamed from the dataset's repository — nothing here is synthesised, and no audio is downloaded until you ask for it.

Colour by

The layout does not change — only the colouring. Both structures are in the same projection, so switching shows which one a given clump is about.

On the raw projection the recordings sit on top of each other, and a glyph you cannot separate is a glyph you cannot click. That makes this the one showcase where gridding buys something beyond legibility: it buys a hit target. Every recording gets its own cell, so every recording can be pointed at, played and compared with the one beside it.

The spectrogram is doing no encoding work — it is the signal the projection was computed from, drawn small. Time runs left to right, frequency bottom to top, and brightness is energy. A digit with a stop consonant shows a vertical break; a long vowel shows a steady horizontal band.

There are two things a recording can be near its neighbours for: it is the same digit, or it is the same voice. Both are in the data, and the projection was told about neither — the labels play no part in the projection, so the Colour by switch changes only the colouring and not the layout:

coloured byneighbours sharing the labelchance
digit93.9%20%
speaker91.6%25%

Measured over each point’s ten nearest neighbours. Both are far above chance, which means the clusters are not purely one thing or the other — some clumps are a digit, some are a voice, and switching the colouring is how you tell which is which. Clicking through one and listening is how you confirm it.

Zohar Jackson, César Souza, Jason Flaks, Yuxin Pan, Hereman Nicolas and Adhish Thite Free Spoken Digit Dataset (FSDD) 2018.

8 kHz mono recordings, CC BY-SA 4.0. The clips stream from the dataset's own repository when you click a glyph, so the page ships no audio.