NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1246 most downloaded on PyPI
Library for performing speech recognition, with support for several engines and APIs, online and offline.
Last release 3 months ago
17 Jun 2026
Release timing varies
gaps range from 1 weeks to 6 months
Most releases are documented
notes for 45 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
75 releases · first in 2014
SpeechRecognition 3.17.0 is out🎉 This release adds AudioData.split() for large audio file. Get all of these updates with a quick pip install --upgrade
SpeechRecognition 3.17.0 is out🎉
This release adds AudioData.split() for large audio file.
Get all of these updates with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Full Changelog: 3.16.1...3.17.0
One column per quarter.
SpeechRecognition 3.16.1 is out🎉 This release focuses on CI setup for Python 3.14 and PyPI Trusted publisher. Get all of these updates with a quick pi
SpeechRecognition 3.16.1 is out🎉
This release focuses on CI setup for Python 3.14 and PyPI Trusted publisher.
Get all of these updates with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Full Changelog: 3.16.0...3.16.1
SpeechRecognition 3.16.0 is out🎉 This release adds Cohere Transcribe API support. Get all of these updates with a quick pip install --upgrade SpeechRe
SpeechRecognition 3.16.0 is out🎉
This release adds Cohere Transcribe API support.
Get all of these updates with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Full Changelog: 3.15.2...3.16.0
SpeechRecognition 3.15.2 is out🎉 This release focuses on GitHub Actions improvements. Get all of these updates with a quick pip install --upgrade Spee
SpeechRecognition 3.15.2 is out🎉
This release focuses on GitHub Actions improvements.
Get all of these updates with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Full Changelog: 3.15.1...3.15.2
SpeechRecognition 3.15.1 is out🎉 This release focuses on packaging bugfixes. Get all of these updates with a quick pip install --upgrade SpeechRecogni
SpeechRecognition 3.15.1 is out🎉
This release focuses on packaging bugfixes.
Get all of these updates with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Thanks! 👏
Full Changelog: 3.15.0...3.15.1
SpeechRecognition 3.15.0 is out🎉 This release focuses on packaging and distribution improvements, making installs more reliable and modernizing the pr
SpeechRecognition 3.15.0 is out🎉
This release focuses on packaging and distribution improvements, making installs more reliable and modernizing the project configuration.
Get all of these updates with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Full Changelog: 3.14.6...3.15.0
SpeechRecognition 3.14.6 was out🎉 This release mainly improves docs metadata, and also clarifies existing OpenAI-compatible endpoint support . Get all
SpeechRecognition 3.14.6 was out🎉
This release mainly improves docs metadata, and also clarifies existing OpenAI-compatible endpoint support.
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Full Changelog: 3.14.5...3.14.6
SpeechRecognition 3.14.5 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.14.5 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
GroqOptionalParameters fields optional by @KorigamiK in https://github.com/Uberi/speech_recognition/pull/859Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.14.4...3.14.5
SpeechRecognition 3.14.5 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
GroqOptionalParameters fields optional by @KorigamiK in #859Full Changelog: 3.14.4...3.14.5
SpeechRecognition 3.14.4 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.14.4 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
sprc download vosk by @ftnext in https://github.com/Uberi/speech_recognition/pull/846 & https://github.com/Uberi/speech_recognition/pull/847soundfile in faster-whisper extra by @Harmon758 in https://github.com/Uberi/speech_recognition/pull/856 (Thanks!)recognize_vosk() by @ftnext in https://github.com/Uberi/speech_recognition/pull/842 & https://github.com/Uberi/speech_recognition/pull/843Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.14.3...3.14.4
SpeechRecognition 3.14.4 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
sprc download vosk by @ftnext in #846 & #847soundfile in faster-whisper extra by @Harmon758 in #856 (Thanks!)recognize_vosk() by @ftnext in #842 & #843Full Changelog: 3.14.3...3.14.4
SpeechRecognition 3.14.3 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.14.3 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
AudioData.from_file() by @ftnext in https://github.com/Uberi/speech_recognition/pull/834python -m speech_recognition.recognizers.whisper_api.openai by @ftnext in https://github.com/Uberi/speech_recognition/pull/837Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.14.2...3.14.3
SpeechRecognition 3.14.3 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
AudioData.from_file() by @ftnext in #834python -m speech_recognition.recognizers.whisper_api.openai by @ftnext in #837Full Changelog: 3.14.2...3.14.3
SpeechRecognition 3.14.2 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.14.2 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
whisper_api.openai recognizer) by @ftnext in https://github.com/Uberi/speech_recognition/pull/833Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.14.1...3.14.2
SpeechRecognition 3.14.1 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.14.1 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.14.0...3.14.1
SpeechRecognition 3.14.0 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.14.0 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
recognize_whisper_api (Use recognize_openai instead) by @ftnext in https://github.com/Uberi/speech_recognition/pull/815Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.13.0...3.14.0
Delegate to google-auth (Deprecate passing credentials JSON) by @ftnext in https://github.com/Uberi/speech_recognition/pull/811
SpeechRecognition 3.13.0 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
use_enhanced and model to GoogleCloudSpeech (Fix #734) by @HideyoshiNakazone in https://github.com/Uberi/speech_recognition/pull/735pip install SpeechRecognition[google-cloud]Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.12.0...3.13.0
Rename to recognizer_instance.recognize_openai() (Deprecate recognizer_instance.recognize_whisper_api()) (@ftnext in https://github.com/Uberi/speech_r…
SpeechRecognition 3.12.0 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Groq Support
recognizer_instance.recognize_groq() (@ftnext in https://github.com/Uberi/speech_recognition/pull/797 & https://github.com/Uberi/speech_recognition/pull/803)
GROQ_API_KEYrecognizer_instance.recognize_openai() (Deprecate recognizer_instance.recognize_whisper_api()) (@ftnext in https://github.com/Uberi/speech_recognition/pull/801)
OPENAI_API_KEYexport XXX_API_KEY=... or os.environ["XXX_API_KEY"] = ...Python 3.13 Support (experimental)
Cleanup extras
Others
Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.11.0...3.12.0
Remove deprecated distutils @ftnext in https://github.com/Uberi/speech_recognition/pull/768 and https://github.com/Uberi/speech_recognition/pull/769
SpeechRecognition 3.11.0 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
stream= kwarg to Recognizer.listen by @clusterfudge in https://github.com/Uberi/speech_recognition/pull/757pip install SpeechRecognition[audio]Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.10.4...3.11.0
SpeechRecognition 3.10.4 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.10.4 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.10.3...3.10.4
SpeechRecognition 3.10.3 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.10.3 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
pip install SpeechRecognition[whisper-local]pip install SpeechRecognition[whisper-api]Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.10.2...3.10.3
SpeechRecognition 3.10.2 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.10.2 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Thanks to all contributors!
Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.10.1...3.10.2
SpeechRecognition 3.10.1 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.10.1 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Thanks to all contributors!
Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.10.0...3.10.1
SpeechRecognition 3.10.0 was out🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.10.0 was out🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Thanks❤️
recognize_whisper by @ftnext in https://github.com/Uberi/speech_recognition/pull/647Thanks to all contributors!
Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.9.0...3.10.0
SpeechRecognition 3.9.0 was out on December 2022🎉 Get all of these and more with a quick pip install --upgrade SpeechRecognition. Enjoy!
SpeechRecognition 3.9.0 was out on December 2022🎉
Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Enjoy!
Thanks for making SpeechRecognition even more wonderful! 🙌
recognize_tensorflow by @chriamue in https://github.com/Uberi/speech_recognition/pull/296recognize_vosk by @mytja in https://github.com/Uberi/speech_recognition/pull/513recognize_amazon and recognize_assemblyai by @chrisspen in https://github.com/Uberi/speech_recognition/pull/434recognize_whisper by @joy-void-joy in https://github.com/Uberi/speech_recognition/pull/625Thanks!👏
Thanks!❤️
Thanks to all contributors!
Full Changelog: https://github.com/Uberi/speech_recognition/compare/3.8.1...3.9.0
Lots of changes since June! Summary below. Get all of these and more with a quick pip install --upgrade SpeechRecognition.
Lots of changes since June! Summary below. Get all of these and more with a quick pip install --upgrade SpeechRecognition.
snowboy_configuration parameter of recognizer_instance.listen.language parameter of recognizer_instance.recognize_sphinx (thanks @frawau!).audio_data_instance.get_segment(start_ms=None, end_ms=None) is a new method that can be called on any AudioData instance to get a segment of the audio starting at start_ms and ending at end_ms. This is really useful when you want to get, say, only the first five seconds of some audio.stopper function returned by listen_in_background now accepts one parameter, wait_for_stop (defaulting to True for backwards compatibility), which determines whether the function will wait for the background thread to fully shutdown before returning. One advantage is that if wait_for_stop is False, you can call the stopper function from any thread!recognize_google_cloud now uses the v1 rather than the beta API (thanks @oort7!).recognize_google_cloud now returns timestamp info when the show_all parameter is True.recognize_bing won't time out as often on credential requests, due to a longer default timeout.recognize_google_cloud timeouts respect recognizer_instance.operation_timeout now (thanks @reefactor!).Nothing published for this version
Fixes for Bing Speech API timing out due to some backwards incompatible changes to their API.
As usual, get it with pip install --upgrade SpeechRecognition
grammar parameter for recognizer_instance.recognize_sphinx - now, you can specify a JSGF or FSG grammar to PocketSphinx (thanks @aleneum!).urllib.request behavior made requests fail in certain situations.Quick bugfix for PortableNamedTemporaryFile:
Quick bugfix for PortableNamedTemporaryFile:
Fix tempfile.NamedTemporaryFile on Windows, by replacing it with a PortableNamedTemporaryFile class. Previously, it didn't necessarily support the fil
Bugfix release!
tempfile.NamedTemporaryFile on Windows, by replacing it with a PortableNamedTemporaryFile class. Previously, it didn't necessarily support the file being re-opened after originally opened.phrase_time_limit being ignored for listen_in_background (thanks @dodysw!)Handle case when GSR doesn't return a confidence value (thanks @jcsilva!).
Small bugfix release:
Nothing published for this version
Nothing published for this version
This is more of a maintenance release, but a few features slipped in as well:
This is more of a maintenance release, but a few features slipped in as well:
recognizer_instance.recognize_google_cloud (thanks @Thynix!), plus documentation and examples.speech_recognition.Microphone - this should fully resolve all the "Invalid sample rate" issues from PyAudio.recognizer_instance.recognize_sphinx.EOFError upon encountering malformed audio files; a proper exception message is now given.BREAKING CHANGE: API.AI STT API IS BEING SHUT DOWN SOON. (source)
recognizer_instance.recognize_houndify (thanks @tb0hdan!).recognize_sphinx now supports keyword-based matching via the keywords=[("cat", 30), ("potato", 45)] parameter.
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.phrase_time_limit option for listening functions, to limit phrase lengths to a certain number of seconds.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.listen() sometimes didn't terminate on finite-length streams.api.ai now requires the sessionId field, so we'll just add that in (thanks @jhoelzl!).
Bugfix release.
Changes:
sessionId field, so we'll just add that in (thanks @jhoelzl!).Bug fix: non-24-bit audio wasn't converted properly to 16-bit audio on Python 2, due to the new 24-bit audio shim. Thanks to @jhoelzl for reporting!
Changes:
Python versions less than 3.4 don't support 24-bit audio properly. We now have pure-Python shims that will allow 24-bit audio to work on those old Pyt
Maintenance release:
recognizer_instance.recognize_bing.Thanks to @jhoelzl, api.ai language support works again for non-English languages.
Bugfix release:
We're now GPG signing all our release tags. Under the releases page, you should see the following:
This tells you that GitHub thinks the Git tag is the same as the one we intended to release.
This key can also be found on the SKS keyservers, and you can import it with the following command:
gpg --keyserver x-hkp://pool.sks-keyservers.net --recv-keys 0x5F56B350
The packages on PyPI are signed as well - the signature can be downloaded under the "pgp" link on the SpeechRecognition PyPI page.
Quick bugfix release on the tails of yesterday's big one:
Quick bugfix release on the tails of yesterday's big one:
monotonic library on Python 2 - if you have monotonic installed in Python 2, recognize_bing will work faster!
recognize_bing already does the things that would make it fast, so the library is unnecessary.BREAKING CHANGE: AT&T STT API IS BEING SHUT DOWN SOON. (source)
Changes:
recognize_att function will keep working, until the API itself is shut down.recognize_att to a different service like recognize_ibm, then generate new API keys/tokens for it.WavFile has been renamed to AudioFile.
WavFile will continue to work for the foreseeable future. New code should use AudioFile.AudioFile is the same as WavFile, but in addition to WAV, it also supports AIFF and FLAC files!recognize_api in the library reference.recognize_bing in the library reference.recognize_ibm, courtesy of Bhavik Shah from IBM.As always, you can upgrade with pip install --upgrade speechrecognition.
Nothing published for this version
Tiny fix to some error checking.
Changes:
Fix exception_on_overflow shenanigans. This version will eliminate those pesky ValueErrors.
Bugfix release!
exception_on_overflow shenanigans. This version will eliminate those pesky ValueErrors.Special thanks to @michaelpri10 for reporting the exception_on_overflow bug.
Fix for list_microphone_names, courtesy of @ibutra. Fully compatible with 3.3.0.
Fix for list_microphone_names, courtesy of @ibutra. Fully compatible with 3.3.0.
See #85 for more details!
Possible backward incompatibility: if PyAudio is not installed, Microphone now throws an AttributeError when created rather than not being defined.
Major changes since 3.2.1:
Microphone now throws an AttributeError when created rather than not being defined.
hasattr or getattr.Significantly improved and reorganized documentation.
Changes since 3.2.0:
Support for recognition using CMU Sphinx - do speech recognition while offline!
Major changes since 3.1.3:
Work around an obscure standard library issue.
Update documentation to account for new releases of Python, PyInstaller, and PyAudio.
Changes since 3.1.0:
Nothing published for this version
Support for AT&T Speech to Text API.
Changes since 3.0.0:
MULTIPLE SERVICE SUPPORT! Now you can use Google Speech Recognition, Wit.ai, or IBM Speech to Text to obtain the recognition results.
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().
speech_recognition.recognize_* functions instead.recognizer_instance.listen, speech_recognition.WaitTimeoutError exceptions are thrown rather than OSError exceptions upon timeout.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).
show_all is set, the return value is the raw result from the API call, rather than a list of predictions and their confidences.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.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!
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →