The speaking processor

The dream of a talking machine ] [ the 64 allophones of english ] [ SP0256 opcodes to PIC-code ]

Program I2C-memory with PICKit 2 ]

Only for fun! - Nerd warning.

The old speech synthesizer chip SP0256 reappear in a new shape with PIC16F690 + 24LC512

In the 1980s, the company General Instruments (What later became the PIC processor's company Microchip) made a speech synthesizer chip SP0256 for use in those days arcade games.
The chip production has stopped a long time ago (and anyone who heard it "talk" quite understands why), but if you are amused with this resurrection it is now in the form of a memory chip with the "recorded" synthesizer sounds and a PIC16F690 processor as speech synthesizer!
( Just for fun ... )

 
Speech synthesization with the PICKit 2 Starterkit-card, and a mini breadboard, and a memory chip 24LC512 with prerecorded speech samples. Correct sampling frequency demands an external 14,7456 MHz crystal.

Chip Configuration ]

The speech can be reproduced with a kristallörfon Piezoelectric Earphone ( Ceramic Earphone, Crystal Earpiece ). Crystal Earphone.

"We speak not only to be heard but to be understood"

Is that up to the PIC-processor to say ...

It may sound better if you try to spell a bit wrong:
hello student welkome to our pik course

 hello_talk.c


How does it work?

Someone with a SP0256 chip have recorded all allophones at the sampling rate of 7200 Hz. The measurement values from this, are now stored as a sequence of 8 bit numbers in our EEPROM memory. All measurement values "0" have been removed, and replaced with "1". Therefore, "0" could instead be used to mark where an allophone ends and the next one begins in the memory.

The PIC processor has a table of the various allophone "start addresses". To pronounce an allophon the PIC processor read from the start address and forward until it hits the number "0".

PIC-processor TIMER2 is used as "servoupdate". After each eight PWM-pulse an interrupt is generated. The interrupt routine fetches a byte from the EEPROM memory and loads it to the PWM-unit. PWM signal is smoothed by a low pass filter so that it resembles the original speech sound.


© William Sandqvist    william@kth.se