cf83a2302dc41093adfd5de6d73f7cebb3127d76
After sub-chunking each ElevenLabs message into N ~0.8s Opus packets, the client enqueued each sub-chunk separately, re-running the playback state machine per sub-chunk (spurious Play() restart / pre-buffer race / underrun at the seam) -> an audible pop at each ~0.8s boundary (2-3 per sentence). Confirmed via multi-agent analysis + logs (no generation skips, no decode truncation -> not a codec issue; the discontinuity is on the enqueue side). - MulticastReceiveAgentAudio gains a bLastSubChunk flag; the server marks the final sub-chunk of each message (encode path frame-aligned so the last sub-chunk is well-defined; raw-PCM fallback likewise). - The client accumulates decoded PCM across a message's sub-chunks and calls EnqueueAgentAudio (and lip-sync broadcast) ONCE, on the last sub-chunk. - ClientReassemblyPCM reset in StopAgentAudio so a half-received message can't leak across a turn/interruption. No added latency: a message's sub-chunks are sent back-to-back in one server tick and arrive together. Each RPC still <=40 frames (Reliable, under the encode/decode limits). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
Eleven Labs Integration for Unreal Engine 5.5
Languages
C++
90.8%
Python
4.3%
HTML
3.8%
Batchfile
0.5%
C#
0.4%
Other
0.2%