2017-01-02 22 views
12

सिरी कब निर्धारित कर रहा है कि यह निर्धारित करने में सक्षम है। कारण मैं जानना चाहता हूं कि मैं अपने ऐप के साथ ऐप्पल की स्पीच रिकग्निशन एपीआई के साथ समान कार्यक्षमता को कार्यान्वित करना चाहता हूं। क्या यह करने योग्य है, या यह जानने का एकमात्र तरीका है कि जब उपयोगकर्ता ने बोलना बंद कर दिया है तो उपयोगकर्ता इनपुट के माध्यम से है?उपयोगकर्ता समाप्त होने पर भाषण मान्यता रोकें

+0

मेरे समझ है कि आप "जब उपयोगकर्ता बोल समाप्त कर ले" संभाल करने की आवश्यकता नहीं है। आपको सिरीकिट गाइड यहां पढ़ना चाहिए: https://developer.apple.com/library/content/documentation/Intents/Conceptual/SiriIntegrationGuide/ResolvingandHandlingIntents.html#//apple_ref/doc/uid/TP40016875-CH5-SW1। मूल रूप से सिरीकिट आपको उपयोगकर्ता भाषण से एकत्रित डेटा के साथ "इरादा" देता है और आपको केवल इरादे को संभालने और अपने परिचालन करने की आवश्यकता होती है। – volatilevar

+1

सवाल स्पीच रिकग्निशन एपीआई के बारे में पूछ रहा है, सिरीकिट नहीं। – nathan

+1

कोई भाग्य? मैं खुद के साथ संघर्ष कर रहा हूं – alhadhrami

उत्तर

1

आप एक टाइमर का उपयोग कर सकते हैं, मुझे एक ही समस्या थी और मैं इसे एक सुरुचिपूर्ण विधि से हल नहीं कर सका।

fileprivate var timer:Timer? 
func startRecordingTimer() { 
    lastString = "" 
    createTimerTimer(4) 
} 
func stopRecordingTimer() { 
    timer?.invalidate() 
    timer = nil 
} 
fileprivate func whileRecordingTimer() { 
    createTimerTimer(2) 
} 
fileprivate var lastString = "" 
func createTimerTimer(_ interval:Double) { 
    OperationQueue.main.addOperation({[unowned self] in 
     self.timer?.invalidate() 
     self.timer = Timer.scheduledTimer(withTimeInterval: interval, repeats: false) { (_) in 
      self.timer?.invalidate() 
      if(self.lastString.characters.count > 0){ 
       //DO SOMETHING 
      }else{ 
       self.whileRecordingTimer() 
      } 
     } 
    }) 
} 

और में SFSpeechRecognitionTaskDelegate

public func speechRecognitionTask(_ task: SFSpeechRecognitionTask, didHypothesizeTranscription transcription: SFTranscription) { 
    let result = transcription.formattedString 
    lastString = result 
} 
संबंधित मुद्दे