Appearance
Realtime API Events
Speak
request.speak.text
Make the robot say something using text-to-speech.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| text | string | ✅ | — | The text to speak |
| abort | boolean | ❌ | false | Abort any earlier planned or ongoing speech. If false, new speech is queued |
| monitor_words | boolean | ❌ | false | Whether to send back response.speak.word while speaking |
request.speak.audio
Make the robot play/say some audio from a URL. The audio must be in WAV format (not MP3).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | ✅ | — | The url from which to play audio |
| text | string | ❌ | "AUDIO" | The corresponding text (for display purposes) |
| lipsync | boolean | ❌ | true | Whether to perform lipsync |
| abort | boolean | ❌ | false | Whether to abort any earlier planned or ongoing speech |
request.speak.stop
Make the robot stop speaking and/or abort any planned speech, or speech being generated.
Speak (Streaming)
request.speak.audio.start
Start speaking from streaming audio.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| sample_rate | int | ❌ | 16000 | The sample rate of the audio data |
| lipsync | boolean | ❌ | true | Whether to add automatic lipsync |
request.speak.audio.data
Send audio data for streaming speech.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| audio | string | ✅ | — | Base64-encoded audio data, 16-bit, mono, little-endian |
request.speak.audio.end
Marks the end of audio data transmission. This should be sent after all audio chunks have been sent.
request.speak.stop
Stop speaking immediately. This command can be used to halt audio playback at any time.
Listen
request.listen.config
Configure speech recognition.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| languages | list | ❌ | ["en-US"] | List of languages to listen for |
| phrases | list | ❌ | [] | List of words or phrases to listen extra carefully for |
request.listen.start
Make the robot listen for speech. If it is already listening, it will reset the current result.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| partial | boolean | ❌ | false | Whether to produce results while user is speaking |
| concat | boolean | ❌ | true | Whether to concatenate results during the same listening session |
| stop_no_speech | boolean | ❌ | true | Stop listening if user silent for too long (no_speech_timeout) |
| stop_robot_start | boolean | ❌ | true | Stop listening when robot start speaking |
| stop_user_end | boolean | ❌ | true | Stop listening when end-of-speech is detected |
| resume_robot_end | boolean | ❌ | false | Resume listening when robot stopped speaking |
| no_speech_timeout | number | ❌ | 8.0 | Timeout to use for stop_no_speech (seconds) |
| end_speech_timeout | number | ❌ | 1.0 | Amount of silence needed to detect end-of-speech (seconds) |
request.listen.stop
Force the robot to stop listening.
Voice
request.voice.config
Set the current voice, using either voice id, name, language, gender, or provider (or a combination).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| voice_id | string | ❌ | — | Voice ID |
| name | string | ❌ | — | Voice name (partial, case insensitive) |
| provider | string | ❌ | — | Voice provider (partial, case insensitive) |
| language | string | ❌ | — | Voice language (e.g. en-US) |
| gender | string | ❌ | — | Voice gender (male/female) |
| input_language | boolean | ❌ | true | Set input language to same as voice |
request.voice.status
Gets the current and available voices.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| voice_id | boolean | ❌ | true | Current voice id |
| voice_list | boolean | ❌ | true | List of available voices |
Attention
request.attend.user
Make the robot attend to a user. If the user is lost, the robot will attend nobody. If the user comes back later, the robot will attend to that user again. If the 'closest' user is specified, the robot will always attend the closest user.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| user_id | string | ❌ | closest | The ID of the user to attend, or 'closest' |
| slack_pitch | number | ❌ | 15 | Max difference (deg) between head pitch and gaze pitch |
| slack_yaw | number | ❌ | 5 | Max difference (deg) between head yaw and gaze yaw |
| slack_timeout | number | ❌ | 3000 | Max time (ms) head direction can diverge from gaze (-1 is infinite) |
| speed | string | ❌ | medium | Speed of head movement (xslow, slow, medium, fast, xfast) |
request.attend.location
Make the robot attend to a specific location, as specified in meters, relative to the robot.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| x | number | ✅ | — | Horizontal position |
| y | number | ✅ | — | Vertical position |
| z | number | ✅ | — | Distance from robot |
| slack_pitch | number | ❌ | 15 | Max difference (deg) between head pitch and gaze pitch |
| slack_yaw | number | ❌ | 5 | Max difference (deg) between head yaw and gaze yaw |
| slack_timeout | number | ❌ | 3000 | Max time (ms) head direction can diverge from gaze (-1 is infinite) |
| speed | string | ❌ | medium | Speed of head movement (xslow, slow, medium, fast, xfast) |
request.attend.nobody
Make the robot attend to nobody.
Gestures
request.gesture.start
Make the robot perform a gesture.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | ✅ | — | Name of the gesture (see API for values) |
| intensity | number | ❌ | 1.0 | Intensity of the gesture |
| duration | number | ❌ | 1.0 | Duration of gesture |
| monitor | boolean | ❌ | false | Whether to receive events when gesture starts and ends |
Face
request.face.params
Set facial animation parameters directly.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| params | object | ✅ | — | Face parameters |
request.face.headpose
Control the head pose of the robot, as specified in degrees along yaw, pitch and roll.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| yaw | number | ❌ | 0 | Yaw (sideways) angle in degrees |
| pitch | number | ❌ | 0 | Pitch (up/down) angle in degrees |
| roll | number | ❌ | 0 | Roll angle in degrees |
| relative | boolean | ❌ | false | Whether to use relative or absolute control |
| speed | string | ❌ | medium | Speed of head movement (xslow, slow, medium, fast, xfast) |
request.face.config
Set the current mask and character (face_id), and/or face visibility.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| face_id | string | ❌ | KEEP | face ID |
| visibility | boolean | ❌ | true | Turn on or off face visibility |
| microexpressions | boolean | ❌ | true | Turn on or off facial microexpressions |
| blinking | boolean | ❌ | true | Turn on or off blinking |
| head_sway | boolean | ❌ | false | Turn on or off automatic minor head sways |
request.face.status
Gets the current and available masks and characters (face_id).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| face_id | boolean | ❌ | true | Current face id |
| face_list | boolean | ❌ | true | List of available faces |
request.face.reset
Resets all facial parameters to default.
LED
request.led.set
Set the color of the LED.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| color | string | ✅ | — | Color in hex format |
request.led.set.individual
Set individual LED colors by index (0-85)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| leds | string | ✅ | — | Object mapping LED indices (0-85) to hex color values |
Users
Audio
request.audio.start
Start capturing audio from the microphone and/or speaker. Per default, only microphone will be captured.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| sample_rate | int | ❌ | 16000 | The sample rate of the audio data to receive |
| microphone | boolean | ❌ | true | Whether to capture the microphone |
| speaker | boolean | ❌ | false | Whether to capture the speaker |
request.audio.stop
Stops capturing audio from the microphone and/or speaker.