← Back
Home › Systems › Communication and media

realtime-audio-dsp

real-time audio processing

RNNoise, Krisp

SystemTechniques · 3Primitives · 18 realtime-audio-dsp Acoustic echo cancellationmedia · medium: Adaptive filter (NLMS/frequency-domain) removing far-end echo from the microphone signalNoise suppressionmedia · medium: Spectral gain estimation (Wiener/RNN) to remove background noise from speechSample rate conversionsignal-processing · medium: Polyphase and windowed-sinc resampling; asynchronous rate conversion for clock driftRealtime audio callbackmedia · low: Allocation- and lock-free audio thread design with bounded work per bufferFast Fourier transformnumerics · low: Computes the DFT in O(n log n) by recursively splitting into even and odd halves; the basis of fast convolution and spectral methods.›IIR and FIR filterssignal-processing · low: Two ways to shape a sampled signal's spectrum: FIR (finite taps, always stable, exact linear phase) or IIR (feedback, a few coefficients, cheap but phase-distorting).›Recurrent networksmachine-learning · low: GRU and LSTM cells for streaming sequence modelsVoice activity detectionmachine-learning · low: Per-frame speech/non-speech decision with smoothing, from an energy threshold over a tracked noise floor up to small neural nets.›Short-time Fourier transform and sp…signal-processing · low: Slide a window over a signal and FFT each frame to get a time-frequency picture; the front end of audio ML, vibration and radar analysis.›SIMD programminghardware-os · low: Process 4-16 lanes per instruction with AVX2, AVX-512 or NEON via Rust std::arch, with runtime dispatch and a portable fallback.›SPSC ring bufferdata-structures · low: Bounded wait-free queue for exactly one producer and one consumer thread, built from an array and two indices with acquire/release ordering.›Automatic gain controlmedia · low: Level estimation and smoothed gain to keep speech at a target loudnessWeight quantizationml-training · low: Store weights as 8/4-bit integers with per-group scales; decode is memory-bound, so 4-bit weights give about 3-4x tokens/s and fit 4x larger models.›Floating-point errornumerics · low: How IEEE 754 rounding error accumulates and how to contain it: compensated (Kahan/Neumaier) and pairwise summation, error-free transformations with FMA, ULP comparisons.›Parameter smoothingmedia · low: Per-sample ramps of control parameters to avoid zipper noiseFalse sharingconcurrency · low: Independent variables written by different cores on one cache line force the line to bounce between cores; pad or regroup hot data to fix it.›Memory orderingconcurrency · low: What Relaxed, Acquire, Release and SeqCst atomics actually guarantee, what they cost on x86 and ARM, and which one each pattern needs.›CPU caches and the memory hierarchyhardware-os · low: Sizes, line widths and latencies of L1/L2/L3/DRAM on modern x86 and Apple M-series, and the data-layout rules that follow from them.›Low precision number formatsnumerics · low: Bf16, fp16, fp8 (E4M3, E5M2), MX block formats and int4: ranges, rounding, scaling+ 2 more primitives

Similar systems

Share the most building blocks with this one.