Voice, Input, and Interaction
Voice availability depends on microphone permission, the selected mode, provider configuration and the installed device support. Text input remains available when voice cannot be used.
Quest and XR
- PTT hold: press and hold to speak.
- PTT toggle: tap to start or stop speaking.
- A-to-talk: use the supported controller button for voice input.
- Laser/pointing: focus panels and objects.
- Hand tracking: where supported, use pinch tap and pinch hold/drag.
iOS
- Double-tap the main screen to start or stop voice input.
- Long-press the main screen for hold-to-talk.
- Drag vertically with one finger to scroll supported popups or the open navigation drawer. Two-finger vertical dragging remains available where one-finger scrolling does not apply.
- Two-finger pinch distance adjusts forward movement.
- Allow microphone permission when prompted, or enable it later in Settings.
Supported web links can open in an in-app Safari view.
Android and iOS tactile feedback
Supported phones and tablets can play short haptic feedback for taps, snaps, errors and notification-opening events. Availability and feel depend on the device. Android respects the system touch-feedback setting. These controls do not add continuous speech vibration or background notification vibration. Quest keeps its controller feedback; Web and terminal controls are unchanged.
Desktop/Web
Mouse and keyboard provide the flat-mode interaction controls. Web microphone capture requires browser support and permission. If recording is interrupted or cannot finish, record the request again or use text input.
Hosted spatial replies
The hosted 3D Web world can speak final replies through its configured server voice. Audio needs a click, tap or key gesture in the page. Unlocking audio does not replay an old reply. Text remains available when audio is blocked or fails; replies over 4096 UTF-8 bytes remain text-only.
Use Mute voice to stop playback. A new accepted submission, Chat cancellation or leaving the page stops the old browser speech. Selecting another avatar does not necessarily stop an existing reply. These controls do not guarantee that server-side speech preparation already in progress is cancelled.
Shared controls
Tap or click to open and dismiss supported surfaces. Use the visible handles to drag panels. Risky actions still need their normal review and approval, whether the request arrives by voice or text.
Voice input and output are separate settings. Local speech recognition uses a supported installed recognizer; local speech generation needs its own voice runtime and model. Installing one does not make the other available.
Open-mic mode and privacy
Use set_voice_mode to choose push_to_talk or open_mic. Open-mic capture starts
only after mode selection and microphone permission. Muting or changing modes
stops the current capture. Push-to-talk remains an explicit control.
In private open-mic mode, use complete shortcuts such as “mute microphone”, “volume up” or “open the file browser”. Questions, negated commands and combined requests go to the assistant. A sound or wake indicator is not permission to send audio to a cloud service.
You can disable cloud transcription with privacy_allow_cloud_stt: false.
Then a usable local speech model is required. If it is unavailable, status shows
Local speech model unavailable (privacy mode) and audio is not silently sent
to cloud transcription. Use text input or install/configure the supported local
model through your operator's guidance.
Voice output and fallbacks
When cloud voice output is selected and authenticated, Telemus can use its configured cloud voice provider. Offline/private output uses a supported local voice runtime when installed. If no usable output provider is available, replies remain text-only.
Voice setup may prepare in the background. Missing assets can prevent local speech even when the app itself is ready. Performance varies by device, model and configuration; a status result is not a promise of response latency.
Some operating-system or browser voices are audible-only. They can speak but do not provide the app audio needed for spatial positioning or facial lip-sync. PCM-capable voices can support those features when the output and avatar support them. An avatar without a supported facial rig retains its normal speaking indicator. Nova and Orbit currently provide body animation without facial lip-sync, as their selection descriptions explain.
On iOS, command-launched local Kokoro voice is unavailable. Use supported cloud voice or text. Android/Quest local speech defaults to a less hurried 1.20× rate; voice behavior and available adjustments depend on the installed release.
Speech engine readiness
Use tts_status for voice output, stt_status for recognition and
voice_mode_status or the terminal /voice command for mode readiness.
Recognition status distinguishes a configured model, an installed model, initialization in progress, a ready recognizer and a failure. A model file alone does not prove readiness. An unknown state is not a confirmed model failure. Microphone permission and active capture must also be checked separately.
A generic Android speech recognizer may need a network connection. Do not assume it is offline merely because it is provided by the device. If cloud use is disallowed and local recognition is unavailable, use text input.
A successful synthesis check does not prove that your speakers played sound. Check mute, volume, output routing and device permissions if text arrives but no voice is heard. These status meanings apply across native, Web and TUI controls.
Local voice-file support scope
Supported desktop/headless channel hosts with a configured local Whisper model
can transcribe Ogg/Opus voice notes from messages without a typed caption. Current
limits are 8 MiB and 120 seconds. The tiny.en model recognizes English only.
There is no cloud transcription fallback for this workflow.
The assistant receives the transcript as message content. Spoken text cannot approve an action or invoke slash controls such as stop, compact or think. Type those controls directly. If recognition fails, resend the request as text.
Transcripts can be retained in normal conversation history. Review privacy and retention settings before sending sensitive audio. Channel voice files are separate from microphone capture and browser dictation.
Offline voice temporary files
Local voice generation can use private temporary files for speech text and audio. Normal completion and handled failures remove them; a crash or forced exit can leave files behind. An unsafe temporary-storage location causes synthesis to fail. Use a trusted operating-system temporary folder and contact your operator if storage errors persist.
If controls fail
Check the selected mode, close obstructing overlays, and confirm microphone and file/network permissions. Use text input while recovering voice. For panel behavior, see Navigation, Panels, and Workspace Surfaces.