ios - iOS 应用程序上的 SFSpeechRecognizer(Siri 转录)超时错误

标签 ios iphone swift ios10 sfspeechrecognizer

在我的 iOS 应用程序中,我尝试使用 iOS 10 的最新功能 Speech API 来转录预先录制的音频。

多个来源,包括 documentation已声明语音 API(更具体地说是 SFSpeechRecognizer)的音频持续时间限制为 1 分钟。

在我的代码中,我发现任何长度超过 15 秒或更长的音频文件都会出现以下错误。

Error Domain=kAFAssistantErrorDomain Code=203 "SessionId=com.siri.cortex.ace.speech.session.event.SpeechSessionId@50a8e246, Message=Timeout waiting for command after 30000 ms"UserInfo={NSLocalizedDescription=SessionId=com. siri.cortex.ace.speech.session.event.SpeechSessionId@50a8e246, Message=Timeout waiting for command after 30000 ms, NSUnderlyingError=0x170248c40 {Error Domain=SiriSpeechErrorDomain Code=100 "(null)"}}

我在网上找遍了,没找到解决办法。也有人遇到同样的问题。有些人怀疑这是 Nuance 的问题。

还值得注意的是,我确实从转录过程中得到了部分结果。

这是我的 iOS 应用程序的代码。 `//创建语音识别器请求对象。 让 srRequest = SFSpeechURLRecognitionRequest(url: location) srRequest.shouldReportPartialResults = false

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

感谢您的帮助。

最佳答案

除了遇到同样问题的其他人之外,我还没有确认我的答案,但我相信这是对预录音频的未记录限制。

关于ios - iOS 应用程序上的 SFSpeechRecognizer(Siri 转录)超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45203865/

相关文章:

ios - Firebase 查询 - 查找用户匹配的电子邮件

ios - 使用静态单元格在 UITableViewController 上添加按钮覆盖

ios - Xcode 12 找不到任何匹配的 iOS App Development 配置文件

iphone - 如何编写 OCUnit 测试用例

python - 如何在Pythonista iOS中运行Flask?

iphone - 在 AlertDialog iPhone 中打开 WebView

iphone - 子类化 NSMutableDictionary

swift - 我在使用 RNCryptor 库解密时遇到问题

iphone - 通过 NSURLConnection 异步加载 TableView 图像

ios - (Swift) 将视频输出保存到文件