ovos-stt-http-server

August 1, 2026 · View on GitHub

A lightweight FastAPI server that exposes any OVOS STT plugin as an HTTP service.

Architecture

  • Framework: FastAPI with Uvicorn ASGI server.
  • Plugin loading: ovos-plugin-manager discovers and loads STT plugins by name. ModelContainer handles single-language mode; MultiModelContainer handles per-language model loading (both in ovos_stt_http_server/__init__.py).
  • CORS: Unconditional allow_origins=["*"], set in create_app() in ovos_stt_http_server/__init__.py.

Endpoints

MethodPathDescription
GET/statusReturns {"status": "ok", "plugin": ..., "lang_plugin": ...}
POST/sttRaw audio bytes in body → transcribed text (plain text response)
POST/lang_detectRaw audio bytes in body → {"lang": ..., "conf": ...}

/stt query parameters

ParameterDefaultDescription
langsystem lang or autoLanguage code or auto to trigger language detection
sample_rate16000Audio sample rate in Hz
sample_width2Sample width in bytes (2 = int16)

Usage

ovos-stt-server --engine ovos-stt-plugin-whisper --port 8080
ovos-stt-server --engine ovos-stt-plugin-whisper --lang-engine ovos-audio-transformer-plugin-fasterwhisper --multi

Audio Format

Input audio must be raw PCM: 16 kHz, mono, 16-bit signed integer (int16). Send bytes directly as the POST body. The vendor-compat routers also accept their vendors' own audio encodings. See audio-formats.md.

See also