This project is to add voice recognition to a simple Android App that I will provide
It needs to support both Google Voice and CMU Sphinx (opensource voice recognition) that the user can choose in the settings menu.
A button can be placed anywhere on the screen to start the recognition process although for the CMU implementation I would prefer that you find an efficient way to have the app always listening in the background and recognizing speech.
Here is the CMU Sphinx information:
there are a bunch of links but this one is helpful:
[url removed, login to view]
When I did this in C#, I created 2 text files of about 30 words each and a few phrases. Then I used the Sphinx lmtool ([url removed, login to view]) to generate the dictionary files . If I remember correctly the lmtool generated a ".lm" file and a ".dic" file. I do not want to use CMU provided dictionaries.
The application will need two separate dictionary files with different words in them. Create a keyword in one of the files that the app recognizes to switch to the second dictionary and vice versa
I will send you a framework done by another developer and should have a screen that is divided into six equal cells on the screen. Those cells will eventually contain images and will look something like Windows 8 tiles. Clicking on those tiles will take the user to different screens for different purposes. I know the current screens are very very basic and don't have any controls. I will populate those with content over time.
Let's assume that you have used the lmtool and have "Dictionary 1" and "Dictionary 2"
1. Settings - By default I would like to load CMU "dictionary "1". Which will be my base commands. The user should be able to select using CMUSphinx or GoogleVoice for recognition.
2. With CMU loaded on startup. I would prefer that it is automatically listening for a command. If that is not efficient, then a button to "start recognizing" for now is ok. In my C# app, it is a thread constantly running in the background that is always trying to look for specific words and if it hears it, it will execute that command.
3. If you want to just display the text recognized somewhere on the screen with an accuracy "score" that is enough. I won't leave it like that I just want to verify that it is working.
Eventually I will be using the commands to navigate the application. so if one of the "tiles" was for email. the user would say "email" and I would automatically go to that cell as if the user pressed it. so I will just add a switch statement to all the words/phrases it recognizes and if anything matches it will execute.
Please let me know if any of this is not clear or if you have any other questions
There will definitely be a lot of future projects once this is completed.