Lecture de fichier codé sur 24 bits
Bonjour à tous,
Je souhaite lire des données codés sur 24 bits (big endian). L'entête de chaque fichier donne le nombre d'échantillons, ce qui permet de déduire que chaque échantillon correspond à 3 octets. Il me me semble impossible d'utiliser struct.unpack pour decoder 3 octets. J'ai essayé plusieurs approches influctueuses. J'ai essayé d'ajouter un octet de 00 mais les données décodées semblent sont erronées (en comparaison avec la fonction matlab s = fread(fid,inf,'bit24')).
Code:
1 2 3 4 5
|
fwav= open(FName, 'rb')
file_header = fwav.read(400).decode();
wdata = fwav.read();
sample =struct.unpack('>i', b'\x00'+wdata[0:3])[0]; |
Je vous remercie pour votre aide.
Cdlt;