The intent of this blog is to give an breif outline of one of my academic android project.
After scouting for number of android app ideas, I decided to make a utility application on the android platform which was capable of controlling and operating the computers according to voice instructions given by the user on their mobile phones.
I decided to name the app "APVC", acronym for Android Pc Voice Controller. The application was fully capable of operating computers, used for quick and accurate text typing using voice, performing various system functionalities such as - playing audio and video files, searching web browsers, performing calculator operations etc.
Since I was new to android development, to get started and getting use to the platform, I created various mini applications such as calculator, text editor and a mini music player. For the main application "APVC", the key features were "end-to-end data networking" and "speech to text voice recognization". I used a common wifi network as the communication channel to establish connection between server and the client (PC and the mobile). The app was able to pass textual data between the two. To Implement the voice recognition feature, I used speech to text android intent powered by Google search in the app. It was configured easily and its working was really appalling.
With the two main features implemented in a good state, The app was able to receive the text version of human speech as produced on the mobile. I integrated all the distributed snippets to give a structure to complete project. Later I added a two way authentication as the key security feature in the app. Now the app server would only response, if the correct key was passed and received at both ends.
On the server side, most of the processes were getting executed sequentially, to reduce the overhead I wrapped the processes into multiprocess channels. Now the app was able to perform all the functions smoothly. For instance if text "Open Notepad" was provided as speech input, then the methods would execute a command that would open the notepad in the pc.
In the similar manner, I created about 25 differeny functionalities that would perform different tasks. I developed the feature of text typing in my project. The same functionality was replicated on the notepad, browser, chatting, word pad and even command prompt!, which indeed opened up space for many new operations like command line aspects like shutdown, system sleep, opening and closing applications. One interesting feature of this project was opening and playing audio and video files. The user could explore any directory and play the present audio and video files. Later I added the functions to control sound and speed as well. Features like closing the opened window and entering into new line, special characters typing were also introduced.
That's all my the project APVC, This app is extendable for a number of scenarios. You can check out the project Here. Feel free to discuss and comment.