NCKit v1.0.0
Released: May 2026
Initial release of NCKit โ enterprise on-device noise cancellation SDK for iOS.
What's Includedโ
Core Engineโ
NCKitProcessorโ NCKit neural noise suppression via libdf C runtimedf_create/df_process_frame/df_freelifecycle managementframeLengthproperty for buffer sizing- Runtime
setAttenLim(_:)andsetPostFilterBeta(_:)โ no model reload required - Automatic memory management via Swift ARC (
deinitcallsdf_free)
File Processingโ
NCKitFileProcessorโ Offline file denoise pipeline- Supports any format
AVAudioFilecan open: WAV, M4A, MP4, MOV, MP3, AIFF, CAF - Automatic resampling to 48 kHz via
AVAudioConverter - Automatic mono downmix for multi-channel input
- Chunked I/O โ constant memory usage regardless of file length
- Lookahead compensation (2-frame delay, ~20ms) handled automatically
- Output: 16-bit PCM WAV, 48 kHz, mono
- Supports any format
Model Discoveryโ
NCKitModelLocatorโ Automatic model bundle resolution- Supports SPM (
Bundle.module) and XCFramework (Bundle(for: NCKitProcessor.self)) builds - Falls back to
Bundle.mainfor app-bundled model deployments - Copy-once behavior โ idempotent across multiple calls
- Supports SPM (
Normalizationโ
NCKitAudioNormalizerโ Post-denoise loudness normalization- Speech-gated RMS measurement (20ms windows, 15th-percentile noise floor)
- Single static makeup gain โ no pumping artifacts
- Configurable target loudness, gain cap, and peak ceiling
- Tanh soft limiter โ smooth peak control without harmonic distortion
Error Handlingโ
NCKitErrorโ Typed,Sendableerror enum- 7 structured cases covering all failure modes
- Safe across Swift concurrency actor boundaries
Distributionโ
- Swift Package Manager โ binary target, local path and remote git
- CocoaPods โ vendored XCFramework via podspec
- Manual XCFramework โ drag-and-drop integration
XCFramework Slicesโ
| Slice | Platform |
|---|---|
ios-arm64 | Physical iPhone and iPad |
ios-arm64-simulator | Apple Silicon Mac simulator |
Requirementsโ
| Version | |
|---|---|
| iOS | 16.0+ |
| Xcode | 15.0+ |
| Swift | 5.9+ |
Known Limitationsโ
- x86_64 (Intel Mac) simulator not supported โ use Rosetta or a physical device
- Model loading takes 50โ200ms โ initialize
NCKitProcessorat app launch, not on demand - libdf 2-frame lookahead introduces 20ms of latency in real-time use (unavoidable with lookahead models)
- Output format is always 16-bit PCM WAV at 48 kHz mono โ no configurable output format in this release