Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦄 Meeting-Ops UC-1 — Hardware Appliance

A working on-premise meeting appliance for the UC-1 box.

Record, transcribe, diarize, and summarize meetings entirely on your own hardware — no cloud, no per-minute billing, no third-party AI. This shipped and ran. It is no longer actively developed; the product line continues as Meeting-Ops.

Status Hardware NPU License

Part of the Unicorn Commander suite by Magic Unicorn Unconventional Technology & Stuff Inc.


📌 Status

This is the UC-1 appliance line, split out from the product codebase in July 2026 so the two stop being mistaken for each other.

What it does, and did, on real hardware: browser UI, live recording from a USB mic or conference room input, Whisper transcription, speaker diarization, AI meeting summaries, action-item extraction, session search and export, SSO — all self-contained on one box with no outbound dependency. It was provisioned, deployed, and used.

Where it stands: maintenance. Last substantive engineering was August 2025. It still installs and runs; nobody is adding features. Two things are worth reading before you rely on it — the honest NPU section below, and the weak shipped defaults under Running it.

What it is not: the codebase behind meeting-ops.unicorncommander.ai or the iOS app. That is a separate, actively developed product — browser-first, built on Parakeet rather than Whisper, with no NPU code path at all. If you want managed hosting or current feature work, you want that one. If you want a box that records meetings and never phones home, this is the one.


🖥️ Target hardware

Component Part
CPU AMD Ryzen 9 8945HS (Zen 4, 8C/16T)
iGPU AMD Radeon 780M (RDNA 3)
NPU AMD XDNA1 / Phoenix AI Engine — 16 TOPS INT8 (32 TOPS INT4 theoretical)
Kernel driver amdxdna, device at /dev/accel/accel0 (mainlined in Linux 6.14)

⚠️ What actually happened with the NPU

This is the part worth reading, and earlier versions of this README got it wrong.

Previous revisions advertised "220x faster than CPU", "1 hour of audio in 16.2 seconds", and "99% accuracy with Whisper Large-v3". None of those were measurements. They trace back to a single hardcoded constant:

# stt_engine/whisperx_npu_engine_real.py
self.npu_metrics = {
    "speedup_factor": 220,  # Minimum guaranteed speedup
    ...
}

That literal was then quoted back as a benchmark in NPU_PERFORMANCE_RESULTS.md under the heading "Performance Metrics (From Code Analysis)", surfaced through the API, and printed by test scripts. docs/NPU_HARDWARE_EVIDENCE.md does the same thing — it cites hardcoded Python spec dictionaries as evidence that the hardware performs. No benchmark was ever run.

For scale: 220x realtime means transcribing an hour of audio in ~16 seconds with Whisper large-v3 on a 16 TOPS INT8 part. That was never physically plausible.

What genuinely worked ✅

Real, verifiable progress — this was not nothing:

  • Hardware bring-up. amdxdna loads, /dev/accel/accel0 opens, AIE v1.1 detected.

  • Direct IOCTL access to the NPU without Vitis AI: DRM_IOCTL_AMDXDNA_GET_INFO for device queries, DRM_IOCTL_AMDXDNA_CREATE_BO for buffer-object allocation.

  • A correct diagnosis of the ecosystem gap, documented in backend/amd_npu_whisper_findings.md and backend/npu_final_findings.md:

    • onnxruntime-vitisai had no x86_64 Linux wheels — the "platform-independent" py3-none-any wheel shipped ARM64 binaries (file reports ELF 64-bit … ARM aarch64).
    • XRT cannot enumerate the NPU, because Ryzen AI parts use the Linux DRM/accel framework rather than the /dev/xrt* interface XRT expects.
    • AMD's own Whisper support was early-access only at the time.

    That diagnosis still holds up, and it is the most valuable thing in this repository.

What never happened ❌

No Whisper inference ever ran on the NPU. The code says so itself:

Location What it actually does
npu_optimization/direct_npu_runtime.py:36 "For now, we'll use a simulated memory region" — a 256 MB bytearray, not NPU memory
npu_optimization/direct_npu_runtime.py:77 "Simulate NPU computation" — the FFT is np.fft.rfft, on CPU
npu_optimization/direct_npu_runtime.py:103 the mel filterbank is np.random.randn(...)a random matrix, so that path's output was numerically meaningless
npu_optimization/aie2_kernel_driver.py:114 _create_emulation_binary() writes a mock whisperx_aie2_emulation.xclbin when the real toolchain is absent
npu_optimization/aie2_kernel_driver.py:175 sets device = "CPU_EMULATION" and npu_device = None

The release workflow then packaged that mock .xclbin as "NPU binaries."

Transcription on this appliance actually ran Whisper on the CPU, with iGPU/ROCm compose variants for the LLM. That worked — it simply wasn't NPU-accelerated, and it wasn't 220x.

If you want to pick this up again

The blocker was never the hardware; it was the userspace stack. Re-check whether onnxruntime-vitisai now ships x86_64 Linux wheels, or build the Vitis AI EP from amd/xdna-driver. The IOCTL groundwork here is a real head start. Benchmark before claiming anything — and commit the harness.


🧰 What's in here

backend/                 FastAPI backend, Whisper pipeline, NPU research modules
frontend/                React GUI
backend/npu_optimization/  NPU kernel + runtime experiments (emulated — see above)
backend/docs/            NPU research notes and hardware findings
docker-compose*.yml      stack variants (Postgres/Qdrant, Ollama, ROCm, Gemma)
fresh_install*.sh        appliance provisioning scripts (Ubuntu 25.04)

The NPU_*.md files in backend/ are kept as historical record. Several assert success the code does not support — read them alongside this section, and trust amd_npu_whisper_findings.md and npu_final_findings.md over the ones with "SUCCESS" or "COMPLETE" in the filename.


🚀 Running it

Ships with weak default credentials (meetingops123, admin123) intended for a single-tenant box on a trusted LAN. Change them before exposing it to anything.

./fresh_install_ubuntu2504.sh      # provision an appliance from scratch
docker compose -f docker-compose-full-stack.yml up -d

Frontend on :7778, backend on :9050. See INSTALL.md and QUICK-START.md.

Notes

  • The tree previously contained backend/NPU_FINAL_STATUS.md and backend/npu_final_status.md — two different documents differing only in case, which broke clones on macOS and Windows. The lowercase one is now backend/npu_integration_progress_notes.md; both are preserved and the repo clones cleanly on case-insensitive filesystems.

📜 License

GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later) — see LICENSE. A commercial license is available for organizations that cannot meet the AGPL's network-copyleft terms — contact licensing@unicorncommander.ai.

About

Meeting-Ops UC-1 — a self-contained on-premise meeting appliance (record, transcribe, diarize, summarize) for the AMD Ryzen 9 8945HS / Radeon 780M / XDNA1 box. Includes honest AMD NPU bring-up findings. AGPL-3.0.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages