speech_to_text
A Flutter plugin that exposes device specific speech to text recognition capability.
7.4.0
495K downloads/mo
#517 most downloaded on pub.dev
csdcorp/speech_to_text
What this package is like to depend on
Last release 1 months ago
02 Jul 2026
Ships unpredictably
gaps range from 8 days to 9 months
Nearly every release is documented
notes for 56 of 58 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
79 releases · first in 2019
6 releases in the last 12 months
see the full history below
Release timeline
79 releases · Oct 2019 to Jul 2026Releases
latest 60 of 79-
7.5.0-beta.102 Jul 2026 pre-releaseRelease notes
Open source →- Updates minimum supported SDK version to Flutter 3.44/Dart 3.12.
- Migrates to built-in Kotlin
-
7.4.019 May 2026Release notes
Open source →New
- Android now respects the pauseFor value
Fix
- Fixed Swift concurrency error with captured variables in Task closure on iOS - resolves build failure with "Reference to captured var 'localeStr' in concurrently-executing code"
- Fixed communication threading issue for Windows version of the plugin
- Fixed conditional compilation for Windows version of the plugin
-
7.4.0-beta.816 Dec 2025 pre-releaseNothing published for this version
-
7.4.0-beta.603 Sep 2025 pre-releaseNothing published for this version
-
7.4.0-beta.402 Sep 2025 pre-releaseNothing published for this version
-
7.4.0-beta.302 Sep 2025 pre-releaseNothing published for this version
-
7.4.0-beta.221 Aug 2025 pre-releaseNothing published for this version
-
7.3.012 Aug 2025Release notes
Open source →New
- Partial Windows speech support thanks to @asherchok for the PR. This is the first draft. version of Windows support and is not yet working properly. However it should now be possible to build for Windows without even if speech recognition does not work properly.
Fix
- Issue with numeric conversion for Web thanks to @uniqdev-id for the PR.
- iOS now performs speech work on a separate thread to avoid UI pauses
-
7.3.0-beta.430 Jul 2025 pre-releaseNothing published for this version
-
7.3.0-beta.315 Jul 2025 pre-releaseNothing published for this version
-
7.3.0-beta.214 Jul 2025 pre-releaseNothing published for this version
-
7.3.0-beta.114 Jul 2025 pre-releaseNothing published for this version
-
7.2.014 Jul 2025Release notes
Open source →New
- Updated to latest build configuration for Android
- Updated to use Swift packages instead of pods
Fix
- Address incorrect language tag format on Android
-
7.2.0-beta.125 Jun 2025 pre-releaseNothing published for this version
-
7.1.023 Jun 2025Release notes
Open source →New
- support for web search recognition type on Android thanks to @vongrad for the PR
- example app improvements to expose more options, provide help, and improve behaviour on smaller devices.
Fix
- on iOS there is a new bug in their speech recognition that resets the transcription after a pause in the users' speech. This version attempts a mitigation by using meta information from the recognizer to concatenate subsequent transcriptions so the whole is not lost. There are problems with this approach, notably extra capitalization and possibly incorrects spaces being added. The concatenated transcription is added as the first result but all other results are still the same. See issue #552 for details.
-
7.1.0-beta.309 Oct 2024 pre-releaseNothing published for this version
-
7.1.0-beta.203 Oct 2024 pre-releaseNothing published for this version
-
7.1.0-beta.120 Sep 2024 pre-releaseNothing published for this version
-
7.0.019 Aug 2024Release notes
Open source →New
- support for speech recognition on MacOS
- supports WASM compliation for web
Fix
- Remove support for deprecated v1 Android registration #545
- Update deprecated Android build settings
- Improves handling of possible duplicates from the locales() method to ensure they are removed
- Language codes are properly handled for on device recognition on Android
-
7.0.0-beta.314 Aug 2024 pre-releaseNothing published for this version
-
7.0.0-beta.214 Aug 2024 pre-releaseNothing published for this version
-
7.0.0-beta.113 Aug 2024 pre-releaseNothing published for this version
-
6.6.205 Jun 2024Release notes
Open source →New
- on iOS now mixes audio with other uses to allow multiple audio plugins to coexist
Fix
- Second iOS listen now starts faster
-
6.6.120 Feb 2024Release notes
Open source →New
- More detailed error returns on iOS
- Updated JS dependency to 0.7.1 (would it kill you to release a 1.0 version?)
-
6.6.030 Jan 2024Release notes
Open source →New
listennow has a newSpeechListenOptions listenOptionsparameter to specify the recognizer options for the listen session. Some of the separate parameters have been deprecated as a result. See thelistenmethod for documentation.SpeechListenOptions.enableHapticFeedbackis a new option which allows haptic feedback during speech recognition on iOS. Usually haptics are disabled to avoid interfering with the microphone.SpeechListenOptions.autoPunctuationis a new option which turns on automatic punction inference during speech recognition on iOS.
-
6.6.0-dev25 Jan 2024 pre-releaseNothing published for this version
-
6.5.113 Dec 2023Release notes
Open source →What's Changed
- Add setPauseFor method for late setup by @JekaNS in #403
- Improved documentation by @Bungeefan in #406
- Fix crash for some android device when completeInitialize() in for below Android 31 Device by @haresh-v521 in #409
- Update speech_to_text_provider.dart by @BrianKolowitz in #444
- Update build.gradle by @m-derakhshi in #422
- Remove init checks for locales by @figengungor in #344
New Contributors
- @JekaNS made their first contribution in #403
- @Bungeefan made their first contribution in #406
- @haresh-v521 made their first contribution in #409
- @BrianKolowitz made their first contribution in #444
- @m-derakhshi made their first contribution in #422
- @figengungor made their first contribution in #344
Full Changelog: v6.2.0...v6.5.1
Release notes
Open source →Fix
- Removed BLUETOOTH_CONNECT permission from the plugin Android manifest, should be in apps
-
6.5.008 Dec 2023Release notes
Open source →New
SpeechToText.webDoNotAggregateoption for use in theoptionparameter of theinitializemethod. This can be used to change the behaviour on some browsers that implement the speech API differently. Test the user agent to decided whether to set this option. Currently it seems to be required on mobile Android to prevent duplicate results.
-
6.4.115 Nov 2023Release notes
Open source →Fix
- Removed incorrect MODIFY_PHONE_STATE permission from Android manifest
-
6.4.030 Oct 2023Release notes
Open source →Fix
-
Fix web handling of alternates and multiple phrases was incorrect. Before this change multiple phrases were being seen as alternates. This properly combines those phrases into a single set of recognized words and produces alternates as appropriate.
-
Android 33+ now returns a valid list from
locales. It returns the supported on device languages. This is (probably) smaller than the full list of online languages but better than the current list that only has the default language in it. It also seems to be the only option that's available.
-
-
6.3.030 Jun 2023Release notes
Open source →New
- New
changePauseFormethod allows the pause duration to be modified during alistensession.
Fix
- Documentation cleanup and improvements, thanks @Bungeefan
- Crash on Android versions 11 and below
- New
-
6.2.025 Jun 2023Release notes
Open source →New
- Upgrades and fixes for Flutter 3.0
Fix
- Error status is cleared on each
listencall.
Fix
- Bluetooth permission check no longer crashes on some Android devices
-
6.1.101 Dec 2022Nothing published for this version
-
6.1.019 Oct 2022Release notes
Open source →New
- Updated to the latest Kotlin version to meet newer build requirements
-
6.0.019 Sep 2022Release notes
Open source →New
- Now has minimal support for Mac apps where it will always report speech as unavailable. This allows the plugin to be used in apps where speech is an optional capability without blocking the deploy to the Mac platform.
Fix
- Cleanup BT code on Android for clarity
-
5.6.107 Aug 2022 -
5.6.025 Jun 2022Release notes
Open source →New
- Rejecting Bluetooth permission no longer blocks subsequent recognition using non-bluetooth inputs.
Fix
- onDevice recognition for Android should handle switching from onDevice between recognition sessions.
-
5.5.014 May 2022Release notes
Open source →New
initializemethod on theSpeechToTextProvideradds thefinalTimeoutandoptionsparameters that match the same parameters onSpeechToText- onDevice support added for Android
- example app now supports
pauseForandwaitForparameters
Fix
- example app updated for new Android build requirements
- Result method signature fixed in Android override
-
5.4.311 Feb 2022Release notes
Open source →New
- new Android option
androidNoBluetoothcan be used ininitializeto disable Bluetooth support on Android devices which removes the need for Bluetooth permission.
- new Android option
-
5.4.221 Dec 2021Release notes
Open source →New
- Now asks for Bluetooth permission on SDK 31 and above. When upgrading an already installed app the permission will not be requested. Users will have to manually set the permission or clear their app cache to force a re-request. See this issue
-
5.4.119 Dec 2021 -
5.4.018 Dec 2021 -
5.3.010 Dec 2021Release notes
Open source →New
- Documentation improvements for
listenparameters - iOS error handling improvements
Fix
- lastRecognizedWords now cleared before each
listencall - web issue resolve #242
- Documentation improvements for
-
5.2.008 Nov 2021Release notes
Open source →New
- Requires
compileSdkVersion 31to build, check yourbuild.gradle - Changed the
error_unknownreturn toerror_unknown ({error_code})so that the native Android error code is visible. This is a potentially breaking change if you behaviour for theerror_unkownvalue. - Added new SDK 31 error messages for Android
error_language_not_supportederror_language_unavailableerror_server_disconnectederror_too_many_requests
Fix
- Fix for Android to handle list end on unrecognized content properly #253
- Requires
-
5.1.118 Sep 2021 -
5.1.013 Sep 2021Release notes
Open source →New
- The example app now supports Web as a run target
- Improved the example app and its documentation
- Improved the provider example app
- Android now handles the
donecondition better, especially in case of error - Updated the minimal example in the README file
Fix
- Fix for listing available Locales on some Android devices
-
5.0.009 Aug 2021Release notes
Open source →New
- Bluetooth headsets now supported on iOS
onStatusnow receives the newdonestatus after all listening is complete. This is a potentially breaking change as it adds a new status to handle.initializeandhasPermissionnow checks if speech is supported on web
Fix
- removed duplicate
not listeningstatus sent on iOS - iOS now restores all audio options after listening
- iOS returns speech results faster when also playing a stop sound
-
4.2.210 Jul 2021 -
4.2.130 May 2021Release notes
Open source →Fix
- minor code format issue that lost me 10 points, this shall not stand!
-
4.2.030 May 2021Release notes
Open source →New
- Flutter 2.0 / Dart 2.12 null safety features are now the main release
Fix
- iOS is now faster starting to listen #207
- fix for sample rate issue on iOS #109
systemLocalenow reports the device locale rather than the app locale. Previously it was constrained to only be one of the localized languages of the application. #200
-
4.1.1-nullsafety18 Apr 2021 pre-releaseRelease notes
Open source →Fix
- Web support has changed to use the Flutter class definitions and now works in release mode
pauseForandlistenForaccuracy improved
-
4.1.0-nullsafety22 Mar 2021 pre-releaseRelease notes
Open source →New
- New property
finalTimeouton theinitializemethod to set how long the plugin will wait for a final result from the device before manuafacturing one. This used to be a pre-defined value of 100 ms in earlier releases. The default is now 2 seconds.
- New property
-
4.0.0-nullsafety14 Mar 2021 pre-releaseRelease notes
Open source →New
- Now supports Flutter 2.0 / Dart 2.12 null safety features.
- Now supports the web platform
-
3.2.019 Mar 2021Release notes
Open source →New
- New property
finalTimeouton theinitializemethod to set how long the plugin will wait for a final result from the device before manuafacturing one. This used to be a pre-defined value of 100 ms in earlier releases. The default is now 2 seconds.
- New property
-
3.1.007 Dec 2020Release notes
Open source →New
- now compatible with Android SDK 30
initializenow supports theoptionsparameter to supply platform specific options during initialization.SpeechToText.androidAlwaysStopsupported as an option. Forces the plugin to use the speech recognizerstopmethod even on SDK versions where that might fail. See https://github.com/csdcorp/speech_to_text/issues/150SpeechToText.androidIntentLookuplooks up the intent name instead of using the default. This can work around some issues with security exceptions when trying to use the default. See https://github.com/csdcorp/speech_to_text/issues/153
Fix
- Phones that don't report extra languages no longer hang on
localescall
-
3.0.122 Nov 2020 -
3.0.022 Nov 2020Release notes
Open source →New
- Now using a platform interface to prepare for web support. Although this should not cause any functional changes it is a major refactoring.
Fix
- Android
stopnow completes even if not initialized - iOS onDevice initialization is more reliable
- No longer crashes on iOS version < 10
-
2.7.021 Sep 2020Release notes
Open source →New
- the example had
onDevicetrue which is a rarely used flag and was causing confusion - the
partialResultsoption for theSpeechToTextProvider.listenwas defaulted tofalsewhich is a less common usage and didn't match the default forSpeechToText.listenso it has been changed totrue
- the example had
-
2.6.017 Sep 2020Release notes
Open source →New
- new parameter
onDeviceon theSpeechToTextProviderlistenmethod supports forcing offline recognition. - Added a new Tips section to the README doc to answer some common questions.
Fix
- Android now correctly returns multiple possible matches with confidence
- Android now supports the
onDeviceflag properly, note that at least some Android devices need an offline language pack installed for each target language to enable offline recognition.
- new parameter
-
2.5.027 Aug 2020Release notes
Open source →New
- new parameter
localeIdon theSpeechToTextProviderlistenmethod supports selecting a non default languge for the recognizer when using the provider.
Fix
- A work around for a bug in Android 10(29) that made
stopandcancelnot work. The plugin now callsdestroyon the AndroidSpeechRecognizerwhich terminates the listen session immediately. There is a downside to this approach in that it does not always report results that were in process whendestroywas called, however it does mean thatstopworks. - The example for
SpeechToTextProvider,provider_example.darthad an error that made it always use the default language and ignore the drop-down selection. This has been corrected.
- new parameter