framesToSegments

fun framesToSegments(frameMask: BooleanArray, sampleRate: Int, hopLength: Int): List<Pair<Float, Float>>

Convert a boolean frame mask to time segments.

Identifies contiguous runs of true values and converts them to (startSeconds, endSeconds) pairs.

Usage

Kotlin

val mask = booleanArrayOf(false, true, true, true, false)
val segments = SonixAudioUtils.framesToSegments(mask, sampleRate = 16000, hopLength = 512)
// segments: [(0.032, 0.128)]

Swift

let mask: [Bool] = [false, true, true, true, false]
let segments = SonixAudioUtils.framesToSegments(frameMask: mask, sampleRate: 16000, hopLength: 512)
// segments: [(start: 0.032, end: 0.128)]

Return

List of (start, end) time pairs in seconds.

Parameters

frameMask

Boolean array where true indicates an active frame.

sampleRate

Sample rate in Hz (must be positive).

hopLength

Hop length in samples (must be positive).