Aller au contenu

Speex

Un article de Wikipédia, l'encyclopédie libre.
Speex
Caractéristiques
Type MIME
audio/x-speex, audio/speexVoir et modifier les données sur Wikidata
Développé par
Version initiale
Type de format
Contenu par
Ogg
Norme
Spécification
Site web
(en) www.speex.orgVoir et modifier les données sur Wikidata

Speex est un codec libre et sans brevets. Il compresse avec perte de données (comme MP3 et Vorbis) et est spécialisé et optimisé pour la voix humaine.

Speex, projet né indépendant, a été intégré au projet Ogg le . Pour rappel, Ogg est un format de fichier qui contient des flux audio et/ou vidéo. Un fichier Ogg peut donc contenir un flux Speex comme un flux Vorbis[réf. nécessaire].

Il obtient pour tout ce qui est parole, des rapports qualitĂ© et de taille bien supĂ©rieurs aux formats de compression similaires conçus pour la compression musicale. À 12 kbit/s la qualitĂ© est correcte pour tout type de conversation[1].

Il est présent dans une large base de logiciels, notamment grùce à des plugins et des filtres. Il est supporté par des logiciels de téléconférence, de flux de données, de traitement du son, de lecture multimédia, de P2P, des jeux.

Speex est devenu obsolĂšte en 2012, car le format opus est plus performant[2].

Description

[modifier | modifier le code]

À la diffĂ©rence de la plupart des autres codecs dĂ©diĂ©s Ă  la parole, Speex n'est pas fait pour une utilisation sur tĂ©lĂ©phone portable mais plutĂŽt pour la VoIP et la compression dans des fichiers. Les principaux buts ont Ă©tĂ© de crĂ©er un codec optimisĂ© pour la parole, qui associe une bonne comprĂ©hension du dialogue transmis, ainsi qu'un fort taux de compression des donnĂ©es possibles. Speex peut utiliser de nombreux dĂ©bits et bande passante possibles. Conçu pour une utilisation en VoIP, Speex gĂšre bien la perte de donnĂ©es dans le transport, mais il ne gĂšre pas les paquets corrompus car le protocole de transfert UDP assure que les paquets transmis sont intacts (ils ne sont pas transmis s'ils sont altĂ©rĂ©s). La mĂ©thode retenue par le codec Speex, est le CELP (Code Excited Linear Prediction). La raison principale est que CELP s'est avĂ©rĂ© capable de s'adapter Ă  des dĂ©bits bas (comme mis en Ă©vidence par DoD CELP Ă  4,8 kbit/s), aussi bien qu'aux dĂ©bits plus hauts (comme pour le G.728 Ă  16 kbit/s). Les caractĂ©ristiques principales peuvent ĂȘtre rĂ©sumĂ©es comme suit :

  • Logiciel libre/open-source, Libre de tous brevets et royalties
  • IntĂ©gration d'une bande passante restreinte Ă  normale dans un mĂȘme flux de donnĂ©es
  • Grande variĂ©tĂ© de dĂ©bits disponibles (de 2 kbit/s Ă  44 kbit/s)
  • Changement de dĂ©bit dynamique et codage Ă  dĂ©bit variable
  • VAD (Voice Activity Detection) (intĂ©grĂ© dans le codage Ă  dĂ©bit variable)
  • ComplexitĂ© variable
  • Mode Bande passante Ă©tendue (32 kHz Ă  plus de 48 kHz)
  • Option d'encodage stĂ©rĂ©o par rĂ©glage du volume de chaque canal (au lieu d'utiliser un dĂ©lai entre les deux canaux)

Fonctionnalités

[modifier | modifier le code]
Fréquence d'échantillonnage
Speex est conçu de maniĂšre Ă  ĂȘtre utilisĂ© dans trois frĂ©quences d'Ă©chantillonnage diffĂ©rentes : 8 kHz (Comme pour la transmission des appels tĂ©lĂ©phoniques), 16 kHz, 32 kHz
Qualité
L'encodeur Speex est contrÎlé par un paramÚtre de qualité compris entre 0 et 10. En mode CBR, le paramÚtre de qualité est un nombre entier, en mode VBR, c'est un nombre à virgule flottante
Complexité (variable)
Avec Speex, il est possible de gĂ©rer la complexitĂ© de l'encodeur par un paramĂštre rĂ©glable entre 1 et 10 et qui dĂ©finit la zone de recherche de l'encodeur. Un peu comme les options -1 Ă  -9 de l'utilitaire de compression de donnĂ©es gzip. Pour une utilisation normale, le niveau de bruit pour une complexitĂ© de 1 est comprise entre 1 et 2 dB de plus qu'avec le rĂ©glage de complexitĂ© de 10. Mais les ressources CPU nĂ©cessaires pour une complexitĂ© de 10 sont 5 fois supĂ©rieure Ă  celle nĂ©cessaire Ă  une complexitĂ© de 1. En pratique le meilleur rĂ©glage est compris entre 2 et 4, des paramĂštres supĂ©rieurs sont utilisĂ©s plutĂŽt pour des sons autres que la parole (comme pour le codage DTMF (Dual-Tone Multi-Frequency) ou pour un encodage qui n'a pas besoin d'ĂȘtre en temps rĂ©el.
Débit variable (Variable Bit-Rate (VBR))
Le mode de codage à débit variable (VBR) permet au codec de changer de débit dynamiquement pour s'adapter à une source audio plus difficile à encoder. Les sons complexes sont codés avec un plus grand débit, et les sons simples avec moins de débit. Le but est que la qualité reste constante en faisant varier le débit. Cependant comme le débit final n'est pas garanti, des problÚmes peuvent se poser dans les applications temps réel tel que la VoIP.
Débit de données moyen (ABR) (Average Bit Rate)
Le principe du débit de données moyen, résout un des problÚmes du codage à débit variable, en ajustant dynamiquement la qualité du codage VBR de maniÚre à obtenir un débit de données cible spécifique. La qualité obtenue est en conséquence inférieure au codage à débit variable.
Voice Activity Detection (VAD)
Quand cette option est activé, le VAD détecte quand l'audio encodé est du dialogue ou du silence/bruit de fond. VAD est toujours implicitement activé en encodage VBR, donc cette option est utile uniquement en mode non VBR. Dans ce cas Speex détecte les périodes sans dialogue et les encode avec le strict minimum de bits pour reproduire le bruit de fond. Cette fonction est appelée Comfort Noise Generation (CNG).
Transmission Discontinues (Discontinuous Transmission (DTX))
La transmission discontinue est une fonctionnalité qui s'ajoute aux opérations de VAD et de VBR, qui permet de couper la transmission complÚtement quand le bruit de fond est stationnaire. Dans un fichier, 5 bits sont utilisés pour chaque frame manquante (correspondant à 250 bit/s)
Perfectionnement perceptible
Le perfectionnement perceptible est une partie du décodeur qui quand il est activé, tente de réduire la perception du bruit produit par le processus de codage/décodage. Dans la plupart des cas, le perfectionnement perceptible crée un son différent de l'original (avec un rapport signal sur bruit différent), mais le son semble finalement meilleur à l'écoute.
Délai Algorithmique
Chaque codec introduit un délai dans la transmission, pour Speex, ce délai est égal à la taille d'une frame, plus un peu de temps nécessaire au traitement de chaque frame. Pour une bande passante de 8 kHz, le délai est d'environ 30 ms, et pour une bande passante de 16 kHz, ce délai monte à 34 ms. Ces valeurs ne comprennent pas le temps de calcul processeur nécessaire à l'encodage et au décodage de chaque frame.

Quelques logiciels supportant le format Speex (voir la page plugins & softwares du site officiel) :

Étymologie

[modifier | modifier le code]

Speex est un jeu de mots avec speaks qui signifie en anglais « (il) parle ».

Notes et références

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]