Carnegie Mellon University: Perl Brings Everything Together--Quicklyby Howard Wen, Scott Hill
At Carnegie Mellon University, Perl figures in robotics applications development more times than you can count. "We use Perl constantly--from simple CGIs, to application 'glue,' to fully functional speech synthesizers written in Perl," says Kevin Lenzo, a systems scientist at the International Software Research Institute.
Perl's rapid prototyping, flexibility, system interaction, object-oriented mechanism, and networking capabilities make Perl right for many of the applications in the Robotics Institute, where Lenzo and others use speech to interact with robots, getting information from them and asking them to do things. As Lenzo puts it, "You don't go up and type into the robot in science fiction films."
Lenzo is earning a Ph.D. in the university's Robotics Institute, building on a master's degree in robotics from CMU and a bachelor's degree in computer and information sciences from Ohio State University. Lenzo also once worked at Apple Computer's now-defunct research lab, where he used Perl to build models of the metrical structure of verse. He also founded Yet Another Perl Conference, or YAPC, and he's starting an open source speech-technology company to build synthetic voice applications.
Lenzo's experience with Perl began at Ohio State University when he was working on his undergraduate thesis in speech recognition (from x-ray microbeam articulatory motion data). He needed to process a high volume of multi-channel speech data on numerous machines over a local network. Perl came to the rescue. "I was, and still am, quite comfortable with several other languages. But Perl was the right tool at the time," he says, "because Perl helped me get vast amounts of data from one weird format to another over the network whenever we needed it, and to analyze and display that data."
At the Robotics Institute, Lenzo is part of a group developing the CMU Communicator, a travel-planning application people can use to create itineraries with a interactive speech agent. "The user and the speech system work together to build a plan with the real-world constraints of available flights and times," Lenzo explains. Communicator users can interrupt the agent, change their destination, and ask for help.
"There are so many things going on in that system, and we use Perl to implement a number of components and to 'glue' together many disparate parts," Lenzo says. In addition to a "natural language" generator program and an airline-flight-schedule back end, both completely written in Perl, the system has components for speech recognition, speech synthesis, dialogue management, message passing and request brokering, and various small domain agents for managing time.
"The system can be distributed over a number of machines running components on different architectures--mainly Linux and Windows NT, in our case." Perl also helps Lenzo's group analyze log files and speech recognition lattices to monitor the machinery's functioning. "While it's not the only language at work in the CMU Communicator, Perl is doing a whole lot for us," he says.
Lenzo is developing other language-enabled applications that rely heavily on Perl. Infobot, for example, is "a text-interactive agent that lives on Internet Relay Chat and 'learns' in a very shallow but useful way from the communities it interacts with," says Lenzo. "It has been extended in many ways to find international monetary-exchange rates, headlines from various sites, stock quotes, and much more."
Lenzo plans to add speech-recognition to Infobot. "I have a prototype on my laptop that lets me talk to an Infobot, using speech-in and speech-out," he says. "There are some interesting challenges here, but this could be the basis for a decent wearable computer interface that is speech-enabled."
As released and working examples, the Communicator and the Infobot allow people to see how speech-enabled systems work and to get started working with speech. And, in the spirit of Perl, both will be fully released in the near future as open source. Lenzo sees the Open Source movement as a fulfillment of Carnegie Mellon's academic mandate. That mandate grew out of the first universities, where students gathered together and hired teachers--not because they wanted exclusive access to knowledge, but because they wanted free access to the best knowledge.
Open source values recall this academic tradition--and improve the state of the art--by opening discussion and allowing all practitioners to view and discuss a work in progress. "Furthermore," says Lenzo, "if you consider your programs to be research, then one must publish them to validate them, using peer review and all the mechanisms brought to bear in the advancement of science."
More immediately, Perl saves Lenzo a lot of time and trouble integrating the complex components of all his language-enabled systems. "The fluidity of Perl allows us to get our systems up and going in an exploratory end-to-end version. Then, in very little time, we can improve each component. It's a powerful way to work."
Learn how large and small companies are putting Perl to work by reading more Perl Success Stories.