Search papers, labs, and topics across Lattice.
This study presents a new C runtime, faster-enhancer.c, designed for efficient streaming speech enhancement on commodity CPUs, achieving significant speed improvements over existing methods. By specializing each layer of the runtime for a fixed model and optimizing memory allocation, the implementation achieves a 3.3x speedup on an Apple M2 core compared to the fp32 ONNX Runtime, while maintaining high audio quality metrics. The findings highlight the importance of real-time processing constraints, as the runtime's design allows for reduced energy consumption and improved performance in practical applications.
Achieving a 3.3x speedup in streaming speech enhancement on commodity CPUs could revolutionize real-time audio processing in mobile and embedded systems.
This is an implementation and measurement study of what it costs to run a streaming speech enhancer on a CPU. We port FastEnhancer-Medium at 48 kHz to faster-enhancer.c, a C runtime with six int8 GEMM tiers selected at initialization, leaving architecture and weights untouched. One Apple M2 core reaches 0.069 real-time factor, against 0.230 for the fp32 ONNX Runtime graph on the same machine, a 3.3x speedup. A Galaxy S23+ (Snapdragon 8 Gen 2) reaches 0.096. The speedup comes from specializing every layer of the runtime around one fixed model. Activation ranges are recomputed per frame, so no calibration set is needed; the k=3 convolutions use Winograd F(2,3); cross-stage state is fp16; the GRU and the dequantization epilogues are fused; and nothing is allocated after startup. Over 824 VoiceBank-DEMAND utterances the engine tracks fp32 to within -0.006 PESQ and -0.08 dB SNR. Speed alone does not settle deployment cost. The enhancer holds a fraction of a core for as long as the microphone is open, so its real-time factor is a duty cycle. A benchmark races through a file; an audio callback does not. Pacing to the 6.67 ms deadline costs 4.2x per frame, saves 49% of the energy, and leaves the cheapest core placement missing 96% of its deadlines. All SIMD tiers within an architecture family emit byte-identical output. The runtime is released as a dependency-free library.