Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎙️ Unword | AI-Powered Media Surgery & Summary Engine

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.

🚀 Key Features

  • 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.

🏗 Technical Stack

  • 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.

🛠 Getting Started

1. Prerequisites

  • Python 3.8+
  • FFmpeg installed on your system.
  • Ollama installed and running.

2. Setup Ollama

Download and run the required model (example, you can use any):

ollama pull gemma3
ollama serve

3. Installation

Clone the repository and install dependencies:

git clone https://github.com/Rostezkiy/Unword.git
cd Unword
pip install -r req.txt

Change model size MODEL_SIZE = "models/medium" (Using by default https://huggingface.co/Systran/faster-whisper-medium)

4. Running the App

python app.py

Open http://localhost:5000 in your browser.


📖 Usage Guide

Word Filtering Mode

  1. Upload your media file.
  2. Enter a list of words to target.
  3. Choose an action: Delete (cut), Mute (censor), or Isolate (keep only these words).
  4. Results are available in the "Results" tab.

Summarization Mode

  1. Upload one or multiple files.
  2. Select the Summarization mode (4th option).
  3. The system will transcribe the content, split it into optimized chunks, and generate a concise summary using Gemma 3.
  4. Download the summary as a .txt file.

🧪 Architectural Highlights

  • 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.

📂 Project Structure

  • 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


About

Unword is a high-precision media processing tool that uses local AI to surgically modify audio/video content based on speech recognition.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages