GTCRN: Ultra-Lightweight Speech Enhancement & ANC
This repository provides pretrained weights and inference pipelines for the Group Temporal Convolutional Recurrent Network (GTCRN), an ultra-lightweight speech enhancement model (~23.67K parameters).
It is specifically trained for Adaptive Noise Cancellation (ANC) across harsh defence environments, handling:
- Stationary noise (engine rumble, continuous noise)
- Impulsive noise (gunfire, artillery, sudden bursts)
- Aerial noise (drones, aircraft propulsion)
Model Specifications
- Architecture: Group Temporal Convolutional Recurrent Network (GTCRN)
- Parameters: ~23,670 (0.024 M)
- Sampling Rate: 16,000 Hz (16 kHz mono)
- STFT Parameters: N_FFT = 512, Hop = 256, Window = 512 (Hann window)
- Inference Latency: Real-time streaming capable (16 ms chunk size)
Files in this Repository
best.pt: Best PyTorch model checkpoint.gtcrn_stream.onnx: Exported streaming ONNX model for edge and real-time deployment.infer.py: Full PyTorch inference script.infer_onnx.py: Lightweight ONNX runtime streaming inference script.model_wrapper.py: Audio preprocessing and domain conversion wrapper.gtcrn.py: Full PyTorch model architecture definition.sample_noisy.wav: Sample audio clip for quick testing.
Benchmark Performance
Evaluated on unseen test mixtures across defence-specific acoustic conditions:
| Category | SNR Improvement (dB) | STOI | PESQ |
|---|---|---|---|
| Aerial Noise (Drones, Jets) | +8.15 dB | 0.860 | 1.95 |
| Impulsive Noise (Gunfire, Artillery) | +9.33 dB | 0.867 | 2.13 |
| Stationary Noise (Engines, Vehicles) | +8.76 dB | 0.847 | 1.99 |
| Overall | +8.68 dB | 0.857 | 2.01 |
Quickstart: Running Inference
1. Using ONNX Runtime (Recommended for speed & edge)
pip install onnxruntime soundfile numpy
python infer_onnx.py --input sample_noisy.wav --model gtcrn_stream.onnx --output enhanced.wav
## Benchmark Performance
The model was evaluated on unseen test mixtures across defence-specific acoustic noise conditions at 16 kHz:
| Noise Category | Description | SNR Improvement (dB) | STOI (Intelligibility) | PESQ (Quality) |
| :--- | :--- | :---: | :---: | :---: |
| **Aerial Noise** | Drones, UAV propulsion, jet turbines | **+8.15 dB** | **0.860** | **1.95** |
| **Impulsive Noise** | Sudden gunfire, artillery, explosions | **+9.33 dB** | **0.867** | **2.13** |
| **Stationary Noise** | Engine rumble, vehicle hums, steady noise | **+8.76 dB** | **0.847** | **1.99** |
| **OVERALL** | Combined test split benchmark | **+8.68 dB** | **0.857** | **2.01** |
### Key Highlights:
- **High Speech Intelligibility**: Achieves `0.857` average STOI, ensuring voice communication remains crisp and intelligible.
- **Superior Impulsive Suppression**: Delivers strong `+9.33 dB` SNR gain on sudden explosive and gunfire noises.
- **Ultra-Low Latency**: Frame-by-frame streaming inference capable with 16 ms chunks and only ~23.67K parameters.