2017-02-16 30 views
1

我正在使用新的Apple Speech庫,並且找不到命令來翻轉isFinal bool,並在沉默幾秒後結束轉錄。有沒有人知道如何在沉默後結束任務?如何在幾秒鐘沉默後結束SFSpeechRecognitionTask

這是接收語音轉錄結果的代碼。

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 
     } 
    }) 

任何想法?

回答

3

最好的辦法是使用定時器來檢測最後一個委託被調用的時間間隔。看看this圖書館使用的是NSTimer

+0

爲什麼它被拒絕? – Devang

+0

這是正確的答案! –