Skip to content

Repository files navigation

Echoes

Echoes

OpenAI-compatible desktop text-to-speech
Built with Rust + Tauri 2 — minimal UI, full control, auto-detect for models & voices.

Features · Screenshots · Install · Build · SHA256 · Config

Releases Tauri Rust React License


Screenshots

Echoes main window

Demo

Echoes demo


Features

  • OpenAI-compatible TTS — works with OpenAI, Gemini proxies, LocalAI, Kokoro, and any /v1/audio/speech server
  • TTS-only model list — filters /v1/models to speech models
  • Per-model voices — each model keeps its own voice catalog (auto-detected when possible)
  • Gender labels — voices shown as kore · Female, puck · Male, …
  • Full settings — base URL, API key, model, voice, speed, format, instructions
  • Play & save — instant playback and export to disk
  • Persistent config — settings stored in the app config directory

Install

From releases

  1. Open the latest GitHub Release
  2. Download the build for your OS (.dmg / .AppImage / .deb / Windows installer)
  3. Verify the SHA256 (see Checksums)
  4. Install and run Echoes

From source (dev)

npm install
npm run tauri dev

Requirements: Node.js 20+, Rust stable, platform webview deps (WebView2 on Windows, WebKitGTK on Linux).


Build

Local release build

npm install
npm run tauri build

Artifacts land under:

src-tauri/target/release/bundle/
Platform Typical outputs
Windows nsis/, msi/
macOS dmg/, macos/
Linux appimage/, deb/, rpm/

Generate SHA256 checksums

After a successful build:

# macOS / Linux
npm run checksum

# Windows (PowerShell)
npm run checksum:win

This writes files into checksums/:

  • SHA256SUMS.txt — all hashes in one file
  • <artifact>.sha256 — per-file hashes

Verify a download

# Linux / macOS
sha256sum -c checksums/SHA256SUMS.txt
# or
shasum -a 256 -c checksums/SHA256SUMS.txt

# Windows PowerShell
Get-FileHash .\Echoes_0.1.0_x64-setup.exe -Algorithm SHA256

Configuration

Setting Example
Base URL https://api.openai.com/v1 or http://127.0.0.1:8080/v1
API Key Provider secret
Model tts-1, gpt-4o-mini-tts, gemini-*-tts, …
Voice Filtered per model (alloy, kore, puck, …)
Format mp3, wav, opus, aac, flac, pcm
Speed 0.254.0

Click Auto-detect after setting Base URL + API key to load TTS models and voice maps.


CI (GitHub Actions)

Workflows under .github/workflows/:

Workflow Platforms
build-macos.yml macOS Apple Silicon + Intel
build-linux.yml Ubuntu x64 (AppImage / deb)

Triggers: push to main / release, version tags v*, and manual workflow_dispatch.

On tags, drafts a GitHub Release and uploads artifacts + SHA256 sums.


Project structure

echoes/
├── src/                 # React UI
├── src-tauri/           # Rust / Tauri backend
├── docs/media/          # Screenshot + demo GIF
├── scripts/             # SHA256 helpers
└── .github/workflows/   # macOS & Linux builds

Tech stack

  • Tauri 2 + Rust (reqwest TTS client)
  • React 19 + TypeScript + Vite
  • OpenAI-compatible POST /v1/audio/speech

License

MIT

About

OpenAI-compatible desktop text-to-speech tool.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages