2017-02-16 4 views
1

Je travaille avec la nouvelle bibliothèque Apple Speech et je ne trouve pas de commande pour retourner le booléen isFinal et terminer la transcription après quelques secondes de silence. Est-ce que quelqu'un sait comment finir la tâche après un peu de silence?Comment terminer une SFSpeechRecognitionTask après quelques secondes de silence

Voici le code dont je reçois les résultats de la transcription vocale.

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

Des idées?

Répondre

3

Votre meilleur pari serait d'utiliser une minuterie pour détecter l'intervalle lorsque le dernier délégué a été invoqué. Jetez un oeil à la bibliothèque this qui utilise un NSTimer

+0

pourquoi il a été rejeté? – Devang

+0

Ceci est la bonne réponse! –