You can add a real-time avatar to Hume AI Voice by consuming EVI’s audio_output events and routing the same assistant speech to playback and Spatius. Motion Server converts that speech into motion data, while AvatarKit renders the character locally. The application must keep audio ordering, completion, and interruption synchronized across both paths.
Independent guide: Spatius is not affiliated with, endorsed by, or an official integration partner of Hume AI. This article describes an interoperability pattern based on public Hume and Spatius documentation, not a packaged native connector.
Last verified: September 24, 2026.
What Hume AI and Spatius each own
Hume’s Empathic Voice Interface is the conversational layer. It receives live user audio, manages the interaction, and returns structured messages that include transcripts, assistant text, output audio, and response lifecycle events.
Spatius starts at the visual boundary. It receives the assistant speech that the application has approved for playback, generates motion data, and renders the avatar locally through AvatarKit. It does not replace Hume’s voice model, prompts, tools, conversation state, or turn-taking.
| Responsibility | Hume EVI application | Spatius |
|---|---|---|
| User microphone and conversation session | Owns | Does not own |
| Assistant behavior, tools, and voice | Owns | Does not own |
| Final assistant speech | Produces and plays | Receives as avatar-driving input |
| Audio ordering and turn coordination | Application responsibility | Consumes the coordinated turn |
| Facial motion | Does not need to own | Motion Server generates motion data |
| Avatar rendering | Does not own | AvatarKit renders locally on the client |
| Product UI, captions, analytics, and handoff | Application responsibility | Does not own |
This separation lets a product keep Hume’s expressive voice experience while adding a visible character to a web, mobile, kiosk, tutoring, or guided-workflow interface.
Reference architecture
The central rule is simple: the same Hume output audio that the user hears should drive the avatar.
User microphone
↓
Hume EVI session
├─ conversation, tools, and interruption events
└─ assistant audio_output messages
↓
application audio coordinator
├─ playback queue
└─ decode and format once
↓
Spatius Motion Server
↓ motion data
AvatarKit client render
Do not send the user’s microphone audio to the avatar layer. Prompts, private transcripts, tool arguments, customer records, and internal agent state also do not need to cross this boundary merely to animate the character.
The audio path that keeps the avatar synchronized
Hume’s audio guide documents audio_output messages whose data field contains base64-encoded WAV audio. Because output may arrive faster than it can be played, the application needs an ordered playback queue.
For the avatar path, decode each message once and preserve its place in the assistant turn. Use the decoded speech for two coordinated consumers: the user’s playback path and the Spatius input path. If the active Spatius session requires canonical mono signed 16-bit little-endian PCM, decode the WAV container and perform one deterministic conversion before forwarding samples. Repeated WAV files must not be concatenated as though their headers were raw PCM.
| Audio rule | Why it matters |
|---|---|
| One assistant turn ID across both systems | Prevents late chunks from animating a newer response |
| One ordered source of assistant speech | Keeps visible motion tied to what the user actually hears |
| One documented format conversion | Avoids sample-rate, channel, and container ambiguity |
| Separate completion and interruption commands | Prevents normal endings from being treated as cancellations |
| One authoritative playback path | Avoids echo and duplicate output |
Implementation steps
1. Validate EVI before adding the avatar
Start with Hume’s TypeScript quickstart. Confirm microphone capture, agent responses, tool behavior, ordinary completion, and user interruption without a second real-time system attached. Otherwise an audio failure can be misdiagnosed as an avatar failure.
2. Keep long-lived credentials on the server
Use Hume’s current client-safe authorization flow instead of exposing a permanent API key in the browser. Apply the same boundary to Spatius: keep the Spatius API key on your backend and provide AvatarKit only the short-lived session material documented in the Direct Mode client guide.
3. Create one identifier for each assistant turn
Create an utterance ID when the response begins and attach it to playback chunks, converted avatar audio, completion, and interruption. A monotonically increasing local sequence is enough if it is never reused during a session.
The coordinator should reject any chunk whose turn has already completed or been interrupted. That rule is more reliable than trying to infer the active response from transcript text.
4. Decode and fan out each output message
Base64-decode audio_output.data, decode the WAV container, and enqueue the speech for user playback. Convert the same decoded speech to the format required by the current Spatius session and stream it in order to Motion Server. The Spatius audio specification applies to assistant speech audio, not microphone input.
on Hume audio_output:
verify the active utterance ID
decode the WAV payload once
enqueue the decoded speech for playback
convert and enqueue the same speech for Spatius
on normal response completion:
finish both queues
signal end of avatar input
on user interruption:
stop playback for that utterance
clear pending avatar audio for that utterance
This is architecture-level pseudocode. Use the current Hume event definitions and current AvatarKit SDK reference for exact method names rather than copying an unverified adapter.
5. End a completed response cleanly
Hume emits response lifecycle messages, including assistant_end, around a completed assistant turn. After the final speech chunk has entered both queues, finish the matching Spatius input. Normal end-of-input lets already accepted speech complete; it is not the same action as discarding an interrupted response.
6. Stop both systems on barge-in
Hume documents user_interruption and a new user_message as reasons to stop queued assistant playback. Apply the same event to the matching avatar turn. If the sound stops but buffered avatar input continues, the character appears to ignore the user.
| Event | Playback action | Avatar action |
|---|---|---|
| First assistant audio | Start or continue the active queue | Start the matching Spatius utterance |
| More audio for the active turn | Preserve order | Preserve the same order |
| Normal assistant end | Drain and complete | Signal normal end-of-input |
| User interruption | Stop and clear queued speech | Interrupt and clear the same turn |
| Late chunk from a closed turn | Drop | Drop |
| Either connection fails | Record the failed layer | Show a controlled audio-only or retry state |
What Spatius adds beyond an audio visualizer
A waveform or talking indicator can react to amplitude, but it cannot provide the speech-driven facial motion of an avatar. The Spatius architecture uses Motion Server to return motion data while AvatarKit renders the character locally, rather than sending a second finished video stream to the client.
That design leaves the application in control of layout, camera, captions, tool state, accessibility controls, fallback UI, and the avatar’s placement in the product. It also lets teams measure voice and avatar performance separately:
| Measurement | Hume/application layer | Spatius/avatar layer |
|---|---|---|
| Time to first assistant audio | Measure here | Input boundary |
| Audio gaps or conversation errors | Measure here | Not included |
| Audio-to-motion delivery | Not included | Measure here |
| Client render stability | Product client | Measure AvatarKit on target devices |
| Interruption correctness | Shared product event | Must stop with audio |
Useful logs include utterance ID, Hume event type, chunk sequence, first-audio time, first-motion time, conversion failures, interruption reason, and cleanup result. The guide to evaluating real-time avatar latency explains how to keep those stages separate.
Cost and use-case fit
Hume publishes EVI plans, usage allowances, overages, and concurrency terms on its official pricing page. Spatius and application infrastructure are separate cost layers, so model them independently using Spatius pricing. Do not combine the vendors into one universal per-minute claim without a workload model.
This architecture is a good fit when users already have a screen and the product wants Hume’s voice experience to gain a branded visual presence. It is usually unnecessary for a phone-only deployment. It may also be the wrong choice if the team wants one vendor to own the complete conversation stack and stream finished avatar video.
For a provider-neutral implementation pattern, see how to stream TTS audio to a real-time avatar.
Hume AI avatar FAQ
Is this an official Hume AI and Spatius integration?
No. This is an independent interoperability guide based on public interfaces. It does not claim a Hume partnership or packaged native connector.
Does Spatius replace Hume EVI?
No. Hume remains the voice and conversation layer. Spatius receives the approved assistant speech and adds motion generation plus local avatar rendering.
Should the avatar animate from the transcript?
Use transcripts for captions and UI state. Drive the avatar from the final assistant audio so its motion follows the sound the user actually hears.
Can EVI WAV payloads be treated as raw PCM?
No. Decode the WAV container and convert the samples to the format required by the Spatius session. Do not concatenate repeated WAV headers as raw PCM.
What should a proof of concept verify?
Verify authorization, audio decoding, ordering, format conversion, avatar readiness, normal completion, barge-in, stale-chunk rejection, reconnects, and rendering on target devices.
Add a visual layer without replacing Hume EVI
Hume can remain the expressive voice and conversation system. Spatius can remain the visual embodiment layer. A shared audio coordinator and interruption boundary keep the two systems understandable, testable, and replaceable.
Bring your Hume EVI architecture, target client, and audio configuration. We will help you evaluate the Spatius handoff without replacing the voice-agent stack. Request a demo, or ,或Review Spatius pricing.。