Coder du morse en ultrason dans un .wav
Galex-713
Messages postés
358
Statut
Membre
-
Galex-713 Messages postés 358 Statut Membre -
Galex-713 Messages postés 358 Statut Membre -
Bonjour, je voudrais savoir comment les fichier .mp3 sont codé
c'est à dire par exemple si on ouvre un fichier .mp3 avec bloc-note on va avoir toute une suite de caractère qui correspondent à des nombres codé selon la table ASCII et j'aimerais savoir ce que chaque nombre peut vouloir dire et donc comment modifier une musique en trifouillant dans ces caractères !
je compte faire un programme en C++ qui met des code en morse en ultrason dans des musiques normales !
Merci d'avance !
EDIT: les mp3 ne gèrent pas les ultrason, il faut prendre du wav (le wav n'est pas compressé) voir plus bas.
c'est à dire par exemple si on ouvre un fichier .mp3 avec bloc-note on va avoir toute une suite de caractère qui correspondent à des nombres codé selon la table ASCII et j'aimerais savoir ce que chaque nombre peut vouloir dire et donc comment modifier une musique en trifouillant dans ces caractères !
je compte faire un programme en C++ qui met des code en morse en ultrason dans des musiques normales !
Merci d'avance !
EDIT: les mp3 ne gèrent pas les ultrason, il faut prendre du wav (le wav n'est pas compressé) voir plus bas.
A voir également:
- Coder du morse en ultrason dans un .wav
- Decodeur morse gratuit - Télécharger - Outils professionnels
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Le code ascii en informatique - Guide
- Application pour apprendre à coder - Guide
- Convertisseur mp3, wav gratuit français - Télécharger - Conversion & Extraction
15 réponses
Tu peux utiliser la stéganographie pour cacher un message dans un son :
https://fr.wikipedia.org/wiki/St%C3%A9ganographie#Message_transport.C3.A9_dans_un_son
https://fr.wikipedia.org/wiki/St%C3%A9ganographie#Message_transport.C3.A9_dans_un_son
hé bien en fait il n'est pas possible de coder de l'ultrason dans un fichier son, car tous les éléments de la chaine de reproduction sonore sont incapables de le traiter... Les fréquences enregistrées dans un fichier son à 44khz ne peuvent excéder 22khz, le domaine de l'ultrason commençant après ! Cependant il est possible de mélanger du 22khz, qui restera théoriquement inaudible, en toute simplicitée dans un fichier de type wav, qui est non compressé... Le fichier wav contient un header dont j'ignore la taille, petite recherche qu'il reste à faire, puis des valeurs 16 bits signées à raison de 88200 word par seconde d'enregistrement, les valeurs aux positions pair et impairs décrivent les voies gauches et droites en stéréo. pour injecter un son à 22khz, il suffit de modifier ces valeurs en ajoutant et soustrayant alternativement une valeur dépendante du niveau sonore du signal en évitant la saturation du son...
8192 semble être un bon compromis, sachant que le domaine de chaque valeur est +32767 -32767 et qu'un signal est déjà présent.
---------
Header
---------
Début du tableau codage 16 bits alternance voie droite-voie gauche
D0 +8192 Ajout sur voie droite
G0 +8192 Ajout sur voie gauche
D1 -8192 Soustraction sur voie droite
G1 -8192 Soustraction sur voie gauche
D2 +8192 Ajout sur voie droite
G2 +8192 ...
...
Jusqu'à la fin du fichier
L'ajout et la soustraction alternatives représentent un signal carré à 22khz, ce signal doit donc être répété sur un nombre de valeurs consécutives correspondant à la durée courte ou longue du trait morse, sachant donc que l'on a 44100 valeurs 16 bits par seconde et par voie...
8192 semble être un bon compromis, sachant que le domaine de chaque valeur est +32767 -32767 et qu'un signal est déjà présent.
---------
Header
---------
Début du tableau codage 16 bits alternance voie droite-voie gauche
D0 +8192 Ajout sur voie droite
G0 +8192 Ajout sur voie gauche
D1 -8192 Soustraction sur voie droite
G1 -8192 Soustraction sur voie gauche
D2 +8192 Ajout sur voie droite
G2 +8192 ...
...
Jusqu'à la fin du fichier
L'ajout et la soustraction alternatives représentent un signal carré à 22khz, ce signal doit donc être répété sur un nombre de valeurs consécutives correspondant à la durée courte ou longue du trait morse, sachant donc que l'on a 44100 valeurs 16 bits par seconde et par voie...
J'ai trouvé des infos sur le header d'un wav :
Field bytes format contains
1 0...3 str4 "RIFF" in ASCII
2 4...7 int4 Total bytes minus 8
3 8...15 str4 "WAVEfmt" Eigth character is a space
4 16...19 int4 16 for PCM format
5 20...21 int2 1 for PCM format
6 22...23 int2 channels
7 24...27 int4 sampling frequency
8 28...31 int4 bytes per second
9 32...33 int2 bytes by capture
10 34...35 int2 bits per sample
11 36...39 str4 "data"
12 40...43 int4 bytes in data
Le header fait donc 44 octets.
Par contre, la récupération du morse ainsi mélangé, c'est pas une partie de plaisir, mieux vaut avoir des notions de traitement numérique du signal...
Field bytes format contains
1 0...3 str4 "RIFF" in ASCII
2 4...7 int4 Total bytes minus 8
3 8...15 str4 "WAVEfmt" Eigth character is a space
4 16...19 int4 16 for PCM format
5 20...21 int2 1 for PCM format
6 22...23 int2 channels
7 24...27 int4 sampling frequency
8 28...31 int4 bytes per second
9 32...33 int2 bytes by capture
10 34...35 int2 bits per sample
11 36...39 str4 "data"
12 40...43 int4 bytes in data
Le header fait donc 44 octets.
Par contre, la récupération du morse ainsi mélangé, c'est pas une partie de plaisir, mieux vaut avoir des notions de traitement numérique du signal...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Viens faire un tour sur ce bon tutoriel, je pense que cela peut t'intéresser! (même si tu n'est pas sur ubuntu)
http://doc.ubuntu-fr.org/lecture_et_encodage_de_fichiers_audio
Configuration: Imac 23"
http://doc.ubuntu-fr.org/lecture_et_encodage_de_fichiers_audio
Configuration: Imac 23"
oui mais comme dit précédemment j'ai déjà lu à quoi ressemblait l'en-tête des wav sur Wikipedia et moi ce qui m'intéresse c'est le codage des données internes
Plus de précisions peut-être ?
Le son est enregistré via un micro en analogique, pour passer en numérique on l'échantillonne, c'est à dire qu'on mesure l'amplitude du signal analogique un certain nombre de fois par seconde et avec une certaine définition , courammant à 44100 hz et 16 bits de définition;
Le son est une sinusoide qui gravite dans ce cas autour du
point zéro et entre 32767 et - 32767.
Un son harmonieux, tout sauf des craquements donc, est une sinosoide à une certaine fréquence et un certain nombre d'harmoniques, c'est à dire des multiples 3 de la fréquence-base.
Un son est donc composé du mélange de sinusoides à différentes fréquences et leurs harmoniques.
Au passage, le signal carré est une sinusoide-base et l'infinité de ses harmoniques...
Donc dans le fichier wav, on trouve le relevé à 44khz de l'évolution de ce mélange de sinusoides qu'est un son...
Le son est enregistré via un micro en analogique, pour passer en numérique on l'échantillonne, c'est à dire qu'on mesure l'amplitude du signal analogique un certain nombre de fois par seconde et avec une certaine définition , courammant à 44100 hz et 16 bits de définition;
Le son est une sinusoide qui gravite dans ce cas autour du
point zéro et entre 32767 et - 32767.
Un son harmonieux, tout sauf des craquements donc, est une sinosoide à une certaine fréquence et un certain nombre d'harmoniques, c'est à dire des multiples 3 de la fréquence-base.
Un son est donc composé du mélange de sinusoides à différentes fréquences et leurs harmoniques.
Au passage, le signal carré est une sinusoide-base et l'infinité de ses harmoniques...
Donc dans le fichier wav, on trouve le relevé à 44khz de l'évolution de ce mélange de sinusoides qu'est un son...
J'aurais une préférence pour la notation Hexa :
$7FFF = 32767 et $8FFF vaut -32767 et sur un 16 bits SmallInt convention pascal, pas un octet...
Et pour différencier les voies, c'est simple, elles sont entrelaçées, c'est à dire que si tu lis 16 bits à l'offset 44, tu à la 1ère valeur d'une voie, puis à l'offset 46 la 1ère valeur de l'autre voie, à l'offset 48 la 2ème valeur de la 1ère voie et ainsi de suite....
$7FFF = 32767 et $8FFF vaut -32767 et sur un 16 bits SmallInt convention pascal, pas un octet...
Et pour différencier les voies, c'est simple, elles sont entrelaçées, c'est à dire que si tu lis 16 bits à l'offset 44, tu à la 1ère valeur d'une voie, puis à l'offset 46 la 1ère valeur de l'autre voie, à l'offset 48 la 2ème valeur de la 1ère voie et ainsi de suite....
le problème reste (à part mes difficultés de lectures) que les données correspondent à l'amplitude et je ne vois pas où est indiquée la fréquence
pas besoin de faire un up !
j'ai ce message dans mes discussion suivies
et maintenant je dois tout remettre alors attend que j'ai tout réinstallé
j'ai ce message dans mes discussion suivies
et maintenant je dois tout remettre alors attend que j'ai tout réinstallé
désolé d'avoir répondu en retard j'ai reçu mon nouvel ordi et j'ai eu pleeeeiiinnn de choses à faire !
bon apparamant le mp3 est un format compressé qui ne fait pas d'ultrason et alors j'aimerais connaitre la manière de codage du wma :
Ce que je veux faire c'est ajouter des messages en morse en ultrason dans une musique et pour programmer un logiciel qui fasse ça il me faut savoir comment sont codés les wma et comment les modifier
bon apparamant le mp3 est un format compressé qui ne fait pas d'ultrason et alors j'aimerais connaitre la manière de codage du wma :
Ce que je veux faire c'est ajouter des messages en morse en ultrason dans une musique et pour programmer un logiciel qui fasse ça il me faut savoir comment sont codés les wma et comment les modifier
C'était pas le wma qui était non-compressé ? Je me suis peut-être trompé...
C'est peut-être wav...
Mais bon est ce que quelqu'un sait comment le modifier ? ou juste la façon dont il est codé ?
J'ai vu, sur Wikipedia, l'en-tête et ça j'ai compris mais je n'ai toujours pas compris la façon dont s'organisent les données !
C'est peut-être wav...
Mais bon est ce que quelqu'un sait comment le modifier ? ou juste la façon dont il est codé ?
J'ai vu, sur Wikipedia, l'en-tête et ça j'ai compris mais je n'ai toujours pas compris la façon dont s'organisent les données !
Ensuite plusieurs possibilitées s'offrent pour coder le morse :
- mettre une séquence contigue de 1-1 pour un trait
et 1-0 pour un point;
- mettre une séquence contigue de 1 sur deux longueurs différentes pour point et trait...
Et ça a le mérite d'être d'une grande simplicitée à écrire comme à relire !
J'y avait pas pensé et ça pourrait resservir ça !
sans même se soucier du canal;
ainsi on ne limite même plus la définition et on garde un débit de 88200 / 1024 = 86 codes par secondes.
On peut définir d'autre valeur pour avoir plus de débit ou bien inclure plusieurs canaux de communication morse...
et la différence sera inaudible.
et à partir du moment ou tu lis les valeurs en 8 bits, ça risque pas de dépasser 255... Demande à ton bloc-notes de les lire sur 16 bits et tout deviendra clair, et il pourrait même lire les valeurs sur 71 bits... Tout est une question de nombre de binary unit considérés pour composer le décimal. mais je crois que le bloc-notes se contente de représenter sur 8 bits, alors...