Computer: Wake me up at 7:30...
|
Computer: Wake me up at 7:30... |
 |
Voice enabled computers, part 2: an introduction to the Speech Recognition technology.
Speech (or voice) recognition (SR) is the ability of a computer to "understand"
and interpret spoken words. With the recent advances in both software and hardware,
it is offering an efficient and affordable alternative to traditional input
devices. Researchers are also interested in natural language processing
techniques as an extension of the speech recognition, providing a more natural
and intuitive interface. The accuracy of SR software has reached well over 90%,
but don't throw your keyboard away yet. An average of ten mistakenly recognized
words on a total of hundred words still makes it far from perfect. This article
will give a brief overview of the technology and its practical applications.
As usual, we'll start with a bit of theory and continue with the practical examples.
The first attempts to build a machine that can understand human speech were
made in the late 1940s at the US Department of Defense, with the obvious goal
of interpreting and translating intercepted Russian transmissions. These early
experiments typically used top-down approach, trying to perform a literal word-for-word
dictionary lookup. However, imagine how much time and computing resources had
to be used to record and store a representation of each word in a specific language.
Even then, the mapping from symbols to speech is not one-to-one since different
underlying symbols can result in very similar speech sounds. As it turned out,
human speech recognition operates at much lower, phoneme level. Phonemes
are the smallest units of speech that distinguish one utterance from another.
But the greatest problem lies in the fact that individual phonemes aren't particularly
"well-behaved": individual speech sounds may vary depending on the
sounds preceding and following the specific phoneme. In a modern speech recognition
system, the digitalized stream of amplitudes of a speech signal captured by
a sound board is first converted into the dominant frequency components. Each
of these components is mapped to a specific phoneme, so the system can interpret
words in a dictionary from the phoneme sequences that produce them. The key
process showing the probability of one phoneme combination following another
is based on a technique known as a Hidden Markov Model (HMM). The vast
majority of commercial speech recognition algorithms are currently based on
the HMM, with slight differences in probability calculations, endpoint detection
schemes for continuous dictation, etc. The Hidden
Markov Model Toolkit (HTK) from Cambridge University is a portable toolkit
for building and manipulating Hidden Markov models. If you are interested in
more "hands-on" approach, a HTK
book provides an in-depth tutorial to building such systems. The final chapter
of the tutorial describes the construction of a recognizer for simple voice
dialing applications (14 complex steps described on 23 pages). You'll quickly
see that creating a new speech recognizer from scratch is an extremely difficult
and time consuming process - not to mention that the result is entirely language
dependent. OK, so you have built a recognizer for the English language, but
what about hundreds of other languages?
Making computers available everywhere, to everyone, is going to mean making
speech recognition available for every language. The Microsoft
Universal Phonetic Set (MUPS) project starts from the idea that we can collect
the data in only one language, and perform a slight, language-specific, mathematical
transformation to make it correct for the others. It will initially concentrate
on getting and sharing data for English, French and Spanish. The goal in the
long run is to share senones, the very small units that make up a single
phoneme, building models of how human mouth, tongue, and lips form sounds.
When everyday applications of SR technology are concerned, entering text quickly
and easily is one of its main strengths. Two broad categories, discrete
and continuos speech recognition, are used in different scenarios. In
discrete dictation, the system stores a predefined vocabulary of recognizable
words, and the user must pause for a few milliseconds between words. This limitation
disappears in continuos dictation products, resulting in a more natural interaction.
Modern packages can now distinguish between a command to the PC and continuos
dictation, making separate dictation and command modes obsolete. Limited processing
power - typical for the embedded environments - is now one of the rare reasons
to use a discrete speech recognition. Compared to the average speaking speed
of 180 words per minute, input rates of up to 130 words per minute achieved
by fully trained SR systems will clearly boost productivity in a text based
environments. "Fully trained" means that you'll have to spend some
time on a process called enrolling that includes reading a couple of
basic sentences, sufficient for the software to create a basic user profile.
Failing to do that will result in a frustratingly poor performance and limited
productivity. And remember that even the best SR system won't work properly
without a tiny piece of hardware. Background noise will greatly reduce accuracy
rate so special noise cancellation headsets are recommended for all recognition
packages.
More info on speech recognition technology, including a high-level explanation
of basic concepts can be found in ZDNet
Speech Recognition Special. But speech recognition technology isn't restricted
only to PCs. An excellent introductory article from Speech
Technology Magazine titled "Speech-enabled
Appliances" describes SR and TTS technology in home and office appliances.
Quick list of Speech Recognition packages and information
Dragon Systems
Producers of one of the most accurate SR packages, Dragon NaturallySpeaking,
recently bought by another industry giant, Lernout
& Hauspie (L&H;). Windows-based SDK can be interfaced through
ActiveX controls, COM interfaces, or SAPI methods.
IBM
Voice Systems
"Big Blue" offers a (very) wide range of Home and Office software
(ViaVoice for Windows
and Mac), as
well as enterprise
voice solutions and technology
for Web,
telephony,
Linux
and mobile
applications. Excellent developer options, including SDK for Windows, Linux, Java, and various other kits.
Interactive Systems
Interactive Systems Speech Toolkit uses a layered architectures, that allows
application developers, researchers, and programmers to each access the speech
engine at an appropriate level: SAPI, JSAPI or JPYTHON interfaces, access to
the core engine in Java.
Linux SR applicationsThis document describes the basics of speech recognition on Linux platform
and describes some of the available software.
<Microsoft
Probably the most popular speech developer's platform for Microsoft Windows.
The newly released Microsoft Speech SDK version 5.0 includes the newly rearchitected
Speech API (SAPI), updated development tools, samples, documentation, and enhanced
versions of the Microsoft continuous speech recognition engine (MCSR) and Microsoft
concatenative speech synthesis engine (TTS). A list of compliant third
party tools includes dozens of interesting links.
Nuance
Nuance 7.0, the company's flagship speech recognition and natural language understanding
server for use in telecommunications, enterprise, and Internet applications.
Nuance Voyager is a voice browser that makes it possible for phone users to
access people, applications, content and voice-enabled Web sites via a standard
voice interface that parallels that of a Web browser. Nuance Voice Web Server,
incorporating a VoiceXML interpreter, enables rapid creations and modification
of voice sites for enterprise companies. Nuance also offers a wide range of
integrated development tools.
Philips
Philips is another industry giant that is very active in the SR field. The list
of their PC Speech Applications includes several applications for home and office
users, as well as professional solutions with business-specific terminology
and speech SDK.
SoftSound
SoftSound has developed a complete system for accessing the information in spoken
documents such as news broadcasts or archives. The system works by applying
a fast speaker-independent speech recognition system to spoken audio to obtain
a rough transcript of what was spoken, and indexing this material by a specially
adapted search engine.
SpeechWorks
Four complete speech recognition solutions for telephony applications: SpeechWorks
6, SpeechSite, Speechify and ETI-Eloquence.
Vocalis
Various end-user products (speechMail), Web based solutions (speecHTML), telephony
services (SPEECHtel), and SpeechWare, a core SR technology underlying all products.
It offers a combination of a proprietary low-level API as well as higher level
functions. The low-level API provides full access to the core recognizer features,
while the higher-level functions enable quick application development. The Developers
Toolkit is Java based toolkit that allows developers of all experience levels
to create and manage files required by the recognizer.