code wiki / (root) / nx_lipsync.nx

nx_lipsync.nx

buildroot/runtime/nx_lipsync.nx

3774 B72 linesdepth 2pulls 2 transitivereach 4 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_lipsync.nx -- TALKING AVATAR v0 (roadmap R6, the Duix-Avatar side of the operator's ask, sovereign + no neural clone): TEXT -> visemes -> an animated mouth on a rendered face. A viseme = a mouth shape (open height + width). Rule-based letter->viseme (vowels open wide, plosives m/b/p close the lips, silence shuts) -- the honest ceiling: letter-level (not phoneme), rule-based (not Duix's trained clone). Renders a simple 2D face directly to the framebuffer (no rig/SDF) so a synthetic human can TALK. Pairs with the sovereign TTS for audio. ORIGINAL

dependencies 1 imports · 2 importers

nx_syscalls.nx nx_lipsync.nx nx_lipsync_gate.nx nx_synth_serve.nx

imports: nx_syscalls.nx

imported by: nx_lipsync_gate.nxnx_synth_serve.nx

structs

none

consts

7const K_MAGIC_1000000: i64 = 1000000
8const K_MAGIC_65536: i64 = 65536

functions

11func ls_viseme(c: i64, out2: *i64) -> i64
called by 1: ls_text_visemes
28func ls_lc(c: i64) -> i64 { if c>=65 { if c<=90 { return c+32 } } return c }
called by 1: ls_text_visemes
30func ls_ellipse(fb: *i64, w: i64, h: i64, cx: i64, cy: i64, rx: i64, ry: i64, col: i64) -> i64
called by 1: ls_face_frame
49func ls_face_frame(fb: *i64, w: i64, h: i64, openh: i64, openw: i64) -> i64
called by 2: mainsv_do_talk calls 1: ls_ellipse
61func ls_text_visemes(text: *u8, vh: *i64, vw: *i64, maxn: i64) -> i64