https://github.com/neonwatty/bleep-that-shit
Automatically filter, censor, and replace profanity, swear words, curse words, or custom terms in audio and video with a beep or bleep sound effect. Built to self-host with Python, AI, Streamlit, and Docker. Free and open source.
https://github.com/neonwatty/bleep-that-shit
artificial-intelligence audio-processing machine-learning python self-hosted youtube
Last synced: about 2 hours ago
JSON representation
Automatically filter, censor, and replace profanity, swear words, curse words, or custom terms in audio and video with a beep or bleep sound effect. Built to self-host with Python, AI, Streamlit, and Docker. Free and open source.
- Host: GitHub
- URL: https://github.com/neonwatty/bleep-that-shit
- Owner: neonwatty
- License: apache-2.0
- Created: 2024-06-08T20:57:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-24T21:20:09.000Z (9 months ago)
- Last Synced: 2025-01-24T21:27:19.750Z (9 months ago)
- Topics: artificial-intelligence, audio-processing, machine-learning, python, self-hosted, youtube
- Language: Jupyter Notebook
- Homepage: https://bleepthatsht.xyz/
- Size: 17.6 MB
- Stars: 21
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bleep That Sh\*t! — In-Browser Audio & Video Censorship Tool
Make someone sound naughty 😈 or make your content more Ad-friendly.
**Bleep That Sh\*t!** lets you instantly transcribe and censor words in your audio or video files, with full control over what gets bleeped. No uploads, no servers, no installs — everything happens right in your browser.
**The current in-browser implementation works for clips of length 10 minutes or less.**
---
## How it works
1. **Upload** your audio (MP3) or video (MP4) file.
2. **Transcribe** using Whisper ONNX models (transformers.js) — all in-browser.
3. **Censor**: Pick words to bleep (exact, partial, or fuzzy match).
4. **Preview & Download**: Hear the result and save your censored file.All processing is done locally in your browser. Your media and transcripts stay private — nothing is sent to a server.
---
## Examples
Some examples of the end product (make sure to turn volume on, its off by default).
https://github.com/user-attachments/assets/da50f8a9-27ba-4747-92e0-72a25e65175c
Let's look more closely at the last example above - below is a short clip we'll bleep out some words from using the pipeline in this repo. (make sure to turn on audio - its off by default)
https://github.com/neonwatty/bleep-that-shit/assets/16326421/fb8568fe-aba0-49e2-a563-642d658c0651
Now the same clip with the words - "treetz", "ice", "cream", "chocolate", "syrup", and "cookie" - bleeped out
https://github.com/neonwatty/bleep-that-shit/assets/16326421/63ebd7a0-46f6-4efd-80ea-20512ff427c0
---
## Using the App
Just open the app in any modern browser — **no installation or setup required**.
### Live Demo
Visit the deployed app at [https://neonwatty.github.io/bleep-that-shit/](https://neonwatty.github.io/bleep-that-shit/) or run it locally.
---
## App Features
### Main Workflow (`/bleep`)
- Upload audio or video files
- Select language and Whisper model
- Transcribe to generate word-level timestamps
- Enter words to censor with multiple matching modes (exact, partial, fuzzy)
- Choose from different bleep sounds
- Preview and download the censored result### Model Comparison (`/sampler`)
- Compare transcription accuracy across different Whisper models
- Test processing speeds
- Find the best model for your needs---
## Running Locally
### Prerequisites
- Node.js 18+
- npm or yarn### Installation
1. Clone the repository:
```bash
git clone https://github.com/neonwatty/bleep-that-shit.git
cd bleep-that-shit
```2. Install dependencies:
```bash
npm install
```3. Start the development server:
```bash
npm run dev
```4. Open [http://localhost:3000](http://localhost:3000) in your browser
---
## Available Scripts
```bash
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm test # Run Playwright tests
npm run test:ui # Run tests with UI
```---
## Browser Requirements
- Modern browser with WebAssembly support
- Web Workers support
- Sufficient RAM for model loading (varies by model size)---
## Available Whisper Models
- **Tiny** (39 MB): Fastest, good for quick processing
- **Base** (74 MB): Better accuracy, still fast
- **Small** (242 MB): Best accuracy, slower processingBoth English-only and multilingual variants are available.
---
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
---
## License
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
---
## Acknowledgments
- [Transformers.js](https://github.com/xenova/transformers.js) for WebAssembly Whisper models
- [FFmpeg.wasm](https://github.com/ffmpegwasm/ffmpeg.wasm) for media processing
- [OpenAI Whisper](https://github.com/openai/whisper) for the original models---
## Support
For issues and questions, please open an issue on [GitHub](https://github.com/neonwatty/bleep-that-shit/issues).