NCKitAudioNormalizer
Optional post-denoise loudness normalization on a mono Float32 buffer.
APIโ
Swift
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
)
}
Kotlin
object NCKitAudioNormalizer {
@JvmStatic
@JvmOverloads
fun applySpeechGatedMakeupGain(
samples: FloatArray,
sampleRate: Int,
targetRmsDbfs: Float = -18f,
maxGainDb: Float = 15f,
peakCeilingDbfs: Float = -1f,
)
@JvmStatic
@JvmOverloads
fun softLimitInPlace(
samples: FloatArray,
peakCeilingDbfs: Float = -1f,
)
}
Speech-gated makeup gainโ
Swift
import NCKit
var samples: [Float] = loadFloatSamples(from: denoisedWavURL) // your reader
NCKitAudioNormalizer.applySpeechGatedMakeupGain(
&samples,
sampleRate: 48_000,
targetRmsDbfs: -18,
maxGainDb: 15,
peakCeilingDbfs: -1
)
Kotlin
import com.fiveexceptions.nckit.NCKitAudioNormalizer
val samples: FloatArray = loadFloatSamples(cleanWavFile) // your reader
NCKitAudioNormalizer.applySpeechGatedMakeupGain(
samples = samples,
sampleRate = 48_000,
targetRmsDbfs = -18f,
maxGainDb = 15f,
peakCeilingDbfs = -1f,
)
Peak limit only (no gain)โ
Swift
NCKitAudioNormalizer.softLimitInPlace(&samples, peakCeilingDbfs: -1)
Kotlin
NCKitAudioNormalizer.softLimitInPlace(samples, peakCeilingDbfs = -1f)
After file denoiseโ
Swift
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)
Kotlin
NCKitFileProcessor.processFile(inputFile, tempWavFile, processor)
val samples = loadFloat32Wav(tempWavFile)
NCKitAudioNormalizer.applySpeechGatedMakeupGain(samples, sampleRate = 48_000)
writeFloat32Wav(samples, sampleRate = 48_000, dest = finalWavFile)
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.