A Pain in the Parse

I’ve pushed waves of tweaks to my Voice-Activated Timer Glassware since putting it on GitHub, and nearly all of them patch corner cases in Google’s speech-to-text. There are a lot of these.

Behold madness itself.

20131226_194545_433_x

20131226_194633_498_x

20131226_194352_085_x

“1&a half hours”?! What the actual hell?

Google’s voice recognition is nondeterministic like Guy Fieri is overweight. My parsing code has no fewer than five special cases for non-numeric versions of “1” alone, and that’s using case-insensitive matching. There’s no rhyme or reason for how Google picks syntax. Sometimes it’s “one and a half hours”. Sometimes it’s “1 and a half hours”. Sometimes it’s “1&a half hours”, which is on its own level of short-bus derpitude.

You know what would be nice? Deterministic voice recognition.

You know what would be better? On-device, restricted-vocabulary voice recognition. My innocent, morally-wholesome users, whom I respect greatly, have to wait five seconds for a server turnaround to find that Google has mangled their crisp speech into unrecognizable bullcrap.

Thanks to my users and their preoccupation with bug reports, it’s actually getting pretty bulletproof by now. Download the APK, use it yourself, and maybe you too will find a new corner case to call your own!

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s