I realized that in the SFSpeechRecognitionResult object passed by a speech recognition task to the result handler, the segments property of an SFTranscription object in that result (e.g., bestTranscription) does not contain values for voiceAnalytics properties like jitter before the property isFinal of the SFSpeechRecognitionResult object is true. voiceAnalytics contains just an empty array.
This is the case although the shouldReportPartialResults property of the SFSpeechAudioBufferRecognitionRequest object was set to true before the request was made.
The substring properties of segments are filled with partial transcriptions before the result of the speech recognition is final. The voiceAnalytics properties of segments, on the other hand, get only filled with values when the result is final, they do not contain values in case of partial results.
Why is that? It means that voiceAnalytics cannot be used on a live stream.
Is there a plan to change this in the future?
Also: It seems voiceAnalytics are not available if the speech recognition happens on device (i.e., requiresOnDeviceRecognition is set to true).