A phrase or passage of transcribed speech. The phrases are sent in order.
If the transcriber is configured to send volatile results, each phrase is sent one or more times as the interpretation gets better and better until it is finalized.
Members (5)
get · iOS 26.0+
description
TypeScript
get description(): string
Swift declaration
var description: String { get }
A textual representation of this instance.
Calling this property directly is discouraged. Instead, convert an
instance of any type to a string by using the `String(describing:)`
initializer. This initializer works with any type, and uses the custom
`description` property for types that conform to
`CustomStringConvertible`:
struct Point: CustomStringConvertible {
let x: Int, y: Int
var description: String {
return "(\(x), \(y))"
}
}
let p = Point(x: 21, y: 30)
let s = String(describing: p)
print(s)
// Prints "(21, 30)"
The conversion of `p` to a string in the assignment to `s` uses the
`Point` type's `description` property.
get · iOS 26.0+
alternatives
TypeScript
get alternatives(): Array<_Foundation_AttributedString>
Swift declaration
let alternatives: [AttributedString]
All the alternative interpretations of the audio in this range. The interpretations are in descending order of likelihood.
The array will not be empty, but may contain an empty string, indicating an alternative where the audio has no transcription.
To receive alternatives, set the ``DictationTranscriber/ReportingOption/alternativeTranscriptions`` option.
get · iOS 26.0+
resultsFinalizationTime
TypeScript
get resultsFinalizationTime(): _CoreMedia_CMTime
Swift declaration
let resultsFinalizationTime: CMTime
The audio input time up to which results from this module have been finalized (after this result). The module's results are final up to but not including this time.
This value is mostly equivalent to the start of ``SpeechAnalyzer/volatileRange`` after the time at which this result was published. The module publishing this result will publish no futher results with a ``range`` that encompasses a time predating this time. The module may publish results for a range that includes this time.
The client can draw the following conclusions from this value and `range` (or refer to the <doc:/documentation/Speech/SpeechModuleResult/isFinal> property):
* If `resultsFinalizationTime >= range.end` then this result is final. Additionally, all previously-provided results with a `range` predating `resultsFinalizationTime` are also final.
* If `resultsFinalizationTime < range.end` (or `resultsFinalizationTime <= range.start`) then this result is volatile and may or may not be replaced by a result provided later.
A module is not required to provide new, final results for audio ranges that it finalizes through if the previously-volatile result was unchanged by finalization. If needed, however, a client can create two modules—one that provides both volatile and final results, and a second that only provides final results—and process results from the latter differently.
This value is not _exactly_ equivalent to the start of the volatile range. The ``SpeechAnalyzer/volatileRange`` property combines all modules' volatile ranges together; this property only refers to the finalization status of results from the module delivering this result.
get · iOS 26.0+
text
TypeScript
get text(): _Foundation_AttributedString
Swift declaration
var text: AttributedString { get }
The most likely interpretation of the audio in this range.
An empty string indicates that the audio contains no recognizable speech and, for results in the volatile range, that previous results for this range are revoked.
This value is the first (most likely) element of ``alternatives``.
get · iOS 26.0+
range
TypeScript
get range(): _CoreMedia_CMTimeRange
Swift declaration
let range: CMTimeRange
The audio input range that this result applies to.