AI/TLDR

ASRT

A self-hosted Chinese speech-recognition system you can train yourself, with HTTP and gRPC servers

Audio, Music & VoiceOpen source
Language
Python
License
GPL-3.0
$docker pull ailemondocker/asrt_service:1.3.0

Overview

ASRT is a deep-learning Chinese speech-recognition system built on TensorFlow/Keras. It is a complete pipeline rather than a single model: an acoustic stage turns audio into a Mandarin pinyin sequence, and a separate language stage turns that pinyin sequence into Chinese characters. The acoustic model is a deep convolutional network with CTC, and the project also draws on LSTM and attention components; the language model is a maximum-entropy hidden Markov model over a probabilistic graph.

Its unusual selling point among speech tools is that training is a first-class path, not an afterthought. The repository ships the training, evaluation and single-file prediction scripts, and its default configuration already wires up six public Mandarin corpora — Thchs30, ST-CMDS, Primewords, aishell-1, aidatatang200 and MagicData — so you can reproduce the model rather than only consume it. Several model variants (24, 25, 251 and 251bn) are selectable in code, input audio runs up to 16 seconds, and the project reports that its best model reaches roughly 85% pinyin accuracy on its test set.

For deployment, ASRT exposes the recognizer as a service over both HTTP and gRPC, with matching client scripts for a quick end-to-end check, and publishes a Docker image that runs CPU-only inference without any training setup. Pre-trained weights ship inside the release server bundles on the project's download page and in the GitHub Releases assets. The project is GPL-3.0 licensed and its documentation is primarily in Chinese.

What it does

  • Full Chinese ASR pipeline: a DCNN + CTC acoustic model producing pinyin, and a maximum-entropy HMM language model producing characters
  • Training, evaluation and single-file prediction scripts included, with six Mandarin corpora configured by default
  • Selectable model variants (24, 25, 251, 251bn) and support for up to 16 seconds of input audio
  • API servers over both HTTP and gRPC, each with a matching client script for verification
  • A published Docker image for CPU-only inference deployment
  • Pre-trained models distributed in the release server bundles and GitHub Releases assets

Getting started

ASRT can be run two ways: pull the Docker image for inference only, or clone the repository and set up datasets if you intend to train. Training needs an NVIDIA GPU with 11GB or more; inference does not.

Run the service with Docker

The fastest path. This runs inference only — no training — and exposes the HTTP and gRPC ports.

bashbash
docker pull ailemondocker/asrt_service:1.3.0
docker run --rm -it -p 20001:20001 -p 20002:20002 --name asrt-server -d ailemondocker/asrt_service:1.3.0

Clone the repository and prepare data

For training, clone the project, create a data directory, and unpack the downloaded corpora into it.

bashbash
git clone https://github.com/nl8590687/ASRT_SpeechRecognition.git
cd ASRT_SpeechRecognition
mkdir /data/speech_data
tar zxf <dataset-archive> -C /data/speech_data/
python download_default_datalist.py

Train and evaluate

Training needs Python 3.9+ and TensorFlow 2.5+. Evaluation expects the model path in the code to exist.

bashbash
python3 train_speech_model.py
python3 evaluate_speech_model.py

Recognise a file, or serve the model

predict_speech_file.py transcribes a single audio file. The server scripts expose the model over HTTP or gRPC, and the client scripts check that the endpoint answers.

bashbash
python3 predict_speech_file.py

python3 asrserver_http.py
python3 client_http.py

python3 asrserver_grpc.py
python3 client_grpc.py

Commands and code are distilled from the project's own documentation — always check the official repo for the latest.

When to use it

  • Reach for it when Mandarin audio has to be transcribed on your own hardware with no cloud speech API in the path
  • Reach for it when you need to retrain or fine-tune a Chinese acoustic model on your own corpus rather than accept a fixed vendor model
  • Reach for it when an existing service needs a speech endpoint it can call over gRPC as well as HTTP
  • Reach for it as a teaching reference for the classic CTC acoustic model plus separate pinyin-to-character language model design

How ASRT compares

ASRT alongside other open-source audio, music & voice tools AI/TLDR tracks, ranked by GitHub stars.

ToolStarsWhat it does
Whisper★ 109kOpenAI's speech recognition model that transcribes and translates audio across many languages.
GPT-SoVITS★ 62kAn open-source WebUI that clones a voice from a short audio sample and turns text into speech, with zero-shot and few-shot fine-tuning.
Voicebox★ 55.4kLocal-first voice studio that clones a voice from a short sample, generates speech across seven TTS engines and 23 languages, handles system-wide dictation, and speaks for agents over MCP.
VibeVoice★ 54.4kMicrosoft's text-to-speech model for generating long, expressive multi-speaker audio like podcasts.
whisper.cpp★ 53.8kA dependency-free C/C++ port of Whisper built on ggml, running speech recognition on CPU, Metal, CUDA, Vulkan and NPUs from phones to servers.
Coqui TTS★ 46kA library of text-to-speech models including the multilingual XTTS voice-cloning model.
ChatTTS★ 39.9kChatTTS is an open-source text-to-speech model tuned for dialogue, with multi-speaker support and fine-grained control over laughter, pauses, and prosody.
ASRT★ 8.4kA self-hosted Chinese speech-recognition system you can train yourself, with HTTP and gRPC servers