Commit Graph

4 Commits

Author SHA1 Message Date
Max 508244fac3 Remove unused confidence and alternatives fields from SpeechRecognitionResult
Complete removal of unused fields to simplify data structure:

1. SpeechRecognitionResult Model Simplified:
   - Removed 'confidence' field (was always hardcoded to 0.8)
   - Removed 'alternatives' field (was always empty array)
   - Kept only 'recognizedWords' which is actually used
   - Updated constructor, fromMap, toMap, toString, ==, hashCode accordingly

2. YxAsrService Updates:
   - Simplified _sendResult() method signature
   - Removed unused confidence and alternatives parameters
   - Updated method call to only pass recognizedWords
   - Cleaner method invocation: _sendResult(recognizedWords: result.text)

3. Benefits Achieved:
   - 🧹 Simplified data structure - only essential fields remain
   - 🚀 Reduced memory usage - no unnecessary field storage/transmission
   - 💡 Cleaner API - method signatures reflect actual usage
   -  Better performance - less data serialization/deserialization
   - 🔍 Improved code clarity - no confusing unused parameters

4. Sherpa-ONNX Integration:
   - OnlineRecognizerResult only provides: text, tokens, timestamps
   - No confidence or alternatives data available from the library
   - Our simplified structure now aligns with actual data source

This optimization removes all the 'fake' hardcoded values and focuses
on the actual speech recognition text result that users need.
2025-09-09 17:03:43 +08:00
Max 0af37c5b87 Remove final result logic from SDK library
Major SDK simplification by removing redundant final result processing:

1. YxAsrService changes:
   - Remove final result retrieval in stopListening()
   - Remove finalResult parameter from _sendResult()
   - Simplify stop logic to only reset stream state
   - Eliminate duplicate API calls that provided no additional value

2. SpeechRecognitionResult model changes:
   - Remove finalResult property and related logic
   - Update constructor, factory methods, toString, equals, hashCode
   - Remove finalResult from toMap/fromMap serialization
   - Simplify the model to focus on actual recognition data

3. Benefits:
   - Cleaner, more maintainable codebase
   - Reduced complexity and potential bugs
   - Better performance (no redundant API calls)
   - Simpler API for developers to use
   - Real-time text appending works seamlessly without artificial distinctions

The analysis showed that 'final results' were identical to the last real-time result,
making the distinction unnecessary. Now all results are treated uniformly as
real-time updates, providing a smoother and more intuitive user experience.
2025-09-09 11:29:19 +08:00
Max d63124203b Fix critical bugs in speech recognition system
1. Add finalResult property to SpeechRecognitionResult class
   - Distinguish between real-time and final recognition results
   - Update factory methods, toString, equals, and hashCode
   - Update toMap and fromMap methods

2. Update YxAsrService to support finalResult flag
   - Add finalResult parameter to _sendResult method
   - Mark final results with finalResult: true
   - Keep real-time results as finalResult: false (default)

3. Remove unused methods to clean up codebase
   - Remove unused _toggleRecording method
   - Remove unused _updateTextController method
   - Clean up orphaned comments

These fixes resolve linter errors and ensure proper text appending functionality.
2025-09-09 11:17:13 +08:00
Max 5c9a8ea6e6 Initial commit: Flutter speech-to-text plugin with Sherpa-ONNX integration 2025-08-27 17:09:36 +08:00