The Forgotten History of Film
In 1986, you could put a moose on a Macintosh screen. He spoke aloud, moved his mouth to match the words and told jokes.
Canadian physician and programmer Steven B. Halls created the Talking Moose, back when a recognizable face had to be assembled from black-and-white pixels. Only a handful of pixels were needed to give it a personality.
Today's talking computers tend to prompt questions about artificial intelligence. The Moose's beginnings belong to a different sort of story: one programmer working out how to make a computer-generated voice seem to come from a character.
Why pick a moose?
The antlers helped.
Photographs of the original Talking Moose present a two-dimensional Macintosh character. With so little room for detail, its outline had to carry most of the work. Halls recalls that antlers were easy to recognize at a small size. He also liked moose, which settled the choice.
Halls wrote the original program in assembly language. Getting the lips to track the speech required some cleverness. As he recalls it, the program located Macintalk, the Macintosh speech engine, in memory. It observed information about the sound being played, then adjusted the Moose's mouth shape to suit.
This didn't change the speech engine's memory. It was the Moose that did the watching. Early Macintosh software could reach across applications into memory, in ways modern operating systems generally restrict.
That same access let the character remark on window and document names in familiar applications. A Moose that appeared to know something about your work was reacting to information on your own computer. Its behavior was programmed, without a language model behind the face.
The color years
Around 1989, the Moose gained color. A picture of that version, printed with an early Macintosh color printer, hung on Halls's wall. Scans in his color Moose account still show the printing dots.
Here is a small piece of computing history to inspect: the character as it looked then, kept on paper as well as in software.
Old users supplied another kind of record. In a letter published in 2016, Mike Ellis remembered seeing the Moose at a Boston Mac Developers Group conference in the late 1980s:
"He became my constant companion on my Mac Plus, and he was widely admired by some of the cleverest developers I've ever known."
Other recollections sent to Halls sit alongside that letter. Even decades after using the software, people remembered the character well enough to write to its maker.
Making a 3D head feel alive
The later Windows Moose came with a three-dimensional head. Its ears moved, and its eyes glanced about. Eyebrows and mouth gave it more expressive scope than the original pixels could manage.
Repeating the same animation clips would have made those movements predictable. The Windows character used procedural animation instead, its motions generated by algorithms.
Controlled randomness is what Halls's explanation of the animation describes. A movement could stop near a target rather than at exactly the same spot each time. The pause before the next movement varied, and its speed varied too. Smooth acceleration and deceleration kept it from appearing mechanical.
The lip-sync mechanism changed from one platform to the next. Timing information from Microsoft's Speech API told the Windows character which mouth shapes to use. There was no need to recreate the old Macintalk memory-observation technique.
Something useful to say
The Moose kept its jokes, but plugins added other things for it to talk about. News and weather joined reminders and notifications.
A June 2016 update described a working Pushover connection, with IFTTT supplying events for the Moose to announce. Approaching rain was the subject of one example. In another, a spoken "Welcome home" played on the user's PC when a phone entered a home geofence.
Checking a screen for those messages was unnecessary. You could simply hear them.
A voice with a face
Forty years separate the original Moose's 1986 appearance from the current enthusiasm for AI assistants. What Halls actually built would be missed by calling it an early version of today's conversational AI. Speech synthesis and carefully written animation code were enough to make a joke appear to come from an antlered companion.
That companion, for Mike Ellis, belonged on his Mac Plus. It could announce rain or greet someone arriving home in the later Windows project.
The early screenshots still repay a look. It is plainly a face made of pixels, yet a former user remembered a companion. For a joke-telling moose, that is quite a result.