Revert adjacent same-speaker segment collapse
User found the merged transcript lines harder to read — too many sentences joined into one statement. Remove SpeakerReconciler.mergeAdjacent, its wiring in finishBackend (restore the no-LLM early return), and its tests. Back to one segment per diarized utterance.
This commit is contained in:
@@ -82,28 +82,6 @@ enum SpeakerReconciler {
|
||||
speakers: speakers, segments: result, models: file.models)
|
||||
}
|
||||
|
||||
/// Collapse consecutive segments from the SAME speaker separated by ≤ `maxGap`
|
||||
/// seconds into one, joining their text — so fragments reabsorbed by smoothing
|
||||
/// (e.g. "I" then "need to switch it back") read as a single clean line. Pure.
|
||||
static func mergeAdjacent(_ file: SpeakersFile, maxGap: Double = 2.0) -> SpeakersFile {
|
||||
let sorted = file.segments.sorted { $0.start < $1.start }
|
||||
guard !sorted.isEmpty else { return file }
|
||||
var out: [SpeakersFile.Segment] = []
|
||||
for s in sorted {
|
||||
if var last = out.last, last.speaker == s.speaker, s.start - last.end <= maxGap {
|
||||
let joined = [last.text, s.text].compactMap { $0?.trimmingCharacters(in: .whitespaces) }
|
||||
.filter { !$0.isEmpty }.joined(separator: " ")
|
||||
last = .init(start: last.start, end: max(last.end, s.end), speaker: s.speaker,
|
||||
text: joined.isEmpty ? nil : joined)
|
||||
out[out.count - 1] = last
|
||||
} else {
|
||||
out.append(s)
|
||||
}
|
||||
}
|
||||
return SpeakersFile(sessionId: file.sessionId, app: file.app, durationSec: file.durationSec,
|
||||
speakers: file.speakers, segments: out, models: file.models)
|
||||
}
|
||||
|
||||
// MARK: - Voiceprint merge (pure)
|
||||
|
||||
static func protectedNames(_ file: SpeakersFile, selfName: String) -> Set<String> {
|
||||
|
||||
Reference in New Issue
Block a user