One Logo Pool Ball
Speech · IOS API REFERENCE

SpeechDetector.Result

struct · iOS 26.0+ · SDK 27.1

struct Result

A result from the speech detector. Please note, these must be enabled via ``SpeechDetector/init(detectionOptions:reportResults:)`` and currently only support error handling from the VAD model.

Members (4)

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+

speechDetected

TypeScript
get speechDetected(): boolean
Swift declaration
let speechDetected: Bool
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+

range

TypeScript
get range(): _CoreMedia_CMTimeRange
Swift declaration
let range: CMTimeRange

The audio input range that this result applies to.

Skipped declarations

No declarations were skipped in this snapshot.

All Speech types →