📈 GH Trending Explorer 🎲 Surprise me

← all repos

honwee / mynah

git clone https://github.com/honwee/mynah.git v0.1.0 · 9d ago

Mynah — self-hosted realtime digital human. One GPU, full admin console, Apache-2.0. 自己服务器上的实时数字人系统

—
stars, 24h
—
stars, 7 days
+201
stars, 30 days · #1,273
201
★ total
78
forks · 1 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageGo
LicenseApache-2.0
Created2026-10-07 (13d ago)
Last push5d ago
Watchers0
OwnerUser

GitHub topics

Links

README excerpt
**Open-source digital humans, ready to deploy.**
 Realtime voice conversation on a published channel: ask, it answers with lip-synced video; interrupt it any time. 
 FlashHead with the built-in Luna half-body preset: one portrait, the whole head is rendered by the engine and pasted back onto a head-to-waist canvas; idle breathing and gesture clips (shy, laugh, shake, wink) are baked from the same canvas, and the instinct layer picks a gesture while the brain is still composing. Ships as a built-in preset; publish it as a channel from the console. 
A self-hosted digital human you can actually hand to a customer: realtime voice
conversation, admin console, knowledge base, channel publishing — all open source.
One GPU, or none.
Stream a talking avatar over WebRTC — voice in, lip-synced video out — with
swappable avatar / TTS / ASR / LLM engines, avatar training from a video,
voice cloning, and a one-command setup wizard.
 -green)
 ·  Quickstart  ·  Architecture  ·  Integration API  ·  Licensing  ·  Commercial support
> **Hardware, up front:** the default FlashHead avatar engine needs an
> **NVIDIA GPU (4090-class)**; the lighter wav2lipLS profile runs on more
> modest GPUs. **One avatar worker serves one live session at a time** — see
> Capacity & scaling before planning a deployment.
> No GPU at all? Every component can be a remote endpoint.
---
## What it is
Mynah is a Go realtime core (**`cored`**) that streams synchronized
video + audio from a Python avatar worker to a browser over **WebRTC**. It
receives a WebRTC offer, opens a bidirectional gRPC session to the avatar
engine, feeds it **TTS audio** (from text, or from an **LLM** chat turn), and
paces the encoded VP8/H.264 + Opus frames back to the browser. Optional **voice
input** (ASR worker) and **semantic turn-taking** (a turn-detector worker that
decides when the user has actually finished speaking) make it a full
voice-to-voice loop. An optional control plane (`--db`) adds an admin API,
config hot-apply, a knowledge base (RAG), and publishable visitor "channels".
It is engine-agnostic by design: avatar, TTS, ASR, LLM and turn-detection are
**pluggable** behind small contracts (a gRPC streaming contract for workers, an
OpenAI-compatible HTTP surface for TTS/LLM). The default engines are chosen to
be **commercially usable** out of the box.
## Highlights
- **Realtime, not rendered video** — the cloud brain answers within ~0.2 s of
 the user's last word and lip-synced video starts under a second; barge-in
 stops it mid-sentence. A bundled audio end-of-turn model (Smart Turn v3.2,
 BSD-2) decides when the user has actually finished speaking. Numbers in
 Performance.
- **One portrait, a half-body presenter** — FlashHead renders the whole head
 and pastes it onto a 720×1280 head-to-waist canvas; idle breathing and
 gesture clips (shy, laugh, shake, wink) are baked from the same canvas.
 **Luna** and **Nova** ship as built-in presets; your own portrait takes one
 prepare step.
- **Instinct, not ju