speak was a Unix utility that used a predefined set of rules to turn a file of English text into phoneme data compatible with a Federal Screw Works (later Votrax) model VS4 "Votrax" Speech Synthesizer.[1] It was first included in Unix v3[2] and possibly later ones, with the OS-end support files and help files persisting until v6. Neither the original binaries nor the source code for speak have been found yet, though at least three[3][4][5] versions of the man page are known to still exist.
The main program (speak) was around 4500 bytes,[1] the rule tables (/etc/speak.m) were around 11000 bytes,[1] and the table viewer (speakm)[6] was around 1900 bytes.[1]
The speak utility was developed by Douglas McIlroy in the early 1970s at AT&T Bell Labs in Murray Hill, New Jersey. It was included with the 1st Edition of Unix in 1973. In 1974, Douglas McIlroy published a paper describing the workings of this algorithm.[1]
According to the McIlroy paper,[1] "K. Thompson and D. M. Ritchie integrated the device smoothly into the operating system", which is evident from /usr/sys/dev/vs.c "Screw Works Interface via DC-11".
The McIlroy Algorithm is a large set of rules, sub-rules, and sub-sub-rules, applied to a word to isolate long vowels, silent 'e's, and slowly convert each letter into its "Screw Works" equivalent phoneme code.[7] The intention of the algorithm is to convert any English text into Votrax Phoneme codes, which could be played back/recited by a Federal Screw Works "Votrax" speech synthesizer.
A later (1976), simpler text-to-speech algorithm developed jointly by Votrax and the U.S. Naval Research Laboratory, known as the "NRL Algorithm", serves a similar purpose.