# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.0.5] - 2026-01-17 ### ⚡ Improved - **初始化不卡 UI**:新增 `useRecognizerIsolate` 选项,将 sherpa_onnx recognizer 初始化/解码放到后台 isolate,避免初始化期间 UI 卡顿、进度动画不刷新 - **RecordingButton 体验优化**:首次点击懒加载初始化时先让出一帧,确保加载动画能立即渲染 ### 🐛 Fixed - 修复 `RecordingButton` 中防抖延迟导致的测试 pending timers 问题(改为可取消 Timer 并在 dispose 清理) - 修复测试环境下部分平台 API 不可用导致的失败(增加必要的 mock/容错) ## [1.0.4] - 2025-01-23 ### 🎉 Added - 多实例会话管理支持 - **会话管理系统**:新增完整的会话管理功能,支持同一页面多个独立的录音会话 - **YxAsrService 新方法**: - `registerSession()` - 注册新会话 - `unregisterSession()` - 注销会话 - `startListeningForSession()` - 为特定会话开始录音 - `stopListeningForSession()` - 为特定会话停止录音 - `getResultStreamForSession()` - 获取特定会话的结果流 - `getStatusStreamForSession()` - 获取特定会话的状态流 - `getRegisteredSessions()` - 获取所有已注册的会话列表 - `getActiveSessionId()` - 获取当前活跃的会话ID - **RecordingButton 新参数**: - `sessionId` - 会话ID参数,用于标识不同的录音实例 - **智能会话切换**:自动管理会话切换,同一时间只有一个会话活跃 ### 🐛 Fixed - 修复同一页面多个 RecordingButton 状态同步问题 - 修复录音结果分发到错误按钮的问题 - 修复会话间状态互相干扰的问题 ### ⚡ Improved - 优化会话切换逻辑,无缝切换不同会话 - 改进资源管理,会话注销时自动清理资源 - 增强错误处理,会话级别的错误追踪 ### 📝 Changed - 保持完全向后兼容,现有代码无需修改 - 识别结果同时发送到全局流和会话流(双重分发机制) ### 🎯 Use Cases 此版本主要解决以下场景: - ✅ 同一页面有多个录音输入框(如:问题反馈 + 本月总结) - ✅ 多个 RecordingButton 需要独立工作,互不干扰 - ✅ 需要追踪特定录音按钮的状态和结果 ### 💡 Breaking Changes 无破坏性更改,完全向后兼容。 ### 📚 Documentation - 新增会话管理API文档 - 更新使用示例,包含多实例场景 - 添加会话管理最佳实践指南 ## [1.0.0] - 2025-08-26 ### Added - Initial release of YX ASR Flutter plugin - Real-time speech-to-text recognition for iOS and Android - Support for multiple languages and locales - Customizable RecordingButton widget with visual feedback - Comprehensive error handling and permission management - Stream-based API for results, errors, and status changes - On-device recognition support for iOS (iOS 13+) - Partial results support for real-time transcription - Example app demonstrating all features - Comprehensive documentation and API reference ### Features - Cross-platform support (iOS 11+ and Android API 21+) - Minimal third-party dependencies - Proper lifecycle management - Permission handling for microphone access - Multiple recognition alternatives - Confidence scoring for recognition results - Cancellation support - Audio session management ### Platform Support - **iOS**: Uses Speech framework with AVAudioEngine - **Android**: Uses SpeechRecognizer API with proper lifecycle management ### Supported Languages - English (en-US, en-GB) - Chinese (zh-CN, zh-TW) - Japanese (ja-JP) - Korean (ko-KR) - Spanish (es-ES) - French (fr-FR) - German (de-DE) - Italian (it-IT)