1

您好,我正在创建Call Recording App,我正在通过应用程序播放录音,AVAduioPlayer并将音频转录为文本使用SFSpeechRecognizer下面是我播放音频的代码,并使用下面的代码进行转录

func requestSpeectAuth(){
        SFSpeechRecognizer.requestAuthorization { authStatus in
            if authStatus == SFSpeechRecognizerAuthorizationStatus.authorized{
                if let path = Bundle.main.url(forResource: "audio", withExtension: "m4a"){
                    print(path)
                    do {
                        let sound = try AVAudioPlayer(contentsOf: path)
                        self.audiPlayer = sound
                        sound.play()
                    } catch {
                        print("Error")
                    }
                    let reconizer = SFSpeechRecognizer()
                    let request = SFSpeechURLRecognitionRequest(url: path)
                    self.recpnizer?.recognitionTask(with: request){ (result,error) in
                        if let error = error{
                            print(error.localizedDescription)
                        }else{
                            print(result?.bestTranscription.formattedString)
                            self.txtView.text = result?.bestTranscription.formattedString
                        }
                    }
                }
            }
        }
    }

我成功地做到了,但是现在当我当时暂停音频时,我需要停止转录有没有办法停止SFSpeechRecognizer按钮单击然后请帮助我

4

1 回答 1

0

当您调用 installTap 时,会有一个块让您将音频缓冲区附加到识别请求,只是在您想暂停时不要将音频附加到缓冲区。

于 2022-02-02T00:58:38.890 回答