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')).
Je vous remercie pour votre aide.
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];
Cdlt;
Partager