RunAnywhere.voice assembles speech-to-text, a language model, and text-to-speech into one
session that listens, thinks, and answers out loud. It owns the microphone while it runs.
Signature
Web takes a single options object, where Swift and Kotlin take named parameters.vad unset ensures the catalogued default Silero VAD.
VoiceSession
say speaks a line without waiting for the user, which is how you greet someone.
interrupt cuts off whatever is being spoken.
Always close() the session. It holds the microphone, and the browser keeps the recording
indicator lit until you do.
Turn handling
Raise
interruption.minDurationMs in a noisy room, or a cough cuts the model off.
Steering the replies
maxOutputTokens lower than you would for a chat
interface.
A complete session
pagehide is what stops the session surviving a
navigation.