Hello,<br><br>I want to read from a binary file called myaudio.dat<br>Then I've tried the next code:<br><br>import struct<br>name = "myaudio.dat"<br>f = open(name,'rb')<br>f.seek(0)<br>chain = "< 4s 4s I 4s I 20s I I i 4s I 67s s 4s I"<br>
s = f.read(4*1+4*1+4*1+4*1+4*1+20*1+4*1+4*1+4*1+4*1+4*1+67*1+1+4*1+4*1)<br>a = struct.unpack(chain, s)<br>header = {'identifier' : a[0],<br> 'cid' : a[1],<br> 'clength' : a[2],<br>
'hident' : a[3],<br> 'hcid32' : a[4],<br> 'hdate' : a[5],<br> 'sampling' : a[6],<br> 'length_B' : a[7],<br>
'max_cA' : a[8],<br> 'max_cA1' : a[9],<br> 'identNOTE' : a[10],<br> 'c2len' : a[11],}<br><br>It produces:<br>
<br>{'length_B': 150001, 'sampling': 50000, 'max_cA1': 'NOTE', 'hident': 'HEDR', 'c2len': "Normal Sustained Vowel 'A', Voice and Speech Lab., MEEI, Boston, MA", 'hdate': 'Jul 13 11:57:41 1994', 'identNOTE': 68, 'max_cA': -44076, 'cid': 'DS16', 'hcid32': 32, 'identifier': 'FORM', 'clength': 300126}<br>
<br>So far when I run f.tell()<br>>>f.tell()<br>136L<br> <br>The audio data length is 300126, now I need a clue to build an array with the audio data (The Chunk SDA_), would it possible with struct?, any help ?<br>
<br>Thanks<br><br>The file format is:<br><br><br>Offset | Length | Type | Contents<br>0 4 character Identifier: "FORM"<br>4 4 character Chunk identifier: "DS16"<br>
8 4 integer Chunk length<br>12 - - Chunk data<br><br>Header 2<br><br>Offset Length Type Contents<br>0 4 character Identifier: "HEDR" or "HDR8"<br>
4 4 integer Chunk length (32)<br>8 20 character Date, e.g. "May 26 23:57:43 1995"<br>28 4 integer Sampling rate<br>32 4 integer Data length (bytes)<br>36 2 unsigned integer Maximum absolute value for channel A: 0xFFFF if not defined<br>
38 2 unsigned integer Maximum absolute value for channel A: 0xFFFF if not defined<br><br>NOTE Chunk<br><br>Offset Length Type Contents<br>0 4 character Identifier: "NOTE"<br>
4 4 integer Chunk length<br>8 - character Comment string<br><br>SDA_, SD_A or SDAB Chunk<br>Offset Length Type Contents<br>0 4 character Identifier: "SDA_", "SD_B", or "SDAB"<br>
4 4 integer Chunk length<br>8 - - Data<br><br>