How pranavsandeep/noisesuppression works
This is a real-time audio noise-suppression application. At startup, main.cpp loads configuration and an ONNX model, configures a duplex audio device, and starts an audio-processing thread. Audio callbacks and processing are exposed through AudioInput; the repository also includes audio-processing, suppression, model-inference, and spectral-feature modules. The README is empty and those implementation files were not sampled, so their detailed call wiring is uncertain; the graph shows the startup wiring evidenced in main.cpp and keeps the likely processing stages distinct without asserting their internal connections.
Main entry points: main.cpp Application startup · AudioInput.cpp Audio input and callbacks · Model.cpp ONNX model wrapper · AudioProcessing.cpp Audio processing
Components 14
Runtime orchestration
- Application startup
main.cpp - Runtime config
AppConfig.hpp
Audio handling
- Audio input and callbacks
AudioInput.cpp - Concurrent queue
concurrentqueue.h
Suppression pipeline
- Audio processing
AudioProcessing.cpp - Spectral features
librosa/librosa.h - Noise suppression
NoiseSuppression.cpp
Model inference
- ONNX model wrapper
Model.cpp - Conv-GRU model design
Model/ConvModel.py
Other components
- Operator
- config.cfg
- Duplex audio device
- ONNX Runtime
- Processed audio
Connections 16
- Operator → Application startup: starts
- Application startup → Runtime config: loads config
- Runtime config → config.cfg: reads
- Application startup → ONNX model wrapper: creates model
- Application startup → Audio input and callbacks: sets parameters
- Application startup → Audio input and callbacks: starts thread
- Application startup → Duplex audio device: configures duplex
- Duplex audio device → Audio input and callbacks: dispatches callback
- ONNX model wrapper → ONNX Runtime: runs inference
- Audio input and callbacks → Concurrent queue
- Audio input and callbacks → Audio processing
- Audio processing → Spectral features
- Audio processing → Noise suppression
- Noise suppression → ONNX model wrapper
- Audio input and callbacks → Processed audio
- Conv-GRU model design → ONNX model wrapper