File tree 1 file changed +4
-2
lines changed
1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -139,7 +139,7 @@ public class ExpoSpeechRecognitionModule: Module {
139
139
let currentLocale = await speechRecognizer? . getLocale ( )
140
140
141
141
// Reset the previous result
142
- self ? . previousResult = nil
142
+ self . previousResult = nil
143
143
144
144
// Re-create the speech recognizer when locales change
145
145
if self . speechRecognizer == nil || currentLocale != options. lang {
@@ -437,11 +437,13 @@ public class ExpoSpeechRecognitionModule: Module {
437
437
if isFinal && results. isEmpty {
438
438
// Hack for iOS 18 to avoid sending a "nomatch" event after the final-final result
439
439
var previousResultWasFinal = false
440
+ var previousResultHadTranscriptions = false
440
441
if #available( iOS 18 . 0 , * ) , let previousResult = previousResult {
441
442
previousResultWasFinal = previousResult. speechRecognitionMetadata? . speechDuration ?? 0 > 0
443
+ previousResultHadTranscriptions = !previousResult. transcriptions. isEmpty
442
444
}
443
445
444
- if !previousResultWasFinal || previousResult ? . transcriptions . isEmpty {
446
+ if !previousResultWasFinal || !previousResultHadTranscriptions {
445
447
// https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/nomatch_event
446
448
// The nomatch event of the Web Speech API is fired
447
449
// when the speech recognition service returns a final result with no significant recognition.
You can’t perform that action at this time.
0 commit comments