This topic has two main thrusts, voice input and data validation.
Voice recognition as a general input device will never work. Ever. In certain domains it's a perfect fit--such as giving short commands (a few words) when your hands are busy (driving, for example). In that domain there's simply nothing better.
But general computer input? Nope.
I experimented with a PERFECT V/R input system. It could convert text as fast as I spoke, it understood context at a human level, and also knew exactly what was going on.
In case you haven't guessed the "V/R input system" was a person.
You can't get better VR than that! My girlfriend at the time was curious about V/R so we tried experiments where we alternated as "input system".
Worked flawlessly. There were some serious problems tho.
1) Input speed. Typing for a skilled typist is simply faster. I can cruise all day long at 50 WPM, and hit bursts of 80. No one talks that fast.
Inputing numbers via voice is clumsy and error prone and signaling end of field can be tricky. Not to mention the arbitrary punctuation in programming languages.
2) Accuracy. Even a "perfect" system (a human) can be confused by context, pity the poor computer!
3) Your voice gets tired
. Speaking for hours at a time? Egads.
4) You bother others around you. Phone centers are one thing, but for work requiring quiet concentration? Say developing an application?
Or a library? Not to mention programming languages are not suited for VR.
Given 3 and 4 alone VR for general purposes is a bust. And can you imagine entering a password via voice?
Now on to data validation in general.
When you have people in the mix there are going to be problems. The best approach I've found is to catch the error as soon as possible. Simple things like not putting letters in a numeric field have pretty much been covered. Then there's boundry checking, and drop down lists--well, you know the drill.
Back in the punch card days (and yes, I'm dating myself
) critical data input was done *twice*, by two different people. If the records didn't match they were rejected and sent back for input again. Obviously that's horribly expensive but it is
Keeping people out fo the loop as much as possible is really the only answser. Don't double-enter data, don't have redundant data. SPOT, all the way.
Of course once data's in it really needs to be verified--especially addresses. We found this out the hard way at work...