Repository navigation
Conversation
soumik183
commented
Oct 31, 2026
- add native AcodeVoice Cordova plugin using Android SpeechRecognizer
- expose acode.require("voice") with permissions, events, and one-shot recognition
- add voice-input command with Ctrl-Alt-V and Web Speech API fallback
- declare microphone permissions and remember granted access
- add native AcodeVoice Cordova plugin using Android SpeechRecognizer
- expose acode.require("voice") with permissions, events, and one-shot recognition
- add voice-input command with Ctrl-Alt-V and Web Speech API fallback
- declare microphone permissions and remember granted access
[High impact] The PR adds microphone-based speech recognition to Acode for callers that use the new voice API. Fix browser cancellation before merging so cancelled calls cannot affect later recordings. Findings
SummaryAdds speech recognition through
Reviews (2) · Last reviewed commit: "fix(voice): harden sessions and keep voi..." · Reviewed by Greptile |
- reserve start sessions and serialize stop/cancel with pending starts - share pending native permission requests across callers - wait for the final Web Speech result on stop and ignore stale callbacks - disable Web restart after non-recoverable errors - remove the built-in voice-input command and Ctrl-Alt-V binding
|
@UnschooledGamer @bajrangCoder Please review the code, add a |
| detachWebHandlers(recognition); | ||
| try { | ||
| recognition.abort(); |
There was a problem hiding this comment.
Cancelled calls affect new recordings
Cancelling a browser recognize() call now detaches its handlers before abort(). The cancelled call never receives the error that would settle it, so its timer and shared result listeners stay active.
If another session starts, the cancelled call can resolve with that session’s transcript. Its old timeout can also call cancel() and abort the new recording. Settle the owning recognize() call and remove its listeners and timer during cancellation, while keeping the guards against old browser events.