Practical overview
When it fits
Use it when an application needs a self-hosted, real-time speech-recognition backend and you can provide Kaldi models, compiled Kaldi/GStreamer components, and the listed Python dependencies.
Who it is for
- Developers building voice applications that need a live speech-to-text backend.
- Teams operating self-hosted Kaldi speech-recognition pipelines.
- Operators who need to distribute concurrent recognition sessions across worker machines.
Documented uses
- Stream live audio and receive partial recognition hypotheses.
- Split long speech into shorter segments based on silences.
- Route concurrent recognition sessions to separate workers.
- Rescore recognition lattices with a large language model or post-process raw results with an external program.
Requirements & limits
The project is published in a public GitHub repository under the BSD-2-Clause license.
- The master delegates recognition; it does not perform recognition itself, and each concurrent session requires a worker.
- Recognition requires acoustic and language models for the intended language; the README describes included English and Estonian models as working but not very accurate.
- The documented dependencies specify Python 2.7, Tornado 4 and ws4py 0.3.0–0.3.2; ws4py 0.3.5 is specifically flagged as problematic.
- Supported audio codecs are those supported by GStreamer.
- The README describes both GMM and online DNN model support, plus large-language-model rescoring and persistent acoustic-model adaptation state.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Prepare Kaldi GStreamer server prerequisites
Set up the documented Python, Kaldi, GStreamer-plugin, and model prerequisites for the server.
Before you start
- Python 2.7
- Tornado 4, ws4py 0.3.0–0.3.2, YAML, JSON, and Python 2.x gobject-introspection bindings (python-gi on Debian and Ubuntu)
- A compiled Kaldi installation with online extensions and the Kaldi GStreamer plugin
- GMM-HMM acoustic and n-gram language models for the target language
Steps
Install the listed Python dependencies; use ws4py 0.3.2 rather than 0.3.5.
Download and compile Kaldi.
Compile Kaldi's online extensions with the command below, and compile its GStreamer plugin following the README in
src/gst-plugin.make extProvide the required acoustic and language models; the repository identifies English and Estonian examples in
test/models/.
Expected outcome
The documented prerequisites and language models are prepared for proceeding to the server-running instructions.
Guide limitations
- The server is specified for Python 2.7 and Tornado 4; ws4py 0.3.5 is noted as not working correctly.
- Model availability and accuracy vary; the English and Estonian example models are described as working but not very accurate.
- This recipe covers prerequisites only, not a verified installation or successful server run.
Start the master server on localhost
Start the documented master-server process listening on localhost port 8888.
Before you start
- The server prerequisites and language models are prepared.
- The repository is available with
kaldigstserver/master_server.py.
Steps
Run the command below.
python kaldigstserver/master_server.py --port=8888Proceed to the repository's worker-running instructions; the master delegates recognition requests to workers, and it specifies one worker per recognition session.
Expected outcome
The command starts the master server on localhost:8888; workers are the documented next stage for handling recognition requests.
Guide limitations
- The master does not perform speech recognition itself.
- The source does not provide the worker start command in the available running instructions.
- This guidance does not establish that the server was run or tested.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 15 October 2026
- Original website title
- alumae/kaldi-gstreamer-server · Official homepage title · retained in its source language

