Overview

NPSC is a real-time bridge between ElevenLabs conversational AI and your game engine. It handles push-to-talk audio, real-time lipsync blendshapes, topic routing, and bidirectional UDP communication.

NPSC architecture diagram
Tray-first workflow

Runs in the system tray. Open the Control Center from the tray to configure and manage services.

Visual configuration

Set API keys, runtime options, and trigger rules from the Control Center.

Advanced override

Use JSON advanced mode when you need technical control.

Requirements

  • Operating system: Windows 10 or later (64-bit).
  • Microphone: Any input device recognized by Windows.
  • Internet: Required for ElevenLabs API and first-run dependency installation.
  • Disk space: ~4 GB after full setup (Python, ONNX runtime, ffmpeg, models, and dependencies).
  • GPU: NVIDIA GPU recommended. All GPU dependencies are bundled. CPU fallback is seamless.
  • Ports: UDP ports 7778, 8888, 8889, 11111 must be available locally.
  • ElevenLabs account: An API key and a Conversational AI agent on elevenlabs.io.

Installation

  1. Run NPSC Setup (Standard Edition).exe or NPSC Setup (Advanced Edition).exe.
  2. Select your install location.
  3. Finish setup and launch NPSC.
On first run, NPSC prepares an isolated local runtime inside the install folder. This avoids global Python/CUDA conflicts and configures bundled ffmpeg when available.

First run

  • Open NPSC.exe from Start Menu or Desktop shortcut.
  • If prompted, allow the first-run setup to install dependencies.
  • Use the tray icon to open the Control Center.

LiveLink setup

NPSC streams ARKit-compatible blendshapes over LiveLink at ~60 Hz. It is built and tested with Unreal Engine 5 MetaHumans, but any engine or application that consumes ARKit blendshapes can receive the data.

In Unreal Engine, NPSC appears automatically as a LiveLink source. No manual preset or subject creation is needed. The property names may vary between versions: use the toggle above to see both common layouts.
The LiveLink stream is only active while the Agent Player is running in the Control Center. Start the player before connecting your engine.

Control Center

The Control Center is the primary place to manage runtime settings. All fields auto-fill with their current values.

  • Connection tab: API key, agent identity, language defaults, face API endpoint, state receiver settings, and external app UDP settings.
  • Animation & Routing tab: Keyboard shortcuts, face animation tuning, topic tool routing, and event triggers.
  • Logs tab: Live log output from running services.
  • Advanced tab: JSON overrides for any internal parameter (UPPER_CASE keys only).
All settings are saved automatically when you click Save in the Control Center.

ElevenLabs agent setup

Save your API key and Agent ID on the Connection tab. NPSC talks to ElevenLabs for you and configures the agent automatically so you never have to touch the dashboard. Your prompt, voice, tools, and first-message text stay exactly as you set them.

ElevenLabs agent configuration
Click Re-sync agent on the Connection tab if you change something in the ElevenLabs dashboard and want NPSC's defaults applied again.

Keyboard shortcuts

Active while the agent player is running. Defaults shown below.

Keyboard shortcuts
Key names must match the keyboard library format (e.g. "Left Ctrl", "space", "caps lock"). Language switching is available via the flag picker in the log panel, UDP commands, or by enabling auto-detect.

Advanced mode

The Advanced tab accepts raw JSON overrides for any internal parameter not exposed in the regular UI.

Invalid JSON is rejected. Keep a backup of your values before major changes.

Topic tool routing

If your ElevenLabs agent has a client tool that outputs a topic name, NPSC forwards it to your app via UDP.

Topic tool routing flow
  1. Add a client tool to your agent (e.g. route_topic) with a string parameter (e.g. topic).
  2. Define the possible values in your tool description.
  3. When the AI calls route_topic(topic="Pricing"), NPSC sends [TOOL_CALL][Pricing] to your app.
The Tool Name and Parameter Name must match exactly what you named them in ElevenLabs.

Optional: set a Fallback Topic for when the AI responds without calling the tool.

UDP protocol reference

Two-way: your app sends commands to NPSC, and NPSC sends events and data back.

Inbound commands

Inbound UDP commands

Outbound plain strings

Outbound plain string messages

Outbound JSON messages

Disabled by default. To enable, open the Advanced tab in the Control Center and turn on transcript forwarding.
Outbound JSON messages

LiveLink (port 11111) Binary blendshape packets at ~60 Hz (ARKit 52 blendshapes).

JSON messages may include turn_id and language fields when those features are active.

External audio input

When your app handles microphone access, enable External Audio Input mode. NPSC receives raw PCM audio over UDP instead of using the local mic.

External audio integration data flow

Audio format

Sample rate

16,000 Hz

Channels

1 (mono)

Encoding

16-bit signed int, little-endian

Datagram size

Up to 65,535 bytes (recommended: 1,600 bytes / 50 ms)

Configuration

Enable "External audio input" in the Connection tab and set the Audio Input Port (default: 8890).

Integration flow

  1. Send START_RECORDING on the command port (8889)
  2. Stream raw PCM datagrams to the audio port (8890)
  3. Send STOP_RECORDING when done

Python example

Python code example for external audio integration
Keyboard PTT still works as a fallback alongside external audio mode.

Event triggers

Optional UDP messages sent at specific lifecycle moments to your app's send port.

  • event when the trigger fires (on_start, on_stop)
  • action the operation to perform (send_udp)
  • value the message payload

Custom audio assets

NPSC includes a user-editable audio system for timeout phrases and pre-recorded script clips. Drop your WAV files into the folder structure below and configure in _core/runtime/player/user_editable/runtime_audio_manifest.py.

Audio folder structure
Timeout phrases

Set ENABLE_TIMEOUT_PHRASES = True. Naming: <lang>_<index>.wav

Script clips

Set ENABLE_SCRIPT_CLIPS = True. Trigger via PLAY_SCRIPT:Topic:lang

The _core/runtime/player/user_editable/ folder is yours to modify. Changes don't require reinstalling, just restart services.

Editions

NPSC is available in two editions:

Standard Edition

Pre-compiled runtime for performance and security. Configuration through the Control Center GUI and editable config files. Source code is not included.

Advanced Edition

Full Python source code included inside the hidden _core/ folder. Enable "Show hidden items" in Explorer to access it. Inspect, modify, and extend the runtime.

Troubleshooting

  • Open logs from the tray menu, then Open Logs Folder.
  • If startup fails, re-run NPSC.exe to retry runtime setup.
  • Confirm your ElevenLabs API key and agent ID are valid.
  • GPU issues? NPSC detects and uses GPU automatically. If unavailable, it runs on CPU seamlessly.

Support

For questions, issues, or feedback, use the support channel provided with your purchase or reach out by email.

NPSC can be copied to additional machines for kiosk or exhibition use. Zip the installed folder and extract on the target PC.