NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
pub.dev
Azure AI Speech speech-to-text for Flutter: streaming partial and final results, continuous recognition, language auto-detect, phrase lists, word timestamps, diarization, pronunciation assessment and token auth. Android, iOS and web.
Latest stable
1.0.0
Last release 4 days ago
10 Nov 2026
Ships on a steady schedule
a new release about every 4 months
Nearly every release is documented
notes for 4 of 4 stable releases
Nothing withdrawn
no release was ever pulled
8 months old
4 releases · first in 2026
Drag across the ruler to compare, or tap a release to open it.
A rewrite: a new stream-based API, new Android and iOS code, and web support. The 0.0.x API still works but is deprecated; see MIGRATION.md.
A rewrite: a new stream-based API, new Android and iOS code, and web support. The 0.0.x API still works but is deprecated; see MIGRATION.md.
AzureSpeech:
recognizeOnce(), startContinuous(), stop() (graceful), cancel(),
prepare() (pre-connect) and dispose().events (a sealed SpeechEvent), results, finalResults,
audioLevel and errors.state as a ValueListenable.AzureCredentials: subscription key, tokens from a tokenProvider
(refreshed inside the live recognizer), custom endpoint, custom host, and
Entra ID tokens.RecognitionConfig:
SpeechResult: text, offset and duration, detected language, speaker ID,
confidence, lexical, ITN and masked-ITN forms, words with timing,
pronunciation scores per text, word and phoneme, and the no-match reason.AzureSpeechException with a SpeechErrorCode (mapped from
Azure's CancellationErrorCode), the CancellationReason, and
isTransient.checkPermission, requestPermission,
and an automatic request on start).AzureSpeechPlatform) is public for fakes in tests.Dart:
!.en-EN isn't an Azure locale. It is now en-US.initialize(timeout:) threw a FormatException or a bare String. It now
throws an AzureSpeechException.initialize reset handlers on a throwaway instance. The channel handler
was only installed once the singleton was constructed, so apps that only
called the static methods got no events.invokeMethod, so platform errors
became unhandled async errors.MissingPluginException.Android:
stopContinuousStream never replied when nothing was running, so
await stopContinuousRecognition() hung forever.lateinit recognizer access crashed when the flags got out of sync.AudioConfig, SpeechConfig and recognizers weren't closed on every path.
The mic stayed open, and nothing was stopped on engine detach or hot
restart.canceled event wasn't handled, so a wrong key or a lost network
produced silence: an empty final result and no error.recognizeOnceAsync had
started, so the first partials could be lost. "Recognition started" fired
before the session had started.RECORD_AUDIO
failed obscurely.package attribute, and MicrophoneStream.kt
was dead code in the wrong package.iOS:
try! and force-unwrapping crashed the app on an empty or invalid key,
region or config.startContinuousRecognition and stopContinuousRecognition blocked the
main thread..record and never deactivated. That
silenced the app's own playback and other apps' audio.Your coding agent can read these notes before it upgrades. Set up the MCP server →
One column per month.
Sync with Flutter 3.44.0 and Dart 3.12.0.
* fix a bug
Initial release: Core features implemented, dependencies updated to latest versions, fixed 16 KB page size compatibility issue, and improved build sta