Rangkum is a powerful Android productivity tool designed to transcribe and summarize audio in real-time. It features a Floating Overlay that captures internal system audio (Zoom, Meet, Youtube, etc) and uses Offline Speech-to-Text combined with Generative AI to create concise summaries instantly.
It also supports YouTube Link Summarization via a custom Python backend.
| Home Screen | Floating Overlay | Summary | Tablet/Adaptive |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
- 🎧 Internal Audio Recording (Overlay):
- Floating bubble interface (Picture-in-Picture style).
- Captures system audio (Android 10+) directly without microphone noise.
- Resizible & Collapsible window.
- 🗣️ Multi-Language Offline STT:
- Dynamic Model Management: Support for 30+ languages (English, Chinese, Japanese, etc.).
- On-Demand Downloads: Download only the languages you need to keep the app size small.
- Smart Downloader: Features Resumable Downloads (handles network interruptions) and memory-efficient streaming using Ktor.
- Privacy-focused: All audio processing happens on-device using Vosk.
- 🧠 AI Summarization:
- Integrated with Google Gemini 2.5 Flash, Gemini 2.5 Flash Lite, Gemini 2.5 Pro (Paid).
- Streaming Response: Text appears word-by-word (typewriter effect) for zero-latency feel.
- Custom Markdown rendering for clean output.
- 📺 YouTube Summarizer:
- Paste any YouTube link to get a summary.
- Powered by a custom Python Backend (Flask + yt-dlp) hosted on Google Cloud Run.
- Auto-detects video language & handles cookies for anti-blocking.
- 💾 Smart History:
- Save chats locally using Room Database.
- Swipe-to-delete with Undo (Snackbar) capability.
- Search & Rename functionality.
- 🎨 Modern UI/UX:
- Material 3 Design with Dark/Light theme support.
- Adaptive Layout: Supports Foldables & Tablets using
NavigableListDetailPaneScaffold. - Interactive Chat: Edit prompts, retry generation, and copy text blocks.
- Language: Kotlin
- Architecture: Clean Architecture (MVVM + Repository Pattern)
- UI: Jetpack Compose, Material 3 Adaptive
- Dependency Injection: Koin
- Concurrency: Coroutines & Flow
- Network: Ktor Client (Backend API & Resumable File Downloader)
- Database: Room (SQLite)
- Local Storage: DataStore Preferences
- AI SDK: Firebase AI (Gemini)
- Audio: AudioRecord API, MediaProjection API
- STT: Vosk Android Library
- Language: Python 3.13.9
- Framework: Flask
- Tools:
yt-dlp(YouTube Downloader),gunicorn - Infrastructure: Google Cloud Run (Serverless)
- Storage: Google Cloud Storage (for cookie management)
The project follows strictly Clean Architecture principles to ensure scalability and testability.
com.achmadichzan.rangkum
├── data
│ └── # Implementation of Repositories, Data Sources (Room, Ktor, Gemini)
├── domain
│ └── # Business Logic (Use Cases, Repository Interfaces, Models)
├── presentation
│ └── # UI (Screens, ViewModels, Components, Service)
└── di
└── # Dependency Injection Modules
Key Highlights:
- OverlayService: Handles the complexity of
WindowManager,MediaProjection, and background audio processing. - ModelRepository: Implements a robust Resumable Download logic using HTTP
Rangeheaders to handle large zip files and prevent OOM (Out of Memory) errors during extraction. - AudioTranscriber: A dedicated class for managing the audio loop, Vosk inference, and thread synchronization (Mutex).
- Android Studio Otter or newer.
- Device running Android 10 (API 29) or higher (Required for internal audio capture).
- Firebase Project with AI enabled.
-
Clone the repository:
git clone [https://github.com/achmadichzan/Rangkum.git](https://github.com/achmadichzan/Rangkum.git)
-
Setup Firebase:
- Create a project in Firebase Console.
- Download
google-services.json. - Place it in the
app/directory.
-
Build & Run:
- Sync Gradle.
- Run on a physical device (Emulators often fail with Audio Capture).
The app requires sensitive permissions due to its nature:
RECORD_AUDIO: To capture voice/system sound.FOREGROUND_SERVICE_MEDIA_PROJECTION: To keep the overlay alive and capture audio.SYSTEM_ALERT_WINDOW: To draw the overlay over other apps.INTERNET: For Gemini AI and YouTube Backend.
Contributions are welcome! Please fork the repository and create a pull request for any bug fixes or feature additions.
Built by Achmad Ichzan & Gemini 3 Pro



