Why doesn't SpeechSynthesizer work when using SpeechRecognizer?

I am using SpeechSynthesizer and SpeechRecognizer. After a recognition task completes, the SpeechSynthesizer stops producing audible output.

I am using the latest SwiftUI in Xcode 15.2, deploying to an iPhone 14 Pro running iOS 17.3.1.

Here's my SpeechSynthesizer function:

func speak(_ text: String) {
    let utterance = AVSpeechUtterance(string: text)
    utterance.voice = AVSpeechSynthesisVoice(identifier: self.appState.chatParameters.voiceIdentifer)
    utterance.rate = 0.5
    speechSynthesizer.speak(utterance)
}

And here's the code for setting up the SpeechRecognizer (borrowed from https://www.linkedin.com/pulse/transcribing-audio-text-swiftui-muhammad-asad-chattha):

private static func prepareEngine() throws -> (AVAudioEngine, SFSpeechAudioBufferRecognitionRequest) {
    print("prepareEngine()")
    let audioEngine = AVAudioEngine()
   
    let request = SFSpeechAudioBufferRecognitionRequest()
    request.shouldReportPartialResults = false
    request.requiresOnDeviceRecognition = true

    let audioSession = AVAudioSession.sharedInstance()
    try audioSession.setCategory(.playAndRecord)
    try audioSession.setActive(true, options: .notifyOthersOnDeactivation)
    let inputNode = audioEngine.inputNode
   
    let recordingFormat = inputNode.outputFormat(forBus: 0)
    inputNode.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) {
        (buffer: AVAudioPCMBuffer, when: AVAudioTime) in
        request.append(buffer)
    }
    audioEngine.prepare()
    try audioEngine.start()
   
    return (audioEngine, request)
}

SpeechSynthesizer works fine as long as I don't call prepareEngine().

Thanks in advance for any assistance.

Why doesn't SpeechSynthesizer work when using SpeechRecognizer?
 
 
Q