diff --git a/.github/assets/social-preview.png b/.github/assets/social-preview.png new file mode 100644 index 00000000..15799716 Binary files /dev/null and b/.github/assets/social-preview.png differ diff --git a/CHANGELOG.md b/CHANGELOG.md index fb341055..6c3168f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ The format is loosely based on [Keep a Changelog](https://keepachangelog.com/). Versions track the desktop app (`tauri.conf.json` + `frontend/src-tauri/Cargo.toml`). The bundled TTS model package (`pyproject.toml`) is versioned independently. +## [0.2.7] — Unreleased + +### Added +- **Frameless dictation widget.** Global dictation upgraded from an in-app FAB to a true OS-level floating widget that hovers over any application. Transparent, decorations-free, always-on-top secondary Tauri window activated by `⌘+⇧+Space`. Auto-hides 2.5 s after a successful paste. +- **Standalone `CaptureWidget` component.** Refactored `CaptureButton` into `CaptureWidget`, running on an isolated route (`/?window=widget`). +- **Social preview image.** Added `social-preview.png` for GitHub SEO. + +### Changed +- **README overhaul.** Compact 3-column feature grid, reorganized Quickstart (one-command install, Docker, Desktop App tips), updated comparison table, roadmap, and footer CTA. + +--- + ## [0.2.6] — Unreleased ### License diff --git a/README.md b/README.md index 45292856..1af8436d 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@
+
The open-source ElevenLabs alternative.
-Voice cloning · Voice design · Video dubbing — 646 languages, runs 100% locally, forever free.
+Real-time dictation, zero-shot voice cloning, and cinematic video dubbing — all on your desktop.
Open-source, no API keys, fully local. 646 languages.
- Download · - Features · Quickstart · - Why Open Source? · - Roadmap + Features · + Why OmniVoice Studio? · + TTS Engines · + Contributing · + Discord
+
-
+ 🎙️ Voice Cloning+3-second clip → mirror any voice. |
+
+ 🎨 Voice Design+Gender, age, accent, pitch, speed, |
+
+ 🎬 Video Dubbing+YouTube URL or file → transcribe → |
+
+ ⌨️ Dictation Widget+
|
+
+ 🔊 Vocal Isolation+Demucs-powered. Splits speech |
+
+ 👥 Speaker Diarization+Pyannote + WhisperX. |
+
+ 📦 Batch Queue+Drop 50 videos, walk away. |
+
+ 🤖 MCP Server+Use OmniVoice from Claude, |
+
+ 🛡️ AI Watermark+AudioSeal (Meta). Invisible, |
+
+ 🔐 100% Local+No keys, no cloud, no accounts. |
+
+ ⚡ GPU Auto-Detect+CUDA · MPS · ROCm · CPU. |
+
+ 🧩 Extensible+Subclass |
+
|
@@ -83,7 +229,7 @@
---
-## Why Open Source?
+## Why OmniVoice Studio?
ElevenLabs charges **$5–$330/mo** and processes your audio on their servers. OmniVoice Studio runs **on your hardware, with no usage limits.**
@@ -100,152 +246,7 @@ ElevenLabs charges **$5–$330/mo** and processes your audio on their servers. O
| **Desktop App** | ❌ | ✅ macOS · Windows · Linux |
| **Customizable** | ❌ Closed | ✅ Fork it, extend it, ship it |
-Built on the [OmniVoice](https://github.com/k2-fsa/OmniVoice) 600-language zero-shot diffusion TTS model. Upload a video, get broadcast-quality dubs in any language with the original speaker's voice preserved.
-
-## Features
-
-### Core Pipeline
-- **Video Dubbing** — Transcribe → translate → synthesize → mux back to MP4. One-click end-to-end.
-- **Vocal Isolation** — Demucs-powered speech/music separation. Background audio preserved automatically.
-- **Voice Cloning** — Clone any voice from a 3-second clip. Zero-shot, 600+ languages.
-- **Multi-Speaker Diarization** — Pyannote + WhisperX fusion auto-identifies speakers and assigns unique voice profiles.
-
-### Studio Tools
-- **Voice Capture** — Press `⌘+⇧+Space` **from any app** to dictate. Global system-wide hotkey records, transcribes, and auto-pastes into the active text field. Live partial results stream via WebSocket while you speak.
-- **Speaker Casting** — Visual speaker-to-voice assignment grid. Auto-cast from video clones or assign saved profiles.
-- **Voice Preview** — Floating widget for instant 8-step TTS testing. Try voices without leaving the workspace.
-- **Real-time Dub Preview** — Edit a segment's text, preview the audio instantly without full re-render.
-- **Multi-Language Batch** — Select multiple target languages, dub to all in one pass.
-- **Batch Queue** — Drag-and-drop bulk video processing. Full pipeline: extract → transcribe → translate → generate → mix → export. Real-time progress bars per job.
-- **Voice Library** — Browse, favorite, tag, and convert gallery clips into permanent voice profiles.
-- **A/B Comparison** — Side-by-side voice audition for casting decisions.
-
-### Production Export
-- **Selective Track Export** — Choose which language tracks to include in the final MP4.
-- **Subtitle Export** — SRT and VTT generation alongside dubbed video.
-- **Stem Export** — Separate vocals and background audio as individual files.
-- **Per-Segment Mixing** — 0–200% gain control per segment for broadcast-quality balancing.
-
-### Technical
-- **Cross-Platform GPU** — Auto-detects CUDA, Apple Silicon (MPS), ROCm, or CPU. Includes automatic cuDNN 8/9 compatibility handling.
-- **VRAM-Aware** — Automatically offloads TTS to CPU during transcription on ≤8 GB GPUs. Zero config.
-- **Streaming ASR** — WebSocket-based speech-to-text (`/ws/transcribe`) delivers live partial results during recording. 2s buffer interval, configurable.
-- **Auto-Paste** — Dictated text is automatically pasted into the active app via system keyboard simulation (macOS Accessibility / Windows SendInput).
-- **Live Telemetry** — Real-time CPU/RAM/VRAM stats with model warm-up indicator.
-- **Keyboard-First** — `⌘+Enter` generate, `⌘+S` save, `⌘+Z`/`⌘+⇧+Z` undo/redo.
-
-### AI Provenance
-- **Invisible Watermark** — AudioSeal-powered (Meta) neural watermark embedded in every generated audio. Imperceptible, survives compression/editing.
-- **Detection API** — Upload any audio to `/watermark/detect` to verify OmniVoice origin with confidence score.
-- **Video Branding** — Optional logo overlay on exported MP4s (5s fade-out, bottom-right).
-- **Configurable** — Toggle invisible/visible watermarks independently in Settings → Privacy.
-
-### MCP Server (AI Agent Integration)
-- **Model Context Protocol** — Expose OmniVoice as an AI agent tool for Claude, Cursor, and any MCP-compatible client.
-- **5 Tools** — `generate_speech`, `list_voices`, `list_personalities`, `list_languages`, `check_health`.
-- **stdio + SSE** — Works locally (Claude Desktop) or remotely (networked agents).
-- **Zero config** — Drop `mcp.json` into your client config and go. See [`mcp.json`](docs/mcp.json).
-
-### Audio Effects Chain
-- **6 presets** — Broadcast 📻, Cinematic 🎬, Podcast 🎙️, Warm ☀️, Bright ✨, Raw 🔇.
-- **Pedalboard-powered** — Spotify's production-grade DSP (EQ, compressor, reverb, noise gate, limiter).
-- **API-driven** — `GET /tools/effects` returns presets; custom chains via `apply_effects_chain()`.
-
-### Plugin SDK (Third-Party TTS Engines)
-- **Abstract interface** — Subclass `TTSPlugin` to add any TTS engine in ~50 lines.
-- **Built-in plugins** — ElevenLabs (cloud) and Bark (local) ship out of the box.
-- **Auto-discovery** — Drop a `.py` file in `backend/plugins/`, it registers automatically.
-- **API** — `GET /tools/plugins` lists all engines and their availability status.
-
-### GPU Safety
-- **Crash sandbox** — GPU-intensive ops can run in subprocess isolation. A CUDA OOM or driver crash kills the worker, not the server.
-- **6 color themes** — Gruvbox (default), Midnight Blue, Nord, Solarized, Rosé Pine, Catppuccin Mocha.
-
----
-
-## Quickstart
-
-### Docker (recommended)
-
-```bash
-git clone https://github.com/debpalash/OmniVoice-Studio.git
-cd OmniVoice-Studio
-
-# CPU mode
-docker compose up --build -d
-
-# Or with NVIDIA GPU
-docker compose --profile gpu up --build -d
-```
-
-Open [http://localhost:3900](http://localhost:3900) once the health check passes. First run downloads ~4 GB of model weights — progress is shown in `docker compose logs -f`.
-
-> **Network access:** the container binds to `127.0.0.1` only. To reach OmniVoice from another machine on your LAN, change the port mapping in `docker-compose.yml` to `"0.0.0.0:3900:3900"`. OmniVoice ships no built-in authentication — when exposing it beyond your machine, put it behind a reverse proxy with auth (Caddy `basic_auth`, nginx + htpasswd, Tailscale, etc.).
-
-### Local Development
-
-**Prerequisites:** [ffmpeg](https://ffmpeg.org/), [Bun](https://bun.sh/), [uv](https://docs.astral.sh/uv/)
-
-```bash
-git clone https://github.com/debpalash/OmniVoice-Studio.git
-cd OmniVoice-Studio
-bun install
-bun run dev
-```
-
-This boots both services:
-
-| Service | URL | Stack |
-|---------|-----|-------|
-| **Backend** | `localhost:3900` | FastAPI · 97 endpoints · WhisperX · Demucs · OmniVoice |
-| **Frontend** | `localhost:3901` | React · Vite · Waveform timeline · Glassmorphism UI |
-
-> [!NOTE]
-> First run downloads model weights (~2.4 GB). This works out of the box — no account needed. For faster downloads, optionally set `HF_TOKEN=hf_...` in your environment ([get a free token here](https://huggingface.co/settings/tokens)).
->
-> **Having issues?** Join our [Discord](https://discord.gg/aRRdVj3de7) for setup help and troubleshooting.
-
-### Desktop App
-
-Pre-built installers (~6–8 MB) are available on the [**Releases**](https://github.com/debpalash/OmniVoice-Studio/releases/latest) page. On first launch, the app bootstraps a Python environment and downloads model weights automatically — the splash screen shows progress.
-
-To build from source instead:
-
-```bash
-bun run desktop # Launches Tauri native app (macOS / Windows / Linux)
-```
-
-
-
-
-macOS — "app is damaged and can't be opened"-- -macOS quarantines apps downloaded outside the App Store. After dragging to `/Applications`: - -```bash -xattr -cr /Applications/OmniVoice\ Studio.app -``` - -Open normally after. One-time fix. -
-
-
-Windows — first launch takes 5–10 minutes-- -The app bootstraps a Python virtual environment, installs dependencies, and downloads ffmpeg on first run. The splash screen shows each step. Subsequent launches start in seconds. -
-
+OmniVoice Studio gives you professional-grade AI tools without the subscription or the cloud.
---
@@ -317,18 +318,15 @@ OmniVoice ships a multi-engine TTS backend. The default engine (OmniVoice) is al
| **State Management** | Zustand store migration — `uiSlice`, `pillSlice`, `dubSlice`, `generateSlice`, `prefsSlice`, `glossarySlice` |
| **Desktop** | Cross-platform Tauri installers (macOS DMG, Windows MSI, Linux deb/AppImage), auto-update infrastructure |
| **Windows Hardening** | Cross-platform log paths, Triton workaround, HF symlink bypass, 300s health check timeout |
-| **Dictation** | Global system-wide hotkey (`⌘+⇧+Space`), streaming ASR via WebSocket, auto-paste into active app |
+| **Dictation** | Global system-wide hotkey (`⌘+⇧+Space`), frameless floating widget, streaming ASR via WebSocket, auto-paste |
| **Batch Pipeline** | Full batch TTS: extract → transcribe → translate → generate → mix → export, with live progress tracking |
-### 🔜 Roadmap — completed ✅
+### 🔜 Up Next
-**All planned features have been shipped.**
-
-- ~~Onboarding sample clip~~ · ~~Docker DX~~ · ~~Auto-updater~~ · ~~Deferred disk writes~~
-- ~~MCP server~~ · ~~Voice personalities~~ · ~~Audio effects chain~~ · ~~i18n framework~~
-- ~~Global hotkey dictation~~ · ~~Real-time dub preview~~ · ~~Speaker casting view~~
-- ~~Theme system~~ · ~~Plugin SDK~~ · ~~GPU crash sandbox~~ · ~~Waveform v2~~
-- ~~Batched TTS~~ · ~~Cold start optimization~~ · ~~Audiobook editor~~ · ~~Context-aware pipeline~~
+- 🎬 **Lip-sync v2** — visual speech timing with wav2lip
+- 📖 **Audiobook Editor** — chapter-aware long-form narration
+- 🌐 **Hosted Demo** — try OmniVoice without installing anything
+- 🔌 **Plugin Marketplace** — community-contributed TTS engines and effects
---
@@ -412,7 +410,12 @@ OmniVoice Studio is built on the shoulders of exceptional open-source work:
Linux — AppImage needs FUSE-- -If FUSE isn't available, use the `.deb` package or extract-and-run: - -```bash -chmod +x OmniVoice.Studio_*.AppImage -./OmniVoice.Studio_*.AppImage --appimage-extract-and-run -``` - |