21 lines
686 B
Swift
21 lines
686 B
Swift
import Foundation
|
|
|
|
enum TranscriptCleaner {
|
|
static func clean(_ text: String) -> String {
|
|
var prefix = text.startIndex
|
|
if prefix < text.endIndex, text[prefix] == "\u{FEFF}" {
|
|
prefix = text.index(after: prefix)
|
|
}
|
|
while prefix < text.endIndex, text[prefix].isWhitespace {
|
|
prefix = text.index(after: prefix)
|
|
}
|
|
guard text[prefix...].hasPrefix("language ") else { return text }
|
|
|
|
let markers = ["<asr_text>", "<astext>"]
|
|
let marker = markers.compactMap { text.range(of: $0, range: prefix..<text.endIndex) }
|
|
.min { $0.lowerBound < $1.lowerBound }
|
|
guard let marker else { return text }
|
|
return String(text[marker.upperBound...])
|
|
}
|
|
}
|