HomeCognitive ScienceSyllable Stream Segmentation Lab

Syllable Stream Segmentation Lab

Watch transitional-probability statistics carve word boundaries out of a continuous stream of nonsense syllables in real time - the same mechanism 8-month-old infants use (Saffran et al. 1996) - with a live probability sparkline, a learned bigram heatmap, and a control for how many hidden words make up the language.

Cognitive Science2DModerate60 FPS📱 Mobile-adapted⇄ 3D version
2d-language-cognition ↗ Open standalone

How does an infant find the boundaries between words in a continuous stream of speech, with no pauses to mark where one word ends and the next begins? Saffran, Aslin & Newport's classic 1996 experiment showed that 8-month-olds can do it from pure statistics: syllables inside a word always follow each other, so their transitional probability is high, while syllables that happen to sit across a word boundary co-occur far less reliably. This simulator builds a live artificial language out of a configurable number of hidden equal-length "words", streams them together with no acoustic cues, and runs an online statistical learner that tracks transitional probability syllable by syllable and drops a segmentation boundary whenever that probability dips below a threshold you control. Alongside the live stream, a sparkline traces the raw probability signal over time and a heatmap shows the full bigram table the learner has accumulated so far - drag the stream to scrub back through what it has already heard.

⚙ Under the hood

Watch transitional-probability statistics carve word boundaries out of a continuous stream of nonsense syllables in real time, the same mechanism 8-month-old infants use (Saffran et al. 1996), with a live probability sparkline, a learned bigram heatmap, and a control for how many hidden words make up the language.

psycholinguisticslanguage acquisitionstatistical learningcognitive sciencetransitional probability

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)