Fichier audio de couverture (WAV mono ou stéréo)
Message secret (ASCII — capacité selon durée du WAV)
0/200 · 8 segments nécessaires (~0.2s audio min à 44100Hz)
Canal
Délai écho
D0=20 / D1=45 samples
Capacité
~5 chars/s
1 bit par 1024 samples
Traitement
100% local
Aucune donnée envoyée
Principes de l'echo hiding, cepstre et détection par autocorrélation.
Guide complet →Comment ça fonctionne
Algorithme Echo Hiding
Le signal audio est divisé en segments de 1024 samples. Pour chaque bit du message, un écho est ajouté au segment courant : délai D0=20 samples (~0.45ms) pour le bit 0, ou D1=45 samples (~1.02ms) pour le bit 1. Formule : output[i] = input[i] + α × input[i − delay]. Le décodeur calcule l'autocorrélation du signal à D0 et D1 sur chaque segment : le délai avec la corrélation la plus élevée révèle le bit encodé.
Capacité & limites
1 bit par segment de 1024 samples. À 44 100 Hz : ~43 bits/sec ≈ 5 caractères/seconde. Pour 100 caractères, il faut (100+1) × 8 × 1024 / 44100 ≈ 18,7 secondes de WAV. Avantage sur LSB : résistance partielle à la compression MP3 (le masquage psychoacoustique préserve les échos courts sous 2ms). Détectable par analyse cepstrale ou spectrumgramme différentiel.
Quelle durée de WAV pour X caractères ?▾
Formule : durée min (s) = (N+1) × 8 × 1024 / sampleRate. Exemples à 44 100 Hz : 10 chars → 1,9s ; 50 chars → 9,5s ; 100 chars → 18,7s. L'outil affiche la durée nécessaire en temps réel sous le champ message.
L'écho est-il audible ?▾
Le seuil de perception des échos (effet Haas) est autour de 30–50ms (1300+ samples à 44 100 Hz). Nos délais D0=20 et D1=45 samples correspondent à 0.45ms et 1.02ms — bien en dessous. Cependant, l'amplitude α=0.5 peut créer une légère coloration tonale sur des contenus très silencieux. Réduire α améliore la discrétion au détriment de la fiabilité.
Pourquoi l'autocorrélation révèle-t-elle le délai ?▾
L'autocorrélation mesure la similarité d'un signal avec lui-même décalé d'un lag k. Après encodage, le signal contient une copie décalée de lui-même (l'écho). L'autocorrélation au lag D est donc anormalement élevée. En comparant r(D0) et r(D1) sur chaque segment, on détermine quel délai a été utilisé — et donc quel bit a été encodé.