most-whale-61185
04/08/2026, 5:34 PMtall-airline-16756
04/08/2026, 5:34 PMtall-airline-16756
04/08/2026, 5:34 PMmost-whale-61185
04/08/2026, 5:37 PMtall-airline-16756
04/08/2026, 5:37 PM.imx) if you want on‑prem later (bitHuman).
High‑level implementation plan (Node → later Python)
1. Pick an avatar plugin/provider that fits your custom avatar format.
2. On your Node backend:
a. Receive LLM text.
b. Generate TTS audio server‑side (16 kHz for many providers).
c. Create an AvatarSession (provider plugin) and send the TTS audio to it.
d. Start the Agent/AvatarSession so the avatar worker joins the LiveKit room and publishes the video track.
1. On the web frontend:
◦ Render the avatar’s video track like any LiveKit participant (identify avatar by lk.publish_on_behalf or use the agent helper hook).
◦ Play browser TTS if you still want local speech; consider muting local playback for users if you prefer avatar audio only (to avoid double audio).
1. When you migrate to Python, the same avatar plugins and flow are supported—swap the backend implementation with minimal architectural change.
Quick questions so I can give exact code and config:
• Do you want the avatar to be entirely server‑rendered (avatar audio only) or both avatar video+local browser speech (may need sync/duplication handling)?
• Any preferred avatar providers from Hedra/Tavus/bitHuman, or should I recommend one based on cost/maintenance tradeoffs?
• Which TTS engine do you plan to use (cloud TTS, self‑hosted, or browser-only)?
Tell me those and I’ll give a concise Node code example and the frontend rendering snippet.
Sources: Hedra Realtime Avatar integration guide | LiveKit Documentation | Video | LiveKit Documentation | examples/avatar_agents | livekit/livekit_composite | DeepWiki | Virtual avatar models overview | LiveKit Documentation | Bringing AI avatars to voice agents | LiveKit, with interactive elementsmost-whale-61185
04/08/2026, 5:42 PMtall-airline-16756
04/08/2026, 5:43 PM