Speech Recognition, Voice Verification -- Free
ten thirty writes: "TECHNOCRAT.NET recently featured a great
article regarding the dawning (well, it's only a few of years old anyway) of speech recognition software within the open source community. In particular, the
Sphinx
project of Carnegie Mellon University is discussed, as well as some other systems such as Festival and a public domain project at the University of Missouri. The notion here is that
eventually the GUI, which has come so far over the past two decades, will eventually be supplanted, at least for some applications, by the VUI. The question is, will the open-source community allow the integration of this technology into our society be spearheaded by closed-source vendors?"
This is not the first time this happens. I have seen this story a couple hours ago (around 1400 EST?). It disappeared from slashdot for several hours and then reappear with a new time on it. This is not the first time this happens. Does anyone know what this means?
Opus: the Swiss army knife of audio codec
It'd also be nice in a wearable computer system, though I'm sure someone already has a patent on using voice to control a wearable computer.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
A friend of mine would like to find a usable speech-based program that runs on Linux. He's not concerned about it being a free package - he can't type due to wrist problems, and he wants to do his work on Linux, and not have to run a Microsoft operating system for that, but most of the speech packages like Dragon only run on Windows variants. Is there anything usable that's been ported to Linux, or can you run any of the packages in Windows over VMLinux and have them usefully connect back to Unix processes running on VMLinux?
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
It is no secret to people working in the field of signal detection, and especially speech detection, that algorithms that work well will be extremely valuable.
It is further no secret that Microsoft has been hiring machine learning and speech recognition experts from anywhere they can find them, and paying them pretty well.
You can bet that the best voice recognition sequences will be patented and protected in the US.
User: Post this story
Computer: Unable to toast lorry
User: No, Post, P
Computer: Command 'host tea'. Tea is scheduled for 16:00
User: Post the damn story
Computer: Command 'roast ham'. Oven is preheating. Would you like to serve the Ham with tea?
User: Cancel, I do not want ham, I do not want spam, I do not like it in a car, I do not like it at the bar. Just post the story.
...
JET Program: see Japan, meet intere
I'm thinking Emacs might be very well-suited for voice recognition.
Think about it: Practically everything in Emacs is done with lisp functions, most of which have names that are basicly english. Obviously you could have the "undo undo undo" thing where the undo function is called, you could also have "revert buffer, yes", "compile", etc. And because Emacs is Emacs and has the "everything but the kitchen sink" aspect to it, you'll probably also have lisp functions for accessing a web browser, mail client, mp3 player, television via your tv card, lights and household appliances via X10, etc, etc, etc.
In comparison, try integrating voice recognition into a windowing system. I can't help but think of that IBM(?) commercial with the guy sitting on the park bench with pigeons all around, wearing a headset thing with voice recognition... "up up up up" as if he were using a mouse with his voice. How unelelgant can a user interface get?!
Yep, Emacs is gonna take over the world, or at least integrate all of its functionality. :)
i'm actually quite annoyed that with all these egg cams and video cam/capture boards, no one has written a decent netscape plugin or even a standalone app that lets me record and send a short mpeg to my associates via email attachment.
if i didn't have a day job wearing me down, i think this would be a killer app for all those people with cams and mics laying around.
please, don't yap about "just grab some mpg and send it" -- i'm taking about something integrated, easy to use, and simple to configure.
---S.D.
Treatment, not tyranny. End the drug war and free our American POWs.
See my user info for links.
I used a Pika Daytona card with 4 i/o lines activated, and the ACS (now called Bayonne) Telephony system to build the scripts.
:)
Custom-built tgiexec (tgi=Telephony Gateway Interface) scripts to be run from the ACS IVR system to give me details on the system, run commands, play back results, etc.
Considering cleaning it up for open source release in the near future. It's definitely way cool to be able to admin a Linux box with a telephone from anywhere in the world!
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
Voice recognition at last! Finally, when I talk to my computer, it'll realize who I am! From now on, whenever I ask it to open the pod bay doors, it'll say "I'm sorry Denor, I'm afraid I can't do that".
It just ticks me off when the computer mistakes me with Dave, is all.
-Denor
Even if VUIs work perfectly, there are two major drawbacks that will make many people prefer GUIs:
1. Privacy. Do you really want to be saying things like "browse to pervert site dot com" or "send bankruptcy memo" out loud? Typing and clicking are more discreet.
2. Annoying others. I don't want to be in an office full of people babbling at their computers. I also don't want to be on a plane or in a restaurant near somebody babbling commands at his laptop. It's bad enough already with cell phones.
That being said, there will be a place for VUIs in critical hands-free situations such as in cars.
I could work in a room with 200 other GUI users, but I don't think I'd want to work in one with 3 other VUI users. Not to mention I wouldn't want some of the loudmouths around here accidentally issuing orders to *my* computer.
-----
I think the "quick shortcuts" paradigm of speech in UI is vastly underestimated. For example, think about how much mental energy/concentration it would save to be able to just say
"Play U2"
instead of:
find MP3 player icon, deiconize, click load, click U2 playlist, click OK, click play, iconize, put mouse back in editor window, recommence hacking
I think the quick verbal shortcut causes a much smaller disruption of concentration and saves a tone of screen real estate. For those of us insane people who have 6-7 emacs windows, 2-3 netscape windows and 3-4 xterms going on 4 virtual desks, this would be a HUGE benefit.
I can't tell you how much mental energy I have saved since I got a box with external volume control instead of a GUI volume tool. I think a voice interface would help in similar ways.
So, I think voice-assisted GUIs would be great, accelerating the experience just like keyboard shortcuts help keep experienced users sane today.
If it was fast, I would like it for all sorts of simple things. For instance, in Quake III, I want to leave my fingers over a small set of command keys and mouse buttons. This slows me down for switching weapons. If I could just say "rocket" to switch to the rocket launcher, that would make me a little more competitive.
In text editors, I would like to say "oops" and automatically have the last word deleted. That would definitely speed me up, but my cubicle neighbors might get tired of hearing a constant stream of "oops... oops... oops" over the wall. I bet it wouldn't be hard to patch that into emacs...
Bruce's description of a voice-controlled car stereo is also good. This is especially interesting to me, because I am thinking of building an MP3 player for my car that will be a full X86 computer. How do you do a user interface that allows you to scroll through hundreds of albums and thousands of songs? While driving?
Voice command seems like the best solution. Say "Play... U2... Zooropa... Lemon", or "Play... Beethoven... Sixth Symphony". (imagine a little chime from the computer during each "..." to indicate it "got" it and is ready for more input.)
I should be able to operate that while driving without driving off the road. And, a well written voice command program could be pretty accurate for that application, since the set of valid inputs is reasonably small at each step.
I'm enthusiastic about the possibilities. I predict that once people have this, they will wonder how they ever survived with out it. Just like wheels on mice!
Torrey Hoffman (Azog)
Torrey Hoffman (Azog)
"HTML needs a rant tag" - Alan Cox
- How to do speech recognition at all
- How natural languages express meaning using words and sentences
- How to integrate sophisticated speech recognition into user interfaces that will be useful/meaningful/interesting for users.
Research tends to happen either at universities or at commercial research labs like Bell Labs, Xerox Parc, and IBM, where people can spend a long time looking at hard problems; while that can happen in an open academic-type environment or a closed intellectual-property-hoarding secret laBoratory, research is a much different environment from design or implementation, which are closer to what open-source development processes are good at, which are things that amateurs can do using their own resources or that professionals (including advanced college students) can do that piggybacks off their own work, like hacking operating systems or compilers. We're fortunate that enough of the development of speech recognition has been open so it's accessible for use - learning how people make phonemes with their mouths, words out of phonemes and sentences out of words is an immense job if you have to reinvent it.Early user interfaces were simple - if your recognizer can only do 10-20 words, it doesn't take deep design research to design an interface - telephone companies do obvious things with 0-9/yes/no/help, and computer interfaces pick a dozen Mostly Harmless commands so that a misrecognized command or somebody walking down the hall talking doesn't trigger "rm -rf /", it just triggers ls or "play cd" or something. But now that voice recognition can handle vocabularies of hundreds or thousands of words, depending on your taste in accuracy and user-specific training, figuring out what good designs for interfacing with voice users that make sense in the environments you expect them to use is a large set of research problems. Open source is ok for doing implementations of specific proposals for what that interface should look like, and pretty good for tweaking existing designs to do more things, and really excellent for connecting the voice interface up to other things that are already written. But overall, it's a design problem, not a hacking problem.
As far as things I'd see that are useful that voice recognition interfaces can do, some are pretty obvious, like cellphone dialers and dictation tools - you'd like to tell your handsfree phone "call Alice" while you're driving, and have it look up Alice in a database, rather than typing or saying "+1-987-655-3210, er, umm that was 654-3210". (Some cellphone companies provide this - it's not based in your handset, but at the cellphone company's end, using a database lookup on your phone numebr to retrieve your voice settings and your list of names and phone numbers. If you're the canonical carpal-tunnel-abusing hacker, you'd like to dictate some of that business plan by voice using a voice editor that can stitch together words you've recycled from previous documents instead of having to mouse it in.
Beyond that there's a lot of open territory - it'd be nice to be able to walk down the street with a headset on or sit at a desk with a speakerphone or headset and tell your computers what you want them to do, who you want to communicate with, have them tell you stuff you want to know, etc. It's not a direct substitute for reading off a screen and pointing with a mouse; it'll change your workstyle just like adding GUIs and getting cellphones did.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
Unfortunately saying "Operater" does NOT get you to a human [no matter how loud you scream it :) ].
This probably isn't a bug in the voice recognition software - its probably the company justifying *not* having the expense of having a live operator waiting to take the call by implying that it's a bug in the VR software...
You might think I'm being conspiratorial, but having worked in the telephony business for the last couple of years, I can say with all honesty that this is standard practice. Anything that will cut costs on telephone front lines, a company will do... particularly a large one like Sears, with its legions of consultants.
As for the misorder, well that would suck, but it wouldn't last long - there's definitely ways to ensure this doesn't happen, such as order verification before the customer hangs up...
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
One of the factors contributing to few developers is the simple fact that english as the only language is almost useless to almost all people on earth ...
Look, how many open source projects were developed by people whose primary language isn't English (Finnish : Linux, German: KDE, etc.).
So IBM: Please internationalize VV for Linux.
Moving trained datasets from the windows software to linux isn't a solution.
-- "As a human being I claim the right to be widely inconsistent", John Peel
Xvoice is a GPL front end to the freely available IBM ViaVoice libraries. So no, not everything in the vorec world has been completely closed source before this.
Information wants to be free
Information wants to be free
So what? Guns want to kill, but we have laws against that.
Honest question: For what niches is this technology useful?
I can maybe see controlling a speaker-phone or a TV with this, but button-based interfaces are pretty efficient for this as it is. I can maybe see using this for quick shortcuts on a computer, but again, current interfaces are pretty efficient.
For massive data entry or for extended interactive editing, this probably isn't practical (try giving a multi-hour lecture - not too comfortable, is it?).
So, I'm wondering where a verbal interface _is_ practical.
I personally believe, that Voice Recognition technology is an ideal candidate for open-source development.
The main reason is that VUI technology will eventually infiltrate most areas of technology, and by moving forward through open-source with voice recognition, we allow a much more diverse and portable array of technologies to blossom. Most likely, quicker than someone like Microsoft or IBM could move.
The problems I see, are stability and customer support. Can those be adequately supplied in the open-source community, or is that something delegated to the closed-source companies?
It's only when we've lost everything, that we are free to do anything...
Seems to me that IBM's ViaVoice source code had been released, but apparently not as Free software. They now sell ViaVoice for Linux for $59, and offer a free SDK to integrate it in Linux Apps. http://www-4.ibm.com/software/speech/linux/dictati on.html
Well, at least there is some choice!
jcc
I dont' think VUI's are going to be feasible until they are intelligent enough to understand a wide range of accents, including the accents of, for example, non-native English speakers, who are now speaking English, and when they are intelligent enough to understand the difference between slash-dot and /. as an example.
When it can determine "Open Internet Explorer, go to www.slashdot.org, scroll down half way" or "Scroll down to the poll" or whatever -- THEN it will achieve wide-spread use. Not until then.
http://quiz.ravenblack.net/blood.pl?3357354385
Having a speech recognition toolbox is only one part of the problem. As many people in the domain (I used to work in speech recognition) will tell you is that sometimes, the key to a good speech recognition engine is not in the code, but in the speech data used to train it. Speech databases are very expensive and speech recognition companies usually have a lot of "proprietary" databases.
One project which addresses the problem is the Open Mind Initiative, and more specifically the Open Mind Speech Recognition project, for which I am the coordinator. Our goal is to collect data from people on the internet and make that data available to people working on speech recognition with a GPL-like license. I think this is the key to having OSS speech recognition engines perform as well as the proprietary ones. The project is not very advanced yet, but any help would be really welcomed.
Opus: the Swiss army knife of audio codec
How far away are we from making voice-recognition ....a teacher that has endless patience
software that will allow us to have a computer mentor that teaches foreign language?
and insists on correct pronounciation and grammar.
If we incorperated it into an OpenGL environment of somesort we could have language roll playing tutorials that allow someone to purchase a loaf of bread, milk, eggs and cigarettes in japanese. Total emmersion into the new language. Plus it would allow students to progress at their own pace.
-"You'll have plenty of time to sleep when you're dead."
Mike Monkowski - One of the engineers for via-voice recently asked why via-voice had so few developers using it.
I replied with the following-
I would suspect, that the primary reason [there are so few developers of via-voice] is the desire of (free software) programmers to not make their code dependent on non-free (as in speech) software. For better or worse, many Linux programmers will reject, out of hand, any library or software that is not based upon one of the standard free licenses (GPL, LGPL, BSD, NPL, Artistic, etc.).
Given that IBM is unlikely to change it's licensing terms in the near future, and that (free) programmers are unlikely to change their moral stance on using 'non-free' software. Development with viavoice will likely
be limited to commercial programmers, or those situations where STT/VTS are a necessity such as applications for the blind.
Tom M.
TomM@pentstar.com
In a latter post he asked our opinion on the IBM Public License. My reply was thus...
"I did a search on the web for discussions on the IBM Public License (IPL).
According to Bruce Perens, (and the general consensus...)- the IPL is OSD
(Open Source Definition) compliant, but not GPL compatible. Being OSD
compliant will certainly encourage more developers, however, how many is the
big question. Of the free software developers out there, my guess would be
that 80% (likely more?) will only develop (in their free time) with software
that is GPL compatible (i.e. GPL, LGPL, BSD, and a few others). However,
for 'work' stuff, the IPL is less problematic, and thus would lead to more
commercial development (not as much as the GPL, BSD, LGPL - but mostly for
'religious' reasons).
Personally, I would recommend going with the GPL, which would result in full
and quick integration with all of the Linux distributions, and allow source
from many useful GPL and LGPL projects to be integrated/merge with it. I'm
guessing that the developer good will from such an action would be
Phenomenal. The suggestion of another poster that viavoice should be viewed
as infrastructure is very valid. However, I'm a realist. There is almost
zero chance of IBM doing that unless they come out with their own Linux
distribution, and tout complete voice integration as the big selling point,
or, the dollar value of developer good will is high enough to justify
whatever future lost revenue would be. (I'd bet that it certainly would be-
having a 'truly free' voice software solution would be rather impressive.
The fact that viavoice isn't considered a drowning/dying product (I.e.
Netscape) or (in the case of Apple) one that was previously free - would be
all the more impressive.
So, given the above, I would say that changing to the IPL might well give vv
a strong pull for more developers, certainly enough to justify the change.
Of course, as suggested above, an even stronger case can be made for the
GPL.
Tom M.
TomM@pentstar.com
"
If you would care to contribute to the conversation, you can join by sending email to
join-viavoice@laser.sparklist.com
Thanks,
LetterRip
Tom M.
Speech isn't all that great of a user interface. How would you like it if everyone in the office started blearing out"open netscape" "go to W W W . S L A S H D O T . O R G" and so on. If you ask me it would be rather annoying. I for one can click on menus a lot faster than I could tell a computer to do it out loud. Speech recognition is good for taking dictation in a word processor, but as a user interface it is far from the holy grail.
bash-2.04$
bash-2.04$yes "Don't you hate dialup connections?"| write USERNAME
ViaVoice has a LINUX distro out and if you want to try VM and use Win then Dragon Naturally Speaking works rather well.
Question reality.
Well, I see a lot of people talking about VUIs being good for people with disabilities, etc. This however is NOT the breadth of the voice interface application possibilities. The fact is, there are approximately 1000 times as many phones in this world as there are personal computers. THAT is where the speech recognition comes in. If you have not, go to tellmeor to Carnegie Mellon's site and try out the applications there. The potential is incredible when you think about it. Nuance software is capable, for instance, of voice verification with less than 2% false accept rates, and .02% false reject. That is adjustable, and these numbers only represent the accept/reject rates where in the actual caller is unauthorized or authorized respectively.
"are em space dash eff capital arr space slash enter."
No worries; your computer will dutifully add to the command line:
bash$ Our imps pace the chef cap a dull ours pace lashing turn.
which may give the grammar checker fits but which won't erase your hard drive.
Telephones are everywhere. If you can replace the computer interface experience, currently dominated by keyboards/mice/video screens, with a telephone, you can do a *whole* heck of a lot more with the computer than you thought.
Think e-commerce.
It's far easier for a consumer to pick up a phone and talk to a computer to place their order for X widgets than it is for them to log on to the Internet, type in a URL, etc. *Far* easier.
This will be the 'tractor app' for voice recognition, and in many cases it already is... Called AT&T customer support lately? Probably half of that call was handled by a computer listening to what you were saying...
Other posters are correct in saying that it may not seem appropriate right now, just like the WIMP interface didn't seem appropriate in the early 80's, but there *will* be uses for it.
I've already built a Telephony-based interface to my Linux web server. From anywhere in the country, I can call it up, get an uptime reading, ask for a running total of web orders, restart the web process, even shut the machine down, all over the telephone.
Telephones are an ideal interface to a computing system. Okay, so you're not gonna want to play Quake with it (though I'm sure some fool hacker will add it, heh heh), or play with the Gimp over the phone (hey, whatever turns you on), but there are plenty of interfaces that could be replaced with the telephone and be a *hell* of a lot easier for people to use - web forms, for example, could really easily be replaced with a voice recognition software-running dialup #...
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
So there are many areas where it could be usefull...IF the technology is good enough, and good enough is almost at the level of StarTrek - so we are a few years off.
The big challenge here is not so much the actual recognition, but the parsing - you have to be able to format highlevel queries for it to be of use
"Computer, show me a list of slashdot articles which includes the phrase ''I love pizza'' and where written this month"
"Computer, if we close the Lockheed branch how will it affect next years production of widgets"
"computer, record all episodes of StarTrek, that's wednesdays at 7 on channel 8. Keep doing this until i tell you to stop. Tell me when you need a new tape. And remember to edit out the commercials"
Programming is unlikely to benefit from this in the short term, because clearly it would be faster (for those of us who use all our fingers in the typing phase :) to type it in - but the day may come where programming takes place at such a high level that one is manipulating large data abstraction modules, rather than "Goto oops"
[x] Actually post something relevant [x] Never post again