Convert VOC to AMR — Free Online Tool
Convert VOC audio files — the classic Creative Labs Sound Blaster format used in DOS-era games — to AMR, a speech-optimized compressed format used in mobile telephony. This tool uses the libopencore_amrnb codec to re-encode the raw PCM audio from VOC into AMR-NB at 12.2 kbps, running entirely in your browser with no file uploads.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your VOC 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
VOC files store uncompressed raw PCM audio (typically 8-bit unsigned or 16-bit signed samples) in a simple chunked container developed by Creative Labs. During conversion, FFmpeg decodes the raw PCM stream from the VOC container and re-encodes it using the libopencore_amrnb encoder into Adaptive Multi-Rate Narrowband (AMR-NB) audio. AMR-NB is a lossy codec designed specifically for speech at an 8 kHz sample rate, so the input audio is resampled to 8000 Hz and downmixed to mono if needed. This is a full transcoding operation — not a remux — because the source and destination codecs are entirely different: uncompressed PCM versus a bitrate-switched speech codec. Expect a significant reduction in file size alongside some loss of audio fidelity, particularly for any non-speech content like music or sound effects.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool, which handles all the decoding, resampling, and re-encoding required to transform the raw PCM VOC audio into compressed AMR output. |
-i input.voc
|
Specifies the input VOC file. FFmpeg reads the Creative Labs VOC container, parses its chunk headers to determine the PCM codec (pcm_u8 or pcm_s16le), and demuxes the raw audio samples for decoding. |
-c:a libopencore_amrnb
|
Sets the audio encoder to libopencore_amrnb, which implements the Adaptive Multi-Rate Narrowband codec. This encoder converts the decoded PCM audio — after resampling to 8000 Hz mono — into the compressed bitstream stored in the AMR output file. |
-b:a 12200
|
Sets the AMR-NB bitrate to 12,200 bits per second, which corresponds to AMR mode 7 — the highest quality encoding mode available for AMR-NB. This provides the best speech intelligibility and fidelity for audio originally captured in VOC format. |
output.amr
|
Specifies the output filename with the .amr extension. FFmpeg uses this extension to select the AMR muxer, which writes the encoded libopencore_amrnb frames into a standard AMR file with the required '#!AMR ' magic number header. |
Common Use Cases
- Extracting speech or voice narration from a DOS game VOC file to use as a ringtone or notification sound on an older mobile phone that supports AMR
- Archiving digitized voice recordings that were originally captured with a Sound Blaster card and need to be shared via MMS or embedded in mobile applications
- Repurposing retro game character dialogue samples — stored as VOC files — into AMR format for use in a mobile app or educational voice interface
- Converting legacy multimedia kiosk audio assets from the VOC format into AMR for playback on embedded systems with limited codec support
- Testing AMR encoder behavior and speech codec quality degradation by feeding it known raw PCM content from a controlled VOC source
Frequently Asked Questions
Yes, but the extent depends on the audio content. VOC files using pcm_u8 (8-bit unsigned PCM) already have relatively limited dynamic range compared to modern audio formats. AMR-NB is a lossy speech codec optimized for human voice at 8 kHz, so it will degrade any music, sound effects, or non-speech content significantly. For speech or voice content that was originally recorded at 8 kHz or 11 kHz, the perceptual quality loss is often minimal at the 12.2 kbps setting.
AMR-NB (libopencore_amrnb) is strictly a mono codec — it does not support stereo channels. If your VOC file contains stereo audio, FFmpeg will automatically downmix it to mono during conversion. Stereo VOC files are uncommon since the format was predominantly used with single-channel Sound Blaster hardware, but if yours is stereo, the left and right channels will be blended into a single mono stream in the output.
VOC files store uncompressed raw PCM audio, so their size scales directly with sample rate, bit depth, and duration. AMR-NB compresses speech audio down to 12.2 kbps (at the highest quality setting used here), which is dramatically lower than even 8-bit PCM at 8 kHz (64 kbps). A one-minute VOC file might be around 480 KB at 8-bit/8kHz, while the equivalent AMR output would be approximately 90 KB — a roughly 5:1 compression ratio.
Replace the value after -b:a with one of the supported AMR-NB bitrates: 4750, 5150, 5900, 6700, 7400, 7950, 10200, or 12200 (bits per second). For example, use -b:a 7950 for a lower-bitrate output that still provides acceptable speech intelligibility. The default in this tool is 12200, which is the highest quality AMR-NB mode and corresponds to AMR mode 7 (12.2 kbps).
Yes. On Linux or macOS, you can use a shell loop: for f in *.voc; do ffmpeg -i "$f" -c:a libopencore_amrnb -b:a 12200 "${f%.voc}.amr"; done. On Windows Command Prompt, use: for %f in (*.voc) do ffmpeg -i "%f" -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". This is especially useful when working with large collections of DOS game audio assets stored as individual VOC files.
No. VOC files use a proprietary chunked structure with block headers that store format parameters like sample rate and codec type, but this metadata is format-specific and has no equivalent in AMR. The AMR container is extremely minimal — it stores essentially only the encoded audio frames and a magic number header. Any descriptive metadata from the VOC file is discarded during conversion, so you may want to note the original file's sample rate and source application before converting.
Technical Notes
The VOC format supports two PCM codecs in FFmpeg: pcm_u8 (8-bit unsigned, the original Sound Blaster format) and pcm_s16le (16-bit signed little-endian, used in later Sound Blaster 16 hardware). Both are decoded to raw PCM internally before being passed to the AMR encoder. The libopencore_amrnb encoder requires exactly 8000 Hz mono input; FFmpeg's resampler (libswresample) handles any necessary sample rate conversion automatically. If your VOC file was recorded at a non-standard rate common in DOS games (such as 11025 Hz or 22050 Hz), the resampling to 8 kHz will reduce the audio bandwidth and may affect the character of the sound. AMR-NB is also a frame-based codec operating on 20ms frames, which introduces a small algorithmic delay. Note that libopencore_amrnb must be compiled into your local FFmpeg build to run the command locally — many package-managed FFmpeg distributions omit it due to patent licensing considerations, so you may need to build FFmpeg from source with --enable-libopencore-amrnb or use a pre-built binary from a third-party distributor.