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 | Cortex-M3 / M4
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
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-M3/M4 | ARM11/9e Memory
MEMORY REQUIREMENTSAll Memory usage is given in units of byte.
| Function | Program Memory | Data Memory | Tables | Scratch |
| Encode | 152K | 12K | 19256 | 32096 |
| Decode | 16096 |
ARM Cortex-M3 / M4 | ARM9E / ARM11
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 |
ARM Cortex-M3 / M4 | ARM9E / ARM11
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 |
ARM Cortex-M3 / M4 | ARM9E / ARM11
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 REQUIREMENTSAll 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 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 |
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 |
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 |
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()
