OpenViSTAI · Agents · Blockchain · Crypto
Menu
Audio & Voice AI

Kaldi Gstreamer Server

Kaldi Gstreamer Server is a Python server that uses Kaldi and GStreamer to recognize speech in real time. It accepts full-duplex audio through WebSockets and sends back partial hypotheses, with a master component assigning requests to recognition workers.

Independent OpenViST project profile, based on linked sources.

Kaldi Gstreamer Server — OpenViST project profile in Audio & Voice AI.
OpenViST project illustration. See the linked sources for product details.
Understand the project

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.
Before you choose

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.

Source-based practical guide

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

  1. Install the listed Python dependencies; use ws4py 0.3.2 rather than 0.3.5.

  2. Download and compile Kaldi.

  3. Compile Kaldi's online extensions with the command below, and compile its GStreamer plugin following the README in src/gst-plugin.

    Documented command
    make ext
  4. Provide 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.
Source-based practical guide

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

  1. Run the command below.

    Documented command
    python kaldigstserver/master_server.py --port=8888
  2. Proceed 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.
Evidence and transparency

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