Actually there is a streaming mode, but it requires an API key. Here is an example of how to use it: http://mikepultz.com/2013/07/google-speech-api-full-duplex-php-version/
If you want something that learns, you'll need to create a neural network to handle the data. The best open source tool, however, is CMUSphinx or pocketSphinx(a mini version of CMUSphinx). Here is a link to that tool: http://sourceforge.net/p/cmusphinx/code/HEAD/tree/trunk/
The best part of CMU-Sphinx, however, is that you can set a dictionary of keywords. Instead of outputting gibberish, you can have it ONLY output those commands and finds the command closest to what it thinks you are saying. This make speech recognition incredibly accurate, but only work for a small set of words.