Cover image for ASR Service

ASR Service

2026

AI Tools
Speech Recognition
Realtime AI
API Integration
Web Tool
Conversational AI
View Live Demo
About the Project

What it is. ASR Service is a self-hosted speech-to-text platform I built around one idea: keep the client contract dead simple while the backend routes each request to whichever recognition model fits the job. It ships with a dark, focused web console — a usage dashboard, an API-key manager, a model registry, a Model Manager, a live playground, and docs — sitting on top of an audio-routing core that speaks WebRTC, WebSocket, and plain HTTP, with an ElevenLabs-compatible STT surface so existing clients drop in unchanged.

What it does. I register multiple ASR engines side by side and the service load-balances across them by name. In the current deployment that's kyutai/stt-2.6b-en (a streaming moshi-stt model), Qwen/Qwen3-ASR-1.7B, and openai/whisper-large-v3-turbo — each running as its own container on a dedicated port, each reporting Connected/Healthy status, concurrency limits, and its supported language set (Qwen and Whisper cover 30-plus languages between them). The dashboard tracks total requests, minutes of audio transcribed, average and percentile latency, active model count, error rate, and a per-model performance table. The playground lets me record from a mic or drag in a file, pick a model, watch the transcript stream back, and save clips to a reusable test suite.

The interesting engineering. The piece I'm proudest of is the Model Manager: instead of hand-writing a wrapper for every new model, I point it at a Hugging Face or GitHub link and it analyzes the model, builds a compatible ASR Docker container, deploys it, and auto-registers it in the console — so onboarding a new engine is a URL, not a coding task. For live transcription I fall back to a lightweight Whisper model to stream interim results while a heavier main model finishes, and the input stack is built for VAD gating plus pluggable stages like speaker identification/separation and noise cancellation. Health checks, per-model endpoints, and concurrency controls keep the fleet observable and safe to route against.

Stack: Python ASR core, Docker-per-model containers, WebRTC/WebSocket/HTTP transports, a React admin console, and an ElevenLabs-compatible API. Tracked in Orchestrator as ASR Service (repo yolanother/asrservice).

Links: asr.doubtech.com

Image Gallery

ASR Service gallery image 1
ASR Service gallery image 2
ASR Service gallery image 3