# Speex

Speex is een inmiddels verouderde spraakcodec speciaal ontworpen voor Voice Over IP (spraak over het internet) en is een voorloper van de Opus-codec. Waar andere spraakcodecs zich specialiseren in gsm-technologie, richt Speex zich op de IP-wereld. Deze spraakcodec is niet alleen open source maar ook gratis en vrij van patenten. Speex maakt deel uit van GNU project.
Speex is een project van de Xiph.Org Foundation.

## Eigenschappen
### Bemonsteringssnelheid

Gebruikers kunnen kiezen tussen een goede kwaliteit van spraak (hoge bitsnelheid of bitrate) of een lage kwaliteit (lage bitrate). De bitrates variëren van 2 kbit/s tot 44 kbit/s. Bij een hoge bitrate is er een voorziening voor een bemonsteringssnelheid van 16 kHz, wat overeenkomt met wideband, en bij lage bitrates kan men kiezen voor een bemonsteringssnelheid van 8 kHz, wat overeenkomt met een gewone telefoonlijn. Speex ondersteunt ook Ultra-Wideband, dat overeenkomt met 32 kHz.

### Codering

Speex is gebaseerd op CELP, Code Excited Linear Prediction.

### OGG-formaat

De bitstreams van Speex kunnen in OGG-bestanden worden opgeslagen. OGG-bestanden zijn een soort container die de multimediadata bijhouden. Het is vergelijkbaar met MP3, maar dan wel van een betere kwaliteit.

### Variabele bitrate (VBR)

Door deze eigenschap kan Speex zijn bitrate laten variëren. Zo kan het zich aanpassen aan de moeilijkheid van het geluidsfragment, bv. klinkers hebben een hogere bitrate nodig dan de f-klank. Hierdoor kan dezelfde kwaliteit behouden worden met verschillende bitrates. Een van de nadelen van deze eigenschap is dat door een kwaliteit vast te leggen het moeilijk zal worden om de gemiddelde bitrate op voorhand vast te leggen. Een ander nadeel is dat VoIP geen al te hoge bitrate mag hebben voor het kanaal voor realtimegesprekken.

### Gemiddelde bitrate (ABR)

ABR lost een van de nadelen van VBR op. Het past de VBR-kwaliteit aan om aan de vastgelegde gemiddelde kwaliteit te voldoen. De kwaliteit zal lager liggen, doordat dit in real time gebeurt.

### Stemactiviteitdetectie (VAD)

VAD (Engels: Voice Activity Detection) detecteert wanneer men spreekt en zal dan versleutelen met de juiste kwaliteit. Als er niet gesproken wordt, zal het achtergrondgeluid met een lagere kwaliteit worden versleuteld. Dit noemt men comfortgeluidgeneratie. VAD wordt automatisch gebruikt bij VBR.

### Discontinue transmissie (DTX)

DTX gaat een stap verder dan VAD bij VBR. In plaats van de kwaliteit te verlagen bij achtergrondgeluid wordt bij DTX niets verzonden van het achtergrondgeluid.

### Vertraging

Speex gebruikt een delay met de grootte van een frame. Bij een 8 kHz-bemonsteringssnelheid is de vertraging 30 ms, bij 16 kHz is het 34 ms. Hier komen nog bij de vertragingen veroorzaakt door CPU-snelheden.

## Formaat en standaarden

Om de term Speex compatible te mogen gebruiken moet men bepaalde formaten en standaarden gebruiken. Dit houdt in dat de decoder alle narrowband modes moet kunnen ondersteunen. Als er een Wideband decoder aanwezig is, moet deze Narrowband streams kunnen decoderen. Voor codering moet er ten minste een narrowband encoder of wideband encoder beschikbaar zijn.
RTF-pakketformaat en OGG-formaat worden gebruikt door Speex.

## Applicaties

Speex is terug te vinden in een groot aantal toepassingen zoals: Xbox Live, Winamp, KSP Sound Player, Foobar2000. Speex wordt vooral gebruikt in teleconferencingsoftware, streaming-, P2P- en audioapplicaties.

## Externe link

* (en) Officiële Speex-site
* (en) Speex specificatie
* ↑ (en) Speex-dev, Ogg MIME types scheme. Geraadpleegd op 17 december 2008.