Convert AMR to MP3 — Free Online Tool
Convert AMR voice recordings to MP3 using the LAME encoder, transcoding from AMR-NB's narrow-band speech codec (libopencore_amrnb) to a universally compatible 128kbps MP3. Ideal for making mobile voice memos and telephony recordings playable on any device or media player.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your AMR file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
AMR (Adaptive Multi-Rate) files store audio using a speech-optimized codec designed for mobile telephony — AMR-NB operates at bitrates as low as 4.75kbps and is tuned specifically for the 300–3400Hz frequency range of human speech, not music or wideband audio. During this conversion, FFmpeg decodes the AMR bitstream using the libopencore_amrnb decoder, producing raw PCM audio, then re-encodes it using the LAME MP3 encoder (libmp3lame) at 128kbps. Because both AMR and MP3 are lossy formats, this is a lossy-to-lossy transcode — the original AMR compression artifacts are baked in, and a second round of compression is applied. The output MP3 will have far broader device compatibility and support ID3 metadata tags, but the audio fidelity is fundamentally constrained by what the narrow-band AMR source captured.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg multimedia processing engine. This is the same underlying engine running in your browser via WebAssembly (FFmpeg.wasm), so the command shown here will produce identical output when run locally on your desktop. |
-i input.amr
|
Specifies the input file — an AMR audio file, typically containing narrow-band speech encoded by the AMR-NB codec (libopencore_amrnb) at 8kHz mono. FFmpeg auto-detects whether the file uses AMR-NB or AMR-WB based on the file header. |
-c:a libmp3lame
|
Selects the LAME MP3 encoder to transcode the decoded AMR audio into MP3 format. LAME is the industry-standard open-source MP3 encoder and produces the most compatible output for playback on phones, browsers, media players, and streaming platforms. |
-b:a 128k
|
Sets the MP3 output bitrate to 128kbps, the conventional baseline for acceptable MP3 quality. Since the AMR-NB source is narrow-band speech at only 8kHz, 128kbps is well above what's needed to faithfully represent the source — you can lower this to 64kbps for speech content without any perceptible quality difference. |
output.mp3
|
The output filename, which tells FFmpeg to write an MP3 file. The .mp3 extension confirms the container format and ensures the file is immediately playable in any standard audio player or uploadable to any platform that accepts MP3. |
Common Use Cases
- Converting voice memos recorded on older Nokia or feature phones (which saved audio as .amr) into MP3 files playable in iTunes, Spotify, or any standard media player
- Preparing recorded phone interviews or call center audio (stored in AMR format by VoIP systems) for editing in audio workstations like Audacity or Adobe Audition
- Archiving AMR voice recordings from Android apps such as WhatsApp or default Android voice recorders into the more future-proof and widely supported MP3 format
- Uploading voice notes or dictation recordings originally saved as AMR to podcast hosting platforms or cloud storage services that require MP3 input
- Converting AMR audio attachments received via MMS or messaging apps so they can be played on iOS devices, smart speakers, or car audio systems that don't support AMR
- Batch-processing a collection of telephony call recordings from a VoIP provider that exports in AMR format into MP3 for long-term storage or compliance archiving
Frequently Asked Questions
No — and this is a common misconception worth addressing. AMR-NB captures only a narrow frequency band (roughly 300–3400Hz) at very low bitrates, and those limitations are permanently encoded in the source file. Re-encoding to 128kbps MP3 gives the file a higher bitrate container, but it cannot recover frequencies or detail that the AMR codec never captured. The output will sound like the original AMR recording, just in a format that plays everywhere.
AMR-NB is an extremely aggressive speech codec designed to minimize bandwidth on mobile networks, operating at bitrates as low as 4.75kbps to 12.2kbps. The default output MP3 uses 128kbps — roughly 10 to 25 times the data rate of the source AMR. This size increase is entirely expected and reflects MP3's design for general audio playback rather than ultra-compressed telephony. If file size is a concern, you can lower the MP3 bitrate in the FFmpeg command (e.g., -b:a 64k), though for speech content 64kbps MP3 is already more than sufficient.
Yes — there are two AMR variants: AMR-NB (Narrow-Band, the most common, sampled at 8kHz) and AMR-WB (Wide-Band, sampled at 16kHz with better voice quality). This tool handles both via libopencore_amrnb and libopencore_amrwb decoders. If your source file is AMR-WB, the decoded audio will have a higher sample rate and noticeably better clarity in the MP3 output. Most .amr files from older phones are AMR-NB, while some modern VoIP systems use AMR-WB.
AMR files have very limited metadata support — they typically store no tags at all, just the raw audio bitstream. The converted MP3 supports ID3 tags (artist, title, date, album, etc.), but since the AMR source contains no metadata to transfer, the output MP3 will also have empty tags. You would need to add ID3 metadata manually after conversion using a tag editor like Mp3tag or via FFmpeg's -metadata flag.
Replace the -b:a 128k flag with a lower bitrate value. For voice recordings converted from AMR, 64kbps MP3 is typically indistinguishable from 128kbps because the source audio is narrow-band speech anyway. The command would become: ffmpeg -i input.amr -c:a libmp3lame -b:a 64k output.mp3. You can go as low as 32kbps for speech-only content, though quality degradation becomes audible below that threshold.
Yes — on Linux or macOS, you can loop over all AMR files in a directory with: for f in *.amr; do ffmpeg -i "$f" -c:a libmp3lame -b:a 128k "${f%.amr}.mp3"; done. On Windows Command Prompt, use: for %f in (*.amr) do ffmpeg -i "%f" -c:a libmp3lame -b:a 128k "%~nf.mp3". This is especially useful when dealing with large archives of voice recordings or call logs that exceed the 1GB browser limit of the online tool.
Technical Notes
AMR-NB files are sampled at 8kHz with a single mono channel — this is a hard constraint of the format, not something FFmpeg can override. The resulting MP3 will therefore also be mono and limited to 8kHz audio bandwidth regardless of the output bitrate specified. FFmpeg's libmp3lame encoder handles mono 8kHz input correctly, but some ID3-unaware players may display the track as 'unknown' since no metadata transfers from AMR. Notably, AMR files do not carry chapter markers, subtitle streams, or multiple audio tracks, so there is nothing to lose in those respects during conversion. One known edge case: some AMR files recorded by Android apps use a slightly non-standard header or are wrapped in a 3GP container with an .amr extension — if FFmpeg throws a header error, try renaming the file to .3gp and using -i input.3gp as the input. The libopencore library used for AMR decoding is a clean-room implementation and is widely available in FFmpeg builds, but if you compile FFmpeg from source, ensure it was built with --enable-libopencore-amrnb and --enable-libopencore-amrwb.