Real-time AI-powered audio and video effects for Linux using NVIDIA tensor cores.
LiNvidia Broadcast is an open-source implementation of NVIDIA Broadcast features for Linux systems, leveraging NVIDIA GPUs with tensor cores for real-time AI processing.
- Noise Suppression: Real-time audio noise removal using deep learning
- Low latency (<10ms target)
- Optimized for NVIDIA tensor cores via TensorRT
- Support for PulseAudio and PipeWire
- Adjustable suppression strength
- Virtual microphone support
-
Background Blur: Blur background with adjustable strength
- Bokeh-style depth-of-field effect
- Adjustable blur strength (1-100)
- Real-time performance (30fps @ 720p)
-
Background Removal: Remove background with green screen effect
- Perfect for streaming and video production
- Clean chroma key output
-
Background Replacement: Replace background with custom images
- Use any image as your virtual background
- Automatic scaling and blending
- Professional meeting ready
-
Auto-Framing: Intelligent automatic framing with face tracking
- AI-powered face detection using MediaPipe
- Multi-person tracking with temporal smoothing
- 6 framing modes: Center, Headroom, Tight, Wide, Group, and Off
- Smooth transitions with smart cropping
- Professional-quality framing rules (Rule of Thirds)
-
Virtual Camera: v4l2loopback integration
- Works with Zoom, Teams, Discord, OBS, and more
- System-wide camera effects
- Eye contact correction
- Advanced lighting effects
- Portrait relighting
- NVIDIA GPU with tensor cores (RTX 20xx series or newer recommended)
- CUDA Compute Capability 7.0+
- Linux (tested on Ubuntu 20.04+)
- NVIDIA GPU drivers (>=470.0)
- CUDA Toolkit (>=11.0)
- TensorRT (>=8.0)
- Python 3.8+
Audio Input β Framing β STFT β Neural Network (TensorRT) β ISTFT β Audio Output
β β
Windowing Tensor Core Acceleration
The noise suppression system uses:
- Audio Processing: Short-time Fourier transform (STFT) for frequency domain processing
- Neural Network: RNN-based model (similar to RNNoise) for noise classification
- TensorRT: Optimized inference engine utilizing tensor cores for maximum throughput
- Low-latency pipeline: Circular buffers and async processing for <10ms latency
# Clone the repository
git clone https://github.com/hellasleeper108/LiNvidia-Broadcast.git
cd LiNvidia-Broadcast
# Install Python dependencies
pip install -r requirements.txt
# Download pre-trained models
python scripts/download_models.py# Run with default settings
linvidia noise-suppression
# Specify input/output devices
linvidia noise-suppression --input "device_name" --output "device_name"
# Adjust suppression strength
linvidia noise-suppression --strength 0.95# Blur background (default)
linvidia background-effects --effect blur --blur-strength 50
# Remove background (green screen)
linvidia background-effects --effect remove
# Replace background with image
linvidia background-effects --effect replace --background /path/to/image.jpg
# Enable auto-framing with professional headroom mode
linvidia background-effects --effect blur --auto-frame --framing-mode headroom
# Combine effects: blur + auto-framing to virtual camera
linvidia background-effects --effect blur --blur-strength 40 \
--auto-frame --framing-mode center --output virtual
# Group framing for multiple people
linvidia background-effects --auto-frame --framing-mode group# Launch full-featured GUI with both audio and video
linvidia gui --full
# Or just audio GUI
linvidia gui
# Or use the standalone launcher scripts
./launch_gui_full.py # Full GUI with auto-framing
./launch_gui.py # Simple audio-only GUIlinvidia/
βββ audio/ # Audio I/O and processing
β βββ capture.py # Audio input handling
β βββ playback.py # Audio output handling
β βββ processing.py # STFT, windowing, framing
βββ video/ # Video I/O and processing
β βββ capture.py # Camera input handling
β βββ display.py # Video output and virtual camera
β βββ processing.py # Video effects processing
βββ models/ # Neural network models
β βββ noise_suppression.py
β βββ segmentation/ # Background segmentation models
βββ tracking/ # Face detection and auto-framing
β βββ face_detector.py # MediaPipe/OpenCV face detection
β βββ face_tracker.py # Multi-object tracking
β βββ auto_frame.py # Auto-framing logic
βββ inference/ # TensorRT inference engine
β βββ engine.py
β βββ optimizer.py
βββ ui/ # User interface
β βββ cli.py
β βββ gui.py
β βββ gui_full.py # Full-featured GUI with video
βββ utils/ # Utilities and helpers
# Train noise suppression model
python scripts/train_noise_suppressor.py --dataset path/to/datasetThe noise suppression model is based on recurrent neural networks (RNN) with:
- GRU layers for temporal modeling
- Frequency masking for noise removal
- Mixed precision (FP16) for tensor core utilization
- Optimized for real-time inference
- FP16 precision for 2x throughput on tensor cores
- Layer fusion and kernel auto-tuning
- Dynamic batch size support
- CUDA graph optimization for minimal overhead
Target metrics on RTX 3060:
- Audio: <8ms latency (capture to playback)
- Video: ~35ms total latency with all effects enabled
- FPS: 28-30 fps @ 720p with background effects + auto-framing
- Quality: PESQ >4.0, SNR improvement >15dB (audio)
- INSTALL.md: Detailed installation instructions and system setup
- VIDEO_FEATURES.md: Complete guide to video features and background effects
- AUTO_FRAMING.md: Auto-framing modes, usage, and troubleshooting
- TENSORRT.md: TensorRT optimization for 2-5x faster inference
- TRAINING.md: Training custom models and datasets
Contributions welcome! Please see CONTRIBUTING.md for guidelines.
MIT License - see LICENSE file for details.
What is it? Open-source NVIDIA Broadcast alternative for Linux with AI-powered audio and video effects.
Key Features:
- π€ Noise Suppression: Remove background noise with <10ms latency using tensor cores
- πΉ Background Effects: Blur, remove, or replace backgrounds in real-time
- π― Auto-Framing: AI face tracking with 6 professional framing modes
- π₯ Virtual Camera: Works with Zoom, Teams, Discord, OBS via v4l2loopback
Quick Start:
# Install
git clone https://github.com/hellasleeper108/LiNvidia-Broadcast.git
cd LiNvidia-Broadcast
./scripts/install.sh
# Try it
linvidia background-effects --effect blur --auto-frame --framing-mode headroom
linvidia noise-suppression
linvidia gui --fullRequirements: NVIDIA RTX GPU (tensor cores), CUDA 11.0+, Linux
Performance: ~35ms video latency, <10ms audio latency @ 30fps 720p on RTX 3060
π Full docs: INSTALL.md | VIDEO_FEATURES.md | AUTO_FRAMING.md
- Inspired by NVIDIA Broadcast
- RNNoise paper by Jean-Marc Valin
- Open source audio processing community