[ Drömmen om den talande maskinen ] [ the 64 allophones of english ] [ SP0256 opcodes to PIC-code ]
[ Programmera I2C-minne med PICKit 2 ]
På 1980-talet gjorde företaget General Instruments
(det som sedan blev PIC-processorernas Microchip) ett talsynteschip SP0256
för användning i dåtidens arkadspel.
Det chippet har slutat tillverkas sedan länge (och den som hört det "prata" förstår nog varför),
men om Du är road så återuppstår det nu i form av ett serieminne med de "inspelade" syntesljuden och en PIC16F690 som talsyntetisator!
( Bara på kul ... )
Talsyntes med PICKit 2 Starterkit-kortet, ett minikopplingsdäck,
och ett serieminne 24LC512 med förinspelade talljud.
Rätt samplingsfrekvens kräver en yttre 14,7456 MHz kristall.
Talet kan återges med en kristallörfon ( Piezoelectric Earphone, Ceramic Earphone, Crystal Earpiece ). Crystal Earphone.
Och det ska den PIC-processorn säga ...
Det kan låta bättre om man stavar lite fel:
hello student welkome to our pik course
Någon med ett SP0256 chip har spelat in alla allophoner med samplingsfrekvensen 7200 Hz. Mätvärdena från detta finns nu lagrade i en följd som 8 bitarstal i vårt EEPROM serieminne. Alla mätvärden "0" har rensats bort, och ersatts med "1". Därför kan "0" i stället användas till att markera var ett allofon tar slut och nästa tar vid i serieminnet.
I PIC-processorn finns en tabell över de olika allophonernas "startadresser". För att uttala ett allophon läser PIC-processorn från startadressen och framåt tills den träffar på talet "0".
PIC-processors TIMER2 används för "servoupdate". Efter var åttonde PWM-puls genereras ett avbrott. Avbrottsrutinen hämtar ett mätvärde från serieminnet och laddar PWM-enheten med detta. PWM-signalen utjämnas med ett lågpassfilter så att den liknar det ursprungliga tal-ljudet.
© William Sandqvist william@kth.se