NCKitFileProcessor
Offline file denoise. Input: decodable audio/video file. Output: 16-bit PCM WAV at 48 kHz mono.
APIโ
public enum NCKitFileProcessor {
public static let targetSampleRate: Double // 48_000
public static func processFile(
inputURL: URL,
outputURL: URL,
processor: NCKitProcessor
) throws
}
Usageโ
import NCKit
let modelURL = try NCKitModelLocator.modelTarGzURL()
let processor = try NCKitProcessor(modelURL: modelURL)
try NCKitFileProcessor.processFile(
inputURL: noisyFileURL,
outputURL: cleanFileURL,
processor: processor
)
Batch (reuse processor)โ
let modelURL = try NCKitModelLocator.modelTarGzURL()
let processor = try NCKitProcessor(modelURL: modelURL)
for (input, output) in jobs {
try NCKitFileProcessor.processFile(
inputURL: input,
outputURL: output,
processor: processor
)
}
Background threadโ
try await Task.detached(priority: .userInitiated) {
try NCKitFileProcessor.processFile(
inputURL: inputURL,
outputURL: outputURL,
processor: processor
)
}.value
Main thread
processFile is blocking. Never call it on the Android main thread.
Throwsโ
| Error | When |
|---|---|
cannotOpenInput / CannotOpenInput | Source file cannot be read |
cannotCreateOutput / CannotCreateOutput | Output path cannot be written |
unsupportedFormat / UnsupportedFormat | No decodable audio |
resampleFailed / ResampleFailed | Resample to 48 kHz failed |