finds.dev← search

// the find

speaches-ai/speaches

★ 3,423 · Python · MIT · updated Jun 2026

Speaches is a self-hosted OpenAI-compatible API server for speech-to-text (faster-whisper), text-to-speech (Kokoro, Piper), and realtime audio. The pitch is straightforward: drop it behind any OpenAI SDK client and get local STT/TTS without changing your code. It's aimed at developers who want to run voice features on their own hardware without sending audio to OpenAI.

The OpenAI API compatibility is the main practical win — existing tooling like open-webui just works without any adapter code. Dynamic model loading is well thought out: models load on first request and unload after inactivity, which matters a lot when you're running multiple models on a single GPU. The observability stack (Grafana, Loki, Tempo, Prometheus) ships as Docker Compose configs rather than being an afterthought, which is unusual and genuinely useful for self-hosted deployments. Kokoro TTS is a legitimately strong choice — it currently tops the TTS Arena leaderboard, so you're not stuck with Piper's more robotic output.

Speaker diarization exists as a router file but the pyannote dependency is a licensing headache — pyannote models require accepting HuggingFace terms per model, which is easy to miss and will silently fail. The realtime API implementation is complex (10+ files under src/speaches/realtime/) and there's no clarity on which parts of OpenAI's realtime spec are actually implemented versus stub; the TODO in the README for streaming transcription demos is a minor tell. No authentication beyond a basic API key check — if you expose this on a network, there's nothing stopping model abuse or resource exhaustion. Python packaging is via uv which is the right call, but the project still has multiple optional dependency groups (cuda, cpu variants) spread across compose files rather than consolidated pyproject extras, making non-Docker installation awkward to reason about.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →