- **MULTIPLE SERVICE SUPPORT!** Now you can use Google Speech Recognition, Wit.ai, or IBM Speech to Text to obtain the recognition results.
- Filtering for clicks and pops. This **drastically reduces the number of false positives** in phrase recognition.
- Better usage examples - **ready-to-run and better organized**.
The API has also changed somewhat. Here's a quick upgrade guide:
- `speech_recognition.Recognizer(language = "en-US", key = "AIzaSyBOti4mM-6x9WDnZIjIeyEU21OpBXqWBgw")` changed to `speech_recognition.Recognizer()`.
- The key and language are now specified in the `speech_recognition.recognize_*` functions instead.
- For `recognizer_instance.listen`, `speech_recognition.WaitTimeoutError` exceptions are thrown rather than `OSError` exceptions upon timeout.
- The stop function returned by `recognizer_instance.listen_in_background` now blocks until the background listener actually stops before returning.
- `recognizer_instance.recognize(audio_data, show_all = False)` has changed to `recognizer_instance.recognize_google(audio_data, key = None, language = "en-US", show_all = False)`.
- Additionally, when `show_all` is set, the return value is the raw result from the API call, rather than a list of predictions and their confidences.
- Note that we specify the key and language here now rather than in the `speech_recognition.Recognizer()` constructor.
- `speech_recognition.UnknownValueError` is now thrown instead of `LookupError` when speech is unintelligible, and `speech_recognition.RequestError` is now thrown instead of `IndexError` or `KeyError` when recognition fails.
- Added `recognizer_instance.recognize_wit` and `recognizer_instance.recognize_ibm` for recognizing with Wit.ai or IBM Speech to Text.
To download, go to the [PyPI page](https://pypi.python.org/pypi/SpeechRecognition/)!