Adaptive Multi-Rate audio codec
# Adaptive Multi-Rate audio codec

The Adaptive Multi-Rate (AMR, AMR-NB or GSM-AMR) audio codec is an audio compression format optimized for speech coding. AMR is a multi-rate narrowband speech codec that encodes narrowband (200–3400 Hz) signals at variable bit rates ranging from 4.75 to 12.2 kbit/s with toll quality speech starting at 7.4 kbit/s.

AMR was adopted as the standard speech codec by 3GPP in October 1999 and is now widely used in GSM and UMTS. It uses link adaptation to select from one of eight different bit rates based on link conditions.

AMR is also a file format for storing spoken audio using the AMR codec. Many modern mobile telephone handsets can store short audio recordings in the AMR format, and both free and proprietary programs exist (see Software support) to convert between this and other formats, although AMR is a speech format and is unlikely to give ideal results for other audio. The common filename extension is .amr. There also exists another storage format for AMR that is suitable for applications with more advanced demands on the storage format, like random access or synchronization with video. This format is the 3GPP-specified 3GP container format based on ISO base media file format.

## Usage

The frames contain 160 samples and are 20 milliseconds long. AMR uses various techniques, such as ACELP, DTX, VAD and CNG. The usage of AMR requires optimized link adaptation that selects the best codec mode to meet the local radio channel and capacity requirements. If the radio conditions are bad, source coding is reduced and channel coding is increased. This improves the quality and robustness of the network connection while sacrificing some voice clarity. In the particular case of AMR this improvement is somewhere around S/N = 4–6 dB for usable communication. The new intelligent system allows the network operator to prioritize capacity or quality per base station.

There are a total of 14 modes of the AMR codec, eight are available in a full rate channel (FR) and six on a half rate channel (HR).

| Mode | Bitrate (kbit/s) | Channel | Compatible with |
| - | - | - | - |
| AMR_12.20 | 12.20 | FR | ETSI GSM enhanced full rate |
| AMR_10.20 | 10.20 | FR | |
| AMR_7.95 | 7.95 | FR/HR | |
| AMR_7.40 | 7.40 | FR/HR | TIA/EIA IS-641 TDMA enhanced full rate |
| AMR_6.70 | 6.70 | FR/HR | ARIB 6.7 kbit/s enhanced full rate |
| AMR_5.90 | 5.90 | FR/HR | |
| AMR_5.15 | 5.15 | FR/HR | |
| AMR_4.75 | 4.75 | FR/HR | |
| AMR_SID | 1.80 | FR/HR | |

## Features

* Sampling frequency 8 kHz/13-bit (160 samples for 20 ms frames), filtered to 200–3400 Hz.
* The AMR codec uses eight source codecs with bit-rates of 12.2, 10.2, 7.95, 7.40, 6.70, 5.90, 5.15 and 4.75 kbit/s.
* Generates frame length of 95, 103, 118, 134, 148, 159, 204, or 244 bits for AMR FR bit rates 4.75, 5.15, 5.90, 6.70, 7.40, 7.95, 10.2, or 12.2 kbit/s, respectively. AMR HR frame lengths are different.
* AMR utilizes discontinuous transmission (DTX), with voice activity detection (VAD) and comfort noise generation (CNG) to reduce bandwidth usage during silence periods
* Algorithmic delay is 20 ms per frame. For bit-rates of 12.2, there is no "algorithm" look-ahead delay. For other rates, look-ahead delay is 5 ms. Note that there is 5 ms "dummy" look-ahead delay, to allow seamless frame-wise mode switching with the rest of rates.
* AMR is a hybrid speech coder, and as such transmits both speech parameters and a waveform signal
   * Linear predictive coding (LPC) is used to synthesize the speech from a residual waveform. The LPC parameters are encoded as line spectral pairs (LSP).
   * The residual waveform is coded using algebraic code-excited linear prediction (ACELP).
* The complexity of the algorithm is rated at 5, using a relative scale where G.711 is 1 and G.729a is 15.
* PSQM testing under ideal conditions yields mean opinion scores of 4.14 for AMR (12.2 kbit/s), compared to 4.45 for G.711 (μ-law)
* PSQM testing under network stress yields mean opinion scores of 3.79 for AMR (12.2 kbit/s), compared to 4.13 for G.711 (μ-law)

## Licensing and patent issues

AMR codecs incorporate several patents of Nokia, Ericsson, NTT and VoiceAge, the last one being the License Administrator for the AMR patent pools. VoiceAge also accepts submission of patents for determination of their possible essentiality to these standards. However, it's very difficult to determine if there were actually any patents in existence for the so-called inventions related to AMR/AMR-WB codecs, since inventors (and their lawyers) do everything they can to hide patents related to AMR/AMR-WB technology. Apparently, all these patents are hidden from all other researches and general audience that could perhaps spot prior art in the claimed "inventions" patented by the patent holders of the AMR/AMR-WB codecs.

The initial fee for professional content creation tools and "real-time channel" products is US$6,500. The minimum annual royalty is $10,000, which, in the first year, excludes the initial fee. Per-channel license fees fall from $0.99 to $0.50 with volume, up to a maximum of $2 million annually.

In the category of personal computer products, e.g., media players, the AMR decoder is licensed for free. The license fee for a sold encoder falls from $0.40 to $0.30 with volume, up to a maximum of $300,000 annually. The minimum annual royalty is not applied to licensed products that fall under the category of personal computer products and use only the free decoder.

More information:

* VoiceAge licensing information, including pricing to license the AMR codecs
* 3GPP legal issues
* The 3G Patent Platform and its licensing policy
* AMR Codecs as Shared Libraries — legal notices for usage of amrnb and amrwb libraries based on the reference implementation

## Software support

* 3GPP TS 26.073 – AMR speech Codec (C source code) – reference implementation
* Audacity (beta version 1.3) via the FFmpeg integration libraries (both input and output format)
* FFmpeg with OpenCORE AMR libraries
* Android Used for voice recorder.
* AMR Codecs as Shared Libraries – amrnb and amrwb libraries development site. These libraries are based on the reference implementation and were created to prevent embedding of possibly patented source code into many open source projects.
* Open source software to convert the .amr format: RetroCode, Amr2Wav, both are in an early developmental stage
* AMR Player is freeware to play AMR audio files, and can convert AMR from/to MP3/WAV audio format.
* Nokia Multimedia Converter 2.0 can convert (create) samples, one can use Nokia's conversion tool to create both .amr and .awb files. It works in Windows 7 as well if the setup is run in XP compatibility mode.
* MPlayer (SMPlayer, KMPlayer)
* Parole Media Player 0.8.1 (in Ubuntu 16.04)
* QuickTime Player and multimedia framework
* RealPlayer version 11 and later
* VLC media player version 1.1.0 and later (input format only, not output format)
* ffdshow
* Apple iPhone (can play back AMR files)
* iOS & macOS (iMessage)
* BlackBerry smartphones (used for voice recorder file format, while BlackBerry 10 cannot play AMR format)
* K-Lite Codec Pack
* Media Player Classic Home Cinema, around 1.7.1
* foobar2000 with the component foo_input_amr
