Turkish Streaming Zipformer Transducer

A small, causal Turkish speech-to-text model for low-latency CPU inference. The model has 23.6 million parameters and is exported as a streaming Zipformer RNN-Transducer with a 500-piece SentencePiece tokenizer.

Both FP32 and dynamically quantized INT8 ONNX exports are included. The INT8 package is approximately 27 MB and is the recommended default.

Architecture

  • Causal Zipformer encoder
  • Stateless transducer decoder and joiner
  • 23,627,887 parameters
  • 16 kHz mono input
  • Streaming chunk size: 32
  • Left context: 128 frames
  • Decoder context size: 2
  • Turkish SentencePiece BPE vocabulary: 500 pieces

Install

git clone https://huggingface.co/duxx/turkish-stt-zipformer
cd turkish-stt-zipformer
python -m venv .venv
pip install -r requirements.txt

Transcribe an audio file

python transcribe.py recording.wav

The default is INT8 modified beam search with 12 active paths. Use greedy search for the lowest latency:

python transcribe.py recording.wav --decoding-method greedy_search

Audio is converted to mono and resampled to 16 kHz by the example.

Live microphone

python -m inference.microphone --model-dir . --list-devices
python -m inference.microphone --model-dir . --precision int8 --device 0 \
  --decoding-method modified_beam_search --max-active-paths 12

The microphone implementation keeps one continuous audio stream open and uses endpoint detection to finalize turns. It also supports contextual hotwords and optional WAV/TSV collection for human correction.

Development-set results

The published checkpoint was chosen by a three-domain, development-only interpolation gate. These numbers are selection metrics, not sealed test results:

Evaluation set WER
Common Voice 17 Turkish dev 13.09%
Turkish daily-use dev 17.39%
FLEURS Turkish validation 20.16%

Decoding used streaming chunk 32, left context 128, modified beam search with 12 active paths, and blank penalty 0. The full sweep is included in evaluation.json.

Training data and license

Training used Turkish speech from Common Voice 17, the ISSAI Turkish Speech Corpus, a scripted daily-use corpus, audited conversational/pseudo-labelled speech, targeted synthetic speech, the Turkish portion of WorldSpeech, and FLEURS train. FLEURS test was not used for training or checkpoint selection.

WorldSpeech is distributed under CC BY-NC 4.0 and may include source-specific restrictions. This model is therefore released under CC BY-NC 4.0 for non-commercial use. Users are responsible for reviewing the licenses and terms of the source datasets before redistribution or downstream use.

Limitations

  • Turkish only.
  • Accuracy varies with accents, background noise, telephony codecs, names, and specialized vocabulary.
  • The model may produce plausible but incorrect words.
  • Development scores should not be treated as final independent test scores.
  • Do not use the output as the sole basis for safety-critical decisions.

Acknowledgements

Built with Icefall, k2, sherpa-onnx, Lhotse, Common Voice, ISSAI TSC, WorldSpeech, and FLEURS.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Datasets used to train duxx/turkish-stt-zipformer

Space using duxx/turkish-stt-zipformer 1