# DeepSqueak v3: MATLAB Tooling for Rodent Ultrasonic Vocalization Analysis

> DeepSqueak is a MATLAB application that turns spectrograms of rodent calls into detected, clustered and classified vocalizations. The repository documents a YOLO-based detector, retraining on your own recordings, and a deep learning network set, but the README leaves installation and rollback unspecified.

**DrCoffey/DeepSqueak** — DeepSqueak v3: Using Machine Vision to Accelerate Bioacoustics Research

- Repository: https://github.com/DrCoffey/DeepSqueak
- Stars: 433 · Forks: 103
- Language: MATLAB
- License: BSD-3-Clause
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/drcoffey-deepsqueak

## What DeepSqueak Is For

Rodent ultrasonic vocalizations sit above the range of human hearing, so the raw waveform is not directly inspectable. The usual workflow is to record audio, compute a spectrogram, and then decide by eye which time-frequency blobs are calls and which are noise. At scale that manual step dominates the project. DeepSqueak addresses that step: it is a MATLAB application that detects candidate calls in spectrograms, lets a human refine the boxes, and then groups the surviving calls by shape. The README frames the goal as using machine vision to accelerate bioacoustics research, and the topics list names mice, rats and USVs, which is the audience: behavioral neuroscience and bioacoustics labs working with rodent vocalization. The repository is MATLAB throughout, with a GUI entry point at the top level (DeepSqueak.m and DeepSqueak.fig) rather than a command line tool. That choice defines everything else about adoption, because it means the software is aimed at researchers who work interactively, not at pipelines that run unattended on a cluster.

## The Detection and Clustering Pipeline

The v3.1 release notes describe a YOLO V2 based detection architecture. That is the mechanism: instead of thresholding spectrogram energy, the project treats a spectrogram as an image and runs an object detector over it, which is why the README calls the approach machine vision. The output of detection is a set of boxes around candidate calls. From there the workflow branches. A human can navigate an entire audio file to refine detections or add new boxes, which the release notes present as a way to correct the detector rather than accept its output. Those corrected boxes become training data: the notes state that you can retrain existing networks with your own recordings, or start from scratch by hand-boxing calls and training a new species detector. Clustering is the second stage, and v3.1 introduced contour invariant clustering with variational autoencoders plus a new clustering GUI. The v3.2 notes add high precision neural networks, automatic removal of horizontal noise bands, and image scaling bound to trained networks. The repository layout matches this description: Audio/, Detections/, Functions/, Networks/ and Scripts/ sit alongside the GUI files, so the pretrained material lives in Networks/ and the working data in Audio/ and Detections/. One design consequence is worth stating plainly. Because detection is trained on spectrogram images, the image scaling used at inference has to match the scaling used at training, and the v3.2 note about scaling being bound to trained networks reads as an acknowledgment that this was previously a source of mismatch.

## Installing DeepSqueak and Running a First Detection

The README does not contain installation steps. It links to the project wiki and to a MATLAB File Exchange entry, and the File Exchange badge is the closest thing to a distribution channel documented in the repository. So the practical route is: obtain MATLAB, get the code from the repository or the File Exchange listing, and open the GUI from the top-level file. The README gives no supported MATLAB version, so that is the first thing to confirm with the maintainers rather than assume.

Once the code is on disk with MATLAB on the path, the GUI is launched from DeepSqueak.m. The README does not document a command-line invocation, so this is the documented entry point:

```matlab
DeepSqueak
```

After the GUI opens, the documented workflow is to load audio, let the network produce detections, and then refine them. The repository keeps audio and detections in separate top-level directories, which reflects that split:

```text
Audio/
Detections/
Networks/
Scripts/
```

What you should see after a detection run is a set of boxes over the spectrogram in the GUI, with the corresponding detection data written out under Detections/. The README does not specify the file format of those outputs, so treat that as something to inspect on your own machine before building anything downstream on top of it. For retraining, the documented path is to correct boxes by hand in the GUI and then retrain an existing network on that corrected set; the README states the capability but does not give the training command or the expected runtime.

## Where DeepSqueak Breaks Down

The largest constraint is MATLAB. DeepSqueak v3 is a MATLAB application, and the repository has no Python port, no container definition, and no documented headless mode. A lab without a MATLAB licence cannot run it at all, and a lab that wants to process thousands of files on a scheduler has to drive a GUI-oriented codebase. The second constraint is the training data requirement. The retraining and from-scratch paths both depend on hand-boxed calls, which is exactly the manual work the project exists to reduce; the detector only removes that work for species and recording conditions close to what the shipped networks already cover. The third is documentation depth. The README is a feature list with badges, not a manual. It does not document rollback, it does not state a supported MATLAB release, and it does not describe the detection output format. The wiki is linked but is outside what the repository itself states. Finally, the version history is uneven: v2.6.2 shipped in July 2021, v3.1 in February 2025, and the v3.2 upgrades are described in the README without a matching release entry in the list. Anyone pinning a version should check which of those the Networks/ directory actually corresponds to.

## DeepSqueak Compared With a Python Bioacoustics Toolchain

The obvious alternative approach is a Python stack: compute spectrograms with librosa or scipy, detect events with an energy or template-matching method, and train a classifier in PyTorch or TensorFlow. The difference is not just language. A Python pipeline is scriptable end to end, so it scales to batch processing and integrates with existing analysis code, but it gives you no GUI and no ready-made detector for rodent USVs; you build the detection and clustering stages yourself. DeepSqueak inverts that trade: you get a trained detector, a clustering stage built on variational autoencoders, and an interactive interface for correcting results, at the cost of a MATLAB dependency and an interactive rather than batch-oriented workflow. For a lab that records a few hundred files and needs to inspect calls by eye anyway, the interactive path is the shorter route. For a lab that needs to reprocess an archive nightly without a human, the Python route is the one that fits, even though it means reimplementing detection. The two are not mutually exclusive: DeepSqueak's detection outputs are the kind of labeled data a Python classifier could be trained on, if the export format turns out to be readable.

## Licence and Upgrade Cost

DeepSqueak is released under BSD-3-Clause, which permits commercial and academic use, modification and redistribution provided the copyright notice and licence text are retained. The README carries a copyright line naming Ruby Marx, Kevin Coffey, Robert Ciszek and Leonardo Lara-Valderrábano, and the LICENSE file at the top level is the authoritative text. That licence covers the code in the repository. It does not cover MATLAB itself, which is commercial software licensed separately, and it does not automatically cover any pretrained network weights whose provenance is not stated in the repository. If you plan to redistribute a trained network, check the terms attached to the Networks/ contents rather than assuming the BSD grant extends to them. This is a description of what the licence says, not legal advice. On upgrade cost: the jump from v2.6.2 to v3.1 replaced the detection architecture with YOLO V2 and replaced the clustering method with variational autoencoders, so models and workflows built on 2.6.x do not carry forward unchanged. The README does not describe a migration path from v2 to v3, and it does not document rollback, so a lab that pins v3.1 and later needs v3.2 should keep the previous installation intact rather than upgrade in place.

## Conclusion

Adopt DeepSqueak if your lab already runs MATLAB, records rodent ultrasonic vocalizations, and needs a detector plus clustering pipeline rather than a single script. Do not adopt it if you have no MATLAB licence, no labeled calls to retrain on, or a requirement for a headless Python pipeline. Before committing, verify which MATLAB release the v3.1 networks load under, whether the Networks/ directory ships the pretrained weights you need, and how you will roll back given that the README documents no rollback path.

## FAQ

### How do I install DeepSqueak?

The README does not give installation steps. It links to the project wiki and to a MATLAB File Exchange listing, and the repository ships the application as MATLAB source with a top-level GUI file, so you need MATLAB on the path and then open DeepSqueak.m.

### How do I use DeepSqueak?

Launch the GUI, load audio, and let the YOLO V2 based detector produce boxes over the spectrogram. The documented follow-up is to navigate the file to refine detections or add boxes, and then either cluster the calls or retrain a network on your corrected boxes.

### What does DeepSqueak do?

It detects and clusters rodent ultrasonic vocalizations. Detection runs a YOLO V2 object detector over spectrograms, and clustering uses contour invariant variational autoencoders, with a GUI for refining boxes and retraining networks.

### What is DeepSqueak AI?

In this repository, DeepSqueak is a MATLAB bioacoustics application that applies machine vision to spectrograms of rodent calls. The README describes it as using machine vision to accelerate bioacoustics research, with neural networks for detection and clustering.

## Sources

- [DrCoffey/DeepSqueak on GitHub](https://github.com/DrCoffey/DeepSqueak)
- [Issues](https://github.com/DrCoffey/DeepSqueak/issues)
- [License: BSD-3-Clause](https://github.com/DrCoffey/DeepSqueak/blob/master/LICENSE)
- [README](https://github.com/DrCoffey/DeepSqueak/blob/master/README.md)
- [Releases](https://github.com/DrCoffey/DeepSqueak/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/drcoffey-deepsqueak
