OpenVoiceOS STT HTTP Server
Lightweight HTTP microservice for any OVOS speech‑to‑text plugin, with optional Gradio UI.
The OpenVoiceOS STT HTTP Server wraps your chosen OVOS STT plugin inside a FastAPI service (complete with automatic language detection), making it easy to deploy on your local machine, in Docker, or behind a load balancer.
Usage Guide
Install the server
pip install ovos-stt-http-server
Configure your STT plugin
In your mycroft.conf (or equivalent) under the stt section:  
{
 "stt": {
   "module": "ovos-stt-plugin-xxx",
   "ovos-stt-plugin-xxx": {
     "model": "xxx"
   }
 }
}
Launch the server
ovos-stt-server \
 --engine ovos-stt-plugin-xxx \
 --host 0.0.0.0 \
 --port 9666
Verify it’s running
Visit http://localhost:9666/status in your browser or run:
curl http://localhost:9666/status
Command‑Line Options
$ ovos-stt-server --help
usage: ovos-stt-server [-h] --engine ENGINE [--lang-engine LANG_ENGINE] [--port PORT] [--host HOST] [--lang LANG] [--multi] [--gradio] [--cache] [--title TITLE]
                       [--description DESCRIPTION] [--info INFO] [--badge BADGE]
options:
  -h, --help            show this help message and exit
  --engine ENGINE       stt plugin to be used
  --lang-engine LANG_ENGINE
                        audio language detection plugin to be used
  --port PORT           port number
  --host HOST           host
  --lang LANG           default language supported by plugin
  --multi               Load a plugin instance per language (force lang support)
  --gradio              Enable Gradio Web UI
  --cache               Cache models for Gradio demo
  --title TITLE         Title for webUI
  --description DESCRIPTION
                        Text description to print in UI
  --info INFO           Text to display at end of UI
  --badge BADGE         URL of visitor badge
Technical Explanation
- FastAPI core
The server spins up a FastAPI app exposing REST endpoints. - Plugin wrapping
Any OVOS STT plugin (Deepgram, Whisper, etc.) is loaded dynamically via entry points. - Language detection
If you enable--lang-engine, incoming audio is passed through the detector, falling back to--langor plugin defaults. - Scalability
Stateless design lets you run multiple instances behind a load balancer or in Kubernetes. - Optional Gradio UI
Launches a simple web demo for testing without writing any front‑end code. 
HTTP API Endpoints
| Endpoint | Method | Description | 
|---|---|---|
/status | 
GET | Returns plugin names, versions, and Gradio status. | 
/stt | 
POST | Transcribe audio → plain‑text transcript. | 
/lang_detect | 
POST | Detect language → JSON { "lang": "en", "conf": 0.83 }. | 
/docs | 
GET | Interactive FastAPI OpenAPI docs. | 
Companion Plugin
To point a OpenVoiceOS (or compatible project) to a STT server you can use the companion plugin
Install
pip install ovos-stt-plugin-server
Configure
  "stt": {
    "module": "ovos-stt-plugin-server",
    "ovos-stt-plugin-server": {
      "urls": ["https://0.0.0.0:8080/stt"],
      "verify_ssl": true
    },
 }
for audio language detection
  "listener": {
    "audio_transformers": {
        "ovos-audio-lang-server-plugin": {
          "urls": ["https://0.0.0.0:8080/lang_detect"],
          "verify_ssl": true
        }
    }
  }
Docker Deployment
Create a Dockerfile
FROM python:3.7-slim
RUN pip install ovos-stt-http-server==0.0.1
RUN pip install {YOUR_STT_PLUGIN}
ENTRYPOINT ["ovos-stt-http-server", "--engine", "{YOUR_STT_PLUGIN}"]
Build & Run
docker build -t my-ovos-stt .
docker run -p 8080:9666 my-ovos-stt
Pre-built containers are also available via the ovos-docker-stt repository.
Tips & Caveats
- Audio Formats: Ensure client sends PCM‑compatible formats (
.wav,.mp3recommended). - Securing Endpoints: Consider putting a reverse proxy (NGINX, Traefik) in front for SSL or API keys.
 - Plugin Dependencies: Some STT engines require heavy native libraries—bake them into your Docker image.
 
Links & References
- OVOS STT HTTP Server GitHub: https://github.com/OpenVoiceOS/ovos-stt-http-server
 - Companion Plugin: https://github.com/OpenVoiceOS/ovos-stt-server-plugin
 - Docker Images: https://github.com/OpenVoiceOS/ovos-docker-stt
 - OVOS Plugin Manager: https://github.com/OpenVoiceOS/ovos-plugin-manager