NCKitAudioNormalizer
Optional post-denoise loudness normalization on a mono Float32 buffer.
APIโ
public enum NCKitAudioNormalizer {
public static func applySpeechGatedMakeupGain(
_ samples: inout [Float],
sampleRate: Int,
targetRmsDbfs: Float = -18,
maxGainDb: Float = 15,
peakCeilingDbfs: Float = -1
)
public static func softLimitInPlace(
_ samples: inout [Float],
peakCeilingDbfs: Float = -1
)
}
Speech-gated makeup gainโ
import NCKit
var samples: [Float] = loadFloatSamples(from: denoisedWavURL) // your reader
NCKitAudioNormalizer.applySpeechGatedMakeupGain(
&samples,
sampleRate: 48_000,
targetRmsDbfs: -18,
maxGainDb: 15,
peakCeilingDbfs: -1
)
Peak limit only (no gain)โ
NCKitAudioNormalizer.softLimitInPlace(&samples, peakCeilingDbfs: -1)
After file denoiseโ
try NCKitFileProcessor.processFile(
inputURL: inputURL,
outputURL: tempWavURL,
processor: processor
)
var samples = try loadFloat32Wav(url: tempWavURL)
NCKitAudioNormalizer.applySpeechGatedMakeupGain(&samples, sampleRate: 48_000)
try writeFloat32Wav(samples: samples, sampleRate: 48_000, to: finalWavURL)
Parametersโ
| Parameter | Default | Meaning |
|---|---|---|
targetRmsDbfs | -18 | Target speech RMS |
maxGainDb | 15 | Max boost cap |
peakCeilingDbfs | -1 | Tanh limiter ceiling |
No-op when the clip is too short or has too few speech windows.