Table of Contents Contents of VW U16 Blob 1 Blob 2 Blob 3 Blob 4 Blob 5 Blob 6 Blob 7 Blob 8 U26 Blob 1 Blob 2 Blob 3 Blob 4 Blob 5 Blob 6 Blob 7 Blob 8 The phones contain two chips labeled “VW” - which we assume means “Voiceware”. The boards feature a NEC D7759GC “ADPCM SPEECH SYNTHESIZER LSI”, which has two EEPROMS, U16 and U26, where the prompts are stored in ADPCM-format. The chip is configured to run in host mode, where due to the way the ROM is indexed (the address of a clip is referenced by a two byte value multiplied by two), only 1 MBit of space can be addressed at a time. To get around this restriction, the board employs bank switching. The ADPCM decoder is based on the NEC uPD7720. Introduced in 1980, this was one of the world's first single chip DSPs. You can load the dumps of those ROMs directly into your favorite player (play -t vox U16.BIN or File > Import > Raw Audio > VOX ADPCM in Audacity ; (Note, that VOX is something completely different - it just happens to make parts of the data audible)) - but even with the correct bitrate (8000 Hz), it still sounds wrong. This is because the ADPCM algorithm used in the chip works somewhat differently from conventional ones. The algorithm expands on the traditional ADPCM step table by changing the table based on one of sixteen states the chip can be in, making it somewhat more adaptive. Combined with the rather weak compression ratio (32 kbps for ADPCM to 72 kbps for 9-bit PCM at 8 khz, giving it a 2.25:1 ratio), you might think there would would be minimal companding hiss from the algorithm. Sadly, you would be wrong. From investigating many of the unrelated prompts for the chip from unrelated applications, it's clear however that a noise shaping algorithm exists that makes the companding hiss much more acceptable. sinetek kindly provided a small programm, which will extract the voiceprompts from the ROMs and switch the nibble-order as needed. At this point, it's not 100% right yet - for example prompt 9 in U16 is not divided yet into 2 prompts and a lot of other prompts aren't extracted from the file at all. This is due to the way the chip looks for an end of a prompt; a byte with the value 0x53 is included every 128 bytes to indicate the chip should continue playing the ADPCM stream at 8khz in most instances (0x59 for 6khz and 0x5F for 5khz for the terminally curious). However, 0x93 followed by the number of remaining bytes plus one divided by two will tell the chip to look for an opcode. When it sees 0x00 in that context, it'll halt playback. The program the decoder was derive from, however, currently uses another way to search for the end of a prompt. Many of the unplayable prompts in the ROM - for example, the synthesized dialtone, are looped 8-bit PCM samples instead of ADPCM. A single byte in the header determines the length; for single frequency tones, this can be as small as 19 bytes, but reasonably large if necessary. Proper playback of some of the tone files properly relies on a value of 0x50 being added to the final PCM byte. Why this is done is not clear, but it results in clean samples being sent to/from the chip. There's also clips consisting simply of encoded silence (the largest being 100 milliseconds) that are currently ignored by the decoder. This silence encoding method is also used extensively by some prompts - particularly the Spanish language ones. Opcodes: There's little documentation on the available opcodes, but some trial and error seems to suggest the chip is capable of some basic echo and looping effects. Those'll be put here as they're discovered. If you'd like to hear it, try feeding the chip a clip consisting of all 0xFFs. As shown by the bong tone on the ROM (a # key in DTMF followed by a fading dialtone), it's also capable of producing basic fading effects. This appears to be done somewhat crudely, though; the same PCM bytes are given over and over again for a fade effect, but the header for each section simply specifies a lower amplitude level. 0x40 - Decode the following clip as looped 8-bit PCM instead of ADPCM. There's also a brief header to indicate amplitude, sample rate, clip length, among other things. 0x0F - Send 128 bytes of silence to the ADPCM decoder Invalid opcodes are interpreted as ADPCM samples by the chip. To compile: clang++ u16_bin.cpp To play the resulting sound-bites: aplay -f S16_LE -r8000 <filename> or File > Import > Raw Audio > signed 16-bit PCM, Little Endian, 8000 Hz in Audacity (or your favorite player). The chip can address multiple sounds. To achieve this, each sample is prefixed with the following header: nn 5A A5 69 55 xx yy Quoting the OpenEmu Core plugin for UME: “The sample rom has a header at the beginning of the form nn 5a a5 69 55 where nn is the number of the last sample. This is then followed by a vector of 2-bytes msb-first values, one per sample. Multiplying them by two gives the sample start offset in the rom. A 0x00 marks the end of each sample.” Contents of VW U16 Blob 1 Sample Language Text Notes pcm0 English Please insert and remove your card pcm1 English Or dial the number you are calling pcm2 English Please remove your card pcm3 English Please dial the number pcm4 English Try again pcm5 English Insert face down, with the black strip to the left pcm6 English Please completely insert your card pcm7 English Please hang up and then start again pcm8 English Please use a different card pcm9 English Your card is not valid - there is problem reading your card Probably two prompts joined together pcm10 English There is a problem reading your card pcm11 English Please wait pcm12 English Thank you pcm13 English Please deposit pcm14 English One dollar and pcm15 English Dollars and pcm16 English One Dollar pcm17 English Dollars pcm18 unknown Static noise pcm19 unknown Static noise pcm20 unknown Static noise pcm21 unknown Static noise pcm22 unknown Static noise pcm23 unknown Static noise pcm24 unknown Static noise pcm25 unknown Static noise pcm26 unknown Static noise pcm27 English Please Static noise + cut off voice pcm28 unknown Static noise pcm29 unknown Static noise pcm30 English Please Static noise + cut off voice pcm31 unknown Static noise pcm32 unknown Static noise pcm33 unknown Static noise pcm34 unknown Static noise pcm35 English Please wait while your call Static noise / distortion pcm36 unknown Static noise pcm37 unknown Static noise pcm38 unknown Static noise pcm39 unknown Static noise pcm40 unknown read/file error pcm41 unknown read/file error pcm42 unknown read/file error pcm43 unknown read/file error pcm44 unknown read/file error pcm45 unknown read/file error pcm46 unknown read/file error pcm47 unknown read/file error pcm48 unknown read/file error pcm49 unknown Static noise pcm50 English Please wait while your call Static noise / distortion pcm51 unknown Static noise pcm52 English Please Static noise + cut off voice pcm53 English Please Static noise + cut off voice pcm54 unknown Static noise pcm55 unknown Static noise pcm56 English Please Static noise + cut off voice pcm57 unknown Static noise pcm58 English Please wait while your call Static noise / distortion pcm59 unknown Static noise pcm60 unknown Static noise pcm61 unknown Static noise pcm62 English Please Static noise + cut off voice pcm63 unknown Static noise + cut off voice pcm64 English Please Static noise + cut off voice pcm65 English Please wait while you caller deposits pcm66 English Please enter your personal identification number Blob 2 Sample Language Text Notes pcm0 English Cents pcm1 English For pcm2 English Minutes - One Minute Probably two prompts joined together pcm3 English One Minute pcm4 English More pcm5 English Credit or deposit Probably two prompts joined together pcm6 English Or deposit pcm7 English Two pcm8 English Three pcm9 English Four pcm10 English Five pcm11 English Six pcm12 English Seven pcm13 English Eight pcm14 English Nine pcm15 English Ten pcm16 English Eleven pcm17 English Twelve pcm18 English Thirteen pcm19 English Fourteen - Fif[teen] Probably two prompts joined together pcm20 English Fifteen pcm21 English Five pcm22 English Ten pcm23 English Fifteen pcm24 English Twenty pcm25 English Twenty-five pcm26 English Thirty pcm27 English Thirty-five pcm28 English Forty pcm29 English Forty-five pcm30 English Fifty pcm31 English Fifty-five pcm32 English Sixty pcm33 English Sixty-five - Seventy Probably two prompts joined together pcm34 English Seventy pcm35 English Seventy-five pcm36 English Eighty pcm37 English Eighty-five pcm38 English Ninety pcm39 English Ninety-five pcm40 English To leave a message pcm41 English Please look at the display pcm42 English Sixteen pcm43 English Seventeen pcm44 English Eighteen pcm45 English Nineteen pcm46 English Twenty-one pcm47 English Twenty-two pcm48 Japanese To be translated pcm49 Japanese To be translated Blob 3 Sample Language Text Notes pcm0 Spanish To be translated pcm1 Spanish To be translated pcm2 Spanish To be translated pcm3 Spanish To be translated pcm4 Spanish To be translated pcm5 Spanish To be translated pcm6 Spanish To be translated pcm7 Spanish To be translated pcm8 Spanish To be translated pcm9 Spanish To be translated pcm10 Spanish To be translated pcm11 Spanish To be translated pcm12 Spanish To be translated pcm13 Spanish To be translated pcm14 Spanish To be translated pcm15 Spanish To be translated pcm16 unknown read/file error pcm17 Spanish To be translated pcm18 Spanish To be translated Blob 4 Sample Language Text Notes pcm0 Spanish To be translated pcm1 Spanish To be translated pcm2 Spanish To be translated pcm3 Spanish To be translated pcm4 Spanish To be translated pcm5 Spanish To be translated pcm6 Spanish To be translated pcm7 Spanish To be translated pcm8 Spanish To be translated pcm9 Spanish To be translated pcm10 Spanish To be translated pcm11 Spanish To be translated pcm12 Spanish To be translated pcm13 Spanish To be translated pcm14 Spanish To be translated pcm15 Spanish To be translated pcm16 Spanish To be translated pcm17 Spanish To be translated pcm18 Spanish To be translated pcm19 Spanish To be translated pcm20 Spanish To be translated pcm21 Spanish To be translated pcm22 Spanish To be translated pcm23 Spanish To be translated pcm24 Spanish To be translated pcm25 Spanish To be translated pcm26 Spanish To be translated pcm27 Spanish To be translated pcm28 Spanish To be translated pcm29 Spanish To be translated pcm30 Spanish To be translated pcm31 Spanish To be translated pcm32 Spanish To be translated pcm33 Spanish To be translated pcm34 Spanish To be translated pcm35 Spanish To be translated pcm36 Spanish To be translated pcm37 Spanish To be translated pcm38 Spanish To be translated pcm39 Spanish To be translated pcm40 Spanish To be translated pcm41 Spanish To be translated pcm42 Spanish To be translated pcm43 Spanish To be translated pcm44 Spanish To be translated pcm45 Spanish To be translated pcm46 Spanish To be translated pcm47 Spanish To be translated pcm48 Spanish To be translated pcm49 Janapese To be translated pcm50 unknown To be translated Blob 5 Sample Language Text Notes pcm0 French Veuillez introduire et retirer votre carte pcm1 French Ou faire le numero que vous desirez obtenir pcm2 French Veuillez retirer votre carte pcm3 French Veuillez faire le numero pcm4 French Veuillez recommencer pcm5 French Verso vers le haut et bande noire vers la gauche pcm6 French Enfoncer bien votre carte pcm7 French Veuillez raccrocher puis recommencer pcm8 French Vous devez vous servir d'un autre carte pcm9 French La carte n'est pas valide pcm10 French Le système ne reussi pas à lire votre carte pcm11 French Veuillez patienter pcm12 French Merci pcm13 French Veuillez deposer pcm14 French Un Dollar et pcm15 French Veuillez entrer votre numero d'identification personnel pcm16 unknown read/file error pcm17 French Pour laisser un message pcm18 French Veuillez maintenant suivre les directives à l'écran Blob 6 Sample Language Text Notes pcm0 French Dollar et pcm1 French Un Dollar pcm2 French Dollar pcm3 French Cent pcm4 French Pour obtenir pcm5 French Minute pcm6 French Une minute pcm7 French Autre pcm8 French Credit pcm9 French Ou deposer pcm10 French Deux pcm11 French Trois pcm12 French Quatre pcm13 French Cinq pcm14 French Six pcm15 French Sept pcm16 French Huit pcm17 French Neuf pcm18 French Dix pcm19 French Onze pcm20 French Douze pcm21 French Treize pcm22 French Quatorze pcm23 French Quinze pcm24 French Cinq pcm25 French Dix pcm26 French Quinze pcm27 French Vingt pcm28 French Vingt-cinq pcm29 French Trente pcm30 French Trente-cinq pcm31 French Quarante pcm32 French Quarante-cinq pcm33 French Cinquante pcm34 French Cinquante-cinq - Soixante Probably two prompts joined together pcm35 French Soixante pcm36 French Soixante-cinq pcm37 French Soixante-dix pcm38 French Soixante-quinze pcm39 French Quatre-vingt pcm40 French Quatre-vingt-cinq pcm41 French Quatre-vingt-dix pcm42 French Quatre-vingt-quinze pcm43 French Seize pcm44 French Dix-sept pcm45 French Dix-huit pcm46 French Dix-neuf pcm47 French Vingt-et-un pcm48 French Vingt-deux pcm49 Japanese To be translated pcm50 Japanese To be translated pcm51 Japanese To be translated pcm52 Japanese To be translated pcm53 Japanese To be translated pcm54 Japanese To be translated pcm55 Japanese To be translated Blob 7 Sample Language Text Notes pcm0 Japanese To be translated pcm1 Japanese To be translated pcm2 Japanese To be translated pcm3 Japanese To be translated pcm4 Japanese To be translated pcm5 Japanese To be translated pcm6 Japanese To be translated pcm7 Japanese To be translated pcm8 Japanese To be translated pcm9 Japanese To be translated pcm10 Japanese To be translated pcm11 Japanese To be translated pcm12 Japanese To be translated pcm13 Japanese To be translated pcm14 Japanese To be translated pcm15 Japanese To be translated pcm16 unknown read/file error pcm17 unknown read/file error pcm18 unknown read/file error Blob 8 Sample Language Text Notes pcm0 Japanese To be translated pcm1 Japanese To be translated pcm2 Japanese To be translated pcm3 Japanese To be translated pcm4 Japanese To be translated pcm5 Japanese To be translated pcm6 Japanese To be translated pcm7 Japanese To be translated pcm8 Japanese To be translated pcm9 Japanese To be translated pcm10 Japanese To be translated pcm11 Japanese To be translated pcm12 Japanese To be translated pcm13 Japanese To be translated pcm14 Japanese To be translated pcm15 Japanese To be translated pcm16 Japanese To be translated pcm17 Japanese To be translated pcm18 Japanese To be translated pcm19 Japanese To be translated pcm20 Japanese To be translated pcm21 Japanese To be translated pcm22 Japanese To be translated pcm23 Japanese To be translated pcm24 Japanese To be translated pcm25 Japanese To be translated pcm26 Japanese To be translated pcm27 Japanese To be translated pcm28 Japanese To be translated pcm29 Japanese To be translated pcm30 Japanese To be translated pcm31 Japanese To be translated pcm32 Japanese To be translated pcm33 Japanese To be translated pcm34 Japanese To be translated pcm35 Japanese To be translated pcm36 Japanese To be translated pcm37 Japanese To be translated pcm38 Japanese To be translated pcm39 Japanese To be translated pcm40 Japanese To be translated pcm41 Japanese To be translated pcm42 Japanese To be translated pcm43 Japanese To be translated pcm44 Japanese To be translated pcm45 Japanese To be translated pcm46 Japanese To be translated pcm47 Japanese To be translated pcm48 Japanese To be translated pcm49 Japanese To be translated pcm50 Japanese To be translated pcm51 Japanese To be translated U26 Blob 1 Sample Language Text Notes pcm0 English GTE pcm1 English US West Express pcm2 English Long distance pcm3 English Welcome to pcm4 English Operator Services pcm5 English Thank you for using pcm6 English Please the calling-card number now pcm7 English Press 1 1 for a collect call pcm8 English Or press 0 for the operator pcm9 English Coin service not available pcm10 English Cardreader service not available pcm11 English Hundred pcm12 English No access pcm13 English Percent pcm14 English Seconds pcm15 English Watch the display pcm16 English For special offers pcm17 English For special offers pcm18 English During your call pcm19 English During your call pcm20 English Press pcm21 English For valuable offers pcm22 English For cool offers pcm23 English Do not deposit coins pcm24 English This is pcm25 English Please pcm26 English Deposit pcm27 English Or pcm28 English The pcm29 English A Blob 2 Sample Language Text Notes pcm0 English Completely insert your card pcm1 English Payphones pcm2 English The star-button pcm3 English The numbersign-button pcm4 English For callcharges pcm5 English Additional pcm6 English Each pcm7 English A maximum of pcm8 English Minute pcm9 English The next pcm10 Spanish To be translated pcm11 Spanish To be translated pcm12 Spanish To be translated pcm13 Spanish To be translated pcm14 Spanish To be translated pcm15 Spanish To be translated pcm16 Spanish To be translated pcm17 Spanish To be translated pcm18 Spanish To be translated pcm19 Spanish To be translated pcm20 Spanish To be translated pcm21 Spanish To be translated Blob 3 Sample Language Text Notes pcm0 Spanish To be translated pcm1 Spanish To be translated pcm2 Spanish To be translated pcm3 Spanish To be translated pcm4 Spanish To be translated pcm5 Spanish To be translated pcm6 Spanish To be translated pcm7 Spanish To be translated pcm8 Spanish To be translated pcm9 Spanish To be translated pcm10 Spanish To be translated pcm11 Spanish To be translated pcm12 Spanish To be translated pcm13 Spanish To be translated pcm14 Spanish To be translated pcm15 Spanish To be translated pcm16 Spanish To be translated pcm17 Spanish To be translated pcm18 Spanish To be translated pcm19 Spanish To be translated pcm20 Spanish To be translated pcm21 Spanish To be translated pcm22 Spanish To be translated pcm23 Spanish To be translated pcm24 Spanish To be translated pcm25 Spanish To be translated pcm26 Spanish To be translated pcm27 Spanish To be translated pcm28 Spanish To be translated Blob 4 Sample Language Text Notes pcm0 Spanish To be translated pcm1 Spanish To be translated pcm2 Spanish To be translated pcm3 Spanish To be translated pcm4 Spanish To be translated pcm5 Spanish To be translated pcm6 Spanish To be translated pcm7 Spanish To be translated pcm8 Spanish To be translated pcm9 Spanish To be translated pcm10 Spanish To be translated pcm11 Spanish To be translated pcm12 Spanish To be translated pcm13 Spanish To be translated pcm14 Spanish To be translated Blob 5 Sample Language Text Notes pcm0 Spanish To be translated pcm1 Spanish To be translated pcm2 Spanish To be translated pcm3 Spanish To be translated pcm4 Spanish To be translated pcm5 Spanish To be translated pcm6 Spanish To be translated pcm7 Spanish To be translated pcm8 Spanish To be translated pcm9 Spanish To be translated pcm10 Spanish To be translated pcm11 Spanish To be translated pcm12 Spanish To be translated pcm13 Spanish To be translated pcm14 Spanish To be translated pcm15 Spanish To be translated pcm16 Spanish To be translated pcm17 Spanish To be translated pcm18 French GTE pcm19 French US West Express pcm20 French Service interurbain pcm21 French Service interurbain de pcm22 French Bienvenue à pcm23 French Bienvenue au pcm24 French Service de telephoniste pcm25 French Service de telephoniste de pcm26 French Cent pcm27 French Pourcent Blob 6 Sample Language Text Notes pcm0 French Merci d'avoir choisi pcm1 French Merci d'avoir choisi le pcm2 French Entre le numero de votre carte d'appel maintenant pcm3 French Pour un appel a frais virées, appuyez sur 1 1 pcm4 French Ou faites le 0 pour demander l'aide du telephoniste pcm5 French Vous ne pouvez obtenir ce numero pcm6 French Les pieces de monnaie necessaires pcm7 French Regardez l'afficheur pcm8 French Regardez l'afficheur pcm9 French Pour prendre connaissance des offres speciales pcm10 French Pour prendre connaissance des offres speciales pcm11 French Pendant l'appel pcm12 French Pendant l'appel pcm13 French Pour prendre connaissance des offres interessantes pcm14 French Pour prendre connaissance des offres interessantes pcm15 French Pour prendre connaissance des offres alléchantes Blob 7 Sample Language Text Notes pcm0 French Appuyez sur pcm1 French Votre appel ne peut être achiminé, selon le numero composé pcm2 French Ici le pcm3 French Ici le pcm4 French Veuillez pcm5 French Deposer pcm6 French Ou pcm7 French La pcm8 French Le pcm9 French Les pcm10 French Un pcm11 French Une pcm12 French Introduire votre carte completement pcm13 French Introduire votre carte completement pcm14 French Introduire completement votre carte pcm15 French Introduire completement votre carte pcm16 French Les telephones publiques pcm17 French L'étoile pcm18 French Le caré pcm19 French Pour obtenir les frais d'appel pcm20 French Additionel pcm21 French Chaque pcm22 French Un maximum de pcm23 French Minute pcm24 French Minute pcm25 French Un pcm26 French Une pcm27 French Prochaine pcm28 Japanese To be translated pcm29 Japanese To be translated pcm30 Japanese To be translated pcm31 Japanese To be translated pcm32 Japanese To be translated Blob 8 Sample Language Text Notes pcm0 Japanese To be translated pcm1 Japanese To be translated pcm2 Japanese To be translated pcm3 Japanese To be translated pcm4 Japanese To be translated pcm5 Japanese To be translated pcm6 Japanese To be translated pcm7 Japanese To be translated pcm8 Japanese To be translated pcm9 Japanese To be translated pcm10 Japanese To be translated pcm11 Japanese To be translated pcm12 Japanese To be translated pcm13 Japanese To be translated pcm14 Japanese To be translated pcm15 Japanese To be translated pcm16 Japanese To be translated pcm17 Japanese To be translated pcm18 Japanese To be translated pcm19 Japanese To be translated pcm20 Japanese To be translated millennium/voiceware.txt Last modified: 2021/04/18 12:35(external edit)