How to Find a Whale in 187,000 Hours of NOAA Hydrophone Audio
NOAA's Pacific hydrophone archive is 187,000 hours of public audio, free to anyone, and almost nobody finds anything in it. Six readings of one file explain why: two of every three hours do not exist, the file's clock is not the world's clock, the frequency ceiling was somebody's decision, and the loudest thing in the recording is the recorder itself.
Chapters
- 0:00 The loudest thing in the archive
- 0:50 Six readings of one public file
- 1:07 What PIPAN is: 13 recorders, 14 years
- 1:58 Reading one: the name is a clock
- 2:52 Reading two: the tape is not the clock
- 3:47 The timing table inside the file
- 4:18 A figure caption, and second 53,303
- 4:58 Asking for a minute that never existed
- 5:44 Reading three: the grid changes by site
- 6:16 The fifteen-minute rhythm that was ours
- 7:01 Reading four: the recorder is the loudest
- 8:24 Why our first detector found the disk
- 8:53 Six labels, and one of them is the machine
- 9:25 Reading five: the ceiling is a decision
- 10:11 And the paper says why
- 10:39 Reading six: speed moves both axes
- 11:31 The same correction, backwards: the Bloop
- 12:00 Four working rules
- 13:16 The correction notice, eight hours
- 13:35 The annotation table, read properly
- 15:22 Rule four: look at it
- 15:55 What 160 hours returned
- 16:21 How to get the file yourself
- 17:17 Next: unnamed, twice over
Transcript
The loudest thing in the archive 0:00
This is the loudest thing in a hundred and eighty-seven thousand hours of ocean recording.
It is not an animal. It is the recorder itself. A disk spins up inside the instrument at the start of every seventy-five second block, and it does that one thousand and seventy-three times in the single file you just heard.
In that same file, a whale call sits two decibels above the background. The machine sits eleven. Nine decibels louder than the animal, thirty times more often. If you write a detector that looks for a loud broadband burst, you will find the recorder. Ours did.
Six readings of one public file 0:50
Everything about this archive is public. The audio, the annotations, the format. Anyone can download the exact file we are using. Almost nobody finds anything in it. This episode is the six readings that close that gap.
What PIPAN is: 13 recorders, 14 years 1:07
The Pacific Islands Passive Acoustic Network is thirteen recorders sitting on the seafloor, across the central and western Pacific. Most of them are between one hundred and eleven and one thousand two hundred and sixty-six metres down. The average is seven hundred and thirty.
Together they have produced a hundred and eighty-seven thousand hours of recording over fourteen years. That is the figure N C E I publishes, and it is the one we will use. The raw audio and the annotations are both public, through the archive and through the N O A A Big Data Program.
We are going to read one file out of it. Pagan, in the Marianas. Three days in August of twenty sixteen. Four point three gigabytes, free, no account, no request.
Reading one: the name is a clock 1:58
Reading one. The file name is a clock, and every field in it is a fact.
Pagan, underscore, A, underscore, zero one, underscore, one six zero eight zero three, underscore, two zero three three four five. Site. Channel. Deployment number. And then a timestamp: the third of August, twenty sixteen, at twenty thirty-three and forty-five seconds, U T C.
That last field is the only reason any of this is findable. A recorder that writes the wall clock into its own file name is a recorder you can ask a question of. Most archives do not do this, and the ones that do not are the ones nobody searches.
So far the file is being honest with you. It stops being honest one line later.
Reading two: the tape is not the clock 2:52
Reading two. The tape is not the clock.
That file holds twenty-two point four hours of audio. It spans sixty-seven hours of the world. Two of every three hours in that window do not exist. They were never recorded, and nothing in the file says so out loud.
The instrument is running on batteries on the seafloor for a year. So it sleeps. It records five minutes, then waits ten, then records five again. That is called a duty cycle, and it is not a fault. It is the only reason the record is a year long instead of a month.
The problem is what it does to you. You decode the file, you get a continuous wave form, and it looks like sixty-seven hours of ocean. It is not. It is twenty-two hours of ocean with the seams sanded off.
The timing table inside the file 3:47
The recorder did write down when it was awake. These files are X WAV: a wave file with an extra header block, kept inside the F L A C compression, holding the start time and the byte offset of every single seventy-five second chunk.
One thousand and seventy-three entries, in one file. Read that table and you can convert any wall clock instant into the exact second of the decoded audio. Skip it, and every timestamp you own is worthless.
A figure caption, and second 53,303 4:18
Here is that mattering. The twenty twenty-four paper that identified this whale has a figure caption in its supplement. The caption says: Pagan, August fifth, twenty sixteen, seventeen oh two and eight seconds.
Run that through the table and it becomes second fifty-three thousand, three hundred and three, of the decoded file. Not approximately. Exactly. Here is what is at that second.
Asking for a minute that never existed 4:58
Now ask the same file for eight minutes later. Seventeen ten, same day. It does not exist. The recorder was asleep. The nearest audio starts at seventeen fifteen.
This is the part that catches people. An archive with a hole in it does not return an error. It returns the next thing, and the next thing sounds fine.
So the rule is: before you conclude that a sound is absent, check whether the recorder was on. Absence of a call and absence of a microphone look identical in a spectrogram.
Reading three: the grid changes by site 5:44
Reading three. The grid is not the same at every site.
We measured three of them, same network, same year. Pagan records five minutes out of every fifteen. Thirty-three per cent of the clock exists. Wake records five out of every thirty. Seventeen per cent. Saipan records five out of every seven. Seventy-three per cent.
One network, three clocks. Nothing in the file name tells you which one you have.
The fifteen-minute rhythm that was ours 6:16
And here is the error that comes out of it, which we made ourselves. When we scanned Pagan for whale calls, the gaps between calls kept landing on fifteen minutes. Fifteen, thirty, forty-five. A rhythm. A beautiful, publishable rhythm.
It was the recording grid. Calls can only be found where audio exists, and at Pagan audio exists in a fifteen minute lattice. We were measuring the instrument's sleep schedule and calling it whale behaviour.
So: presence survives a duty cycle. Rhythm does not. You can say a whale was here on this date. You cannot say how often it called, unless the recorder was awake the whole time.
Reading four: the recorder is the loudest 7:01
Reading four. The loudest thing in the archive is the archive.
Every seventy-five seconds, at the head of each block, the instrument's hard disk spins up to write. What that puts into the recording is a click. Not a tone, not a sweep. A single broadband click that covers the entire bandwidth of the file at once, and then about half a second of raised hiss.
Hold that description next to the thing we were hunting. We were looking for a wide burst of energy across many frequencies at the same instant. That is not a loose description of the disk. That is the disk, exactly.
We measured it against the whale, in the same file, on the same ruler. Two hundred to four thousand nine hundred hertz, decibels above the local background. The whale call peaks at two. The disk peaks at eleven.
And then there is how often. In that one file we found thirty-six whale calls. The disk fires one thousand and seventy-three times. Thirty machine events for every animal event, and the machine is nine decibels louder.
Why our first detector found the disk 8:24
The first detector we wrote for this archive looked for a low moan followed by a wide burst. That is a fair description of the whale. It is also an exact description of a disk spinning up.
It did not fail quietly, either. It returned candidates with high confidence scores, evenly spaced, which is what real periodic biology would look like. The scores were high because the thing it found was genuinely loud.
Six labels, and one of them is the machine 8:53
And the archive had already told us. The label vocabulary published with this dataset has six entries. Background. Fish. Humpback. Vessel. Other. And one called, simply, Device: noise from the recording equipment.
Somebody who annotated these files by hand hit this so often that it earned its own category. Read the label list before you write the detector. It is the archive telling you what it is going to lie to you about.
Reading five: the ceiling is a decision 9:25
Reading five. The ceiling is a decision, not a fact about the ocean.
These recorders capture from ten hertz to a hundred kilohertz. The glider that first recorded this call sampled at a hundred and ninety-four kilohertz, covering fifteen hertz to ninety-seven kilohertz.
The file you download tops out at five thousand hertz. The archive is low-pass filtered and decimated down to ten kilohertz, which puts the ceiling at five.
That matters for this particular call, because the published description has a part with energy up to seven thousand five hundred hertz. Two and a half kilohertz of the sound as described is simply not in the public file.
And the paper says why 10:11
Now, the honest part. The paper says exactly why they did it: to facilitate efficient detection of Biotwangs. They cut the top off on purpose, to make the bottom searchable.
A ceiling you know about is not a lie. It is a constraint. The failure mode is not the decimation. It is opening a five kilohertz file, seeing nothing above five, and concluding that nothing was there.
Reading six: speed moves both axes 10:39
Reading six. Speeding it up moves both axes.
Most of what is interesting in this archive is below the bottom of human hearing, around twenty hertz. So it gets played fast. You have heard this done. What is usually not said is what it costs.
The main component of this call is a moan sliding from thirty-seven hertz down to thirty-three, over one point seven seconds. At ten times speed, that becomes three hundred and seventy hertz, and it lasts zero point one seven seconds.
Frequency multiplies. Duration divides. A slow, heavy, two second groan becomes a short metallic chirp. Every adjective anyone uses to describe these sounds is an adjective about the sped up version.
The same correction, backwards: the Bloop 11:31
We have been on the other side of this before. The Bloop, in an earlier episode, is published sixteen times fast. Read it without correcting and you put a ten second event at two hundred and fifty hertz on screen. What was recorded was nearly three minutes, at fifteen.
Four working rules 12:00
Those are the six readings. What comes out of them is four working rules, and each one cost us something.
One. Calibrate on a real signal from the same instrument. We built our first template from the published glider recording: a slide from forty-four and a half hertz down to thirty point eight. We ran it over thirty hours of seafloor audio and got nothing at all.
Not because the whales were absent. Because a hydrophone sitting at eight hundred and thirty metres does not hear the same shape a glider hears near the surface. On the bottom the moan is nearly flat: thirty-seven to thirty-three. Same animal. Different machine. Zero matches.
Two. Normalise each frequency band across time, never by the spectrum of the instant. One of these sites has a fixed tone around fifty hertz, always on. Measured within a single moment it looks like a peak, every moment. Measured against that band's own history, it disappears, correctly.
Three. A number the archive hands you needs a second source from the archive itself. This one is not hypothetical here.
The correction notice, eight hours 13:16
The annotation file for this dataset was replaced in July of twenty twenty-two, keeping the same name. The reason, in the archive's own words, is that the U T C endpoints of many rows had been eight hours too early. Same file name. Different truth. No version number.
The annotation table, read properly 13:35
There is a second file in that archive, and it deserves its own reading. Alongside the audio there is a table of human annotations: people who sat and listened and wrote down what was there.
Notice how a row points at the audio. Not by second. By subchunk index, plus an offset inside that subchunk. The annotators are using the same header table we are. They had to. There is no other way to say where you are in this file.
Each row carries a flag called label is strong. True means the bounds are tight: the sound fills that interval. False means something weaker, and much more common. It means the sound is somewhere in this seventy-five seconds, and the annotator is not promising where.
And then the field that most people would skip, which is the best one in the file. It is called implicit negatives, and it answers a question you would never think to ask.
For this row, was the rest of the subchunk actually checked? If it is true, somebody listened to the unlabelled parts and confirmed that the sound is genuinely not there. If it is false, nobody looked. The silence is unaudited.
That is the difference between a measured absence and an absence of measurement, written into a column. The README even tells you what it is for: deciding whether unlabelled regions make good negative training examples.
An archive that ships that field is doing something rare. It is telling you the shape of its own ignorance, per row. Most datasets hand you a list of positives and let you assume everything else is a negative.
Rule four: look at it 15:22
Four, and this is the one we would defend hardest. Look at it.
A detector that nobody ever checks by eye is the exact thing this channel accuses everyone else of. Every scan we run writes a spectrogram of every candidate, and somebody opens them.
That is how the disk was caught. Not by a threshold. By putting eight candidates side by side and noticing that they were evenly spaced at seventy-five seconds, which is not a number any whale has ever cared about.
What 160 hours returned 15:55
With those six readings and those four rules, a hundred and sixty hours of this archive gave up a hundred and nine calls of a whale that nobody had identified until twenty twenty-four.
A hundred and sixty hours is zero point zero nine per cent of what is sitting on that public server right now. The rest is not waiting for better equipment. It is waiting for somebody to open the header.
How to get the file yourself 16:21
If you want to do this, the whole path is four lines. The audio lives in a public Google Cloud bucket under the N O A A Big Data Program. No account, no request, no permission.
One warning, and it is the one that costs people a weekend. When you decompress the F L A C, you have to pass keep foreign metadata. Leave it off and you still get a perfectly good wave file. You just get one with the clock table stripped out of it.
It will not warn you. It will not fail. You will simply have audio that no longer knows when it happened, and every timestamp in the literature will stop matching, and you will assume the archive is wrong.
None of this is a secret and none of it is hard. It is four gigabytes, a file format document, and the willingness to believe the recorder over the file name.
Next: unnamed, twice over 17:17
Next time, back to the camera, and to something the archive filmed and then declined to name. In April of twenty sixteen, three thousand seven hundred metres down in the Marianas, the Deep Discoverer held still and filmed a jellyfish hunting. It has a genus. Ten years on, it has no species.
The whole frame is unnamed, in fact. The seamount it was filmed over does not have an official name either. The chart calls it Enigma.
Description and sources
The Pacific Islands Passive Acoustic Network is thirteen recorders on the seafloor, between 111 and 1,266 metres down, and the 10 kHz archive built from them holds 187,000 hours over 14 years, all public through NCEI and the NOAA Big Data Program. This episode reads one file out of it, Pagan_A_01_160803_203345, and measures the six things that stand between a download and a result. The file holds 22.4 hours of audio spread across 67.0 hours of wall clock, because the instrument sleeps five minutes in every fifteen and the seams are invisible after decoding. The timing table inside the XWAV header is what converts a clock instant into an exact second: it turns the caption 'Pagan 08/05/2016 17:02:08' in the 2024 Biotwang paper into second 53,303.0. Ask the same file for 17:10 that day and there is nothing, because the recorder was off. The duty cycle differs at every site, 33 per cent at Pagan, 17 at Wake, 73 at Saipan, so any interval measured there is quantised by the recording grid. The disk spins up at the head of every 75-second block and puts a broadband click across the whole bandwidth, 11 dB above background against the whale call's 2 dB, 1,073 times per file against 36 calls. Four rules follow, and 160 hours read this way returned 109 calls.
PRINT-READY, FROM THIS CHANNEL
Read This Dive, Vol. 01 — the method, and five dives read with it
https://therepository.gumroad.com/l/read-this-dive
PRIMARY SOURCES
- NOAA PIFSC (2021). Pacific Islands Passive Acoustic Network (PIPAN) 10 kHz Data, NCEI. The audio read here, public domain: https://doi.org/10.25921/Z787-9Y54
- NCEI, Using AI to Listen and Learn about Humpback Whales -- the published figure: 187,000 hours over 14 years at 13 monitoring sites: https://www.ncei.noaa.gov/news/using-ai-listen-and-learn-about-humpback-whales
- NOAA Fisheries, Passive Acoustics in the Pacific Islands -- 13 locations, recording 10 Hz to 100 kHz: https://www.fisheries.noaa.gov/pacific-islands/population-assessments/passive-acoustics-pacific-islands
- NOAA PIFSC, Using the PIFSC HARP Dataset (README) -- the XWAV subchunk format, the duty cycle, the six-label vocabulary including 'Device', and the 2022-07-27 erratum on annotations.csv: gs://noaa-passive-bioacoustic/pifsc/products/detections/README.md
- Nieukirk, S.L. et al. (2016). J. Acoust. Soc. Am. 140(3): EL274 (CC BY). The glider sampled at 194 kHz covering 15 Hz to 97 kHz; part D of the call reaches 7.5 kHz: https://repository.library.noaa.gov/view/noaa/14697
- Allen, A.N. et al. (2024). Front. Mar. Sci. 11: 1394695 (CC BY). HARP depths, the decimation statement, and the Supplementary Figure 1 time stamp used to locate the call: https://doi.org/10.3389/fmars.2024.1394695
- Wiggins, S.M. & Hildebrand, J.A. (2007). High-frequency Acoustic Recording Package (HARP) -- the instrument and the XWAV layout.
Abyss Report reads the deep ocean through the record that resolved it -- instrument, date, position and the primary sources above.
About the material. This episode has no dive footage, and that is the subject: its object is a public audio file, and an audio file cannot be filmed. Every sound is an unaltered window of a public NOAA recording, credited on screen -- three from the PIPAN archive (NCEI, public domain), one played at 10x and labelled, and one from NOAA PMEL at 16x as the agency published it. The two disk-spin cuts are high-passed at 200 Hz so they are audible, stated in their on-screen credit. Spectrograms marked 'this channel', and every count and decibel figure, are our own measurements from the public files. Diagrams are drawn in code. Nothing is generated.