Unword is a high-precision media processing tool that uses local AI to surgically modify audio/video content based on speech recognition. Whether you need to censor specific language, isolate keywords, or generate deep summaries of long recordings, Unword handles it locally and privately.
- Linguistic Filtering: Surgically remove, mute (bleep), or isolate specific words/phrases using high-accuracy transcription.
- AI-Driven Summarization: Generate comprehensive summaries and insights from media files using local LLMs (Gemma 3 via Ollama).
- Batch Processing: Support for multi-file uploads. Perfect for summarizing entire meetings or podcast seasons in one go.
- Multi-Format Export: Export processed media, industrial-standard subtitles (SRT), full transcripts, and AI-generated summaries.
- Privacy First: All processing (Transcription and LLM inference) happens locally on your machine.
- Speech-to-Text:
faster-whisper(optimized OpenAI Whisper implementation). - LLM Orchestration: Ollama (Default model:
gemma3). - Backend: Python / Flask.
- Processing Engine: FFmpeg (via Python logic) for precise media manipulation.
- UI: Modern Vanilla JS / Tailwind-style CSS.
- Python 3.8+
- FFmpeg installed on your system.
- Ollama installed and running.
Download and run the required model (example, you can use any):
ollama pull gemma3
ollama serveClone the repository and install dependencies:
git clone https://github.com/Rostezkiy/Unword.git
cd Unword
pip install -r req.txtChange model size MODEL_SIZE = "models/medium" (Using by default https://huggingface.co/Systran/faster-whisper-medium)
python app.pyOpen http://localhost:5000 in your browser.
- Upload your media file.
- Enter a list of words to target.
- Choose an action: Delete (cut), Mute (censor), or Isolate (keep only these words).
- Results are available in the "Results" tab.
- Upload one or multiple files.
- Select the Summarization mode (4th option).
- The system will transcribe the content, split it into optimized chunks, and generate a concise summary using Gemma 3.
- Download the summary as a
.txtfile.
- Transcription Caching: To save time, transcripts are cached locally. Re-processing the same file with different filters happens almost instantly.
- Context Window Management: Large transcripts are automatically chunked before being sent to the LLM to ensure accuracy and prevent context overflow.
- Batch Logic: When multiple files are uploaded for summarization, the engine merges the linguistic context to provide a unified overview of the entire dataset.
app.py— Core Flask server and AI orchestration logic.cache_transcripts/— Local storage for processed speech data.processed/— Output directory for filtered media and AI summaries.temp_chunks/— Workspace for intermediate media processing.
Unword — Precision media intelligence at your fingertips. 🚀
Developed by R057