Chromaprint is fast. It finds re‑encoded tracks and different bitrates reliably. Essentia HPCP is the specialist for harmonic similarity—it finds covers and live recordings. But both of them share a blind spot: they rely on pitch and frequency structure that simply doesn’t exist in spoken word, podcasts, voice memos, or sound effects.
That’s where Meyda MFCC comes in. Instead of spectral energy or harmonic pitch, it measures timbral texture—the perceptual “colour” of sound. It captures what makes a violin sound different from a piano on the same note, or what makes one person’s voice recognisably different from another’s.
For speech, podcasts, voice memos, and sound effects, Meyda MFCC is the algorithm that finds the duplicates the others miss.
What makes Meyda MFCC different from Chromaprint and Essentia?
Sakarto gives you three audio algorithms for a reason. Each one measures a different property of sound:
| Algorithm | What it measures | Best for | Threshold direction |
|---|---|---|---|
| Chromaprint | Spectral energy shape (frequency bands) | Re‑encoded tracks, different bitrates, format conversions | Lower = stricter |
| Essentia HPCP | Harmonic pitch class content (musical notes) | Cover versions, live recordings, harmonic similarity | Higher = stricter (inverted) |
| Meyda MFCC | Timbral texture (spectral envelope) | Speech, podcasts, voice memos, sound effects | Lower = stricter |
The key insight: MFCCs (Mel-Frequency Cepstral Coefficients) were originally developed for speech recognition. They capture the shape of the spectral envelope—how energy is distributed across frequencies, warped to the Mel scale (which matches human hearing perception). Two recordings of the same speaker will have similar MFCC profiles even at different pitches, bitrates, or volume levels because the timbral character of the voice is preserved.
How the algorithm works: a deep dive
Let’s walk through exactly what happens when you scan a folder with Meyda MFCC.
Step 1: Load Meyda.js from CDN
Meyda.js is loaded from cdn.jsdelivr.net at page load. It is a lightweight, stateless JavaScript library that processes one audio frame at a time. There is no WASM compilation or initialisation delay—Meyda is ready as soon as the script tag loads.
Step 2: Decode and resample to 22,050 Hz, take first 10 seconds
The browser decodes the file using AudioContext at 22,050 Hz—the standard rate for MFCC analysis. Only the first 10 seconds of audio are analysed. This keeps processing fast (under 1 second per file) while still capturing enough timbral content for reliable matching. For most voice content, a speaker’s timbral signature is fully established within the first few seconds.
Step 3: Split into overlapping frames
The 10-second audio sample is divided into 512-sample frames with a 256-sample hop (50% overlap). At 22,050 Hz, each frame is about 23 ms. Shorter frames than Essentia or Chromaprint mean faster processing and finer time resolution for the MFCC analysis.
Step 4: Extract 13 MFCCs via Meyda.extract("mfcc", frame)
For each 512-sample frame, Meyda’s extract("mfcc", frame) computes 13 Mel-Frequency Cepstral Coefficients. The process works as follows:
- Apply an FFT to convert the time-domain frame to the frequency domain.
- Map the spectrum onto the Mel scale—a perceptual scale that approximates human pitch perception, with more resolution at low frequencies and less at high frequencies.
- Take the logarithm of each Mel band’s energy.
- Apply a Discrete Cosine Transform to decorrelate the log-Mel energies, producing the 13 MFCCs.
The result is a 13-element vector describing the overall timbral shape of that frame—robust against pitch transposition and small bitrate differences.
Step 5: Store the MFCC sequence
One 13-element vector is produced per frame. For a 10-second clip at hop 256 and 22,050 Hz, this produces roughly 860 vectors. The sequence is stored in memory for comparison. Because only 10 seconds are analysed, MFCC fingerprints are compact—far less RAM than HPCP sequences of full-length tracks.
Step 6: Compare using average Euclidean distance
To compare two files, their MFCC sequences are aligned frame by frame (using the shorter length), and the Euclidean distance between each pair of 13-element vectors is computed and averaged. A smaller average distance means more similar timbral texture. If the average falls at or below the threshold set by the slider, the files are grouped as duplicates.
A duration pre-check rejects pairs where one file is shorter than 50% of the other. This prevents a short snippet from matching a long recording simply because their first few seconds share similar timbre.
What Meyda MFCC finds well
| Type of duplicate | How well it works | Why |
|---|---|---|
| Duplicate podcasts and spoken-word recordings | ✅ Excellent | MFCCs capture voice timbre; same speaker = similar MFCCs. |
| The same voice recording at different bitrates | ✅ Excellent | Bitrate changes affect quality but not overall timbral shape. |
| Sound effects saved in multiple formats or quality levels | ✅ Excellent | Footsteps, rain, applause—each has a consistent timbral signature. |
| The same speaker re-recorded in the same room | ✅ Very Good | Room acoustics contribute to timbral texture. |
| Lossless vs. lossy exports of the same audio (WAV vs MP3) | ✅ Good | Timbral envelope is preserved across reasonable compression levels. |
| Re-encoded copies with similar timbral character | ✅ Good | MFCCs are relatively stable across encoding differences. |
| Covers or re-performances of songs | ❌ Poor | Different performers = different timbre. Use Essentia HPCP. |
| Transpositions or pitch-shifted recordings | ⚠️ May struggle | MFCCs are pitch-sensitive to some degree. Chromaprint may be better. |
| Music with complex or varied instrumentation | ⚠️ May struggle | Instrument changes = timbre changes. |
| Very short clips (under ~5 seconds) | ⚠️ May struggle | Fewer MFCC frames = less data for reliable matching. |
| Recordings where only the first 10 seconds are different | ⚠️ May struggle | Meyda only analyses the first 10 seconds. Use Chromaprint for full-track analysis. |
Understanding the MFCC Distance Threshold slider
The MFCC Distance Threshold slider (5–50) controls how strictly two MFCC profiles must match to be grouped as duplicates. Lower values are stricter—a distance of 0 means identical timbral content. This is the same direction as Hamming distance sliders (Chromaprint) but the opposite direction from Essentia HPCP’s cosine similarity.
| Threshold range | What it does | When to use |
|---|---|---|
| 5–10 (Very strict) | Only nearly identical timbral profiles match. Very few false positives. | Finding exact duplicates and same-voice recordings with minimal processing. |
| 11–25 (Balanced) | Catches re-encoded versions, different bitrates, and recordings with similar vocal timbre. | Default and recommended. The default of 15 is a good starting point for spoken-word and mixed audio libraries. |
| 26–50 (Loose) | Groups files with broadly similar timbral character. Useful for finding all recordings from the same room or microphone. | If you’re missing duplicates that share timbral character but differ in content. Expect more false positives. |
Tip: Start at 15. If you’re seeing unrelated files grouped together (false positives), lower the threshold toward 8–10. If expected duplicates are not appearing, raise it toward 20–25.
How to use Meyda MFCC: step by step
Step 1: Select a folder to scan
Go to the Meyda MFCC duplicate finder page. Click 📁 Select Folder to Scan or drag and drop a folder onto the page. Supported formats: MP3, WAV, FLAC, OGG, M4A, AAC. Files over 100 MB are skipped. Only the first 10 seconds of each file are analysed, so scanning is fast—typically under 1 second per file.
Tip: Meyda MFCC scanning runs fully in the background—you can switch browser tabs freely. Because only the first 10 seconds of each file are analysed, even very large audio libraries scan quickly compared to full-track methods.
Step 2: Wait for the scan to run
A progress bar shows how many files have been processed. Processing is fast—expect under 1 second per file. Duplicate groups appear live as they’re found—you don’t have to wait for the full scan to finish before reviewing results.
Click Stop at any time to halt the scan. Results found so far remain visible.
Step 3: Adjust the MFCC Distance Threshold
After scanning, use the MFCC Distance Threshold slider to control matching sensitivity. Moving the slider re-groups all already-extracted MFCC sequences instantly—no re-scanning is needed.
- Start at the default of 15 (balanced—good for speech and mixed audio)
- Lower to 8–10 if you see false positives (unrelated files grouped)
- Raise to 20–25 if expected duplicates are not appearing
Step 4: Review the duplicate groups
Results appear in numbered groups. Each group contains audio files that the algorithm considers similar. Use the built-in players to listen to each file before making decisions.
- Click a card to select it (blue border)
- Ctrl+Click (Cmd+Click on Mac) to add to the compare list (purple border)
- Click the 🔍 icon on hover to open a full-screen preview with the modal-size player
- Right-click any card for the context menu
- Click & drag on empty space to box-select multiple cards
Step 5: Listen and compare
Use the custom audio player on every card:
- ▶ Play — starts playback, pauses all other tracks on the page
- Progress bar — click to seek, drag to scrub
- 🔊 / 🔇 — mute/unmute this individual track
- Time display — shows current position / total duration
Ctrl+Click two or more cards, then click ⚖️ Compare in the toolbar. A modal opens showing each file with its own modal-size player, file metadata (duration, size, type, path), and a similarity percentage. For 3+ files, a full pairwise similarity matrix is shown.
Step 6: Take action—Move, Delete, or Copy
Select files and use the toolbar buttons. With Queue Mode on (recommended), files are staged for review first:
- 📋 Copy — copy filename(s) to clipboard
- 📂 Move — stage for move to Audio-Duplicates folder
- 🗑️ Delete — stage for permanent deletion
- ⚖️ Compare — view and listen side-by-side
Warning: 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 7: Execute queued actions
Queue Mode (enabled by default) stages files instead of acting immediately. Switch to the Move Queue or Delete Queue tab in the sidebar. Review the queued files, listen to them, remove any you change your mind about, then click Move All Files or Delete All Files to execute.
The default destination folder for Move is Audio-Duplicates, created inside the scanned folder. You can rename it in the queue input field.
When to use Meyda MFCC vs. the other 2 audio algorithms
Sakarto gives you three audio algorithms for a reason—each one handles a different type of duplication problem. Here’s when to pick Meyda MFCC over the others:
Chromaprint — spectral fingerprinting for re-encoded tracks
Chromaprint is pure-JavaScript spectral fingerprinting. It captures the overall “shape” of sound—which frequency bands are louder than others. It finds re-encoded tracks, different bitrates, and format conversions with no CDN dependencies.
Use Meyda MFCC instead: You’re working with speech, podcasts, or sound effects. Chromaprint measures spectral energy shape, which can vary significantly across different speakers or sound effects. MFCC measures timbral texture, which is more stable for voice and non-musical audio.
Essentia HPCP — harmonic content for music
Essentia HPCP uses Essentia.js WebAssembly to compute a 12-bin Harmonic Pitch Class Profile. It measures which musical notes are present—not the sound of the instruments. It finds cover versions, live recordings, and alternate arrangements.
Use Meyda MFCC instead: Your audio doesn’t have strong harmonic content. Speech, podcasts, and sound effects produce near-random HPCP vectors because there’s no clear pitch structure. MFCC captures the timbral texture that HPCP ignores.
Meyda MFCC — timbral texture for speech and sound effects
Meyda MFCC is the specialist for voice, speech, podcasts, voice memos, and sound effects. It extracts 13 Mel-Frequency Cepstral Coefficients using Meyda.js—the same features used in speech recognition systems.
Use Meyda MFCC when: You’re cleaning up a podcast folder, voice memo archive, or sound effects library. It’s the only algorithm that reliably matches speech and non-musical audio.
Algorithm quick reference
| Algorithm | Best for | What it measures | External library | Threshold direction | Speed | Window |
|---|---|---|---|---|---|---|
| Chromaprint | Re-encoded tracks, different bitrates, format conversions | Spectral band energy shape | None—pure JS | Lower = stricter | Fastest | Full track |
| Essentia HPCP | Cover versions, live recordings, harmonic similarity | Musical pitch class content | Essentia.js (CDN) | Higher = stricter (inverted) | Moderate | Full track |
| Meyda MFCC | Speech, podcasts, voice memos, sound effects | Timbral texture (spectral envelope) | Meyda.js (CDN) | Lower = stricter | Fast | First 10 seconds |
Privacy: your files never leave your device
Like every Sakarto tool, the Meyda MFCC audio duplicate finder runs entirely in your browser:
- Only Meyda.js loads from the network. One script file is loaded from cdn.jsdelivr.net at page load. After that, all audio decoding and MFCC computation run locally. Open DevTools → Network tab during a scan: zero outbound requests to any server.
- No accounts, no cookies, no analytics. The only localStorage data is your Queue Mode preference. No file names, paths, or MFCC data are ever saved or transmitted.
- Folder access is scoped and session-only. Permission covers only the folder you selected, lasts only while the tab is open, and can be revoked from browser site settings at any time.
- Purely static—no backend. Sakarto is HTML, CSS, and JavaScript. There is no server-side component, database, or API endpoint receiving any data from you.
Frequently asked questions (Meyda MFCC specific)
“Why only 10 seconds? Doesn’t that miss duplicates that sound different at the start?”
Ten seconds is a deliberate trade-off. It keeps per-file processing under 1 second, making Meyda practical for libraries with thousands of long files. For most content—podcasts, voice memos, sound effects, and songs—the timbral character is fully established within the first few seconds and stays consistent throughout. The main edge case is audio where the first 10 seconds are atypical—for example, a podcast with a 30-second intro jingle followed by speech that differs from the reference. If you suspect this is causing missed matches, use Chromaprint instead, which analyses the full track at the cost of longer scan time.
”What exactly is an MFCC, and why is it useful for finding duplicates?”
Mel-Frequency Cepstral Coefficients (MFCCs) are a compact description of the timbral texture of a sound—the perceptual “colour” or “character” that makes a violin sound different from a piano, or one person’s voice recognisably different from another’s. Meyda computes 13 coefficients per frame by applying an FFT, mapping the spectrum to the Mel scale (which matches human hearing perception), taking log energies, and then applying a Discrete Cosine Transform. The resulting 13 numbers capture the broad spectral shape while ignoring pitch—so two recordings of the same speaker will have similar MFCCs even at different pitches, bitrates, or volume levels. This makes MFCC the best of the three algorithms for voice and speech matching.
”The same recording in MP3 and WAV isn’t being grouped. How do I fix it?”
Try raising the MFCC Distance Threshold slider. Lossless (WAV/FLAC) and lossy (MP3) versions of the same master differ slightly in their timbral profile because MP3 compression modifies the spectral envelope. A threshold of 15–20 usually catches these pairs. If they still don’t match, verify both files have similar duration—the duration pre-check excludes pairs where one file is shorter than 50% of the other. Very heavily compressed MP3s (below 96 kbps) may produce MFCC profiles different enough that a threshold above 25 is needed.
”Two completely different audio files are being grouped together. What should I do?”
Lower the MFCC Distance Threshold slider. At high threshold values (25+), recordings made in the same acoustic environment can have similar enough MFCC profiles to match—for example, two different interviews recorded in the same room with the same microphone, or two different wind instruments. Drop the slider to 8–12 if false positives are common. Always use the built-in player to audition both tracks before acting. If you’re unsure, Move rather than Delete so you can recover the files from the destination folder if needed.
”Is Meyda MFCC good for finding duplicate podcasts and voice memos?”
Yes—this is Meyda MFCC’s strongest use case. MFCCs were originally developed for speech recognition, and two recordings of the same speaker in the same environment will produce very similar MFCC profiles even at different bitrates or volume levels. Use a threshold of 10–15 for strict matching (exact re-encodes of the same episode) or 18–25 for broader voice similarity (different episodes by the same host recorded consistently). The 10-second window is particularly well-suited to voice content since the speaker’s timbral signature is fully established within the first few seconds.
”How does Meyda MFCC compare to Chromaprint and Essentia for music?”
For music, MFCC sits between the other two in terms of what it detects. It works well when two recordings use the same instrument and recording setup—for example, two MP3 exports of the same guitar track. It does not reliably detect harmonic duplicates (same melody on a different instrument)—use Essentia HPCP for that. It also doesn’t match re-encoded versions as reliably as Chromaprint for most music files. Meyda MFCC’s advantage is specifically with voice, speech, and sound effects where timbre is the defining characteristic rather than pitch or spectral energy shape.
”Why is Meyda loaded from a CDN rather than bundled like Chromaprint?”
Meyda.js is a third-party audio feature extraction library that implements the Mel filterbank, DCT, and MFCC computation. Bundling it would significantly increase page weight. Loading it from cdn.jsdelivr.net means most users already have it cached from other sites that use Meyda. The library is lighter than Essentia.js (no WASM compilation step) and typically loads in under a second. If the CDN is blocked on your network, the scan simply won’t start—in that case, use Chromaprint which has no external dependencies.
”Can Meyda MFCC detect duplicate sound effects?”
Yes—this is one of its better use cases alongside speech. Sound effects have a consistent timbral texture (footsteps always sound like footsteps; rain always sounds like rain) that MFCC captures well. Two exports of the same sound effect at different bitrates or sample rates will typically produce similar MFCC vectors. Use a threshold of 10–15 for strict matching. Note that the 10-second window means short sound effects (under 2 seconds) produce very sparse MFCC data—if you’re scanning a library of very short clips, Chromaprint may give more reliable results.
”Does this work on Firefox or Safari?”
Scanning, MFCC extraction, the built-in player, result display, and the Compare modal all work in Firefox and Safari. The limitation is Move and Delete, which depend on the File System Access API and are only available in Chrome 86+ and Edge 86+. In other browsers, scan and review results normally, use the Compare modal to audition tracks side by side, then use Download List to export a report and manage files manually.
Final thoughts
Meyda MFCC is the algorithm you reach for when you need to find audio duplicates based on timbral texture rather than spectral shape or harmonic pitch. It’s not for finding re-encoded music—Chromaprint is faster and more reliable for that. It’s not for finding cover versions—Essentia HPCP is the specialist for harmonic similarity. But for speech, podcasts, voice memos, and sound effects, Meyda MFCC is the only algorithm that reliably works.
It’s particularly effective for:
- Podcast archives. The same episode saved in different formats or from different sources.
- Voice memo libraries. Duplicate recordings of the same person speaking.
- Sound effects collections. The same effect saved at different quality settings.
- Audio forensics. Matching a voice sample to other recordings of the same speaker.
- Spoken-word content. Audiobooks, lectures, interviews, and dictation.
Where Meyda MFCC falls short—music, covers, and harmonic similarity—other Sakarto algorithms fill the gap. Use Chromaprint for spectral matching and Essentia HPCP for harmonic similarity.
But for voice, speech, and sound effects, Meyda MFCC is the tool that finds the duplicates the others miss.
Ready to find duplicate audio files by timbral texture?
- Open Meyda MFCC Duplicate Finder — free, browser-based, no install
- Try Reverse Audio Search with Meyda MFCC — upload one reference file and find its copies
- Explore All 3 Audio Algorithms — compare with Chromaprint and Essentia HPCP
