Sound Search
0 clips 0 kinds of sound 0 transcripts used
Show

Search sound, not words.

A news anchor's cadence, an angry tone, a jazz trumpet: no transcript holds them. How it works ↓

/
That's the demo. Below: how well it works, and how.
01 · Words → sounds

Type a sound, get the sound

For each ready-made search: how many of the top 10 clips carry the right human label. Click a dot to run it.

CLAPGemma
CLAP, average
–
of 10 right · trained on sounds with captions
Gemma, average
–
of 10 right · never shown captioned sounds
02 · Heard, not named

The model hears the mood. Words can't reach it.

CREMA-D actors say the same sentences in six moods, so a transcript is identical. Typing the mood finds nothing; clicking a clip finds its kind. Bars: how many of an average clip's 10 nearest neighbours share its mood.

CLAPGemmachance
Typed “an angry voice”
–
angry clips in the top 10
Clicked an angry clip
–
neighbours also angry, on average (chance 1.7)
03 · On the map

Three collections, one space

Every clip sits in the same space, whatever it came from. The layer buttons at the top hide any of them.

04 · How it works

One model, two inputs, one space

Nothing is transcribed or tagged. Sound and words become the same kind of vector, and search is just “nearest”.

🎧
A clip
2–20 s of audio
→
🧠
CLAP or Gemma
audio encoder
→
A vector
512 / 768 numbers
→
✨
A dot on the map
UMAP squeezes it to 2-D
⌨️
Your words
“a dog barking”
→
🧠
The same model
text encoder
→
A vector
same space as the clips
→
🎯
Nearest clips light up
cosine similarity
05 · Fine print

What the numbers don't show

../audio-vocab/.venv/Scripts/python scripts/serve.py # http://127.0.0.1:8770/ ../audio-vocab/.venv/Scripts/python scripts/build.py --drop podcasts # rebuild without a collection