AMR → MP3
AMR to MP3 converter
AMR-NB narrowband speech (8 kHz mono, 4.75–12.2 kbps) is decoded and re-encoded as MP3. The MP3 will be far larger and will sound exactly as narrowband as the source.
…or drag files and folders here. Add as many as you like — everything is processed on this device.
.3g2 .3gp .amr .caf
In one paragraph
AMR is the codec designed for GSM phone calls. It turns up in voicemail exports, old Android and Nokia voice recorders, call-recording apps and legal disclosure bundles. No browser ships an AMR decoder, so double-clicking the file usually does nothing at all.
Sonic Batch decodes AMR-NB with the native decoder built into its self-hosted FFmpeg engine, then encodes MP3. It is worth being clear about what you get: AMR throws away everything above 4 kHz before you ever see the file, so the result is intelligible speech, not restored audio.
Does this change the audio quality?
Both codecs are lossy, so this is technically a second-generation encode — but the practical limit is bandwidth, not the transcode. AMR-NB is band-limited to roughly 300–3,400 Hz, telephone bandwidth, and that loss happened before the file reached you. Encoding to a high MP3 bitrate stores that narrow band very accurately and adds nothing; 64 kbps mono is plenty.
- Nothing can restore the frequencies AMR removed. Any tool claiming to “enhance” or “upscale” this audio is guessing.
- AMR-WB (wideband, 16 kHz) is also decoded when present, and the detected variant is shown per file.
- Keep the output mono. Duplicating a phone-call recording into stereo doubles the size for no benefit.
A worked example
Making a voicemail archive searchable and playable
- Drop the exported .amr files into the queue — dozens at a time is fine, they are tiny.
- Keep the Podcast/voice preset but lower the bitrate to 64 kbps: there is no content above 4 kHz to protect.
- Turn on Normalise (LUFS, −16) so quiet and loud voicemails play back at a consistent level.
- Download the ZIP. The manifest records each file’s measured loudness and applied gain.
64 kbps mono, 16 kHz sample rate
AMR contains no information above about 4 kHz, so a 16 kHz output sample rate captures all of it (Nyquist gives you 8 kHz of bandwidth, twice what is there). That combination is about 0.5 MB per minute and is genuinely transparent to the source. Setting 320 kbps stereo 48 kHz instead makes the file 20× larger and identical to listen to.
Supported formats, limits and browser notes
Sonic Batch decodes with the browser when it can (faster, no engine download) and falls back to the self-hosted WebAssembly engine when it cannot. Every combination below works in every listed browser; the column only tells you which decoder does the work.
| Input | What it is | Chrome | Firefox | Safari | iOS |
|---|---|---|---|---|---|
| AMR | Phone-call speech codec: 8 kHz mono, 4.75–12.2 kbps. Decode only — nothing should be created in it. | Engine | Engine | Engine | Engine |
| 3GP | Legacy phone recording container, normally AMR-NB or low-bitrate AAC audio. | Engine | Engine | Partial | Partial |
| CAF | Apple container used by older iOS Voice Memos. Usually holds ALAC, IMA4 or raw PCM. | Engine | Engine | Partial | Partial |
| Output | Encoder | Bitrates / depth | Sample rates | Tags |
|---|---|---|---|---|
| MP3 | libmp3lame | 32–320 kbps | 8–48 kHz | Yes + artwork |
- Max per file
- 400.0 MB
- Max per queue
- 4.00 GB
- Max duration
- 4:00:00
- Max archive
- 1.50 GB
These are enforced ceilings, checked before any decoding starts, not measured maximums — a file over the limit is rejected rather than allowed to exhaust the tab’s memory. Real-world capacity is lower on older phones, which is why the scheduler runs one file at a time on iOS and Safari.
Where your audio goes
Nowhere. Your file is read from disk into this browser tab with the File API, decoded and encoded by code running in that same tab, and handed back to you as a download. It is never transmitted.
That is a structural property of the application, not a policy promise: there are no API routes, no server actions and no third-party processing services in this project, so there is nothing capable of receiving a file. The page’s Content-Security-Policy also restricts connections to this origin, and the automated test suite includes a browser test that fails if any network request during import, preview, conversion or download carries media bytes.
The trade-off, stated plainly:results live in your tab’s memory until you download them. Closing or reloading the page discards them. There is nothing on a server to recover, because nothing was ever put there.
Troubleshooting
My file is called .3gp but contains AMR.
That is common for Android voice recorders. This page accepts 3GP as well and reports the codec it finds inside.
The recording is very quiet or clipped.
Call recording levels are unpredictable. Use the LUFS normaliser rather than peak normalisation — peak scaling on a clipped recording just makes the clipping louder.
Can I improve the intelligibility?
Not honestly, and Sonic Batch will not pretend to. Normalising the level and converting to a format your player handles is the whole of what a deterministic tool can do.
Frequently asked questions
Why can no browser play AMR?
AMR was patent-encumbered for most of its life and browsers never shipped a decoder. The decoder here is compiled into the WebAssembly engine that this site self-hosts.
Why is the MP3 bigger than the AMR?
AMR runs at 4.75–12.2 kbps, which is extraordinarily efficient for speech and unmatched by MP3. Even 64 kbps MP3 is five times the bitrate. That is the price of a format everything can open.
Is this suitable for evidence or legal work?
The conversion is deterministic and the audio never leaves your device, which is usually what matters for chain of custody. Keep the original AMR files as well — a transcode is a derivative, not an original.
Can Sonic Batch create AMR files?
No. AMR is decode-only here. There is no good reason to create new narrowband speech files in 2026.