SFTranscriptionSegment的时间戳始终为0

时间:2016-09-06 22:10:58

标签: objective-c speech-recognition ios10

这是关于新iOS 10语音框架的一个问题。 我使用以下方法获得语音识别结果

 recognitionTask =   [speechRecgzr recognitionTaskWithRequest:recognitionRequest resultHandler:^(SFSpeechRecognitionResult * _Nullable result, NSError * _Nullable error) {

    }

但结果中每个SFTranscriptionSegment的时间戳为0,且置信度始终为0

这可能是什么问题? Apple还没有正确实现API吗?

谢谢。

3 个答案:

答案 0 :(得分:2)

几个星期后,我发现通过设置这个我可以获得时间戳和信心:

speechRecgzr.defaultTaskHint = SFSpeechRecognitionTaskHintDictation;

答案 1 :(得分:0)

迅速5 +

speechRecgzr.defaultTaskHint = .dictation

答案 2 :(得分:0)

我遇到了同样的问题,发现timestampduration在部分结果上始终为零,但在最终结果上设置正确。

在您的SFSpeechRecognitionResult实例上检查isFinal。如果那是true,则转录段将具有此元数据。

如果只想处理最终结果,可以在SFSpeechRecognitionRequest上将shouldReportPartialResults设置为false