Skip to content

ilyaizen/CopySpeak

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

98 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CopySpeak

Current Version: 0.1.10

A modern Windows desktop app that reads clipboard text aloud using AI Text-to-Speech engines. Trigger speech by quickly copying the same text twice in a row.

CopySpeak v0.1.8

Quick Start

bun install
bun run tauri dev

Features

Core

  • Multiple trigger modes: Double-copy (1.5s window), hotkey, or manual paste/play
  • 11 TTS engines:
    • Local CLI β€” Piper, Kokoro, Kitten, Chatterbox, or any CLI TTS tool via local subprocess
    • Edge TTS β€” Free Microsoft Edge Read Aloud backend (default)
    • OpenAI TTS β€” Cloud API with 9 voices
    • ElevenLabs TTS β€” Cloud API with voice library support
    • Cartesia TTS β€” Sonic 3.5 cloud API
    • Google TTS β€” Cloud API
    • Microsoft TTS β€” Azure Cognitive Services
    • HTTP TTS β€” Generic HTTP endpoint backend
  • HUD overlay β€” Floating heads-up display with real-time waveform visualization
  • History β€” Persistent TTS generation history with playback and batch management
  • Voice profiles β€” Create, edit, and switch between named voice profiles with engine, voice, speed, pitch, and effects settings
  • Audio effects β€” Walkie-talkie, 8-bit Game Boy, and more via OfflineAudioContext post-processing
  • LLM post-processing β€” Optional Groq/AI rewrite pass that turns copied text into concise, listener-friendly speech
  • Engines page β€” Dedicated per-engine setup with API key entry, local-engine installers, and test buttons

Settings

  • General: auto-start, debug mode, language
  • Playback: speed (0.25x–4x), pitch (0.5x–2x), volume
  • Effects: toggle and select audio effects
  • Triggers: double-copy window, hotkey configuration
  • Sanitization: granular markdown stripping toggles, text normalization
  • Advanced: LLM post-processing, engine catalog
  • Audio: output device selection, format conversion (MP3/OGG/FLAC)

System

  • System tray β€” Quick access controls
  • Auto-updater β€” Check and install updates from GitHub Releases
  • Control server β€” Local HTTP server for external integrations (Pi, Claude Code, curl)
  • Pi & Claude Code extensions β€” Speak AI assistant responses through CopySpeak
  • Audio save mode β€” Save TTS output to files
  • Dark/Light mode β€” Brutalist design with theme support

Tech Stack

Component Technology
Backend Rust (Tauri v2)
Frontend Svelte 5, TypeScript, Vite
Package Manager Bun
Audio rodio
UI shadcn-svelte, Tailwind CSS v4

Project Structure

src/                     # Svelte 5 frontend
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ components/      # UI components
β”‚   β”‚   β”œβ”€β”€ effects-page.svelte
β”‚   β”‚   β”œβ”€β”€ engine/      # Engine settings
β”‚   β”‚   β”œβ”€β”€ history/     # History components
β”‚   β”‚   β”œβ”€β”€ hud/         # HUD overlay
β”‚   β”‚   β”œβ”€β”€ landing/     # Marketing landing page
β”‚   β”‚   β”œβ”€β”€ settings/    # Settings tabs
β”‚   β”‚   β”œβ”€β”€ ui/          # shadcn-svelte
β”‚   β”‚   β”œβ”€β”€ profiles-page.svelte
β”‚   β”‚   β”œβ”€β”€ play-page.svelte
β”‚   β”‚   └── ...
β”‚   └── utils.ts         # Utilities (cn, portal action)
└── routes/              # SvelteKit routes
    β”œβ”€β”€ settings/        # Settings page
    β”œβ”€β”€ effects/         # Effects page
    β”œβ”€β”€ engine/          # Engine page
    β”œβ”€β”€ history/         # History page
    β”œβ”€β”€ profiles/        # Profiles page
    β”œβ”€β”€ onboarding/      # First-run setup
    └── hud/             # HUD overlay

src-tauri/src/           # Rust backend
β”œβ”€β”€ main.rs              # Entry point, IPC registration
β”œβ”€β”€ config/              # Persistence modules
β”‚   └── tts.rs           # TTS config types & engine enum
β”œβ”€β”€ commands/            # IPC handlers
β”‚   └── tts/             # Synthesis commands
β”œβ”€β”€ tts/                 # TTS backend implementations
β”‚   β”œβ”€β”€ edge.rs          # Edge TTS
β”‚   β”œβ”€β”€ openai.rs        # OpenAI
β”‚   β”œβ”€β”€ elevenlabs.rs    # ElevenLabs
β”‚   β”œβ”€β”€ cartesia.rs      # Cartesia
β”‚   β”œβ”€β”€ google.rs        # Google
β”‚   β”œβ”€β”€ microsoft.rs     # Microsoft
β”‚   β”œβ”€β”€ http.rs          # Generic HTTP
β”‚   β”œβ”€β”€ cli.rs           # Local CLI engines
β”‚   └── catalog.rs       # Engine catalog types
β”œβ”€β”€ clipboard.rs         # Double-copy detection
β”œβ”€β”€ audio.rs             # Playback
β”œβ”€β”€ post_process.rs      # LLM post-processing
└── sanitize/            # Text normalization

Commands

# Development
bun run tauri dev           # Full app with hot-reload
bun run dev                 # Frontend only (port 5173)

# Build
bun run tauri build         # Production build

bun run check               # TypeScript/Svelte type checking
bun run check:watch         # Watch mode for type checking

# Testing (Frontend)
bun run test                # Run all frontend tests (vitest)
bun run test <name>         # Run single frontend test
bun run test:watch          # Watch mode

# Testing (Rust)
cd src-tauri && cargo test             # Run all Rust tests
cd src-tauri && cargo test <name>      # Run single Rust test
cd src-tauri && cargo check            # Type check Rust
cd src-tauri && cargo clippy           # Lint Rust

# Formatting
bun format                   # Biome + Prettier hybrid format

# Version Bumping
bun run bump                # Patch version bump (0.0.x)
bun run bump:minor          # Minor version bump (0.x.0)
bun run bump:major          # Major version bump (x.0.0)

Changelog

See CHANGELOG.md for recent changes.

Contributing

We welcome contributions! Please see our Contributing Guide for details on how to get started, code style guidelines, and how to submit pull requests.

License

MIT

About

πŸ”Š CopySpeak – A lightweight tool for quick AI text-to-speech

Topics

Resources

License

Contributing

Stars

8 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors