Speak (Unix)


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 model VS4 "Votrax" Speech Synthesizer. It was first included in Unix v3 and possibly later ones, with the OS-end support files and help files persisting until v6. As of late 2011, the original source code for speak, and portions of speak.m were discovered. At least three versions of the man page are known to still exist.
The main program was around 4500 bytes, the rule tables were around 11,000 bytes, and the table viewer was around 1900 bytes.

History

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, McIlroy published a paper describing the workings of this algorithm.
According to the McIlroy paper, "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".

McIlroy Algorithm

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.
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, 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.