<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>perch-mbari on This Might Be Something!</title><link>https://notes.danavery.com/tags/perch-mbari/</link><description>Recent content in perch-mbari on This Might Be Something!</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 27 May 2026 10:26:34 -0700</lastBuildDate><atom:link href="https://notes.danavery.com/tags/perch-mbari/index.xml" rel="self" type="application/rss+xml"/><item><title>Perch and MBARI Clips: Wrap-Up</title><link>https://notes.danavery.com/posts/perch-mbari-9/</link><pubDate>Wed, 27 May 2026 10:26:34 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari-9/</guid><description>&lt;p&gt;(Previously: &lt;a href="https://notes.danavery.com/posts/perch-mbari/"&gt;1&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-2/"&gt;2&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-3/"&gt;3&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-4/"&gt;4&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-5/"&gt;5&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-6/"&gt;6&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-7/"&gt;7&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-8/"&gt;8&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time to wrap up this investigation for now. I&amp;rsquo;ve been looking into how Google&amp;rsquo;s &lt;a href="https://research.google/pubs/perch-20-the-bittern-lesson-for-bioacoustics/"&gt;Perch 2.0 model&lt;/a&gt; handles raw clips from the MBARI Monterey Bay &lt;a href="https://registry.opendata.aws/pacific-sound/"&gt;hydrophone&lt;/a&gt;. I&amp;rsquo;ve been checking how Perch&amp;rsquo;s generated embeddings might be used to distinguish between: 1) the presence or absence of a humpback vocalization; and 2) different types of humpback vocalizations. I&amp;rsquo;ve been using the earlier Google &lt;a href="https://www.kaggle.com/models/google/humpback-whale"&gt;humpback detector&lt;/a&gt; model for direct comparison in (1) and indirect comparison in (2).&lt;/p&gt;
&lt;p&gt;These experiments had three primary axes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;the patterns under consideration: presence/absence or type of vocalization&lt;/li&gt;
&lt;li&gt;the type of clips used: low-score humpback detector clips, high-score humpback detector clips, or a stratified sample of scores&lt;/li&gt;
&lt;li&gt;the method for examining the clips: dimensionality-reduction visualization, or manual listening&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Back to the matrix in &lt;a href="https://notes.danavery.com/posts/perch-mbari-5/"&gt;part 5&lt;/a&gt;, with later results added:&lt;/p&gt;
&lt;h3 id="present-or-not"&gt;Present or Not&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;PCA/UMAP&lt;/th&gt;
&lt;th&gt;Nearest-neighbor listening&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;High-confidence clips&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari/"&gt;Visually yes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-7/"&gt;mostly yes&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lower-confidence clips&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-2/"&gt;Not&lt;/a&gt; &lt;a href="https://notes.danavery.com/posts/perch-mbari-3/"&gt;clearly&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-3/"&gt;Not really&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stratified sample&lt;/td&gt;
&lt;td&gt;&amp;ndash;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-8/"&gt;mixed yes&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="types-of-vocalizations"&gt;Types of Vocalizations&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Result&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Do “bloop” clips retrieve other bloop-like clips?&lt;/td&gt;
&lt;td&gt;Nearest-neighbor listening&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-4/"&gt;apparently yes&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do lower-confidence / noisier vocalizations retrieve similar sounds?&lt;/td&gt;
&lt;td&gt;Nearest-neighbor listening&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-6/"&gt;sort of&lt;/a&gt;, but scene/noise similarity matters&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do vocalization types form visible PCA/UMAP clusters?&lt;/td&gt;
&lt;td&gt;PCA/UMAP&lt;/td&gt;
&lt;td&gt;not tested&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The most interesting observations:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;The Perch embeddings seemed to work on the entire scene, not just the vocalizations. They suggest significantly closer relationships between lower-signal clips and other lower-signal clips than between lower-signal and higher-signal clips, even when the same apparent vocalization is present.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Detector scores varied much more in negative/noisy neighborhoods than in obviously positive neighborhoods. That suggests the detector and Perch are responding to different things: the detector outputs a humpback-presence score possibly regardless of the type of vocalization, while Perch groups clips by overall acoustic similarity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;For a manually classified negative/high-confidence detector-negative query clip, two of the nearest neighbors turned out to contain faint humpback vocalizations. The detector model scored those examples too low, and the Perch embeddings still placed them very close to a seemingly negative query clip. So relying on either method to correctly classify those clips as positive could be problematic.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="next-steps"&gt;Next Steps&lt;/h3&gt;
&lt;p&gt;The ulterior motive of all this testing was actually to see if Perch 2.0 would be a good model to add as a built-in pretrained model for &lt;a href="https://github.com/danavery/audioloop"&gt;AudioLoop&lt;/a&gt;, my in-development tool for creating labeled audio datasets from large unlabeled ones. The current starting models are intentionally quite simple, but it&amp;rsquo;s time to add a pretrained model to the mix. Given these Perch embedding results on untouched MBARI hydrophone data, and especially given that Perch wasn&amp;rsquo;t even trained with marine data, it seems like an obvious addition to AudioLoop&amp;rsquo;s general-audio labeling and dataset-exploration toolbelt.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;The full set of test combinations didn&amp;rsquo;t seem as useful here given the results of the stratified-sampling experiments, so I&amp;rsquo;ve collapsed this table accordingly.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Perch and MBARI Clips: Low Confidence Neighbors</title><link>https://notes.danavery.com/posts/perch-mbari-8/</link><pubDate>Fri, 22 May 2026 14:22:39 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari-8/</guid><description>&lt;p&gt;Time to continue looking into whether Perch 2.0&amp;rsquo;s embeddings make it easy to distinguish between humpback-present and humpback-absent clips in raw MBARI hydrophone recordings.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-7/"&gt;Last time&lt;/a&gt;, I looked at two clips with high-confidence scores from Google&amp;rsquo;s &lt;a href="https://www.kaggle.com/models/google/humpback-whale"&gt;humpback detector model&lt;/a&gt;. Then I compared their Perch-computed embeddings to their nearest neighbors using a ~9000-clip sample stratified across detector-score buckets.&lt;/p&gt;
&lt;p&gt;For the high-confidence humpback-positive clip, the Perch embedding&amp;rsquo;s 150 nearest neighbors and the detector scores seemed to be in line: the neighbors were almost all in the detector highest-confidence bucket.&lt;/p&gt;
&lt;p&gt;For the high-confidence humpback-negative clip, the 15 nearest neighbors had detector scores that varied much more: between 0% and 50%. In addition, on manual listening it was noteworthy that two of those clips were actually faint positives that had low detector-model scores while their embeddings were still in the very close neighborhood of the known negative test clip. This suggested that classifying faint positives using either the detector model or Perch embeddings could be difficult.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s time to try the same experiment, but with lower-confidence positive and negative clips (70-90% and 10-30% detector model scores) and see if their embedding neighborhoods have the same characteristics.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;First up, a lower-confidence positive clip (peak detector score: 0.802)&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7273&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_132420.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Sounds like a humpback, but definitely not as high-signal as the high-confidence clips, as expected.&lt;/p&gt;
&lt;p&gt;Now the 15 nearest neighbors, with cosine similarity and detector-score bucket:&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6819(0.93)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_102905.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7094(0.93)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_124925.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7297(0.92)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_141405.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;3163(0.92)(10-30%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_133655.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8805(0.92)(&amp;gt;=90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_114440.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6964(0.92)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_115420.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8895(0.92)(&amp;gt;=90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_131520.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7283(0.92)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_140755.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8920(0.92)(&amp;gt;=90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_134420.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6910(0.92)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_113325.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6679(0.92)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_090615.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;5543(0.92)(50-70%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_113000.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6721(0.92)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_092720.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7127(0.92)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_130335.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7110(0.91)(70-90%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_125535.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s more variety in the detector-score buckets than we had with the high-confidence clip. Ten of the fifteen neighbors are also in the 70–90% bucket, three are in the &amp;gt;=90% bucket, one is in 50–70%, and one is in 10–30%. Since those clips also sound humpback-positive, Perch is still retrieving humpback-positive neighbors for a humpback-positive query clip. The tougher question is whether Perch is grouping these embeddings by humpback presence alone, or by the larger acoustic scene.&lt;/p&gt;
&lt;p&gt;Also of note is that the 10-30% score clip seems pretty clearly to be a positive. That looks like a miss by the humpback detector. But it shows up in the Perch neighborhood with all the other positive clips.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Moving to a lower-confidence negative clip (peak detector score: 0.200)&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;3376&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_183340.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;This is an interesting clip because it has some sort of faint unidentifiable sound that &lt;strong&gt;might&lt;/strong&gt; be a humpback.&lt;/p&gt;
&lt;p&gt;And the 15 nearest neighbors:&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;1892(0.96)(5-10%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_145250.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4111(0.96)(30-50%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_063800.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;2860(0.96)(10-30%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_100450.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;896(0.96)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_182845.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;3524(0.96)(10-30%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_191440.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;963(0.96)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_191410.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;910(0.96)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_183420.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;2080(0.96)(5-10%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_185720.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;974(0.96)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_191920.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;908(0.96)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_183410.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;982(0.96)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_192230.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;933(0.96)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_184505.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;3222(0.96)(10-30%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_143935.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;956(0.96)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_190010.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;3535(0.96)(10-30%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-8/clips/20161221_191715.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Note that all of the clips are very close by in the embedding space. This is a dense neighborhood. They appear to my ears to be mostly noise, with the occasional faint, evocative, yet unidentifiable sound thrown in. And the humpback detector is pretty confident about many of them. It&amp;rsquo;s more confident about the lack of a humpback in those clips than it is about the original clip.&lt;/p&gt;
&lt;p&gt;For lower-confidence negatives, Perch seems to be putting this clip in a dense neighborhood of similar noise-like clips. But all of those clips seem fair to put into the negative category&amp;ndash;the neighborhood placement generally agrees with the low scores of the detector.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;It&amp;rsquo;s about time to wrap up this set of experiments. In the next post I&amp;rsquo;ll do just that.&lt;/p&gt;</description></item><item><title>Perch and MBARI Clips: Noisy Neighbors</title><link>https://notes.danavery.com/posts/perch-mbari-7/</link><pubDate>Thu, 21 May 2026 12:19:14 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari-7/</guid><description>&lt;p&gt;For my next experiment testing Perch 2.0&amp;rsquo;s effectiveness in identifying humpback vocalizations in raw MBARI hydrophone clips, it&amp;rsquo;s time to take a step back.&lt;/p&gt;
&lt;p&gt;In the first three posts (&lt;a href="https://notes.danavery.com/posts/perch-mbari/"&gt;one&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-2/"&gt;two&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-3/"&gt;three&lt;/a&gt;), I was looking at whether Perch embeddings could be used to determine the presence or absence of a humpback vocalization in a particular clip. In one test, I checked high-confidence-positive(&amp;gt;=90% score) vs. high-confidence-negative(&amp;lt;=5%) clips as scored by the older humpback detector model. In a later test, I used lower-confidence clips (10-30% and 70-90% scores).&lt;/p&gt;
&lt;p&gt;The results were mixed: using PCA and UMAP dimensionality reduction plots, the high-confidence clips seemed to be easily visually separable into clusters in the 2D embedding projections (with a bonus third cluster of dolphin vocalizations). For the lower-confidence clips, the clusters were much harder to differentiate. I then checked the lower-confidence dataset result with manual nearest-neighbor listening, which also didn&amp;rsquo;t show clear differentiation between whale and non-whale clips among the neighbors.&lt;/p&gt;
&lt;p&gt;But what I didn&amp;rsquo;t do is test the higher-confidence clips with that same method: manual listening to sample clips&amp;rsquo; nearest embedding neighbors. That might be a useful control, but it&amp;rsquo;s probably not the best next test. Given the obvious PCA/UMAP separation, I’d expect the high-confidence nearest-neighbor results to be pretty unsurprising.&lt;/p&gt;
&lt;p&gt;However, it&amp;rsquo;s still worth performing the same nearest-neighbor check over a stratified sample covering all buckets of detector scores. The point of this testing is to see if Perch embeddings can be used out-of-the-box to determine the presence or absence of a humpback vocalization in a clip; a more varied test set should answer that question better than the previous ones. So I&amp;rsquo;m going to check that out now:&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;First clip: a high-confidence positive clip (peak detector score: 0.996).&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7925&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_024030.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Now the fifteen nearest neighbors, again by cosine similarity, again pulled from the large sample of ~9000 clips stratified across all score buckets from December 21, 2016:&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8206(0.87)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_045310.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8069(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_035330.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8041(0.85)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_033555.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8305(0.85)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_054440.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7907(0.85)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_023125.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7738(0.84)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_013005.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8142(0.84)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_042525.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8357(0.84)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_061300.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7866(0.82)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_021500.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8016(0.82)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_032655.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8113(0.82)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_041250.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7984(0.81)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_031115.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7940(0.81)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_024820.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7868(0.81)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_021515.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8098(0.81)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_040600.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Not a huge surprise here. They&amp;rsquo;re all positive clips.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; It&amp;rsquo;s slightly more interesting to see that all of those clips are actually in the &amp;gt;=90% score bucket, so the embeddings here line up with the humpback detector for these easy examples.&lt;/p&gt;
&lt;p&gt;But it would probably be more useful to pull a deeper group of neighbors and find some clips that don&amp;rsquo;t fall in that &amp;gt;=90% bucket&amp;ndash;clips where the embedding neighborhood doesn&amp;rsquo;t match up quite so nicely with the detector model.&lt;/p&gt;
&lt;p&gt;I pulled the nearest 150 embeddings. Only 13 of them are outside the &amp;gt;=90% bucket: 11 in the 70-90% bucket, one in the 50-70% bucket, and one in the 10-30%(!) bucket.&lt;/p&gt;
&lt;p&gt;Here are two 70-90% examples, followed by the 50-70% clip, then the 10-30% clip.&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6388(0.72)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_060540.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6774(0.69)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_095355.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4964(0.65)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_030245.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;2631(0.66)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_061130.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;The last one is faint, but they&amp;rsquo;re all humpback vocalizations. So for this high-confidence positive query, the Perch neighborhood stays very humpback-heavy even when looking past the top fifteen neighbors. The detector scores vary a bit in the deeper neighbors, but the manually audible content still seems consistently humpback, even for the few clips that aren&amp;rsquo;t in the detector&amp;rsquo;s highest-confidence bucket.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Second clip: a high-confidence negative clip (peak detector score: 0.013)&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;203&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_103205.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Now the fifteen nearest neighbors:&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4408(0.98)(30-50%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_112855.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;233(0.98)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_110715.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;518(0.98)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_161240.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;500(0.97)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_160620.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;2911(0.97)(10-30%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_103230.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;3007(0.97)(10-30%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_112830.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;1823(0.97)(5-10%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_123450.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;255(0.97)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_121145.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;1861(0.97)(5-10%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_133915.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;838(0.97)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_180520.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;240(0.97)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_111755.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;5555(0.97)(50-70%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_113620.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;833(0.97)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_180315.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;316(0.97)(&amp;lt;=5%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_145515.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4639(0.97)(30-50%)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-7/clips/20161221_161840.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;(If you listened to all of those, my apologies. You just listened to 75 seconds of noise.)&lt;/p&gt;
&lt;p&gt;Two interesting things here:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;I&amp;rsquo;ve added the detector-assigned buckets by hand to those clip names. There&amp;rsquo;s a lot more variety in what the detector assigned to these neighbors than there was with the positive example&amp;rsquo;s neighbors. It would appear that the detector is assigning more humpback probability to these seemingly all-noise clips than their Perch embedding neighborhood might suggest. Perhaps Perch is grouping these clips by their overall noise profile similarities, while the detector is assigning a wider variety of buckets when it doesn&amp;rsquo;t have much signal to work with.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On close listening, two of the clips (2911 and 1823) are actually very faint positives. In Perch&amp;rsquo;s case, the embeddings are quite near our negative sample clip, and in the detector&amp;rsquo;s case, they got scores in the 10-30% and 5-10% buckets. So it seems as if neither approach is reliably separating those faint positives from the noise-only clips.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That makes the presence/absence question look harder than the sound-similarity question: Perch can group similar acoustic scenes, but faint vocalizations may not be enough to move a clip out of a noisy neighborhood.&lt;/p&gt;
&lt;p&gt;For the next post, I&amp;rsquo;ll try these with lower-confidence positive and negative clips.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;And &lt;strong&gt;very&lt;/strong&gt; similar. In listening to these, I occasionally had to check filenames to make sure I wasn&amp;rsquo;t actually listening to the same clip over and over.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Perch and MBARI Clips: Signal and Noise</title><link>https://notes.danavery.com/posts/perch-mbari-6/</link><pubDate>Wed, 20 May 2026 14:22:29 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari-6/</guid><description>&lt;p&gt;In a &lt;a href="https://notes.danavery.com/posts/perch-mbari-4/"&gt;previous post&lt;/a&gt;, I was checking to see if Perch 2.0 places similar humpback vocalizations near each other in its embedding space. &amp;ldquo;Bloop&amp;rdquo; sounds seemed to show up reliably in the 15 closest neighbors to a strong bloop, so it&amp;rsquo;s time to see if the embeddings perform similarly for another type of sound.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s a fairly different sound. It has some tonal similarities to the bloop but the timbre is very different. It&amp;rsquo;s a sort of&amp;hellip;tonal growl?&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7532&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_002940.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;It doesn&amp;rsquo;t seem to be a terribly common humpback vocalization, which means this could be a particularly good test of whether related vocalizations show up near each other in the embedding space. I&amp;rsquo;ll match the bloop test and check the closest fifteen:&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7754(0.73)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_013400.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7618(0.73)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_005625.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7531(0.71)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_002935.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7715(0.71)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_012345.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8145(0.70)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_042710.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7826(0.70)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_015940.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7823(0.70)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_015855.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7829(0.69)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_020205.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7653(0.68)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_010725.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8183(0.68)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_044145.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7631(0.68)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_005905.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7565(0.68)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_004210.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7720(0.68)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_012440.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7725(0.68)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_012530.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8146(0.68)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_042755.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s worth noting that only one of these (7531) is close in time to the original: it&amp;rsquo;s the previous five seconds, actually, which makes it more than likely it&amp;rsquo;s the same whale making the same sound. It&amp;rsquo;s also interesting that (and this is not obvious from the data shown here) all of these clips are in the &amp;gt;90% humpback-presence confidence bucket from the humpback detector model.&lt;/p&gt;
&lt;p&gt;Overall, those are pretty similar. Some are tonally similar, some are more similar in timbre, and many of them are similar in both.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Let&amp;rsquo;s see how well the matches are for a less-definitive clip (at least according to the humpback detector model). Here&amp;rsquo;s a descending humpback vocalization that&amp;rsquo;s much weaker compared to the noise. The detector model put this clip in the 70-90% positive bucket:&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7255&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_134650.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;And the closest fifteen:&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7012(0.88)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_121255.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7153(0.87)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_131740.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7125(0.87)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_130305.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7346(0.87)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_143135.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7269(0.87)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_140235.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;5665(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_123440.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7172(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_132340.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4479(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_123155.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;5846(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_142500.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7351(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_143325.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6769(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_095105.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4241(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_091905.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;5743(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_132150.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;5744(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_132250.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4452(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-6/clips/20161221_121240.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Now this is interesting.&lt;/p&gt;
&lt;p&gt;The neighbors all sound like similar whale vocalizations, but the neighbors also all share the weak-signal/high-noise profile of the original. Not a clear-sounding vocalization among them. The embeddings seem to be capturing relationships between the entire scenes, not just the calls themselves.&lt;/p&gt;
&lt;p&gt;Also, none of the fifteen neighbors is in the &amp;gt;90% detector bucket.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; Eight of them are in the 70-90% bucket (7012, 7153, 7125, 7346, 7269, 7172, 7351, 6769), four are in the 50-70% bucket (5665, 5846, 5743, 5744), and three of them are in the 30-50% bucket (4479, 4241, 4452). So while the humpback detector scored those last three clips below a 50% probability of containing a humpback vocalization, the Perch embeddings seem to reflect both the presence of a humpback vocalization and the specific type of vocalization.&lt;/p&gt;
&lt;p&gt;It seems notable that the neighbors are all matches for the particular type of humpback vocalization &lt;strong&gt;and&lt;/strong&gt; prominent background noise. No high-signal clips in the group.&lt;/p&gt;
&lt;p&gt;So Perch may be grouping these clips by vocalization type, but also by overall sound profile.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Again, that information isn&amp;rsquo;t present in the data shown here, so you&amp;rsquo;re not simply missing it.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Perch and MBARI clips: A Quick Reset</title><link>https://notes.danavery.com/posts/perch-mbari-5/</link><pubDate>Tue, 19 May 2026 10:20:59 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari-5/</guid><description>&lt;p&gt;Four posts into this (&lt;a href="https://notes.danavery.com/posts/perch-mbari/"&gt;one&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-2/"&gt;two&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-3/"&gt;three&lt;/a&gt;, &lt;a href="https://notes.danavery.com/posts/perch-mbari-4/"&gt;four&lt;/a&gt;), it&amp;rsquo;s probably time to back up for a moment and recap.&lt;/p&gt;
&lt;hr&gt;
&lt;h3 id="questions"&gt;Questions&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve been looking at two different questions:&lt;/p&gt;
&lt;p&gt;Given raw MBARI hydrophone clips, can Perch 2.0:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Distinguish between clips where a humpback vocalization is present vs not?&lt;/li&gt;
&lt;li&gt;Distinguish between different types of humpback vocalizations?&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="data"&gt;Data&lt;/h3&gt;
&lt;p&gt;Using three different groups of clips:&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;High-confidence detector-score clips (as estimated by the Google humpback detector model with scores of &amp;gt;=90% and &amp;lt;=5%)&lt;/li&gt;
&lt;li&gt;Lower-confidence detector-score clips (scores of 70–90% and 10–30%)&lt;/li&gt;
&lt;li&gt;A large (~9000) stratified sample across detector-score buckets&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="assessment"&gt;Assessment&lt;/h3&gt;
&lt;p&gt;And checking the results in two ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;2D dimensionality reduction plots&lt;/li&gt;
&lt;li&gt;Manual listening to embedding nearest neighbors&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Which ends up being twelve different potential experiments:&lt;/p&gt;
&lt;h3 id="present-or-not"&gt;Present or Not&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;PCA/UMAP&lt;/th&gt;
&lt;th&gt;Nearest-neighbor listening&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;High-confidence clips&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari/"&gt;Visually yes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;later?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lower-confidence clips&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-2/"&gt;Not&lt;/a&gt; &lt;a href="https://notes.danavery.com/posts/perch-mbari-3/"&gt;clearly&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-3/"&gt;Not really&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stratified sample&lt;/td&gt;
&lt;td&gt;later?&lt;/td&gt;
&lt;td&gt;next?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="types-of-vocalizations"&gt;Types of vocalizations&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;PCA/UMAP&lt;/th&gt;
&lt;th&gt;Nearest-neighbor listening&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;High-confidence clips&lt;/td&gt;
&lt;td&gt;&amp;ndash;&lt;/td&gt;
&lt;td&gt;&amp;ndash;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lower-confidence clips&lt;/td&gt;
&lt;td&gt;&amp;ndash;&lt;/td&gt;
&lt;td&gt;&amp;ndash;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stratified sample&lt;/td&gt;
&lt;td&gt;later?&lt;/td&gt;
&lt;td&gt;&lt;a href="https://notes.danavery.com/posts/perch-mbari-4/"&gt;One tentative yes&lt;/a&gt; (bloops only so far)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;p&gt;This is all still quite exploratory, but the matrix will keep me from treating different tests as if they answered the same question.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t think I need to fill in all twelve boxes just for completeness, but the &amp;ldquo;next?&amp;rdquo; box looks like the best next step and I&amp;rsquo;ll keep the boxes marked &amp;ldquo;later?&amp;rdquo; in mind.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;All clips are from the MBARI December 21, 2016 16 kHz full-day audio file.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Perch and MBARI Clips: Bloops</title><link>https://notes.danavery.com/posts/perch-mbari-4/</link><pubDate>Mon, 18 May 2026 16:40:30 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari-4/</guid><description>&lt;p&gt;In the &lt;a href="https://notes.danavery.com/posts/perch-mbari-3/"&gt;last post&lt;/a&gt;, it started to look like Perch 2.0, at least on less-definitely humpback MBARI hydrophone clips, doesn&amp;rsquo;t reveal much whale/non-whale structure in its embeddings.&lt;/p&gt;
&lt;p&gt;But a quick listen to some of the positive clips raises an important point: humpbacks make a lot of different types of sounds.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; It&amp;rsquo;s possible that the embeddings are tied more to the qualities of the individual calls than to the presence or absence of a call at all.&lt;/p&gt;
&lt;p&gt;So it would make sense to do some more by-ear listening to some nearest-neighbor groups and see if they share any common audible characteristics.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m still using the older humpback-specific detector model to classify clips into various confidence-level buckets (0-10% for strongly no-whale, 90-100% for strongly whale, and so on).&lt;/p&gt;
&lt;p&gt;For this listening I&amp;rsquo;ll take some obviously (both to the detector and me) humpback-containing audio clips with different kinds of humpback sounds, and compare them to their nearest neighbors in the Perch embeddings.&lt;/p&gt;
&lt;p&gt;For the last tests, I used 200 clips as the mini-corpus for producing similarity scores, split evenly between likely-positive and likely-negative. For this one, I&amp;rsquo;m going to use significantly more, since I&amp;rsquo;m looking for finer-grained distinctions. I&amp;rsquo;ve pulled out ~9000 clips from 12/21/16, spread fairly evenly across buckets.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;A quick digression: Let&amp;rsquo;s look at the actual clip distribution across buckets.&lt;/p&gt;
&lt;p&gt;&lt;img alt="bar chart of clip distribution" loading="lazy" src="https://notes.danavery.com/posts/perch-mbari-4/bucket_distribution_2016-12-21.png"&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s pretty U-shaped. The detector for this day is often quite confident of the presence or absence of a whale sound.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Here&amp;rsquo;s a pretty distinct clip to start with. It&amp;rsquo;s a sort of bloop:&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7695&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_011850.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;And the five closest clip embeddings by cosine similarity:&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7697(0.95)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_011905.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7693(0.93)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_011830.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7696(0.88)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_011855.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7759(0.88)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_013550.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6107(0.86)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_022005.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;Critically here, the first three of the five are within 60 seconds of the original clip,&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt; which doesn&amp;rsquo;t make this a terribly useful comparison as-is. Those clips could very well be the same whale making the same sounds over that particular minute.&lt;/p&gt;
&lt;p&gt;So let&amp;rsquo;s get the next ten closest embeddings:&lt;/p&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7939(0.84)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_024555.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6108(0.84)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_022020.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8271(0.83)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_052010.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7694(0.83)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_011845.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8200(0.82)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_045015.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7803(0.82)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_015325.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6239(0.80)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_040320.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7695(0.79)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_022830.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7881(0.79)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_021950.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8091(0.79)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-4/clips/20161221_040300.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s a more varied set of clips, from different times of the day.&lt;/p&gt;
&lt;p&gt;And every single one of them has a bloop or two.&lt;/p&gt;
&lt;p&gt;Perch embeddings seem to be mapping distinct bloop clips close by in the embedding space.&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;It doesn&amp;rsquo;t appear that the field has really settled on a taxonomy for whale vocalizations yet. I&amp;rsquo;ll just try to describe them as I go.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;It&amp;rsquo;s still notable that in many years of 24/7 MBARI hydrophone recordings, very few clips have signals as clear as those from December 21, 2016. It&amp;rsquo;s quite the day: a bit of an open-hydrophone night at the cafe tonight.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;The first clue is the clip numbers are almost in sequence. The second, more definitive clue is that the filenames have the times in them, although the current audio embedding mechanism I&amp;rsquo;m using here doesn&amp;rsquo;t display them, so you&amp;rsquo;d have to look at the HTML source to know that.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Perch and MBARI Clips: Listening to the Neighbors</title><link>https://notes.danavery.com/posts/perch-mbari-3/</link><pubDate>Fri, 15 May 2026 14:40:42 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari-3/</guid><description>&lt;p&gt;In the &lt;a href="https://notes.danavery.com/posts/perch-mbari-2/"&gt;last post&lt;/a&gt;, I was seeing if Perch embeddings produced from less-confident predictions of the humpback detector model produced easy-to-differentiate PCA clusters. While there was some obvious grouping, the embeddings didn&amp;rsquo;t appear to provide clear visual clusters of whale and non-whale clips.&lt;/p&gt;
&lt;p&gt;But maybe we just needed more data. That last plot just used 20 clip embeddings. So let&amp;rsquo;s plot 100 likely-positive and 100 likely-negative one instead.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the PCA plot:&lt;/p&gt;
&lt;p&gt;&lt;img alt="PCA plot of Perch embeddings from MBARI data" loading="lazy" src="https://notes.danavery.com/posts/perch-mbari-3/pca.png"&gt;&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s showing much less obvious separation than I expected. Before trying some manual nearest-neighbor testing, I&amp;rsquo;ll drop the embeddings into a UMAP plot (cosine similarity, &lt;code&gt;n_neighbors&lt;/code&gt;=15) to see if it can find any obvious structure:&lt;/p&gt;
&lt;p&gt;&lt;img alt="UMAP plot of Perch embeddings from MBARI data" loading="lazy" src="https://notes.danavery.com/posts/perch-mbari-3/umap.png"&gt;&lt;/p&gt;
&lt;p&gt;Well, yes. And no. It&amp;rsquo;s definitely showing a bit more organization in the embedding space, but there are some interesting overlaps.&lt;/p&gt;
&lt;p&gt;Simple low-dimensional projections may not be the best tool for assessing the ability of Perch embeddings to distinguish between whale and non-whale. Let&amp;rsquo;s listen to examples from a few apparent groupings and their nearest neighbors in embedding space using cosine similarity.&lt;/p&gt;
&lt;p&gt;We&amp;rsquo;ll start with something that looks to be in a fairly well-defined positive group, in the lower center of that UMAP plot. Here&amp;rsquo;s clip 130, which the humpback detector&amp;rsquo;s model put in the higher-confidence bucket:&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;130&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/05_70-90/20161221_054540.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;That&amp;rsquo;s a positive, if a bit noisy. Now let&amp;rsquo;s compute the nearest neighbors of clip 130, which turn out to be 123, 110, 12, 6, and 5. It&amp;rsquo;s notable that those last three are nowhere near 130 in the UMAP plot, and only reasonably close by in the PCA plot. The implication here is that we&amp;rsquo;re losing a significant amount of information in the 2D projections.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s also worth noting that the first two closest neighbors are in the humpback detector&amp;rsquo;s higher-confidence bucket, but the last three are in the lower-confidence one.&lt;/p&gt;
&lt;p&gt;Here are the clips:&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;123(.74)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/05_70-90/20161221_051850.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Easy positive.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;110(.69)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/05_70-90/20161221_024450.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Fairly easy positive.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;12(.66)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_045725.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;There &lt;strong&gt;might&lt;/strong&gt; be something in the last half-second of that clip, but I&amp;rsquo;m inclined to lean negative.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6(.65)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_031450.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Definitely something in the last half-second of that one. Leaning positive.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;15(.64)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_061530.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;This one sounds to me like a negative.&lt;/p&gt;
&lt;p&gt;In this case, the closest neighbors to a noisy positive clip seem fairly evenly split between positives and negatives, without any immediately obvious whale-specific features.&lt;/p&gt;
&lt;p&gt;Moving on to one in an apparent strong non-whale cluster in the UMAP plot: clip 73, at the top of the plot.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;73&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_191025.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;A definite negative, with a continuous, low, pulsing sound (a ship engine?)&lt;/p&gt;
&lt;p&gt;Moving on to its nearest neighbors&amp;ndash;these are all low-confidence clips from the detector: 72, 75, 69, 57, 30.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;72(.96)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_190830.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Very similar to clip 73.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;75(.95)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_191230.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Same as the last one.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;69(.94)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_190240.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Same overall sound profile as the last two, but there might be a positive in seconds 1 and 2.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;57(.94)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_143935.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;If there&amp;rsquo;s something there, it&amp;rsquo;s not completely breaking through the noise.&lt;/p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;30(.94)&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-3/clips/02_10-30/20161221_091825.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;p&gt;Again, it&amp;rsquo;s not hard to hear &lt;strong&gt;something&lt;/strong&gt; there, but overall I&amp;rsquo;d call this a negative.&lt;/p&gt;
&lt;p&gt;A few interesting points here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The cosine similarities of these embeddings are quite high.&lt;/li&gt;
&lt;li&gt;The first three neighbor clips, along with the central clip, are all within the same 10-minute time period. Not unexpectedly, they share some obvious sound features.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;At least for these raw, noisy, mid-confidence MBARI clips, in these tests, the Perch embeddings don&amp;rsquo;t seem to be organizing these clips into obvious whale/non-whale structures. They may instead be indexing on other meaningful acoustic structure.&lt;/p&gt;</description></item><item><title>Perch and MBARI Clips: Beyond the Easy Cases</title><link>https://notes.danavery.com/posts/perch-mbari-2/</link><pubDate>Thu, 14 May 2026 13:25:42 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari-2/</guid><description>&lt;p&gt;Continuing on from the &lt;a href="https://notes.danavery.com/posts/perch-mbari/"&gt;last post&lt;/a&gt; about Perch 2.0 embeddings from MBARI raw hydrophone data, it seems important to note that the PCA plot in that last only looked at the extremes&amp;ndash;the clips where the humpback detector model expressed strong positive confidence (&amp;gt;90%) or extreme negative confidence (&amp;lt;5%).&lt;/p&gt;
&lt;p&gt;So let&amp;rsquo;s look at what happens when we take slightly less obvious examples. Let&amp;rsquo;s compare 70-90% vs 10-30% confidence clips. We&amp;rsquo;ll use the same day, December 21, 2016, because it has a lot of high-confidence examples.&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;The clips are embedded below.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the PCA plot of 10 detector-tagged likely whale and 10 likely not-whale:&lt;/p&gt;
&lt;p&gt;&lt;img alt="PCA plot of Perch embeddings from MBARI data" loading="lazy" src="https://notes.danavery.com/posts/perch-mbari-2/pca.png"&gt;&lt;/p&gt;
&lt;p&gt;This is a bit more interesting. Either a) the humpback detector is getting some classifications wrong, b) Perch embeddings can&amp;rsquo;t easily distinguish these less obvious clips, or the c) the PCA axes of variance-maximization don&amp;rsquo;t correspond well to what we&amp;rsquo;re looking for here.&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s start with the first, and manually verify the humpback detector&amp;rsquo;s classification:&lt;/p&gt;
&lt;h3 id="10-30-likely-humpback-correct-here-means-not-humpback"&gt;10-30% likely humpback (&amp;ldquo;correct&amp;rdquo; here means not-humpback):&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Clearly dolphin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; More dolphin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Background noise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;incorrect.&lt;/strong&gt; Sounds like a humpback at 0:02&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Indistinguishable noise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Again, indistinguishable, although I think I &lt;em&gt;might&lt;/em&gt; hear a humpback off in the distance&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tossup.&lt;/strong&gt; The last second of this clip sounds humpback-like.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;incorrect.&lt;/strong&gt; There are a couple faint humpback bloops there&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Noise&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; There&amp;rsquo;s a tone, but it doesn&amp;rsquo;t sound whale-like&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="70-90-likely-humpback-correct-here-means-humpback"&gt;70-90% likely humpback (&amp;ldquo;correct&amp;rdquo; here means humpback):&lt;/h3&gt;
&lt;ol start="11"&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; That&amp;rsquo;s a whale or two&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Humpback&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; This is a close one, but the last second qualifies it&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Humpback&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Humpback&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Humpback roar&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Faint, but there&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Fainter, but there&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Humpback&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;correct.&lt;/strong&gt; Humpback call in the first half-second&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Let&amp;rsquo;s call it 17.5/20. Not as perfect results as with the 10/90 clips in the last post. But if we correct the plot with the manual label corrections:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Corrected PCA plot of Perch embeddings from MBARI data" loading="lazy" src="https://notes.danavery.com/posts/perch-mbari-2/pca_flipped.png"&gt;&lt;/p&gt;
&lt;p&gt;Based on this new plot, and with knowledge of the ground truth as determined by my listening&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;, we can see a few different groups:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The dolphins (1,2)&lt;/li&gt;
&lt;li&gt;The definitive whale clips (11,12,14,15,16,19)&lt;/li&gt;
&lt;li&gt;The less-obvious whale clips (4,8,13,17,18,20)&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;The not-whale clips (3,5,6,7,9,10)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;But (3) and (4) really aren&amp;rsquo;t easily distinguishable in this representation of the Perch embeddings without ground-truth knowledge.&lt;/p&gt;
&lt;p&gt;It seems that once we correct for the humpback detector model&amp;rsquo;s incorrect classification, for less-obvious positive and negative examples the clusters don&amp;rsquo;t separate in the embedding space in a clearly obvious way, but they certainly show tendencies.&lt;/p&gt;
&lt;p&gt;At this point, I can either try a larger dataset and see if clearly-detectable clusters resolve, or a different visualization besides PCA.&lt;/p&gt;
&lt;p&gt;If the embedding clusters aren&amp;rsquo;t apparently separable with any other methods, we might have to consider that the older, more specific humpback-detector model separates the positive and negative classes more cleanly than a simple Perch embedding visualization can.&lt;/p&gt;
&lt;p&gt;More attempts to see what Perch is capable of in the next post.&lt;/p&gt;
&lt;h2 id="clips"&gt;Clips&lt;/h2&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;1&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_014735.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;2&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_014745.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;3&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_061530.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_064805.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;5&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_101345.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_102110.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_140555.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_142525.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;9&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_221555.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;10&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/02_10-30/20161221_232000.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;11&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_012810.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;12&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_051950.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;13&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_054345.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;14&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_061435.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;15&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_065115.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;16&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_075800.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;17&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_090900.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;18&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_100045.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;19&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_102840.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;20&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari-2/clips/05_70-90/20161221_223540.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;The MBARI example humpback detector &lt;a href="https://github.com/mbari-org/pacific-sound-notebooks/blob/main/docs/notebooks/humpbackwhales/detect/PacificSoundDetectHumpbackSong.ipynb"&gt;notebook&lt;/a&gt; uses this date, I would assume, because there are a lot of fantasically strong humpback calls that day. Most days that I&amp;rsquo;ve listened to don&amp;rsquo;t have anything near the strength of that day&amp;rsquo;s clips. Running the humpback detector model on June 21, 2016, for example doesn&amp;rsquo;t find &lt;em&gt;any&lt;/em&gt; 90% confidence clips (and only a few &amp;gt;70% ones). December 21 is simply full of them.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Which, to be fair, is less an assessment of ground truth and more an assessment of my particular whale-call sensing capabilities. If you disagree about some of my decisions, let me know!&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;(Although I&amp;rsquo;d say that 16 and 19 are not actually that close-call.)&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item><item><title>Creating MBARI clip embeddings with Perch 2.0</title><link>https://notes.danavery.com/posts/perch-mbari/</link><pubDate>Wed, 13 May 2026 14:05:44 -0700</pubDate><guid>https://notes.danavery.com/posts/perch-mbari/</guid><description>&lt;p&gt;I&amp;rsquo;ve been fascinated with the MBARI hydrophone recording &lt;a href="https://registry.opendata.aws/pacific-sound/"&gt;archive&lt;/a&gt; for a while now. It&amp;rsquo;s from a hydrophone installation in Monterey Bay that&amp;rsquo;s been recording almost 24/7 since 2015. It&amp;rsquo;s partly what inspired me to make &lt;a href="https://github.com/danavery/audioloop"&gt;AudioLoop&lt;/a&gt;&amp;ndash;all that data deserves to be made into some useful labeled datasets.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been curious to see how well &lt;a href="https://github.com/ai2-vision/perch"&gt;Perch&lt;/a&gt; 2.0 does at extracting useful embeddings from these recordings. A Google DeepMind &lt;a href="https://research.google/pubs/perch-20-the-bittern-lesson-for-bioacoustics/"&gt;paper&lt;/a&gt; claims that &amp;ldquo;despite having almost no marine training data,&amp;rdquo; Perch 2.0 performs well at marine species classification.&lt;/p&gt;
&lt;p&gt;I thought I&amp;rsquo;d try that with some raw&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt; MBARI recordings. I used an older Google/NOAA humpback detector &lt;a href="https://www.kaggle.com/models/google/humpback-whale"&gt;model&lt;/a&gt; and pulled out 5-second clips from a particular MBARI 24-hour audio file (December 21, 2016 in this case), then bucketed them into various humpback-detection confidence levels based on the model&amp;rsquo;s reported confidence level.&lt;/p&gt;
&lt;p&gt;Then I fed some clips into Perch 2.0 to create embeddings. For the first round, I stuck to the &amp;gt;90% (likely humpback) and &amp;lt;5% (likely not-humpback) buckets as a first-pass sanity check. I then took ten clips from each of those buckets, sent them through Perch, and made a PCA plot of the Perch embeddings.&lt;/p&gt;
&lt;p&gt;And we get this:&lt;/p&gt;
&lt;p&gt;&lt;img alt="PCA plot of Perch embeddings from MBARI data" loading="lazy" src="https://notes.danavery.com/posts/perch-mbari/pca.png"&gt;&lt;/p&gt;
&lt;p&gt;Which shows that, even given MBARI clips with a high noise floor, Perch seems to separate whale and not-whale pretty well&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;. You can hear the clips below.&lt;sup id="fnref:3"&gt;&lt;a href="#fn:3" class="footnote-ref" role="doc-noteref"&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;What&amp;rsquo;s more interesting is that the non-humpback clips seem to be split into two clusters, and that they aren&amp;rsquo;t just PCA phantom clusters that fall apart on closer inspection. Clips 3-8 are only background noise (the ocean is noisy), but the slightly-separated group of clips (1, 2, 9, 10) all have dolphin vocalizations!
Clips 1 and 2 have prominent vocalizations, 9 and 10 much quieter ones.&lt;/p&gt;
&lt;p&gt;So just using raw, unpreprocessed, noisy clips from the MBARI hydrophone, Perch 2.0 appears to separate noise-only, humpback, and dolphin sounds into their own embedding clusters.&lt;/p&gt;
&lt;h2 id="clips"&gt;Clips&lt;/h2&gt;
&lt;p&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;1&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_001615.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;2&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_024735.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;3&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_150330.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;4&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_155240.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;5&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_165215.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;6&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_171915.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;7&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_172325.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;8&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_184505.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;9&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_231105.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;10&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/00_lt05/20161221_235135.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;11&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_011850.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;12&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_013325.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;13&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_033040.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;14&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_034500.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;15&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_040005.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;16&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_050145.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;17&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_060720.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;18&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_060835.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;19&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_092210.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;div class="audio-clip"&gt;
&lt;div class="audio-label"&gt;20&lt;/div&gt;
&lt;audio controls preload="none"&gt;
&lt;source src="https://notes.danavery.com/posts/perch-mbari/clips/06_ge90/20161221_094855.wav" /&gt;
&lt;/audio&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;div class="footnotes" role="doc-endnotes"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;The only preprocessing applied was removing the DC offset in the originals.&amp;#160;&lt;a href="#fnref:1" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;It&amp;rsquo;s important to note here that Perch is technically not verifying ground-truth whale call presence, but labels inferred from the results of the previous humpback detector model. In this very limited set of clips, you can verify their ground truth yourself by listening to them. But at the very least Perch&amp;rsquo;s embeddings are expressing some of the same inherent audio features as the humpback-specific model.&amp;#160;&lt;a href="#fnref:2" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;These clips have been scaled up to a reasonable listening level.&amp;#160;&lt;a href="#fnref:3" class="footnote-backref" role="doc-backlink"&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description></item></channel></rss>