Tatouer un texte dans un signal audio [MATLAB]
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Tatouer un texte dans un signal audio [MATLAB]



  1. #1
    Lucko92

    Tatouer un texte dans un signal audio [MATLAB]


    ------

    Bonjours à tous,

    J'aimerais pouvoir "tatouer" un texte dans un signal audio de façon inaudible. Pour cela je pensais coder mon texte en binaire (ce que j'ai réussi à faire) et mon signal (ce que je n'ai pas encore réussi à faire) puis de retirer les bits de poids faible de mon signal et de les remplacer par ceux de mon texte. Je ne sais pas si je suis sur la bonne voie.. . Auriez vous des conseils à me proposer ?

    Merci d'avance pour votre aide

    -----

  2. #2
    PA5CAL

    Re : Tatouer un texte dans un signal audio [MATLAB]

    Bonjour

    Pour que le "tatouage" soit possible de la façon exposée ici, les données audio ne doivent pas être compressées avec une perte d'informations (comme on le fait dans les formats MP3 ou AAC par exemple).

    D'autre part, c'est sur des données non compressées que les bits de poids faible doivent être substitués

    Le plus simple serait d'en rester à un format non compressé, par exemple du PCM 16 bits comme dans les fichiers WAV Microsoft et les CD Audio. Il suffit alors de lire directement les mots de 16 bits successifs du flux audio, et d'en remplacer un ou plusieurs bits de poids faible par le même nombre de bits provenant du texte.

  3. #3
    Lucko92

    Re : Tatouer un texte dans un signal audio [MATLAB]

    Oui j'ai oublié de le préciser ici mon fichier audio est un .wav .

    Mais comment fait on pour identifier les bits faibles ou forts de mon signal audio ? ps : je n'arrive déjà pas à afficher mon signal sous forme de bits ( je pense que cela ne doit pas être très dur mais je suis encore débutant sous matlab)

  4. #4
    lou_ibmix_xi

    Re : Tatouer un texte dans un signal audio [MATLAB]

    Mais comment fait on pour identifier les bits faibles ou forts de mon signal audio ? ps : je n'arrive déjà pas à afficher mon signal sous forme de bits ( je pense que cela ne doit pas être très dur mais je suis encore débutant sous matlab)
    Les bits de poids faibles sont les bits qui encodent les "faibles différences", les bits "à droite" de ton chiffre. Et tu n'as pas besoin d'afficher ton fichier sous forme de bits...
    Pour mettre à zéro les bits il faut utiliser un "masque binaire" et l'opérateur "et bit à bit", en C, pour mettre à 0 les 3 bits de poids faible de l'échantillon x ça ressemble à:
    Code:
    x = x & ~(7);
    puis pour y ajouter ta donnée (qui doit absolument être inférieure à 2^n-1, soit pour 3 bits 7) tu peux utiliser le "ou bit à bit" ou l'addition ce qui devrait revenir au même.

    Avec MATLAB c'est peut-être un peu plus embêtant car il "traduit" les valeurs encodées du wav en flottant, qu'il faut donc retransformer en entier en fonction du nb de bits par échantillons. Mais attention, du coup ça risque de ne plus marcher avec des fichiers WAV encodés en 24bits et au-delà puisque la conversion flottant -> entier -> flottant risque de perdre tes bits de poids faibles et donc l'info que tu avais stéganographiée...

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Matlab - charger un fichier texte dans le workspace
    Par invite44feb88e dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 27/07/2012, 13h12
  2. appel d'un fichier texte dans une fonction sous matlab
    Par soldius87 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 26/04/2012, 12h34
  3. insertion de lignes dans un fichier texte, matlab
    Par inviteeebb54cf dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 08/06/2010, 18h04
  4. matlab, supression dans un fichier texte
    Par invite309868c4 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 24/06/2009, 16h37
  5. Texte dans matlab
    Par inviteb6d74d9b dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 26/03/2006, 15h13