Find Duplicate & Similar
Audio Files

3 algorithms, each measuring a different quality of sound. Find re-encoded tracks, cover versions, spoken-word copies, and similar sound effects — entirely in your browser, no uploads, results appear live.

MP3, WAV, FLAC, OGG, M4A, AAC 100% Local Background Scanning 3 Algorithms

How It Works

  1. 1. Pick a Folder
    Select any folder. Subfolders included. All audio files collected automatically.
  2. 2. Scan Runs in Background
    Audio fingerprinting runs via Web Audio API. Continues even when you switch tabs.
  3. 3. Groups Appear Live
    Duplicate groups show up as they're found. Play tracks directly from the cards.
  4. 4. Move or Delete
    Select files, compare side-by-side with built-in players, then move or delete.
100% Private — Audio never leaves your device. All fingerprinting runs inside your browser using the Web Audio API. Open DevTools → Network during any scan: zero outbound requests. No uploads, no accounts, no tracking.
Audio scanning is unique: unlike video scanning, the Web Audio API does not pause when you switch browser tabs. All 3 audio algorithms continue processing in the background at full speed regardless of tab focus.

Quick Pick — Which Algorithm Should I Use?

Each algorithm measures a completely different property of sound. Picking the right one makes the difference between finding everything and finding nothing.

Quick guide to choosing the right audio duplicate detection algorithm
I want to find…Best algorithmWhy
Same track at different bitrates (320k MP3 vs 128k MP3)ChromaprintSpectral fingerprint is stable across bitrate and format changes. Fastest, no CDN needed.
Lossless vs lossy exports of the same master (WAV vs MP3)ChromaprintSame spectral content regardless of codec — Chromaprint handles this well at threshold 10–15.
Cover versions or live vs studio recordingsEssentia HPCPMeasures harmonic pitch class content — covers share the same notes even if the sound is different.
Transpositions (same song, different key)Essentia HPCPHPCP is transposition-sensitive by default but captures harmonic structure better than other methods.
Podcasts, voice memos, spoken-word recordingsMeyda MFCCMFCCs capture timbral texture — the "colour" of the voice. More effective than pitch-based methods for speech.
Sound effects (footsteps, ambient, foley)Meyda MFCCSame reasoning — timbral texture identifies sound effects better than spectral or harmonic methods.
Largest possible folder, fastest scanChromaprint or MeydaChromaprint (full track) or Meyda (10s window only) — both are pure JS with no WASM loading delay.

All 3 Algorithms — How They Work in Plain English

Audio duplicate detection is fundamentally different from image detection. Instead of comparing pixels, these algorithms analyse the sound content itself — frequency patterns, harmonic structure, or timbral texture.

Chromaprint — Spectral Fingerprinting
Chromaprint
A pure-JavaScript spectral fingerprinting algorithm inspired by the Chromaprint system used by MusicBrainz and AcoustID. It captures the overall "shape" of the sound at each moment — which frequency bands are louder than their neighbours — and hashes that into compact 15-bit frames. The fingerprint is stable across bitrate changes, codec differences, and minor level adjustments because it compares relative frequency energy rather than absolute values. No external library or CDN is needed — it works completely offline.
Step 1
Resample to 11,025 Hz mono

All files normalised to the same rate using OfflineAudioContext before any analysis.

Step 2
Hann window + frames

4,096-sample frames with 1,024 hop size. Hann window prevents edge artifacts.

Step 3
FFT → 16 frequency bands

Magnitude spectrum divided into 16 bands. Energy summed per band.

Step 4
Adjacent-band hash → Hamming compare

15 band comparisons → 15-bit sub-fingerprint per frame. Hamming distance ≤ threshold = duplicate.

🔍 Find Duplicate Audio 🔁 Reverse Audio Search ⚡ Fastest · No CDN · Best for: re-encoded tracks, different bitrates, podcasts
Essentia HPCP — Harmonic Pitch Class Profile
Essentia HPCP
Uses Essentia.js loaded as WebAssembly to compute a 12-bin Harmonic Pitch Class Profile per frame at 44,100 Hz. HPCP measures which musical notes (the 12 pitch classes: C, C#, D, D#…) are present and how strongly at each moment. It's essentially a high-resolution musical "chord fingerprint". Two recordings are compared using cosine similarity — the angle between their average HPCP vectors. Because HPCP captures the harmonic content of the music rather than the exact sound waves, it can identify the same song even when performed by different artists or recorded with different equipment. The threshold for Essentia is inverted: higher values = stricter matching.
Step 1
Load Essentia.js WASM

One-time ~2–4s initialisation per session. After that, processing is fast.

Step 2
Decode to 44,100 Hz mono

Higher sample rate than Chromaprint — needed for harmonic resolution.

Step 3
Compute 12-bin HPCP per frame

Each of the 12 pitch classes gets an energy value. Like a musical chord histogram.

Step 4
Cosine similarity (inverted threshold)

Average HPCP vectors compared. Higher threshold = stricter (≥ threshold = duplicate).

Essentia threshold direction is inverted. For Chromaprint and Meyda, lower = stricter. For Essentia HPCP, higher = stricter (cosine similarity must be ≥ threshold). Also requires Essentia.js from CDN — needs an internet connection on first load, then cached.
🔍 Find Duplicate Audio 🔁 Reverse Audio Search 🐢 Moderate · WASM loads once · Best for: cover versions, live vs studio, harmonic similarity
Meyda MFCC — Mel-Frequency Cepstral Coefficients
Meyda MFCC
Uses Meyda.js to compute 13 MFCCs per frame at 22,050 Hz — the same feature originally developed for speech recognition and now standard for audio texture analysis. MFCCs capture the timbral texture of sound — what makes a violin sound different from a piano even when playing the same note, or what makes one person's voice recognisably different from another's. Two files are compared using Euclidean distance between their average MFCC vectors. Crucially, Meyda only analyses the first 10 seconds of each file — making it the fastest algorithm for large libraries of long files. The trade-off is that it may miss duplicates that start differently but become similar later.
Step 1
Decode first 10 seconds at 22,050 Hz

Only the first 10s analysed — very fast for long files like podcasts.

Step 2
FFT + Mel filterbank

Frequency spectrum warped to Mel scale (matches human hearing perception).

Step 3
13 MFCCs per frame

Discrete Cosine Transform of log Mel energies → compact timbral descriptor.

Step 4
Euclidean distance

Average MFCC vectors compared. Lower = more similar. Lower threshold = stricter.

🔍 Find Duplicate Audio 🔁 Reverse Audio Search ⚡ Fast · 10s window · Best for: speech, podcasts, voice memos, sound effects

📊 Algorithm Comparison at a Glance

Comparison of the 3 audio duplicate-detection algorithms
PropertyChromaprintEssentia HPCPMeyda MFCC
What it measuresSpectral band energy shapeHarmonic pitch class contentTimbral texture
Threshold directionLower = stricterHigher = stricter (inverted)Lower = stricter
External libraryNone — pure JSEssentia.js (CDN, cached)Meyda.js (CDN, cached)
Audio analysedFull trackFull trackFirst 10 seconds only
Speed⚡ Fastest⚠ Moderate (WASM init once)⚡ Fast (10s window)
Same track, different bitrate✓ Excellent⚠ Good⚠ Good
Cover versions / live recordings⚠ Limited✓ Excellent✗ Poor
Speech / podcasts / voice✓ Good✗ Poor✓ Excellent
Sound effects⚠ Moderate✗ Poor✓ Excellent
Works offline✓ Yes⚠ After first CDN load⚠ After first CDN load

📖 Complete Guide — How to Use Any Audio Duplicate Finder

All three algorithm pages (Chromaprint, Essentia HPCP, Meyda MFCC) work the same way. This guide covers everything: scanning, the built-in audio player, the threshold slider, reviewing groups, and safely moving or deleting files.

🔒 Privacy First — Your Audio Never Leaves Your Device

Zero network activity after page load. Audio decoding and fingerprinting all run locally via the Web Audio API. Zero outbound requests during any scan.
Background scanning — no tab focus required. Unlike video scanning (which pauses on tab switch), audio processing continues at full speed regardless of which tab is active.
Session-only file access. Folder permission is scoped to the folder you chose and expires when you close the tab. No filenames, paths, or fingerprints are saved or transmitted.

📋 Step-by-Step: Scanning a Folder for Duplicate Audio

Step 1

Choose the Right Algorithm & Open the Page

Use the table above to pick the algorithm that fits your use case. For re-encoded tracks and different bitrates: Chromaprint. For cover versions and harmonic similarity: Essentia HPCP. For speech, podcasts, and sound effects: Meyda MFCC. Then click the "Find Duplicate Audio" button on the algorithm card above.

If you're not sure, start with Chromaprint — it's the fastest, needs no CDN, and works well for the most common case (same track in multiple formats or bitrates).
Step 2

Check Toolbar Options Before Scanning

  • Queue Mode (on by default) — stages files for review before any move or delete action. Highly recommended.
  • Essentia HPCP only: the WASM library needs to load on first use — wait for the "Library loaded" indicator before selecting a folder.
Step 3

Select a Folder to Scan

Click 📂 Select Folder to Scan (Chrome / Edge) or drag and drop a folder onto the page. All audio files inside, including subfolders, are collected. Files over 100 MB are skipped. Non-audio files are silently ignored.

Supported formats: MP3, WAV, FLAC, OGG, M4A, AAC. Any format your browser can decode is accepted.

Step 4

Watch the Scan Run in the Background

A progress bar shows how many files have been processed. You can freely switch browser tabs — audio processing continues at full speed regardless. Duplicate groups appear live as they're found. Click Stop Scan at any time — results found so far remain visible.

Expected speed: roughly 1–3 seconds per typical music track for Chromaprint and Essentia; faster for Meyda (10-second window only). Very long files (60+ minute podcasts) take proportionally longer for Chromaprint and Essentia.

Step 5

Understand and Adjust the Threshold Slider

The threshold controls how strictly two fingerprints must match to be grouped. After scanning, adjust it to tune your results — all fingerprints are re-grouped instantly with no re-scan needed.

Low values (0–5) — Very strict (Chromaprint & Meyda)

Only nearly identical files match. Use for exact copies, same file at different bitrates. Very few false positives.

Medium values (6–20) — Balanced (default: 10)

Catches re-encoded versions, different bitrates, slight post-processing. Good starting point for most libraries.

High values (21–50) — Loose

Groups files with similar overall audio character. More false positives — always listen before deleting.

Essentia HPCP uses an inverted threshold. Higher = stricter (cosine similarity must be ≥ threshold). All other algorithms: lower = stricter.
Step 6

Review Groups Using the Built-In Audio Player

Each audio card has a built-in player. Use it to audition files before making decisions:

  • ▶ Play button — starts playback, automatically pauses all other playing tracks on the page
  • Progress bar — click anywhere to seek; drag to scrub through the track
  • 🔇 Mute button — mutes this individual card
  • 🔇 Audio (toolbar) — mutes or unmutes all audio on the page at once
  • Time display — shows current position / total duration

Card interactions work the same as the image/video pages:

  • Click a card to select it (blue border)
  • Ctrl+Click to add to the compare list (purple border)
  • Click the 🔍 icon on hover for a full-screen preview with a larger player
  • Right-click for context menu (Copy / Move / Delete / Compare)
  • Click & drag on empty space to box-select multiple cards
Step 7

Compare Files Side-by-Side

Ctrl+Click two or more cards, then click ⚖️ Compare in the toolbar. A modal shows each file with its own player, file metadata (duration, size, format, path), and a similarity percentage. For 3+ files, a full pairwise similarity matrix is shown. Each file in the modal also has Copy Name, Move, and Delete buttons. Always listen to both tracks before deleting one — the algorithm is reliable but not perfect.

Step 8

Move, Delete, or Copy Files

📋 CopyCopy filename(s) to clipboard
📂 MoveStage for move to Audio-Duplicates folder
🗑️ DeleteStage for permanent deletion
⚖️ CompareListen and compare side-by-side
Deletions are permanent. The File System Access API bypasses the Recycle Bin. Always use Queue Mode to review before executing. There is no undo.
Step 9

Queue Mode — Review Before You Commit

When Queue Mode is on, Move and Delete stage files in a queue instead of acting immediately. Switch to the Move Queue or Delete Queue tab in the sidebar. Review staged files, listen to them with the built-in players, remove any you change your mind about, then click Move All Files or Delete All Files. The default Move destination is Audio-Duplicates, created inside the scanned folder — you can rename it in the queue input field.

✅ What Each Algorithm Finds — and Doesn't

✅ All 3 Algorithms Find Well
  • Exact byte-for-byte copies of the same file
  • Same recording saved at different bitrates (MP3 320k vs 128k)
  • Lossless vs lossy exports of the same master (WAV vs MP3)
  • Re-encoded copies in different formats (FLAC → OGG → M4A)
  • Files with slightly different silence at start or end
  • Lightly level-normalised versions of the same recording
⚠️ Algorithm-Specific Strengths
  • Chromaprint only: files with similar spectral energy shape
  • Essentia only: covers, live recordings, harmonic variations
  • Meyda only: speech recordings with same speaker/instrument timbre
  • None: heavily time-stretched or pitch-shifted (>2 semitones)
  • None: very short clips (under ~15 seconds — insufficient data)
  • Meyda limitation: may miss duplicates that start differently

💡 Tips for Best Results

Back Up First

Always back up your audio library before deleting anything. Deleted files bypass the Recycle Bin and cannot be recovered.

Always Listen Before Deleting

Play both tracks using the built-in players before removing one. The algorithm is good but not infallible — verify by ear for important files.

Start Strict, Then Loosen

Begin at the default threshold of 10. Review those results first. Only move the slider if you want to catch more approximate matches.

Compare Metadata

In the Compare modal, check file size and duration. A larger file usually means higher quality. Keep the FLAC or highest-bitrate version.

Move, Don't Delete

Use Move to an "Audio-Duplicates" folder first. Review moved files after a few days before permanently deleting them.

Scan One Genre at a Time

For very large libraries, scan by genre or artist subfolder. This reduces false positives from tracks with similar instrumentation and keeps groups manageable.

Try Multiple Algorithms

Chromaprint for initial cleanup. Then Essentia HPCP for covers. Then Meyda for voice and effects. Each finds a different class of duplicates.

⚠️ Known Limitations

No undo for file deletion.

The File System Access API's remove() method bypasses the OS Recycle Bin entirely. Use Queue Mode — stage files, listen to them, then execute only when certain.

Meyda only analyses the first 10 seconds.

Very fast, but may miss duplicates where the opening 10 seconds differ (e.g. different intros). If Meyda misses something, try Chromaprint on the full track.

Essentia and Meyda require CDN on first load.

Essentia.js and Meyda.js are loaded from CDN and cached. They work offline after the first session. Chromaprint is pure JS and always works offline.

Move and Delete require Chrome or Edge.

The File System Access API is only in Chrome 86+ and Edge 86+. Firefox and Safari can scan and display results but cannot move or delete files.

Memory limit for very large libraries.

All fingerprints are held in memory during the session. For 10,000+ long tracks, RAM usage can become significant. Scan in subfolders if you run into slowdowns.

🛠️ Quick Reference — All Controls

All toolbar buttons and interaction controls
Button / ActionWhat it does
🔄 New SearchReload and start a fresh scan
📋 Copy (N)Copy selected filenames to clipboard. N = count selected.
📂 Move (N)Move selected files or stage them in the Move Queue
🗑️ Delete (N)Delete selected files or stage them in the Delete Queue
✕ Deselect AllRemove selection from all cards
⚖️ Compare (N)Open compare modal for Ctrl+clicked files. Needs 2+.
🔇 Audio (toolbar)Mute / unmute all audio players on the page at once
Queue Mode checkboxStage files for review before executing. Recommended on.
Similarity / Hamming Threshold sliderControls matching strictness. Re-clusters instantly on release. Essentia: higher = stricter (inverted).
Click cardSelect / deselect the file (blue border)
Ctrl + Click cardAdd / remove from compare list (purple border)
Click & drag (empty area)Box-select multiple cards at once
Ctrl + dragAdd to existing selection without clearing it
Right-click cardContext menu: Copy / Move / Delete / Compare
🔍 hover icon on cardOpen full-size preview with larger audio player
▶ on card playerPlay audio. Automatically pauses all other players.
Progress bar clickSeek to that position in the track
📥 Download ListExport all duplicate groups as a plain-text report

⭐ What Users Say

Based on 198 reviews

"Chromaprint found re-encoded versions of the same song I didn't even know I had. Freed up 23 GB of duplicate audio in one session."

"Essentia HPCP is incredible — it matched live recordings to studio versions using harmonic content. No other tool does that."

"Meyda MFCC cleaned up my entire podcast folder. Found duplicate episodes with different filenames and bitrates in seconds."

"Love that audio scanning continues in the background. I can switch tabs and it keeps running. Huge time saver."

"The built-in audio player makes it so easy to verify duplicates before deleting. Perfect for music libraries."

❓ Frequently Asked Questions

Which audio algorithm should I start with?
Start with Chromaprint — it's the fastest, works offline, and handles re-encoded copies, different bitrates, and format conversions very well. It's the most versatile for general audio deduplication.
Why does Essentia HPCP have an inverted threshold?
Chromaprint and Meyda use distance metrics (lower = more similar), so lower threshold = stricter. Essentia uses cosine similarity (higher = more similar), so higher threshold = stricter. The slider range for Essentia is 0 to 1.0.
Does audio scanning pause when I switch tabs?
No. Unlike video scanning which is throttled by browsers, audio processing via the Web Audio API continues in the background regardless of tab focus. You can freely browse other pages while scanning.
Can I recover files after deleting them?
No. Files deleted through Sakarto are permanently removed via the File System Access API remove() method, which bypasses the OS Recycle Bin. Always use Queue Mode: stage files, listen to them, then execute only when certain.
What audio formats are supported?
MP3, WAV, FLAC, OGG, M4A, AAC — any format your browser can decode via the Web Audio API. Files over 100 MB are skipped due to memory constraints.
Does this work on Firefox or Safari?
Partially. Scanning, fingerprinting, audio playback, and result display all work. However, Move and Delete require the File System Access API (Chrome 86+ / Edge 86+ only).