How it was made¶
The clips were made in two passes. In spring 2024, for the capstone, the words were found in CHILDES, cut out and
screened by ear, with no thought of publishing them. In 2026, preparing this release, the 2024 clips were traced
back to their source recordings and re-cut from them. All scripts are in
scripts/.
1. Finding the words (2024)¶
CHILDES and PhonBank transcripts are in the CHAT format. A transcript line gives the speaker, the words and a time-stamp bullet that links the line to its span in the recording:
*CHI: mama mama . ▸560740_561643
For each corpus with time-aligned audio in the Eng-NA, Eng-UK and French collections, CLAN's kwal program listed
the child's utterances (+t*CHI) containing one of the three words:
kwal +smama +spapa +sdada +t*CHI *.cha +f
A small parser read the speaker, the media file and the time stamps from the output, and every matching utterance was cut from its recording. Corpora without aligned audio or with password-protected media were skipped, as were utterances whose time stamps were missing. That gave a few thousand utterance clips, from under a second to several seconds long.
2. One second per word¶
The on-device keyword spotter took one second of 8 kHz audio. Children often end an utterance with the word they are practising, so each clip was cut to the last second of its utterance, or kept whole if shorter, and resampled to 8 kHz.
3. Screening by ear¶
Every mama and papa clip was then listened to. Clips where the word was clearly inside the second were kept. The rest, mostly clips where the word fell earlier in a long utterance, were set aside: about 800 mama clips (most of them from the dense Manchester corpus) and 280 papa clips (most of them from KernFrench).
Those clips were not thrown away. They were concatenated with two seconds of silence between them, opened in
Audacity, and the words were found and cut out by hand: trimmed around the word, in some cases edited further, and
peak-normalised. This recovered 241 mama and 208 papa clips. The
papa exports lost their names on the way (they were saved as papa_bad_ones-01.wav and so on), so which recording
each came from was no longer written down anywhere.
The dada clips were cut with the same one-second rule, and 359 of the 1,026 candidates were kept. How they were
chosen was not recorded, so the release does not assume they were screened by ear: the word_check column marks the
110 that span their whole utterance, which must contain the word, and the 211 that are the last second of a longer
one (unchecked).
4. Recovering the provenance (2026)¶
By 2026 the clips existed in several overlapping folders, under file names produced by successive scripts. To release them responsibly, every clip had to be tied to the exact recording and time span it came from.
Clips with a name. Each was located inside the utterance named in its file name by normalised cross-correlation at 8 kHz, which gives its offset in the utterance and a match score between −1 and 1. Automatic clips match their utterance almost perfectly (median 0.99), since they are plain windows of it. Hand-made clips fall into two groups: trims that only chose new boundaries, which also match almost perfectly, and edits that spliced or changed the audio, which match only partly.
Clips without a name. Each of the 208 renamed papa clips was compared with every one of the 283 utterances
they could have come from. Because an edited clip may match its source only in places, every voiced 250 ms window of
the clip was matched separately and an utterance was scored by its best window. A source was accepted when that score
was at least 0.85 and at least 0.05 above the runner-up (matched, 134 clips in the release), or when the windowed
and whole-clip matches named the same utterance (matched_probable, 49). The remaining 17 clips were dropped.
Re-cutting. A clip that matched its source at 0.8 or more (automatic clips) or 0.95 or more (hand-made clips) was
cut again from the original-rate audio at its recovered offset and resampled to 16 kHz, so it keeps the full
bandwidth of the recording. The 226 clips whose audio had been edited keep their curated audio, resampled from the
8 kHz working copy; the metadata marks them manual_edit, with a usable bandwidth of 4 kHz.
Cleaning. Several folders held the same clip; overlapping copies of the same stretch of an utterance were kept once (142 removed). Eight clips matched no recording and were removed.
Splits. Clips were assigned to train, validation and test by child, so that no child appears in two splits (see the data card).
Checking the result. For a random sample of 150 re-cut clips, the same span was cut again directly from the
CHILDES media files with rebuild_from_childes.py (tools/check_rebuild.py, seed 0). All
103 clips whose media were at hand (Manchester's were not) lined up with the released clip to within a millisecond,
with a median correlation of 0.99; the remaining differences most likely come from decoding the compressed media
from a different starting point. An earlier sample found two clips, out of 149, that do not match the media file now
on disk, probably because a different version of the file was used in 2024.
What was left out¶
The capstone model was also trained on cry recordings and on additional mama and papa recordings that are not in this release; for various reasons, they cannot be shared.
Utterances from the Braunwald and Nelson corpora are held back as time stamps only; see Licence and citation.
Reproduce¶
Anyone can regenerate the clips that are plain windows of their recordings, and the held-back utterances, from their own copy of the CHILDES and PhonBank media:
python scripts/rebuild_from_childes.py --metadata metadata --media-root /path/to/talkbank-media \
--out rebuilt --which both
The media are free to download from media.talkbank.org with a TalkBank account; keep
the bank/collection/corpus folder layout. Clips marked manual_edit cannot be rebuilt from time stamps and exist
only in the release.
The 2026 pass itself (scripts/build_from_legacy.sh) reads the 2024 working folders, which are not public; it is
included so the steps above can be checked line by line.