PhraseSummary

data class PhraseSummary(val totalPhrases: Int, val phrases: List<Phrase>, val comfortableRange: PhraseRange?, val avgDuration: Float, val shortestDuration: Float, val longestDuration: Float, val longestDurationUnfiltered: Float, val phraseToBreathRatios: FloatArray, val avgPhraseToBreathRatio: Float)

Phrase-level analysis of a single recording.

Produced by TesseraBreath.analyze when the contour has enough phrase structure to segment. Each entry in phrases aligns by index with phraseToBreathRatios.

Constructors

Link copied to clipboard
constructor(totalPhrases: Int, phrases: List<Phrase>, comfortableRange: PhraseRange?, avgDuration: Float, shortestDuration: Float, longestDuration: Float, longestDurationUnfiltered: Float, phraseToBreathRatios: FloatArray, avgPhraseToBreathRatio: Float)

Properties

Link copied to clipboard

Mean phrase duration in seconds

Link copied to clipboard

Mean of phraseToBreathRatios. Headline efficiency value.

Link copied to clipboard

Where most phrases land (middle two bins of a 5-bin histogram of phrase durations). Null when too few phrases to bin meaningfully.

Link copied to clipboard

Longest phrase duration in seconds, excluding phrases flagged as statistical outliers by Local Outlier Factor on the phrase-to-breath ratios. Headline "peak phrase" value for UI — resilient to single fluky phrases.

Link copied to clipboard

Longest phrase duration in seconds with no outlier filtering — the raw maximum.

Link copied to clipboard

Detected phrases in chronological order

Link copied to clipboard

Per-phrase ratio of phrase duration to preceding pause duration. Higher values indicate more singing per breath.

Link copied to clipboard

Shortest phrase duration in seconds

Link copied to clipboard

Number of detected phrases

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int