Starting/restarting SFSpeechRecognizer?

Hello all,

I'm working on a project that involves listening to a person speak off of a script and I want to stop then restart the recognitionTask between sections so I don't run afoul of keeping the recognitionTask running for longer than it needs to. Also, I'd like to be able to flush the current input between sections so the input from the previous section doesn't roll over into the next one.

This is based on the sample code for SFSpeechRecognizer so there's a chance I might be misunderstanding something.

    private func restartRecording() {
        let inputNode = audioEngine.inputNode
        
        audioEngine.stop()
        inputNode.removeTap(onBus: 0)
        
        recognitionRequest?.endAudio()
        recordingStarted = false
        recognitionTask?.cancel()
        do {
            try startRecording()
        } catch {
            print("Oopsie.")
        }
    }

Here's my code. When I run it, the recognition task doesn't restart. Any ideas?

Starting/restarting SFSpeechRecognizer?
 
 
Q