Features

Conversation & voice

Two-way, streamed, interruptible — it feels like talking to a person.

Conversation is the heart of IAMX. A character listens, thinks, and speaks in a continuous loop — no press-play, no canned lines, no awkward pauses while a request round-trips to a server. The whole pipeline is built to hide latency and preserve the rhythm of natural speech, so an exchange with an IAMX character lands the way a real conversation does: fluid, responsive, and yours to interrupt.

This page covers what gives a character that sense of presence, the four ways a player can start talking to one, and how to drive the same loop from text for chat boxes, quests, and scripted triggers.

What makes it feel alive

Any system can bolt speech recognition onto a language model and play back a voice. The difference between "a talking NPC" and "a character you forget is software" is in the timing and the failure modes. IAMX is engineered around four behaviors that players never consciously notice — because when they work, nothing feels off.

Streamed replies

The character starts speaking the moment the first words of its answer are ready — while it's still composing the rest. No spinner, no dead air, no "thinking…" gap. Long answers begin instantly instead of making the player wait for the whole thought to finish.

Interruptible / barge-in

Cut it off mid-sentence and it stops, drops what it was saying, and listens. Just like a real conversation, the player never has to wait politely for the character to finish a paragraph they've already understood.

Echo-guarded

The character never mistakes its own voice — coming back through the room's speakers — for the player talking. It won't interrupt itself, answer itself, or spiral into a feedback loop, even with the volume up and an open mic.

Streaming, in practice

Streaming is what removes the single most immersion-breaking moment in a voice interaction: the silence after a question. Instead of composing a full reply and then playing it, IAMX pipelines the whole chain. As soon as the first sentence of an answer exists, it's spoken aloud — and the next sentences are prepared while the first is still playing.

Player:  "What's the fastest route to the harbor?"
              │
              ▼
   [ understand speech ]───► [ think / compose ]───► [ speak ]
                                    │  first sentence ready ──► 🔊 starts here
                                    │  rest still composing ──► queued, seamless
              ▲                                                     │
              └──────────────  barge-in cancels everything  ◄───────┘

The result: perceived latency is the time to the first word, not the time to the last one. A three-sentence reply feels as snappy as a one-word one.

Barge-in, done carefully

Interruption sounds simple but is easy to get wrong — react to every cough and the character is impossible to talk over on purpose; react to nothing and it steamrolls the player. IAMX uses sustained-speech thresholds so a genuine attempt to interject is honored, while a stray noise or a short "mm-hm" isn't. When a real interruption is detected, both the in-progress thought and the audio being spoken are cancelled together, and the character returns to listening immediately.

Barge-in is opt-in per character so you can tune it to your space. A quiet demo booth wants it eager; a loud trade-show floor wants it conservative. See /docs/component for the sensitivity and sustain settings.

Echo guarding

Kiosks and installations almost always run an open microphone next to a loudspeaker. Without protection, the character hears itself and treats its own speech as a new user turn — a runaway loop. IAMX suppresses the character's own output at the input stage and applies a short cooldown after it finishes speaking, so room echo settles before the mic is trusted again. The player can still interrupt at any time; only the character's own voice is filtered out.

Speaks 30+ languages

Characters converse in 30+ languages with natural, expressive voices — not flat text-to-speech, but delivery with pacing and emphasis that suits the line. The same character can greet in one language and switch to another mid-conversation when the player does. Numbers, dates, and long identifiers are normalized so they're spoken the way a person would say them rather than digit-by-digit.

Pick a voice per character in the panel and preview it live before you ship. Voice, language, and speaking style are all part of the character profile — no rebuild required to change them.

Ways to start talking

How does a conversation begin? That depends on where the character lives. A handheld companion wants a button; a always-on kiosk wants to listen for its name; an ambient NPC in a world should only respond to whoever walks up to it. IAMX ships four interaction modes, each a single setting on the character.

ModeHow it startsBest for
Push-to-talk Player holds or presses a key (default T) to talk; releasing ends the turn. Games and apps where the player expects deliberate control and a shared/noisy audio space.
Voice-activated Always listening. Automatically detects when speech starts and stops — no button at all. Hands-free kiosks and demos where the player just walks up and speaks.
Wake word Sleeps until it hears its name, then wakes and listens for the actual request. Always-on characters in rooms with background chatter — stays dormant until addressed.
Proximity Only listens to the player standing near it. Walk away and it stops listening. World NPCs and multi-character scenes where only the nearest character should respond.

Push-to-talk

The most predictable mode: the player owns the microphone. Nothing is captured unless the key is held (or toggled, depending on your setup), which makes it the safest choice for noisy or shared environments where you never want accidental activation. The bind defaults to T and is fully remappable per character.

Voice-activated

The character listens continuously and figures out on its own when a turn begins and ends — start-of-speech and end-of-speech are both detected automatically, with silence trimming so stray room noise doesn't get treated as a question. This is the mode most kiosks run: the player simply talks, and the character answers. Combine it with echo guarding (on by default) and the post-speech cooldown for a clean hands-free loop.

Wake word

Between requests, the character sits dormant and ignores everything it hears until its name is spoken — then it wakes and captures the request that follows. This keeps a character quiet and unobtrusive in a busy room while remaining instantly available. Great for an assistant that shares space with other conversations it shouldn't jump into.

Proximity

Attention follows presence. The character only listens to a player who is physically near it in the scene; step out of range and it stops listening and returns to idle. In a room full of characters, proximity ensures the one you walked up to is the one that answers — not all of them at once.

Modes aren't mutually exclusive by design — e.g. a proximity character can still use voice activation once the player is in range. Layer them to match the space. Full behavior matrix on /docs/component.

Text too

Voice is the headline, but the same conversation loop runs entirely from text — and often should. Use Send Text Input to push a line into the character exactly as if it had been spoken: the character thinks, responds, speaks the reply aloud (or stays silent, your choice), and its animation and state update the same way. Everything that makes voice feel alive — streaming, memory, personality — applies identically to text.

Common uses:

  1. Send — call Send Text Input with the line, from a widget, a quest node, or any trigger.
  2. Respond — the character composes and streams a reply, in character and in context.
  3. Speak (optional) — the reply is spoken with full lip sync and body animation, or delivered as text only.

IAMX also ships an optional in-game chat UI — a ready-made panel with a mic button, text field, and scrolling message history — so you can add a working chat interface without building one yourself. Toggle it on for a quick prototype, or leave it off and wire Send Text Input into your own UMG. See the Blueprint API for the delegates that fire on each message.

Voice and text share one conversation and one memory. A player can start by typing, switch to talking, and the character never loses the thread — it's the same ongoing exchange either way.

Putting it together

A convincing conversational character is a stack of small correct decisions: begin speaking before the thought is done, stop the instant you're cut off, ignore your own echo, and pick the right way to start listening for the space you're in. IAMX makes each of those a setting rather than an engineering project.

Choose the interaction mode — and tune barge-in, echo guarding, language, and voice — per character in the panel or directly on the component. All of it lives together on one screen: /docs/component. New here? Start with the Quickstart, or grab the plugin from the install guide.