Voice & language

Last updated  Aug 4, 2026

Voice is not a separate product — a spoken turn runs through the same agent, the same tools, and the same widgets as a typed one. This page covers what the SDK handles for you and the two behaviors worth knowing about.

How a voice turn works

The user holds the wave to talk and releases to send, or taps the keyboard icon to type. The SDK streams the clip to the engine, transcription happens server-side, and the answer comes back as speech plus a render spec — widgets mount while the reply is being spoken.

  • No on-device speech recognition is used — transcription is part of the engine, so behavior is identical across platforms.
  • The first turn is fastest when you call prewarm at launch — the engine connection and caches are already open when the user speaks.

Voice-in, voice-out

Spoken turns are answered with speech; typed turns stay silent text. Users are never read a reply they typed, and never have to read a reply they asked for out loud.

Barge-in

Users can interrupt the assistant mid-reply — pressing the wave while it is speaking stops playback immediately and starts listening. No configuration required.

Arabic

  • 10+ Arabic dialects in — users speak the way they actually speak.
  • Replies come back in clear, standard Arabic, never an imitated dialect.
  • The agent answers in the user’s language: an Arabic question gets an Arabic answer, an English one gets English.
  • Widgets render right-to-left automatically — quick replies, lists, and confirmations included.

Permissions

PlatformRequirement
iOSNSMicrophoneUsageDescription
AndroidRECORD_AUDIO
FlutterBoth of the above, per platform folder
The SDK asks for microphone permission the first time the user starts a voice turn — not at launch.
© 2026 VoqalVoqal SDK & engine documentation