Skip to content
ZirekHQPublic

About

A cross-platform inference engine for neural TTS models.

Resources

Code of conduct

Contributing

Security policy

Stars

15 stars

Watchers

0 watching

Forks

Dengjen

Project board — live roadmap and status for this repo's issues.

A cross-platform Rust engine for neural speech models: text to speech and speech recognition.

Features

  • Models: Piper, Kokoro, and MeloTTS ONNX voices
  • Phonemization: eSpeak-ng (100+ languages, IPA output) and Arabic diacritization via libtashkeel
  • Multi-speaker voices: select by speaker_id
  • Streaming synthesis: chunked output (chunk_size/chunk_padding) and a realtime gRPC stream
  • Prosody control: rate, pitch, and volume via a Rust port of Sonic in dengjen-audio-ops
  • Synthesis modes: lazy, parallel, and batched, selectable per request; realtime for the voices that support it
  • Speech recognition: offline Kurmanji recognition in dengjen-stt, on sherpa-onnx with Omnilingual CTC models (300M int8 by default, 1B int8 for higher accuracy, and a v2 build of each; see dengjen_stt::catalogue). Reachable through the C API (libdengjen-stt), the gRPC Recognize RPC, the Go stt package, the Android AAR, and the Apple XCFramework's opt-in stt build. Recognition is offline: there are no streaming partial results.
  • Bindings: native Rust, C-API (libdengjen), Python (pydengjen), Go and Java bindings over the C API (see bindings/go and bindings/java), gRPC (any language over the wire), and a CLI

RHVoice-style formant/statistical synthesis is a different synthesis paradigm from this engine's neural-ONNX pipeline and isn't planned.

What each model supports

Piper Kokoro MeloTTS
Lazy, parallel, batched modes Yes Yes Yes
Realtime streaming Voices whose manifest sets "streaming": true Yes, by chunking an already synthesized sentence No
Speakers Manifest speaker map Presets from the manifest's voices list Manifest speaker map
Rate, pitch, volume, silence Yes Yes Yes
Tunable inference knobs noise_scale, length_scale, noise_w None noise_scale, length_scale, noise_scale_w
Phonemizers eSpeak-ng, raw text, Hebrew, pinyin, Kurmanji; Arabic diacritization via libtashkeel eSpeak-ng, fixed to en-US eSpeak-ng (en, es, fr, ja, ko) or pinyin (zh)

The Hebrew and pinyin phonemizers are opt-in Cargo features (hebrew, pinyin) that no frontend in this repository enables by default, so the prebuilt dengjen-tts-grpc server and the pydengjen wheels do not include them; embedding the Rust crates lets you enable them. The kurmanji feature is on by default in the capi, cli, grpc and python frontends: voices whose espeak voice is ku use the built-in phonemizer instead of eSpeak-ng unless the voice config sets "kurmanji_use_espeak": true. Arabic diacritization (the tashkeel feature) is enabled by default in every frontend this repository publishes.

Documentation

The documentation lives at https://zirekhq.github.io/dengjen/next/index.html:

To contribute, see CONTRIBUTING.md.

Code signing policy

The Windows SAPI5 voice installer is currently unsigned, so Windows SmartScreen warns when you run it; the SAPI5 voice guide explains how to check its SHA-256 and run it. Signing is tracked in #574. See the code signing policy for what will be signed, who approves it, and the privacy statement.

License

Licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later) — see LICENSE. dengjen originated as a fork of Sonata by Musharraf Omer, originally MIT-licensed; see NOTICE for project history and third-party attributions.


💝 Support This Project

If this repository saves you time and effort, please consider supporting it!

About

A cross-platform inference engine for neural TTS models.

Resources

Code of conduct

Contributing

Security policy

Stars

15 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages