The Birth of Broadway
By 1986, a moose could appear on a Macintosh screen. He talked aloud and told jokes, with his mouth moving along with the words.
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.
Talking computers today often raise questions about artificial intelligence. The Moose's beginnings tell a different kind of story, that of one programmer working out how to make a computer-generated voice seem to issue from a character.
Why pick a moose?
The antlers helped.
Pictures of the original Talking Moose show a two-dimensional Macintosh character. Since there was little room for detail, much of the work fell to its outline. Antlers, Halls recalls, were easy to make out at a small size. He liked moose as well, and that settled the choice.
The first version was written by Halls in assembly language. Making the lips follow the speech took real ingenuity. The program located Macintalk in memory, as Halls recalls, that being the Macintosh speech engine. It observed the sound being played and then changed the Moose's mouth shape to suit.
None of this altered the speech engine's memory. The Moose was watching it. Accessing memory across applications was possible in early Macintosh software, though modern operating systems generally restrict it.
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, with no language model behind the face.
Into Color
Color arrived for the Moose around 1989. 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.
It is a small piece of computing history you can inspect, the character as it looked then, preserved on paper as well as in software.
Former users supplied a further 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 was widely admired by some of the cleverest developers I've ever known and became my constant companion on my Mac Plus."
Among the recollections sent to Halls sits that letter. People still remembered the character well enough to write to its maker, decades after using the software.
Making a 3D Head Seem Alive
The later Windows Moose had a three-dimensional head. Its ears moved; its eyes looked around. 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. Instead, the Windows character used procedural animation, with algorithms generating its motions.
Controlled randomness is what Halls's explanation of the animation describes. A movement could end near a target rather than at exactly the same spot each time. Its speed varied too, as did the pause before the next movement. 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. The old Macintalk memory-observation technique did not need to be recreated.
Something useful to say
Plugins gave the Moose other things to talk about, while jokes remained part of it. News and weather joined reminders and notifications.
A working Pushover connection appeared in a June 2016 update, with events for the Moose to announce supplied by IFTTT. One example warned of approaching rain. In another, a phone entering a home geofence triggered a spoken "Welcome home" on the user's PC.
You did not have to keep checking a screen for those messages. You could hear them.
A Voice with a Face
Forty years stand between the original Moose's 1986 appearance and today's enthusiasm for AI assistants. To call it an early version of today's conversational AI would miss what Halls actually built. A joke could appear to come from an antlered companion, thanks to speech synthesis and carefully written animation code.
For Mike Ellis, that companion belonged on his Mac Plus. It could announce rain or greet someone arriving home in the later Windows project.
Looking at the early screenshots is still worthwhile. It's plainly a face made of pixels, yet a former user remembered a companion. That's quite a result for a joke-telling moose. |