Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 语音文本转换_Swift_Machine Learning_Speech To Text_Speech - Fatal编程技术网

Swift 语音文本转换

Swift 语音文本转换,swift,machine-learning,speech-to-text,speech,Swift,Machine Learning,Speech To Text,Speech,我有以下代码: func createStringFromAudio () { SFSpeechRecognizer.requestAuthorization {_ in DispatchQueue.main.async { switch SFSpeechRecognizer.authorizationStatus() { case .authorized : let audioURL = B

我有以下代码:

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:好像还没做完就切断了。有时间限制吗?字符限制

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

如果确实需要精确控制,请使用代理:

func recognitionTask(带请求:SFSpeechRecognitionRequest,委托:SFSpeechRecognitionTaskDelegate)->SFSpeechRecognitionTask

这可能会在转录过程中提供更多的信息,至少它会让你知道何时完成