swift - 如何在几秒钟的沉默后结束 SFSpeechRecognitionTask

标签 swift voice-recognition sfspeechrecognizer

我正在使用新的 Apple Speech 库,我找不到翻转 isFinal bool 值并在几秒钟的沉默后结束转录的命令。有谁知道如何在沉默一段时间后结束任务?

这是我接收语音转录结果的代码。

    recognitionRequest.shouldReportPartialResults = true

    speechRecogTask = speechRecognizer.recognitionTask(with: recognitionRequest, resultHandler: { (result, error) in
        var isFinal = false
        if result != nil {

            self.textField.text = result?.bestTranscription.formattedString
            isFinal = (result?.isFinal)!
        }

        if error != nil || isFinal {
            self.audioEngine.stop()
            inputNode.removeTap(onBus: 0)

            self.speechRecogRequest = nil
            self.speechRecogTask = nil
        }
    })

有什么想法吗?

最佳答案

最好的办法是使用计时器来检测最后一个委托(delegate)被调用的时间间隔。看看this使用 NSTimer

的库

关于swift - 如何在几秒钟的沉默后结束 SFSpeechRecognitionTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42279899/

相关文章:

ios - 在 iOS 框架中嵌入 .dylib

Android识别监听器: onResults being called twice

ios - SFSpeechRecognizer在IOS 13.2中无法正常工作

speech-recognition - 如何在 Windows 中为 sox 安装 flac 支持(flac 库)

java - 如何从桌面java使用Android语音识别库

ios - 自从向文本添加语音(语音识别)以来,文本到语音的音量显着下降

swift - @_downgrade_exhaustivity_check Swift 私有(private)关键字是什么?

ios - 向下滚动时(或从 ipad 更改为 iphone 时)TableViewCell 边框和阴影

inheritance - Swift 语言中的抽象类