2017-07-20 24 views
0

在我的iOS應用程序中,我試圖使用iOS 10的最新功能Speech API轉錄預先錄製的音頻。SFSpeechRecognizer(Siri轉錄)iOS應用程序超時錯誤

包括documentation在內的多個源聲明,Speech API(更具體而言,SFSpeechRecognizer)的音頻持續時間限制爲1分鐘。

在我的代碼中,我發現任何長度大約爲15秒或更長的音頻文件都會得到以下錯誤。

Error Domain = kAFAssistantErrorDomain Code = 203「Ses[email protected]50a8e246,Message =超時等待30000 ms後的命令」UserInfo = {NSLocalizedDescription = SessionId = com .msi.cortex.ace.speech.session.event.SpeechSessionId @ 50a8e246,Message =在30000 ms後等待命令超時,NSUnderlyingError = 0x170248c40 {Error Domain = SiriSpeechErrorDomain Code = 100「(null)」}}

I已經在互聯網上搜索,並沒有找到解決辦法。也有一些人有同樣的問題。有些人懷疑這是Nuance的問題。

同樣值得注意的是,我從轉錄過程中得到了部分結果。

以下是我的iOS應用程序中的代碼。 `//創建一個語音識別器請求對象。 讓srRequest = SFSpeechURLRecognitionRequest(網址:位置) srRequest.shouldReportPartialResults =假

sr?.recognitionTask(with: srRequest) { (result, error) in 
     if let error = error { 
      // Something wrong happened 
      print(error.localizedDescription) 
     } else { 
      if let result = result { 
       print(4) 
       print(result.bestTranscription.formattedString) 
       if result.isFinal { 
        print(5) 
        transcript = result.bestTranscription.formattedString 
        print(result.bestTranscription.formattedString) 

        // Store the transcript into the database. 
        print("\nSiri-Transcript: " + transcript!) 

        // Store the audio transcript into Firebase Realtime Database 
        self.firebaseRef = FIRDatabase.database().reference() 

        let ud = UserDefaults.standard 
        if let uid = ud.string(forKey: "uid") { 
         print("Storing the transcript into the database.") 
         let path = "users" + "/" + uid + "/" + "siri_transcripts" + "/" + date_recorded + "/" + filename.components(separatedBy: ".")[0] 
         print("transcript database path: \(path)") 
         self.firebaseRef.child(path).setValue(transcript) 
        } 
       } 
      } 
     } 
    }` 

謝謝您的幫助。

回答

1

我還沒有確認我的答案,除了別人遇到同樣的問題,但我相信這是對預先錄製的音頻的無證限制。

0

刪除result.isFinal,並對結果進行空檢查。參考:https://github.com/mssodhi/Jarvis-ios/blob/master/Jarvis-ios/HomeCell%2Bspeech.swift

+0

謝謝你的迴應。不幸的是,問題依然存在。我認爲這與Apple在不改變文檔的情況下改變音頻文件長度的限制有關。它也可能是預先錄製音頻的無證限制。 – itsSLO

+0

@itsSLO您是否嘗試使用實況音頻饋送,即使用麥克風而不是預先錄製的文件? –

+0

我還沒有,因爲我目前沒有用於此情況的用戶案例。據說,我相信使用實時音頻饋送將具有比預先錄製的音頻更高的限制。 – itsSLO

相關問題