Start here

What these recordings are, and what every number on these pages means. Written for someone comfortable with machine learning in general but with no background in speech or audio. Five minutes.

1. What a “trajectory” is

A handful of short speech clips from the same speaker, played back to back, in which some measured quality changes across the clips — anger builds, warmth fades, the voice gets breathier.

They were found, not performed. Nobody was asked to act an emotional arc. Every clip is an ordinary piece of existing recorded speech; a scoring model rated each clip on 40 emotions and 57 voice descriptors, and the mining searched those scores for stretches where one of them happens to move steadily in one direction. So a trajectory is a discovery about recordings that already existed — which also means it can be wrong, which is why you are being asked to listen.

2. The 0–1 numbers are percentiles, not intensities

This is the single most misread thing on these pages. When a clip shows Anger 0.90, that does not mean “90 % angry”. It means this clip is angrier than 90 % of all clips in the corpus.

Why do it that way? Because the raw scores from different emotion heads are not comparable — one may output 0.3 for furious, another 4.0 for mildly amused. So every emotion is rank-normalised: replace each clip's score with the fraction of the corpus it beats. Afterwards 0.5 is the median clip for that emotion, and “moved 0.25” means the same thing on every axis: you crossed a quarter of the corpus.

One consequence worth holding on to: if most clips have literally no trace of an emotion, they all tie, and a tie has no internal order — they all collapse onto one number. That is exactly what breaks Sadness (the whole story).

3. T — how big the change has to be

T is the minimum total change required between the first clip and the last, measured on that percentile scale. A tier with T=0.20 accepts any chain that shifts by a fifth of the corpus. T=0.80 demands a chain that climbs from near the bottom to near the top.

Bigger T means a more dramatic arc — and dramatically fewer of them. This is the real count for the one-sided emotion rule:
Tchains availablehourspossible chain lengths
0.2021,543,847214,925k=2, k=3, k=4, k=5
0.259,393,332106,540k=2 (only 5), k=3, k=4, k=5
0.401,711,91119,336k=3, k=4, k=5
0.50383,8804,595k=4, k=5
0.60100,8441,224k=4, k=5
0.7016,409212k=4, k=5
0.802,25730k=5
From 21,543,847 chains at T=0.20 down to 2,257 at T=0.80 — a factor of about 9,545. That trade-off is the whole point of having a ladder of tiers: you pick how strong an example has to be, and pay for it in how many you get.

4. The step cap — why the change has to be gradual

Reaching the target is not enough. The rule also caps how far the score may move between two consecutive clips — almost always 0.25. Without that cap you would get chains that sit flat and then jump the entire distance in one cut, which is a scene change, not an emotional build. The cap forces the change to be spread out.

It has an arithmetic consequence that explains the table above. A chain of k clips has k−1 steps, so the furthest it can possibly travel is (k−1) × cap. Therefore:
clips (k)steps furthest reachableso it can serve…
210.25T < 0.25 only
320.50T up to 0.50
430.75T up to 0.75
541.00any T
You can watch that happen. There is one tier that keeps T=0.25 but tightens the cap to 0.20. Two clips can then reach at most 0.20, which is less than the 0.25 required — and sure enough it holds 0 chains at k=2, against 3,895,947 in total. Tightening the cap did not make the chains shorter; it made the short ones impossible.
Read that against the ladder and it matches exactly: at T=0.80 only k=5 chains exist, because four steps of 0.25 is the only way to cover 0.80. And k=2 all but vanishes the moment T equals the cap — a two-clip chain would have to move exactly the cap and not a hair more. That is why nearly every tier reports zero chains at k=2; it is arithmetic, not a gap in the data.

5. k

Simply the number of clips in the chain. Longer chains have more room to move gradually, and take longer to listen to.

6. One-sided vs two-sided

One-sided (B1): only the target emotion has to get where it is going. Whatever else the voice does is not the rule's business.

Two-sided (AB2): the chain must move on both axes at once — one emotion clearly falling while another clearly rises. That is a much stronger claim about what is happening, and much rarer: at T=0.25 the one-sided rule finds 9,393,332 chains against the two-sided rule's 324,658 — about 29× more.

There is also proxy (PXR), for emotions that do not ramp cleanly on their own: the step cap is applied to a stand-in axis that tracks the target. And VoiceNet (VN1), where the moving quantity is not an emotion at all but a description of the voice or recording — tempo, breathiness, nasality, and 54 others.

7. “Same speaker” is checked, and it was not free

A trajectory is only meaningful if it is one person throughout. Otherwise you are not hearing an emotion develop, you are hearing two different people spliced together.

The catch: only MLS ships real speaker identities. Everywhere else “speaker” really meant “same source recording”, which is a much weaker guarantee — in podcast, only 54.6 % of consecutive clips inside one nominal speaker track are actually the same person. So a voice-embedding model was run over the clips and their similarity measured directly.

Why it is anchored to the first clip. Checking only neighbouring pairs is not enough: A can resemble B and B resemble C while A and C are plainly different people — similarity does not chain. So every clip is also compared against the first clip. Both numbers are shown: min_cos_consec for neighbours and min_cos_anchor against the first. 1.00 would be an identical voice; mining used a 0.80 threshold.

Where it is missing, the page says so. 864 of the 1,764 trajectories here carry a measured score. The rest — chiefly podcast, which has no embedding store in this build — show no number rather than a guessed one. The voice profiles need no check: one profile is one cloned voice by construction.

8. The voices are not unified yet — you may hear them shift

These chains are found clips stitched together, not one continuous performance. Even when every clip genuinely comes from the same person, they are still different recordings — different moments, different microphone distance, different room. So as a chain plays you may notice the voice itself shifting a little from segment to segment, on top of the emotional change you are being asked to judge.

To be precise about what has and has not been done: the speaker check described above filters chains, discarding those whose voices do not match closely enough. It does not unify them. Voice conversion has not been applied yet in this build. A planned pass will re-render every segment onto the first segment's voice, at which point this effect disappears and only the emotional trajectory remains.

Until then, when you hear a change, it is worth separating the two questions: is the emotion moving? and is that just the recording changing? Each sample prints its own match score so you can tell a tight chain from a loose one.

The voice profiles are the exception. Chains from vprof_vc are a single cloned voice per profile by construction, so they carry no speaker-identity risk at all and no such caveat.
Update — for the emotion tiers, this pass has now been run. The paragraph above still describes this build, which is unchanged. A parallel build exists in which segments 2…k of every emotion chain were re-synthesised onto segment 1's voice with ChatterboxVC and restored with SIDON. It did not simply remove the problem: measured processing-matched the voices do become more alike, measured against the raw anchor they do not, and the emotional move the chains were mined for survives at a median 96 % of its original size. The VoiceNet tiers and the voice-profile tiers were deliberately left alone. Listen to both →  ·  the measurements →

9. Why the audio has been loudness-normalised

Each clip was volume-normalised independently long before any of this, so gluing them together produces level jumps that have nothing to do with the trajectory — in this set the worst seam is 18.0 dB. A jump like that is very easy to mistake for the emotion itself.

So every clip here is scaled to the same loudness before joining, and the safety limiter is applied once to the finished chain rather than per clip, so the relative levels stay intact. The gain applied is printed under every clip. The first few items of each tier also carry an un-normalised version so you can hear the raw seam if you want to.

10. The rescue tiers

Some emotions — Sadness, Awe, Distress, Disappointment — return zero trajectories under the rules above, for a measurable reason to do with how their scores are distributed. The tiers whose names begin sad- use deliberately looser rules to recover listenable examples anyway. They are kept visually separate everywhere and each one states what its rule relaxed and what that cost. They are not strict-rule trajectories and should not be counted as such. The full explanation →

11. The Script blocks under each player

Every card lists its chunks in order. Each chunk shows two things: the clip's procedurally generated voice caption — age, perceived gender, delivery, timbre, clarity, recording quality and so on, collapsed to one line and expandable — and the clip's transcript. Non-speech vocal sounds such as (ahem), (low mumble) or (wistful sigh) appear inline, in place, where the burst pass found them.

Most chunks have no such markers, and that is correct. Bursts are sparse: across the clips on this site only about a quarter carry one. A chunk with a clean transcript simply had no detectable non-speech sound — nothing has been invented to make the pattern look even.

One repair was applied to these captions. The versions stored in the corpus index were written with two ordinal ladders running backwards, so a high “gender” score — which actually indicates a masculine voice — was captioned as feminine, and a high “background” score — which actually indicates a cleaner recording — was captioned as noisier. The underlying numbers were never wrong. Those two clauses have been re-rendered here from the numeric buckets using the corrected wording, so the captions you read do not contradict the measurements.

The emotion clause has been re-derived, and it used to be wrong. The 40 emotion heads are not on a common scale — Interest has a median of 2.08 and is never zero, while Infatuation is zero on 87.7 % of clips — and the caption named an emotion whenever its raw score cleared an absolute 1.0. Interest therefore appeared in 94.8 % of captions and Sadness in almost none: the clause was reporting the scale of the head, not the emotion of the clip. An emotion is now named only when it lands in the top 10 % for that emotion, against a pooled tie-aware mid-rank ECDF over 132,833,726 utterances spanning every dataset and language. Interest now appears in 6.2 %, all 40 emotions occur, and a clip that is ordinary on all 40 says “no dominant emotion” rather than being forced to pick one (21.8 % of clips). This is the same scale the trajectory miner selects on, so the caption and the mining now refer to the same quantity: the mined target emotion is named in the final clip's caption on 73 % of chains, up from 46 %.

What to do now

Go to the tier index and open anything. Each example carries a written description generated from its own numbers, so you can read what it claims to be and then check by ear whether it delivers. The honest answer to “does this sound like the emotion is building?” is the thing being asked for — including when the answer is no.