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
- OpenAI-compatible TTS — works with OpenAI, Gemini proxies, LocalAI, Kokoro, and any
/v1/audio/speechserver - TTS-only model list — filters
/v1/modelsto 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
- Open the latest GitHub Release
- Download the build for your OS (
.dmg/.AppImage/.deb/ Windows installer) - Verify the SHA256 (see Checksums)
- Install and run Echoes
npm install
npm run tauri devRequirements: Node.js 20+, Rust stable, platform webview deps (WebView2 on Windows, WebKitGTK on Linux).
npm install
npm run tauri buildArtifacts land under:
src-tauri/target/release/bundle/
| Platform | Typical outputs |
|---|---|
| Windows | nsis/, msi/ |
| macOS | dmg/, macos/ |
| Linux | appimage/, deb/, rpm/ |
After a successful build:
# macOS / Linux
npm run checksum
# Windows (PowerShell)
npm run checksum:winThis writes files into checksums/:
SHA256SUMS.txt— all hashes in one file<artifact>.sha256— per-file hashes
# 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| 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.25 – 4.0 |
Click Auto-detect after setting Base URL + API key to load TTS models and voice maps.
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.
echoes/
├── src/ # React UI
├── src-tauri/ # Rust / Tauri backend
├── docs/media/ # Screenshot + demo GIF
├── scripts/ # SHA256 helpers
└── .github/workflows/ # macOS & Linux builds
- Tauri 2 + Rust (reqwest TTS client)
- React 19 + TypeScript + Vite
- OpenAI-compatible
POST /v1/audio/speech

