PROJET - MODULE ARCHITECTURE AVANCÉE - 2026
NeuralCodec RPi
Neural Codecs for Real-Time Voice Transmission over
Low-Bandwidth Networks on Raspberry Pi
classique
neuronal
Réalisé Par: EL AMRANI Chakir - LASFAR Ibrahim - FELLAHI Zakaria
Université Mohammed V de Rabat - Master Informatique et Télécommunications (M.I.T)
Jury : Pr. BELMAJDOUB Hanae
github.com/AmraniCh/neuralcodec-rpi
REPOSITORY
PROBLÉMATIQUE
Le problème du faible débit
1
Les limites des codecs classiques
Opus, AMR-WB deviennent inutilisables sous 6–8 kbps.
2
Des réseaux très contraints
Satellite, radio HF, IoT : quelques kbps disponibles seulement.
3
Le neuronal, une promesse non prouvée
Meilleure qualité à bas débit — mais tient-il sur du matériel embarqué ?
QUESTION CENTRALE
Pour un réseau à faible débit, quel type de codeur est le plus adapté ?
Classique
ou
Neuronal
… et peut-il tourner en temps réel sur un Raspberry Pi 4 (2 Go) ?
NeuralCodec-RPi · Architecture Avancée
02
CADRAGE
Réseaux cibles & points de fonctionnement
Les réseaux à faible débit visés imposent quelques kbps pour la voix. Nous fixons deux points de test.
RÉSEAU | DÉBIT VOIX |
Radio HF (militaire) | 0,6 – 2,4 kbps |
Satellite Iridium | 2,2 – 3,8 kbps |
IoT LoRa | 0,3 – 1,3 kbps |
2G GPRS | 30 – 50 kbps |
2G EDGE | 130 – 200 kbps |
Tableau 1 — Débits voix des réseaux à faible débit visés.
Deux points de fonctionnement retenus
POINT BAS
3 kbps
Compatible satellite Iridium & radio HF militaire.
POINT HAUT
6 kbps
Qualité acceptable pour de la 2G dégradée.
NeuralCodec-RPi · Architecture Avancée
03
LES CANDIDATS
Quatre codecs, deux familles
Tons chauds = codecs classiques (règles DSP) · tons froids = codecs neuronaux (IA)
CLASSIQUE
Opus
DÉBIT
6 – 64 kbps
Xiph.Org — standard du web
CLASSIQUE
Codec2
DÉBIT
1,2 – 3,2 kbps
David Rowe — radio très bas débit
NEURONAL
EnCodec
DÉBIT
1,5 – 24 kbps
Meta AI (2022)
NEURONAL
SoundStream
DÉBIT
3,2 – 9,2 kbps
Google (2021) — via Lyra v2
NeuralCodec-RPi · Architecture Avancée
04
MÉTHODOLOGIE
Benchmarking
Qualité — PESQ
Standard international ITU-T P.862. Score perceptuel de 1,0 à 4,5. Seuil d'intelligibilité : 2,5.
Débit réel
Calculé depuis la taille du fichier compressé (kbps).
Temps réel — RTF
Temps de calcul / durée audio. RTF < 1 = temps réel.
SETUP EXPÉRIMENTAL
CARTE
Raspberry Pi 4 · 2 Go RAM
CPU
4× Cortex-A72 @ 1,8 GHz
JEU DE TEST
LibriSpeech · 11,72 s
FORMAT
16 kHz · mono · PCM
NeuralCodec-RPi · Architecture Avancée
05
RÉSULTATS · QUALITÉ
Qualité (PESQ) en fonction du débit
À 6 KBPS
EnCodec 3,14 vs Opus 2,44
+0,73 PESQ pour le neuronal
SOUS 8 KBPS
Opus s'effondre (2,44 à 6 kbps)
les classiques décrochent
ZONE 3–6 KBPS
seuls les neuronaux passent 2,5
= seuil d'intelligibilité
NeuralCodec-RPi · Architecture Avancée
06
RÉSULTATS · MATÉRIEL
Tient-il en temps réel sur le Pi ? (RTF)
RTF < 1 = temps réel. Mesuré à l'encodage et au décodage sur le Raspberry Pi 4.
CODEC | RTF ENCODE | RTF DÉCODE | TEMPS RÉEL |
● Codec2 | 0,007 | 0,006 | ✓ OUI |
● Opus | 0,04 | 0,02 | ✓ OUI |
● SoundStream | 0,07 | 0,07 | ✓ OUI |
● EnCodec | 1,50 | 1,67 | ✗ NON |
EnCodec offre la meilleure qualité mais dépasse RTF 1 → impossible en temps réel sur le Pi. SoundStream : marge ×14.
NeuralCodec-RPi · Architecture Avancée
07
LA RÉPONSE
Quel codec gagne ?
Chaque codec a sa zone d'excellence. Le gagnant doit combiner qualité (PESQ) ET faisabilité temps réel (RTF).
< 3 kbps
Codec2 / EnCodec
PESQ ~1,8–2,0
RTF : Codec2 ✓ EnCodec ✗
EnCodec : bonne qualité mais RTF > 1 → pas temps réel
3 – 8 kbps
SoundStream / EnCodec
PESQ 2,5 – 3,1
RTF : SoundStream 0,07 ✓
Seul codec au-dessus du seuil PESQ 2,5 ET temps réel
> 8 kbps
Opus
PESQ 4,0 +
RTF : 0,04 ✓
Meilleure qualité, coût CPU minimal
DÉCISION
SoundStream — seul codec intelligible (PESQ > 2,5) à bas débit ET temps réel sur le Pi (RTF 0,07). EnCodec écarté : RTF > 1.
NeuralCodec-RPi · Architecture Avancée
08
ARCHITECTURE
Pipeline en sept couches, deux Raspberry Pi
PI A — ÉMETTEUR
PI B — RÉCEPTEUR
Microphone
Entrée audio · 20 Hz – 20 kHz · échantillonnage 44,1 kHz
Couche 1 — Capture Audio
Trames de 20 ms · rééchantillonnage → 16 kHz
Couche 2 — Encodeur Neuronal
Compression du signal
Couche 3 — Quantification (RVQ)
≈ 8 octets / trame
Haut-parleur
Sortie audio
Couche 7 — Lecture Audio
Restitution temps réel
Couche 6 — Décodeur Neuronal
Reconstruction du signal
Couche 5 — Déquantification
Reconstruction du vecteur latent
Couche 4 — Transport UDP (socket réseau)
Compression SoundStream neuronale 100 % locale: débit ≈ 3,2 kbps, contre 256 kbps en PCM non compressé.
NeuralCodec-RPi · Architecture Avancée
09
FONDEMENTS THÉORIQUES
Mathématiques de la compression
Recherche du mot-code (RVQ)
À chaque étage de quantification résiduelle, l'algorithme sélectionne dans le dictionnaire (codebook) le mot-code minimisant la distance euclidienne au vecteur résiduel courant, puis propage le résidu à l'étage suivant.
i* : indice du mot-code retenu · rₙ : résidu après l'étage n · N ≈ 4 à 8 étages
Calcul du débit binaire
Avec un flux de 50 trames par seconde (trames de 20 ms) et environ 8 octets de codes RVQ par trame :
Débit net des seules données RVQ. Le débit global du système (≈ 3,2 kbps) inclut une marge de synchronisation et l'overhead protocolaire UDP.
NeuralCodec-RPi · Architecture Avancée
10
DÉMONSTRATION
Communication vocale en direct
Sur les deux Raspberry Pi : on parle dans le micro du Pi A, la voix sort du haut-parleur du Pi B.
Pi B — récepteur (démarré en 1er)
$ live_receiver.py --codec soundstream \� --bitrate 3.2 --play�En écoute sur le port UDP...�♪ Lecture en direct sur le haut-parleur
Pi A — émetteur
$ live_transmitter.py --host 10.168.39.101 \� --codec soundstream --bitrate 3.2�> Capture micro → encode → envoi�✓ Flux temps réel (~2 s de latence)
Résultat voix intelligible transmise à 3,2 kbps en temps réel entre deux Pi — soit ~80× de compression par rapport au signal brut (256 kbps).
NeuralCodec-RPi · Architecture Avancée
11
🔬
Démonstration
Simulation de transmission vocale en temps réel
entre deux Raspberry Pi
Pi A (10.168.39.100) → UDP → Pi B (10.168.39.101)
NeuralCodec-RPi · Architecture Avancée
12
CONCLUSION
Faisabilité démontrée
OUI
à la question centrale
les codecs neuronaux sont viables en temps réel sur Pi 4
3-6
kbps · ~80×
SoundStream : voix intelligible, compression 80×
0,07-0.08
RTF sur le Pi
SoundStream: marge ×14 par rapport au temps réel
PERSPECTIVES
1. Quantification INT8 d'EnCodec pour le rendre temps réel sur Pi
2. Évaluation subjective ViSQOL (objectif) pour comparer les codecs au-delà de PESQ
3. Élargir le benchmark: comparer d'autres codecs neuronaux récents (DAC, Funcodec)
Merci de votre attention — des questions ?