Skip to content

Releases: baryhuang/llm-in-c

MiniMind-O native A113X v1.6.0

Choose a tag to compare

Native-C real-time P10S hardware volume control.

  • persistent blocking evdev thread discovers USB VID:PID 1234:5684
  • consumes KEY_VOLUMEUP, KEY_VOLUMEDOWN and KEY_MUTE immediately
  • updates the persistent ALSA hw:0 PCM mixer directly in 2% steps
  • works while a real PCM playback stream remains open
  • no amixer/shell subprocess per event, no polling wakeups, and no model/audio-path locks
  • measured event-to-mixer completion: 6.299–19.641 ms on A113X, including active PCM playback
  • handles USB disconnect/reconnect and logs each event latency
  • preserves mandatory streaming input and first-PCM-on-arrival output

Executable SHA256: e0f881c70a1881669b2d3e36d6a936daa165cc01cd6dcd572c850b7d1e455c5e
Commit: 9290d5bb752005c1df3e63b4ce9b99cefbac3bc2

MiniMind-O native A113X v1.5.0

Choose a tag to compare

Native-C ThreeHub RGB pipeline status telemetry.

  • very-slow green blink: always-resident listening/capture
  • slow yellow blink: inference after speech end
  • slow pure/deep-blue blink: playback, beginning only after ALSA accepts the first 80 ms PCM frame
  • isolated LED worker with a nonblocking atomic latest-state mailbox; no model/audio locks or critical-path waits
  • preserves mandatory input-token streaming and first-PCM-on-arrival output streaming
  • runner SHA256-pins the AArch64 executable and restores it automatically after volatile /dev/shm loss

Executable SHA256: 00de173208feb6f9dc2b7816f4f2a4beffa7c77c011c077030c6cd140221d6a0
Commit: 3d13296ab04cd3dd25eeb561cd9630d5a2e21149

MiniMind-O native A113X v1.4.0 — real end-to-end streaming

Choose a tag to compare

MiniMind-O native A113X v1.4.0 — real end-to-end streaming

This release makes bidirectional streaming the only production path:

  • microphone PCM advances the online SenseVoice encoder and Thinker/Talker KV state while capture is active;
  • each complete Talker code frame enters the stateful Mimi decoder immediately;
  • the first decoded 1,920-sample / 80 ms PCM frame is written to ALSA immediately;
  • there is no producer-EOS gate, PCM start watermark, complete-response buffer, OpenMP, or Python runtime.

The executable uses native C11, Cortex-A53 NEON W8A8 generation kernels, exact Mimi paired-int8/deconvolution kernels, and a persistent pthread compute pool whose spin lock covers only FIFO enqueue/dequeue.

Measured on the A113X box, exact isolated Mimi decoding takes 0.62–0.69 s for 0.64 s of PCM. Concurrent fixed-prompt cadence remains about 99–128 ms per 80 ms audio frame, so uninterrupted real-time playback is not yet guaranteed and is not hidden with buffering. Physical post-release microphone/speaker acceptance remains pending.

run-minimindo-native-a113x.sh verifies SHA-256, downloads the executable from this release and the unchanged model images from minimindo-native-a113x-v1.0.0, then keeps the resident native service warm.

Executable SHA-256: c86007a11c65c184a30665a6cd403302f12920bf0e46f2e8a9ae47aee5a5e64f

Source commit: 4c549d0

MiniMind-O native A113X v1.2.0 — input-token streaming

Choose a tag to compare

@baryhuang baryhuang released this 22 Aug 19:30
2299756

Native-C A113X release with mandatory streaming in both directions.

Input path:

  • SenseVoice begins chunk inference at VAD speech_start
  • 480 ms center / 240 ms right lookahead / 1.92 s per-layer K/V cache
  • committed audio embeddings immediately prefill Thinker and Talker while recording continues
  • trailing VAD silence is never committed and whole-prompt tokenizer parity is checked before generation

A113X optimization:

  • Armv8.0 NEON W8A8 dense kernels with four-position weight reuse
  • pinned 1.18 s online encoder fixture: 3.04 s -> 1.11 s (2.74x), 365% aggregate CPU
  • embedding cosine against the Q8xf32 online graph: 0.998620222
  • no OpenMP or libgomp; mutexes remain only at SPSC queue sleep/wake boundaries

The runner downloads this executable plus the pinned v1.0.0 model files, validates every SHA256, and starts the always-resident live service. Runtime inference is C11 and launches no Python.

MiniMind-O native A113X v1.1.0

Choose a tag to compare

@baryhuang baryhuang released this 22 Aug 18:54
acd3bd7

Native C11 streaming runtime for the ThirdReality A113D/A113X box.\n\n- removes OpenMP/libgomp and uses three persistent pinned pthread workers\n- SPSC atomic job/code/PCM handoff; mutexes exist only at empty audio-queue sleep/wakeup boundaries\n- real Talker -> stateful Mimi -> ALSA streaming with per-frame production/decode/write logs\n- W8A8 NEON streaming Mimi convolution/deconvolution and paired transformer dispatch\n- fixed 2-frame (160 ms) playback low watermark; no buffered/non-streaming mode\n- deterministic A113X acceptance: 8.23 s, 358% CPU, 12 voluntary context switches, identical WAV SHA256\n\nThe runner downloads this executable from v1.1.0 and reuses unchanged pinned model images from v1.0.0.

MiniMind-O native C for A113X v1.0.0

Choose a tag to compare

Production native-C MiniMind-O speech-to-speech bundle for ThirdReality TRHub-V3 / Amlogic A113D-A113X. Includes the Cortex-A53 binary, Q8 Thinker, Talker, SenseVoice and Mimi images, tokenizer, pinned SHA256 manifest, Apache-2.0 license, systemd unit and a persistent self-restoring launcher. The launcher verifies local artifacts, downloads missing or corrupt files atomically from this pinned release, then execs the resident native-C service. No Python is required on the target.

Production: Whisper Small Q5_1 + Silero VAD for A113X

Choose a tag to compare

Production native ARM64 Linux CPU release for the ThirdReality TRHub-V3 / Amlogic A113X. VAD is enabled by default with the pinned native GGML Silero VAD 5.1.2 model. The ASR runtime is built from ggml-org/whisper.cpp v1.8.0 at commit 41fc9dea6a4fe056424be86f61164413903fcff4 in a Debian 12 ARM64 build environment with Cortex-A53 tuning, static whisper/ggml libraries, and no Python runtime. The launcher downloads and SHA-256-verifies the binary, multilingual Whisper Small Q5_1 model, and VAD model before four-thread greedy English transcription. Use: chmod +x run-whisper-small-q5_1-vad-a113x.sh && ./run-whisper-small-q5_1-vad-a113x.sh AUDIO.wav

Whisper Small Q5_1 for A113X (whisper.cpp v1.8.0)

Choose a tag to compare

Native ARM64 Linux CPU release for the ThirdReality TRHub-V3 / Amlogic A113X. Built from ggml-org/whisper.cpp v1.8.0 at commit 41fc9dea6a4fe056424be86f61164413903fcff4 in a Debian 12 ARM64 build environment with Cortex-A53 tuning, static whisper/ggml libraries, and no Python runtime. The launcher downloads and SHA-256-verifies the binary and multilingual Whisper small Q5_1 model before running four-thread greedy English transcription. Use: chmod +x run-whisper-small-q5_1-a113x.sh && ./run-whisper-small-q5_1-a113x.sh AUDIO.wav

Production: Whisper Base Q5_1 + Silero VAD for A113X

Choose a tag to compare

Native Linux AArch64 build for the four-core Cortex-A53 Amlogic A113X. Includes multilingual Whisper Base Q5_1, Silero VAD v5.1.2, the whisper.cpp v1.8.0 CLI, checksums, provenance, and a POSIX launcher that automatically downloads and verifies every required artifact. Default inference uses four CPU threads, automatic language detection, greedy decoding, and production VAD. No Python is used at inference time.

ThreeHub resident voice pipeline for A113X v1.0.0

Choose a tag to compare

Always-on voice pipeline for ThirdReality TRHub-V3 / Amlogic A113X. One lifetime ALSA stream feeds a native C RMS segmenter with a bounded queue and a live peak/RMS monitor. Multilingual Whisper Base Q5_1 with Silero VAD, Qwen3.5-0.8B, and MOSS-TTS-Nano stay resident and are warmed before the pipeline reports ready. The POSIX launcher automatically downloads and SHA-256 verifies every public artifact; the private voice reference is not included. No Python process is used at runtime.