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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;