The n900 really needs some sort of voice recognition. While the keyboard is nice, it’s sometimes a real pain and I really just want to be able to tell it ‘find all restaurants nearby’ or ‘call X”. There are a few options when it comes to voice recognition, I think the most likely to work well enough is CMU Sphinx especially now with the advent of pocketsphinx. pocketsphinx is specifically designed to be small and fast and it seems to deliver on both points. I build the pocketshpinx libraries for the n900 (patches to the upstream version of pocketsphinx are available here) and I’ve been playing around with them for the past two days. The accuracy is good enough and integration with the rest of the system so that you can give commands like switch task should be doable. To test things out and get my feet wet I’ve been using a quick python script called voximp, it’s simple to set up and it’ll let you issue commands immediately.
The new packages are available from the standard optified repository: gstreamer0.10-pocketsphinx, libpocketsphinx1, libpocketsphinx-dev, libsphinxbase1, libsphinxbase-dev, pocketsphinx-hmm-en-hub4wsj, pocketsphinx-hmm-en-tidigits, pocketsphinx-hmm-zh-tdt, pocketsphinx-lm-en-hub4, pocketsphinx-lm-zh-hans-gigatdt, pocketsphinx-lm-zh-hant-gigatdt, pocketsphinx-utils, python-pocketsphinx, python-pocketsphinx-dbg, python-sphinxbase, python-sphinxbase-dbg, sphinxbase-utils.
Hopefully I’ll get around to wrapping all of this in scheme bindings and a gui sometime soon, and now that I have MCE bindings I should even be able to implement placing calls by voice tags.