- **Support for the Houndify API** with `recognizer_instance.recognize_houndify` (thanks tb0hdan!).
- `recognize_sphinx` now supports **keyword-based matching** via the `keywords=[("cat", 30), ("potato", 45)]` parameter.
- The second number in each pair is the sensitivity, which determines how loosely Sphinx will interpret speech to be those keywords - higher numbers mean more false positives, while lower numbers mean a lower detection rate.
- A new example for keyword matching is now available.
- **BREAKING CHANGE: API.AI STT API IS BEING SHUT DOWN SOON.** ([source](https://docs.api.ai/docs/query))
- For now, the `recognize_api` function will keep working if you're on a paid API.AI plan, and we will not be removing it until the service is shut down entirely.
- It is best to transition to another backend as soon as possible. I recommend Microsoft Bing Voice Recognition or Wit.ai for previous API.AI users.
- `phrase_time_limit` option for listening functions, to limit phrase lengths to a certain number of seconds.
- Support for operation timeouts with `recognizer_instance.operation_timeout` - this can be used to ensure long requests always take finite time.
- `recognize_ibm` now opts out of request logging by default, for improved user privacy (thanks michellemorales!). **This is a breaking change if you previously relied on request logging behaviour**.
- Bugfix - `listen()` sometimes didn't terminate on finite-length streams.
- Bugfix - Microsoft Bing Voice Recognition changed their authentication API endpoint, so that required some small code updates (thanks tmator!).
- Bugfix - 24-bit audio now works correctly on Python 2.
- Update Wit.ai API version from deprecated version.
- A bunch of documentation updates, fixes, and improvements.