RFD 1170: A cleanroom presence loop, and which components swap

Problem

victor/gemma-avatar runs the loop this workspace wants — speak, be understood, be answered by a lip-syncing face — and states no licence. Its integration code cannot be taken.

Decision

Study it, take nothing, rebuild from the components it names — cheap, because every component is separately licensed and clean; only the glue is unlicensed.

their stage        licence      ours

silero-VAD         MIT          keep
parakeet-tdt-1.1b  CC-BY-4.0    Qwen3-ASR-1.7B, Apache-2.0
gemma-4-31B, API   Apache-2.0   Qwen3-VL-8B, local
Qwen3-TTS 12Hz     Apache-2.0   already ours
TalkingHead        MIT          keep, or ANNY through Godot
three.js           MIT          Godot, with Mitsuba as oracle

Their TTS choice is ours, independently — the same Qwen3-TTS-12Hz-1.7B-CustomVoice RFD 1166 seated at 4 the same day.

Two stages swap for reasons already held here. Parakeet is licence-clean but has no compiled path, while RFD 1169 puts Qwen3-ASR’s encoder inside DEVICE_OPS. Gemma 4 is Apache-2.0 — RFD 1155 abandoned it on shape, not licence — but 31 B does not fit 8 GB and a hosted API cannot be a corpus source. The lip-sync is the part we lack, and DETAILS.md carries what TalkingHead does and what is unknown.

Details

The measurements and the retractions