Home > Projects > In Car SatNavs > Voicedat.kwi Format
Voicedat.kwi

I've had a cursory glance at the structure of the voicedat.kwi from the Audi/Alpine satnav.

It doesn't actually seem to match the spec.

Basic structure is shown below.

Offset Tag
 LengthData
0x00000000Size of Header
400 00 68 7D
0x00000004
Lang Count
200 07
0x00000006
Lang Record
28
00 01 17 0A F0 00 04 BC 78 00 00 00 07 22 00 10 00 14 02 7A 00 00 00 65 00 00 0E DC
0x00000022
Lang Record
28
00 01 17 0A F0 00 04 BC 78 00 00 00 07 22 00 10 00 14 02 7C 00 00 0F 41 00 00 0E E8
 ....... ...... .... ............................................................................................
0x000000AE
Lang Record
28
00 01 17 0A F0 00 04 BC 78 00 00 00 07 22 00 10 00 14 02 7A 00 00 59 9F 00 00 0E DC
0x000000CA
Voice Record
12
01 00 00 10 00 01 00 00 68 80 04 80
0x000000D6
Voice Record
12
01 00 00 11 00 01 00 00 6D 00 04 80
 .........
 ........ ..... ............................................................................................
0x0000D0EA
Voice Record
120A 1D 31 00 00 01 02 3E 94 80 0D 80
0x0000D0F6
Checksum ?03 42 71 40 
0x0000D0F6NULL PAD
  
0x00012B00
Voice Data ?? 1C 1B 1B 1C 1C 1B 1B 1C 1C 1B 1C 1C 1C 1B 1C

 

 

Format of the Language Record

  Offset

Tag
Length
Data
0x00000000Unknown1400 01 17 0A F0 00 04 BC 78 00 00 00 07 22
0x0000000EUnknown*2
00 10
0x00000010Unknown**
2
00 14
0x00000012Voice Count
2
02 7A
0x00000014
Offset
4
00 00 00 65
0x00000018 Size
4
00 00 0E DC

 

Format of the Voice Record

 OffsetTag Length Data 
0x00000000 Unknown 601 00 00 10 00 01
0x00000006Offset 400 00 68 80 
0x0000000aSize204 80 

 

 

* According to the spec, this is Usage Identification

Value 
 Meaning
0x10 Voice Guidance A (minimum set. It is recommended that it be resident.)
0x11 Voice Guidance B (other than A)
0x20-0x2F Point Memory Tone (Alert Sound)
0x30-0x3F  Voice Guidance for Operation
0xE0-0xFF  Manufacturer-specific Voice (dependent on the manufacturer Identification)

 

** According to the spec, this is Speaker Code + Reproduction Method Identification

No.
Bit 
Description
115:8 Speaker Code
7:0 Reproduction Method Identification

 

Reproduction Method Identification

Value
 Meaning
0x01CD-DA
0x02-0x0FReserved
0x10
CD-I ADPCM Class A Mono
0x11
CD-I ADPCM Class A Stereo
0x12 CD-I ADPCM Class B Mono
0x13 CD-I ADPCM Class B Stereo
0x14 CD-I ADPCM Class C Mono
0x15 CD-I ADPCM Class C Stereo
0x16 2.2S Full-rate ADPCM Mono
0x17 2.2S Full-rate ADPCM Stereo
0x18 2.2S Half-rate ADPCM Mono
0x19 2.2S Half-rate ADPCM Stereo
0x1A-0x1F Reserved
0x20 MPEG Audio
0x21-0x2F
Reserved 
0x30
Dolby-AC-3
0x31-0x3FReserved
0x40 Linear PCM Full-rate
0x41 Reserved
0x42 Linear PCM Half-rate

 

There is just enough information here to write an extractor.

I've knocked together a small parser : it only prints out details of the records in the files. 


 

Update : there is now a GUI for viewing the contents of voicedat.kwi. 

This is just a first run, so all it does is display some details of the records in the file in a ( frankly crappy ) simple UI.

Next release will hopefully have the ability to play the voices, and edit them.

If I get the chance/have the time and the inclination that is.

Download here

 

Update: The GUI now plays the audio content, and saves to wave.

Still to come : Add/Replace/Delete

 Image