0

你可以在下面找到我的代码。我编写了代码,我可以在其中识别我的语音并将其转换为文本。但不幸的是,这段代码只能工作一次,当我需要再次添加识别我的语音时,我应该重新启动应用程序或 viewController。所以我有一个问题:我应该如何更改我的代码,如果我每次按下按钮都需要识别我的语音并调用函数而不重新启动应用程序。

这是功能代码:

func recordAndRecognizeSpeech() {
    let node = audioEngine.inputNode
    let recordingFormat = node.outputFormat(forBus: 0)
    node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { buffer, _ in
        self.request.append(buffer)
    }
    audioEngine.prepare()
    do {
        try audioEngine.start()
    } catch {
        return print(error)
    }
    guard let myRecognizer = SFSpeechRecognizer() else {
        return
    } 
    if !myRecognizer.isAvailable {
        return
    }
    recognitionTask = speechRecognizer?.recognitionTask(with: request, resultHandler: { [weak self] result, error in
        if let result = result {
            let bestString = result.bestTranscription.formattedString
            self?.recognizedLabel.text = bestString
        } else if let error = error {
            print(error)
        }
    })
}

这是按钮代码:

@IBAction func micBtnTouchDown(_ sender: Any) {
    self.recordAndRecognizeSpeech()
}

谢谢你,祝你有美好的一天!

4

0 回答 0