Speex
Audio Speech Compression
Sampling Rate: Narrowband (8 kHz), wideband (16 kHz), and ultra-wideband (32 kHz) compression in the same bitstream.
Features List
- Perceptual Enhancement
- Packet loss concealment
- Constant, Average, and Variable bitrate operation
- Configurable complexity AND quality enables user to trade off between CPU utilization and voice quality
- Wide variety of user-specified bit rates
- Voice Activity Detection (VAD)
- Discontinuous Transmission (DTX)
Availability
Platforms Arm ® Devices – Cortex-A8 / A9 / A15 (Armv7-A, Armv8-A, Armv9-A) | Cortex-M4 || *Legacy – Cortex-M3/ARM9E/ARM11 Texas Instruments – TI TMS320C6000 C64x / C64x+/ C66x, C674x Win32 LIB / DLL Linux i686
ADT Speex is available on the above Platforms: Other configurations are available upon request.
Specifications
NOTE: We specify MIPS (Millions of Instructions Per Second) as MCPS (Millions of Instruction Cycles Per Second). Unless otherwise specified, peak MIPS are indicated.
↓ Click on links below to view specification tables.
ARM Cortex-A8/A9/A15 Memory
MEMORY REQUIREMENTSAll Memory usage is given in units of byte.
Function | Program Memory | Data Memory | Scratch |
Encode | 152K | 12K | 32096 |
Decode | 16096 |
Speex ARM Cortex-A8/A9/A15
Narrowband Mode (8 Khz) CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 24600 | 116 | 5 |
10 | 4 | 24600 | 65 | 5 |
4 | 10 | 8000 | 72 | 4 |
4 | 4 | 8000 | 41 | 4 |
Speex ARM Cortex-A8/A9/A15
Wideband Mode (16 Khz) CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 42400 | 298 | 13 |
10 | 4 | 42400 | 153 | 13 |
4 | 10 | 12800 | 129 | 11 |
4 | 4 | 12800 | 72 | 11 |
Speex ARM Cortex-A8/A9/A15
Ultra-Wideband Mode CPU Requirements (32 Khz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 44000 | 311 | 25 |
10 | 4 | 44000 | 166 | 25 |
4 | 10 | 22375 | 136 | 24 |
4 | 4 | 22375 | 86 | 24 |
Speex Arm Cortex-M4
MEMORY REQUIREMENTSAll Memory usage is given in units of byte.
Function | Program Memory | Data Memory | Tables | Scratch |
Encode | 152K | 12K | 19256 | 32096 |
Decode | 16096 |
Speex NB Arm Cortex-M4
Narrowband Mode CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 24600 | 193.8 | 6.05 |
10 | 4 | 24600 | 85.4 | 5.95 |
4 | 10 | 8000 | 99.9 | 53.5 |
4 | 4 | 8000 | 59.2 | 5.3 |
Speex WB Speex Arm Cortex-M4
Wideband Mode CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 42400 | 371.1 | 14.6 |
10 | 4 | 42400 | 167.9 | 14.5 |
4 | 10 | 12800 | 153.2 | 13 |
4 | 4 | 12800 | 88 | 12.9 |
Speex Ultra-WB Arm Cortex-M4
Ultra-Wideband Mode CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 44000 | 387.9 | 28.1 |
10 | 4 | 44000 | 184.2 | 28.2 |
4 | 10 | 22375 | 193.4 | 27 |
4 | 4 | 22375 | 106.5 | 26.9 |
–Speex C674x / C64x / C64x+ / C66x Memory
MEMORY REQUIREMENTS
All Memory usage is given in units of byte. Function Program Memory Data Memory Tables Scratch Encode 170K 1508 19256 64080 Decode 32080
– PER CHANNEL
All memory requirements are in units of byte.
Mode | Encoder | Decoder |
Narrowband | 6461 | 5773 |
Wideband | 7709 | 6840 |
Ultra-Wideband | 9117 | 8067 |
Speex C674x / C64x / C64x+ / C66x
Narrowband Mode CPU Requirements (MIPS = MHz)Current | Target | |||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS | Encode MIPS | Decode MIPS |
10 | 10 | 24600 | 175 | 8.3 | 58 | 3 |
10 | 4 | 24600 | 69 | 8.3 | 23 | 3 |
4 | 10 | 8000 | 75 | 7.5 | 25 | 3 |
4 | 4 | 8000 | 42 | 7.5 | 14 | 3 |
Speex C674x / C64x / C64x+ / C66x
Wideband Mode CPU Requirements (MIPS = MHz)Current | Target | |||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS | Encode MIPS | Decode MIPS |
10 | 10 | 42400 | 363 | 14 | 121 | 4 |
10 | 4 | 42400 | 156 | 14 | 52 | 4 |
4 | 10 | 12800 | 129 | 14 | 43 | 4 |
4 | 4 | 12800 | 71 | 14 | 23 | 4 |
Speex C674x / C64x / C64x+ / C66x
Ultra-Wideband Mode CPU Requirements (MIPS = MHz)Current | Target | |||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS | Encode MIPS | Decode MIPS |
10 | 10 | 44000 | 375 | 23 | 125 | 8 |
10 | 4 | 44000 | 167 | 23 | 55 | 8 |
4 | 10 | 22375 | 164 | 22 | 55 | 8 |
4 | 4 | 22375 | 85 | 22 | 28 | 8 |
Speex Win 32 (Dll and static lib)
Narrowband Mode CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 24600 | 130.36 | 2.65 |
10 | 4 | 24600 | 47.54 | 3.15 |
4 | 10 | 8000 | 53.17 | 2.65 |
4 | 4 | 8000 | 29.82 | 2.32 |
Win 32 (Dll and static lib)
Wideband Mode CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 24600 | 266.35 | 9.61 |
10 | 4 | 24600 | 109.45 | 7.45 |
4 | 10 | 8000 | 91.10 | 5.80 |
4 | 4 | 8000 | 47.04 | 6.63 |
Speex Win 32 (Dll and static lib)
Ultra-Wideband Mode CPU Requirements (MIPS = MHz)Current Quality Complexity Bit Rate Encode MIPS Decode MIPS 10 10 44000 270.66 12.59 10 4 44000 117.44 11.59 4 10 22375 120.59 15.4 4 4 22375 60.13 19.05
MEMORY REQUIREMENTS
All Memory usage is given in units of byte.
Function | Program Memory | Data Memory | Scratch |
Encode | 66K | 12K | 32096 |
Decode | 16096 |
Speex i686 Memory
MEMORY REQUIREMENTSAll Memory usage is given in units of byte.
Function | Program Memory | Data Memory | Scratch |
Encode | 152K | 12K | 32096 |
Decode | 16096 |
Speex i686
Narrowband Mode CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 24600 | 86.7 | 2.55 |
10 | 4 | 24600 | 32.3 | 2.38 |
4 | 10 | 8000 | 35.02 | 2.04 |
4 | 4 | 8000 | 19.72 | 2.04 |
Speex i686
Wideband Mode (16 Khz) CPU Requirements (MIPS = MHz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 42400 | 182.9 | 5.95 |
10 | 4 | 42400 | 73.44 | 5.44 |
4 | 10 | 12800 | 59.5 | 3.74 |
4 | 4 | 12800 | 31.9 | 4.08 |
Speex i686
Ultra-Wideband Mode CPU Requirements (32 Khz)Current | ||||
Quality | Complexity | Bit Rate | Encode MIPS | Decode MIPS |
10 | 10 | 44000 | 182.9 | 8.33 |
10 | 4 | 44000 | 79.7 | 8.0 |
4 | 10 | 22375 | 79.9 | 10.2 |
4 | 4 | 22375 | 38.2 | 9.86 |
Description
Speex is an audio compression format specifically tuned for the reproduction of human speech. It is a flexible speech compression algorithm that can be used in a wide variety of voice applications including Voice Over IP (VoIP). Since Speex was designed for VoIP instead of cell phone use, the codec must be robust to lost packets.
The features listed above are included in the Speex codec. These features can be configured by the
host application.
Function API's
API function call summary
SPEEX_ADT_initEncoder()
SPEEX_ADT_initDecoder()
SPEEX_ADT_encode()
SPEEX_ADT_decode()
SPEEX_ADT_deleteEncoder()
SPEEX_ADT_deleteDecoder()
SPEEX_ADT_getStatus()