Skip to content
View ekhodzitsky's full-sized avatar

Block or report ekhodzitsky

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
ekhodzitsky/README.md

On-Device Speech AI · STT & Speaker Diarization · Senior Backend


About

Rust — on-device speech AI that runs fully offline after a one-time model download, shipped as a single binary: speech-to-text (gigastt) and speaker diarization (polyvoice) — the two projects I actively build. Local-first by default: no cloud APIs at runtime, no vendor lock-in. On the side — agent & dev tooling experiments in Rust / Go (see the fold below).

Prior production backend — Node.js / TypeScript (NestJS, Moleculer) and Python (FastAPI, Django): REST APIs and gateways from scratch, message brokers, payment & telephony integrations, large legacy refactors, and email / document (PDF/DOCX) pipelines.


gigastt — on-device Russian speech recognition

file RTF ~0.10 (≈10× real-time on M1 CPU) · batch 3.55% WER clean (in-domain; statistical tie vs Vosk) · leads far-field / phone / YouTube in a like-for-like 6-engine bench · one binary · no cloud at runtime

cargo install gigastt && gigastt serve
# WebSocket: ws://127.0.0.1:9876/v1/ws
# REST API:  http://127.0.0.1:9876/v1/transcribe

GigaAM v3 + ONNX Runtime · INT8 ~225 MB · opt-in multilingual heads (ru/en/kk/ky/uz) · REST / SSE + async jobs · optional punctuation, casing & ITN · Android FFI + NNAPI · CPU / CoreML / CUDA · cargo / brew / npm / pip / Docker

polyvoice — speaker diarization for Rust

Who spoke when, on CPU, without Python · ~15% DER VoxConverse-test (collar 0; pyannote 3.1 = 11.3%) · ~8.4 MB MIT INT8 models

cargo add polyvoice --features "pipeline-native,vbx"

Powerset segmentation + WeSpeaker embeddings + VBx (AHC / K-means / NME-SC alternatives) · overlap resegmentation · who-said-what via companion ASR crates · Rust / Python / C FFI / CLI / MCP · crates.io + PyPI

Powers the diarization feature in phonex, nihostt and phostt.


More on-device speech

  • phonex — multilingual on-device STT engine · offline + streaming, single binary, HTTP / gRPC / FFI · crates.io
  • nihostt — Japanese STT server (ReazonSpeech-k2-v2) · WebSocket / REST / SSE · crates.io + Homebrew + Docker
  • phostt — Vietnamese STT server (Zipformer-vi RNN-T) · streaming · crates.io + pypi
  • localmt — offline Android translation SDK · GGUF / llama.cpp via JNI · pre-release
Experiments — agent tooling, backend, archived

Side projects in varying states of maturity; not all actively maintained.

Agent & dev tooling

  • kimi-wire — typed Rust client for the Kimi Code CLI Wire protocol · crates.io · Go twin: kimi-wire-go
  • mcp-guard — guardian & stdio proxy for MCP servers (Go) · process pool, timeouts, tool permissions, rate limits, audit log
  • kimi-lite — Go port of MoonshotAI's kimi-code coding CLI · single binary · MCP + ACP
  • gitr — async typed git wrapper for AI agents · JSON CLI + MCP server · library on crates.io
  • cargo-kimi — Cargo subcommand scoring Rust files 0–100 on contract quality · crates.io
  • coad — written methodology for safe, reviewable, bounded coding-agent work
  • kimi-dotfiles — composable configs, instructions and skills for the Kimi CLI
  • jobsmith — AI job-application assistant for hh.ru · Rust TUI · Typst PDF CVs

Backend

  • go-ozon-marketplace — portfolio pet project: e-commerce backend · 8 Go microservices + Rust API gateway · Saga · Outbox · CQRS · Kafka · ClickHouse · mTLS

Archived

  • omk — Wire-first orchestration for Kimi CLI · archived June 2026 (post-mortem in the README)

Telegram Email

Pinned Loading

  1. gigastt gigastt Public

    Local STT server powered by GigaAM v3.

    Rust 46 4

  2. polyvoice polyvoice Public

    Speaker diarization for Rust — who spoke when, on CPU, without Python. INT8 kernels (~8.4 MB, MIT, ungated). Rust, Python, C FFI, and CLI.

    Rust 17 1