【问题标题】:Speech to Text SWIFT语音转文本 SWIFT
【发布时间】:2018-11-18 15:16:57
【问题描述】:

我有以下代码:

func createStringFromAudio () {
    SFSpeechRecognizer.requestAuthorization {_ in
        DispatchQueue.main.async {
            switch SFSpeechRecognizer.authorizationStatus() {
            case .authorized :
                let audioURL = Bundle.main.url(forResource: "ConversionTest", withExtension: "mp3")!
                let recognizer = SFSpeechRecognizer()
                let request = SFSpeechURLRecognitionRequest(url: audioURL)
                recognizer?.recognitionTask(with: request) { result, error in
                    guard error == nil else { print("Error"); return}
                    guard let result = result else {print("No result"); return}
                    print(result.bestTranscription.formattedString)
                }
                break
            default :
                break
            }
        }
    }
}

这是我的问题: 1:我怎么知道文件何时完成?目前,它会不断更新结果打印,但在转录 100% 完成时不会通知我。我如何知道转录何时完成并且可以保存字符串以供解析?

2: 好像还没做完就断掉了。有时间限制吗?字数限制?

【问题讨论】:

    标签: swift machine-learning speech-to-text speech


    【解决方案1】:

    您可以保存任务以检查其状态,甚至可以取消它。 实际上,转录过程不是由我们控制的,当系统认为它完成时,它就完成了。

    如果您确实需要精确控制,请使用委托:

    func recognitionTask(with request: SFSpeechRecognitionRequest, delegate: SFSpeechRecognitionTaskDelegate) -> SFSpeechRecognitionTask

    这可能会在转录过程中提供更多信息,至少它会在完成时通知您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 2019-04-22
      相关资源
      最近更新 更多