Audio gallery

Listenable examples across three cetacean species, drawn live from the remote data catalog that ships with the toolkit. These are the clips decipher.fetch(...) returns — use them to calibrate your ear before pointing the primitives at your own recordings.

Every clip on this page was pulled via from decipher import fetch, written back out with write_wav, and rendered with render_spectrogram — one toolkit round-trip per asset.

Humpback whale — Megaptera novaeangliae

Long, tonal song phrases. Most energy sits in 200-2000 Hz; structure is hierarchical (units → phrases → themes). Source: Payne & McVay 1971 corpus, 44.1 kHz.

Humpback song — raw
Humpback song — raw
30 s excerpt. Listen for the stacked harmonics climbing in frequency across each moan. 44100 Hz 30 s
Humpback song — second excerpt
Humpback song — second excerpt
Another 30 s window from the same corpus; repertoire is wide but the theme structure is shared. 44100 Hz 30 s
Humpback song — bandpassed 150–4000 Hz
Humpback song — bandpassed 150–4000 Hz
The same first excerpt after a Butterworth bandpass. The low-frequency rumble and high-frequency hiss are gone but the singing is unchanged. 44100 Hz 30 s

Killer whale (orca) — Orcinus orca

Short, stereotyped pulsed calls organized into population-specific dialects. Most call energy is in 500-5000 Hz but the recordings are sampled at 250 kHz to also capture echolocation clicks. Source: Ford 1991 / LimeKiln hydrophone.

Orca source call
Orca source call
~1.7 s clip of a single pulsed call; harmonic bands below 3 kHz are the audible component humans perceive. 250000 Hz 1.7 s
Orca source call — second example
Orca source call — second example
Same pod, different call type. Useful for cluster-distance calibration. 250000 Hz 1.7 s

Sperm whale — Physeter macrocephalus

Codas: short rhythmic patterns of broadband clicks. Each coda is characterised by inter-click intervals and total duration rather than spectral content. Source: Sharma 2024 / Dominica Sperm Whale Project HF.

Sperm whale coda
Sperm whale coda
~2.2 s clip. Listen for the rhythmic click train — the information is in the timing, not the timbre. 44100 Hz 2.2 s
Sperm whale coda — second example
Sperm whale coda — second example
Different rhythmic pattern from the same corpus. 44100 Hz 2.2 s

Segmented units

Running detect_units on the first humpback excerpt produced 18 energy-bounded units. Each is a listenable Unit object with start_s, end_s, and its own source_samples — the round-trip invariant in miniature.

Humpback unit 000
Humpback unit 000
First detected unit, 375 ms. The boundary is where the envelope dropped below threshold. 44100 Hz 0.375 s
Unit 001 (154 ms)
Unit 002 (270 ms)
Unit 003 (131 ms)
Unit 004 (116 ms)

Reproducing this page

from decipher import fetch, bandpass, detect_units, write_wav
from decipher.audio import render_spectrogram

# Three species, two clips each
humpback = fetch(paper_id="001_payne_mcvay_1971",
                 substrate="humpback_song_raw", limit=2)
orca     = fetch(paper_id="004_ford_1991",
                 substrate="ford_source_clips", limit=2)
sperm    = fetch(paper_id="005_sharma_2024",
                 substrate="DSWP-HF",
                 min_duration_s=0.5, max_duration_s=5.0, limit=2)

# Round-trip: bandpass the first humpback and save it
bp = bandpass(humpback[0].samples, humpback[0].sr, 150.0, 4000.0)
write_wav("humpback_bandpassed.wav", bp, humpback[0].sr)

# Segment into listenable units
units = detect_units(humpback[0].samples, humpback[0].sr)
for u in units[:5]:
    write_wav(f"unit_{u.index:03d}.wav", u.source_samples, u.sr)