AI-powered silence remover for video editors
Detects speech with Silero VAD and cuts silences. Runs locally, free forever, always open source.
Upload a video β Pick an aggression level β Slice removes all the silence.
Give it a video file, select how aggressive you want the silence removal (Chill β Savage), and Chaotics Slice automatically detects every moment of speech and cuts everything else. Preview your cuts on an interactive timeline, then either:
- Export the sliced video as a new file, or
- Export a cut list (EDL / FCPXML / Premiere XML) to edit in your NLE
All processing happens locally on your machine. Download once, work offline forever.
- Local processing β Everything runs on your machine. No uploads, no cloud, no tracking.
- AI-powered detection β Uses Silero VAD (Voice Activity Detection) to find speech, not just audio levels.
- Flexible aggression levels β Chill, Normal, Tight, or Savage presets, plus full manual control over thresholds.
- NLE-ready exports β Cut lists compatible with Final Cut Pro, Premiere Pro, and DaVinci Resolve.
- Optional GPU acceleration β Auto-detects CUDA (NVIDIA) and MPS (Apple Silicon); falls back to CPU seamlessly.
- Works offline β After the model downloads once, the app is fully offline-capable.
- Free and open source β GPL licensed. No paywalls, no ads, no feature gates.
| Dependency | Version | Notes |
|---|---|---|
| Python | 3.10 β 3.12 | 3.13 not yet tested |
| FFmpeg + FFprobe | 6+ | Must be on PATH |
| PyTorch | 2.x | CPU works; GPU optional |
| torchaudio | any | Auto-detected at startup |
GPU acceleration is optional. The app auto-detects CUDA and MPS at startup and falls back to CPU silently.
| Python | 3.10 β 3.12 | 3.13 not yet tested |
| FFmpeg + FFprobe | 6+ | Must be on PATH |
| PyTorch | 2.x | CPU works; GPU optional |
| torchaudio | any | Auto-detected at startup |
GPU acceleration is optional. The app auto-detects CUDA and MPS at startup and falls back to CPU silently.
1. Install system dependencies
# Install Homebrew if you don't have it
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install python@3.11 ffmpeg2. Clone, create virtual environment, and install
git clone https://github.com/yourname/chaotics-slice.git
cd chaotics-slice
python3.11 -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install torch torchvision torchaudio flask waitress3. Run
python app.pyBrowser opens automatically at http://127.0.0.1:5000. Done!
1. Install Python
Download Python 3.11 from python.org.
β
Check "Add Python to PATH" during install.
2. Install FFmpeg
- Download a build from ffmpeg.org/download.html (e.g. gyan.dev full build)
- Extract to
C:\ffmpeg - Add
C:\ffmpeg\binto your System PATH:
Control Panel β System β Advanced β Environment Variables β Path β Edit β New - Verify: open a fresh terminal and run
ffmpeg -version
3. Clone, create virtual environment, and install
git clone https://github.com/yourname/chaotics-slice.git
cd chaotics-slice
python -m venv .venv
.venv\Scripts\activate
pip install --upgrade pipChoose one based on your GPU:
# NVIDIA (CUDA 12.1):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# CPU only:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
# Then all:
pip install flask waitress4. Run
python app.pyBrowser opens automatically at http://127.0.0.1:5000. Done!
1. Install system dependencies
sudo apt update
sudo apt install -y python3.11 python3.11-venv python3-pip ffmpeg gitOn Ubuntu 22.04, Python 3.11 may need the deadsnakes PPA:
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install -y python3.11 python3.11-venv
2. Clone, create virtual environment, and install
git clone https://github.com/yourname/chaotics-slice.git
cd chaotics-slice
python3.11 -m venv .venv
source .venv/bin/activate
pip install --upgrade pipChoose one based on your GPU:
# NVIDIA (CUDA 12.1):
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# CPU only:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
# Then all:
pip install flask waitress3. Run
python app.pyhttp://127.0.0.1:5000 manually or Ctrl+Click the URL in the terminal.
After the app starts, check the terminal for a line like:
[Chaotics Slice] torch=2.10.0 device=cuda
[Chaotics Slice] torch=2.10.0 device=mps
[Chaotics Slice] torch=2.10.0 device=cpu
If you expected GPU but see cpu:
- CUDA: Verify
nvidia-smishows your driver's max CUDA version, and you used the matching--index-url - Apple Silicon: Ensure you're running native Python:
python3 -c "import platform; print(platform.machine())"should outputarm64
- Upload β Choose a video file (.mp4, .mkv, .mov, .avi, .webm, .m4v, .flv; up to 8 GB)
- Configure β Pick an aggression level or adjust thresholds manually:
- Chill β Keeps more breathing room; fewer cuts
- Normal β Balanced; good for most content
- Tight β Aggressive; minimal silence
- Savage β Maximum cuts; speech-only edit
- Preview β See cuts on the interactive timeline before rendering
- Export β Either:
- Video β Download the sliced video file
- Cut List β Export EDL, FCPXML, or Premiere XML to edit in your NLE
Video: .mp4, .mkv, .mov, .avi, .webm, .m4v, .flv
Maximum upload: 8 GB
Export: Native sliced video or NLE-compatible cut lists
On your first upload, Silero VAD downloads its model weights (~2 MB) from PyTorch Hub. This requires an internet connection once. After that, the model is cached locally and the app works fully offline.
chaotics-slice/
βββ app.py # Flask app + HTTP routes
βββ config.py # Constants & VAD mode presets
βββ ffmpeg.py # FFmpeg wrappers (encode, extract audio)
βββ vad.py # Silero VAD inference + speech detection
βββ jobs.py # Job queue, cut computation, EDL/XML export
βββ test.py # Unit tests
βββ requirements.txt # Python dependencies
βββ build.bat / build.sh # PyInstaller bundling scripts
βββ chaotics_slice.spec # PyInstaller spec file
βββ static/
β βββ index.html # Single-page UI
β βββ css/ style.css # Styling
β βββ js/ # Frontend logic (app.js, player.js, etc.)
β βββ res/ # Logo, icons, assets
βββ uploads/ # Temporary upload directory (auto-cleared)
βββ outputs/ # Temporary output directory (auto-deleted)
βββ silero_vad/ # Silero VAD submodule & tuning tools
βββ src/ # VAD model loading & inference
βββ tuning/ # Threshold optimization utilities
- Audio Extraction β FFmpeg extracts PCM audio (16 kHz, mono) from the video
- VAD Inference β Silero model identifies speech chunks with configurable thresholds
- Cut Computation β Combines speech chunks with padding & silence minimums to generate cuts
- Rendering β FFmpeg re-encodes the video with only the cut segments
- Export β Generate EDL/FCPXML/Premiere XML for NLE import, or output the final video
MODE_PRESETS = {
"chill": {"padding": 350, "min_silence": 600}, # More breathing room
"normal": {"padding": 200, "min_silence": 300}, # Balanced
"tight": {"padding": 80, "min_silence": 150}, # Aggressive
"savage": {"padding": 30, "min_silence": 80}, # Minimal silence
}- Padding β Milliseconds of audio to keep around each speech chunk
- Min Silence β Minimum silence duration (ms) before cutting
# Clone and navigate
git clone https://github.com/yourname/chaotics-slice.git
cd chaotics-slice
# Create virtual environment
python3.11 -m venv .venv
source .venv/bin/activate
# Install dev dependencies
pip install -r requirements.txt
# Run tests
python test.pyUses PyInstaller to bundle the app:
# macOS / Linux:
bash build.sh
# Windows:
build.batOutput: dist/Chaotics-Slice.app (macOS) or dist/Chaotics-Slice.exe (Windows)
We welcome bug reports, feature requests, and pull requests! If you're interested in contributing:
- Fork the repository
- Create a feature branch β
git checkout -b feature/your-feature - Make your changes and write/update tests
- Submit a pull request with a clear description
Areas we're looking for help with:
- Performance optimizations (VAD inference, FFmpeg encoding)
- Additional NLE export formats (Avid AAF, Media Composer, etc.)
- Batch processing mode
- GUI improvements and accessibility
- Language/localization support
- Platform-specific installers (DMG, MSI, deb/rpm packages)
For major features or architectural changes, please open an issue for discussion first.
| Error | Solution |
|---|---|
ffmpeg: command not found |
FFmpeg is not on your PATH. Re-check the install step for your platform and open a fresh terminal. |
No speech detected |
Try Chill mode or lower the VAD Threshold slider. Noisy audio or non-speech content (music, B-roll) may cause misdetection. |
FFmpeg render failed |
Check the Activity log for details. Common causes: corrupted file, unsupported codec, or disk full. |
torchaudio requires torchcodec |
You have torchaudio β₯ 2.9. The app uses stdlib wave for audio; this is handled automatically. If you still see it, update to the latest app.py. |
Port 5000 already in use |
Edit the last line of app.py to use a different port: serve(app, host="127.0.0.1", port=5001) |
| GPU not detected when expected | Verify CUDA version matches your PyTorch --index-url. On Apple Silicon, confirm native Python: python -c "import platform; print(platform.machine())" β arm64 |
- Supported audio codecs β AAC, MP3, FLAC, PCM, Opus, Vorbis. Unusual codecs may cause FFmpeg errors.
- Silero VAD language β Trained on multilingual data; works best with clear speech (English, Ukrainian, Russian, and other languages with similar phonetics).
- GPU memory β VAD inference is memory-intensive; GPU acceleration is most beneficial on audio files with long, continuous segments.
- Output file size β Sliced output is typically 60β80% of the original on podcasts; less on videos with substantial B-roll.
GPL License. See LICENSE for details.
- Silero VAD β VAD model and framework (github.com/snakers4/silero-vad)
- Flask β Web framework
- FFmpeg β Audio/video processing
- PyTorch β ML inference backend
- π‘ Feature request? Open a GitHub issue.
- π Bug? Describe steps to reproduce; include terminal output and OS/GPU details.
- π General question? Start a discussion or check existing issues.
