@ottervoice/runtime-web
Documentation / @ottervoice/runtime-web
@ottervoice/runtime-web
Section titled “@ottervoice/runtime-web”Browser runtime adapter for OtterVoice, with microphone capture, VAD metering, barge-in pre-roll, and audio playback.
Install
Section titled “Install”npm install @ottervoice/core @ottervoice/runtime-webimport { createWebRuntime } from '@ottervoice/runtime-web';
const runtime = createWebRuntime();The default runtime uses getUserMedia, MediaRecorder, AudioContext, and
HTMLAudioElement. These browser primitives can be injected for tests or
non-standard hosts.
Documentation · Web example · GitHub
License
Section titled “License”MIT
Classes
Section titled “Classes”WebAudioInput
Section titled “WebAudioInput”Defined in: runtime-web/src/audio-input.ts:109
Microphone capture via getUserMedia + MediaRecorder timeslices. Suitable
for near-real-time ASR; streaming PCM (AudioWorklet) is a future enhancement.
When an AudioContext is available, WebAudioInput.onVolume reports RMS levels for rule-based turn detection.
Platform primitives are injected; createWebRuntime supplies the browser globals by default.
Implements
Section titled “Implements”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new WebAudioInput(options): WebAudioInput;Defined in: runtime-web/src/audio-input.ts:128
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options |
WebAudioInputOptions |
Returns
Section titled “Returns”Methods
Section titled “Methods”onChunk()
Section titled “onChunk()”onChunk(cb): () => void;Defined in: runtime-web/src/audio-input.ts:350
Subscribe to encoded / PCM chunks.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
cb |
(chunk) => void |
Returns
Section titled “Returns”Unsubscribe function.
() => void
Implementation of
Section titled “Implementation of”onError()
Section titled “onError()”onError(cb): () => void;Defined in: runtime-web/src/audio-input.ts:360
Subscribe to capture failures.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
cb |
(error) => void |
Returns
Section titled “Returns”Unsubscribe function.
() => void
Implementation of
Section titled “Implementation of”onVolume()
Section titled “onVolume()”onVolume(cb): () => void;Defined in: runtime-web/src/audio-input.ts:355
Subscribe to normalized volume levels in 0..1 for VAD.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
cb |
(level) => void |
Returns
Section titled “Returns”Unsubscribe function.
() => void
Implementation of
Section titled “Implementation of”pause()
Section titled “pause()”pause(): Promise<void>;Defined in: runtime-web/src/audio-input.ts:296
Pause capture without tearing down permission / hardware (optional).
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”requestPermission()
Section titled “requestPermission()”requestPermission(): Promise<boolean>;Defined in: runtime-web/src/audio-input.ts:138
Prompt for mic permission; false should surface as a session error.
Returns
Section titled “Returns”Promise<boolean>
Implementation of
Section titled “Implementation of”AudioInputAdapter.requestPermission
resume()
Section titled “resume()”resume(): Promise<void>;Defined in: runtime-web/src/audio-input.ts:300
Resume after pause.
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”resumeCapture()
Section titled “resumeCapture()”resumeCapture(options?): Promise<void>;Defined in: runtime-web/src/audio-input.ts:313
Resume encoded chunk capture after suspendCapture. Runtimes with a
barge-in pre-roll buffer may include it when includePreRoll is true.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options |
{ includePreRoll?: boolean; } |
- |
options.includePreRoll? |
boolean |
Flush retained pre-roll into the next chunks. |
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”AudioInputAdapter.resumeCapture
start()
Section titled “start()”start(options?): Promise<void>;Defined in: runtime-web/src/audio-input.ts:148
Begin capture.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options |
AudioInputOptions |
Preferred rate / encoding hints the runtime may honor. |
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”stop()
Section titled “stop()”stop(): Promise<void>;Defined in: runtime-web/src/audio-input.ts:272
Stop capture and release resources tied to the current start.
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”suspendCapture()
Section titled “suspendCapture()”suspendCapture(): Promise<void>;Defined in: runtime-web/src/audio-input.ts:304
Suspend encoded chunk delivery while leaving volume/VAD monitoring active. A runtime may retain a bounded barge-in pre-roll internally.
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”AudioInputAdapter.suspendCapture
WebAudioOutput
Section titled “WebAudioOutput”Defined in: runtime-web/src/audio-output.ts:96
Playback via an HTMLAudioElement. audioUrl plays directly; an
audioBuffer is wrapped in an object URL (which requires createObjectURL).
Implements
Section titled “Implements”Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new WebAudioOutput(options): WebAudioOutput;Defined in: runtime-web/src/audio-output.ts:114
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options |
WebAudioOutputOptions |
Returns
Section titled “Returns”Methods
Section titled “Methods”onEnd()
Section titled “onEnd()”onEnd(cb): () => void;Defined in: runtime-web/src/audio-output.ts:541
Subscribe to playback end (natural finish or stop).
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
cb |
() => void |
Returns
Section titled “Returns”Unsubscribe function.
() => void
Implementation of
Section titled “Implementation of”onError()
Section titled “onError()”onError(cb): () => void;Defined in: runtime-web/src/audio-output.ts:546
Subscribe to playback failures.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
cb |
(error) => void |
Returns
Section titled “Returns”Unsubscribe function.
() => void
Implementation of
Section titled “Implementation of”onStart()
Section titled “onStart()”onStart(cb): () => void;Defined in: runtime-web/src/audio-output.ts:531
Subscribe to playback start.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
cb |
() => void |
Returns
Section titled “Returns”Unsubscribe function.
() => void
Implementation of
Section titled “Implementation of”onVolume()
Section titled “onVolume()”onVolume(cb): () => void;Defined in: runtime-web/src/audio-output.ts:536
Subscribe to normalized RMS of the assistant audio currently being played (used as an acoustic echo reference for barge-in).
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
cb |
(level, at?) => void |
Returns
Section titled “Returns”Unsubscribe function.
() => void
Implementation of
Section titled “Implementation of”pause()
Section titled “pause()”pause(): Promise<void>;Defined in: runtime-web/src/audio-output.ts:350
Pause playback without discarding the current utterance (optional).
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”play()
Section titled “play()”play(input): Promise<void>;Defined in: runtime-web/src/audio-output.ts:131
Play a complete encoded buffer or URL.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
input |
AudioPlaybackInput |
URL and/or in-memory bytes plus optional MIME / volume. |
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”resume()
Section titled “resume()”resume(): Promise<void>;Defined in: runtime-web/src/audio-output.ts:365
Resume after AudioOutputAdapter.pause.
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”startPcmStream()
Section titled “startPcmStream()”startPcmStream(options): Promise<AudioOutputStream>;Defined in: runtime-web/src/audio-output.ts:219
Begin incremental raw-PCM playback for low-latency speech streaming.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options |
PcmAudioStreamOptions |
Encoding, sample rate, and channel layout for subsequent writes. |
Returns
Section titled “Returns”Promise<AudioOutputStream>
An AudioOutputStream that must be close()d.
Implementation of
Section titled “Implementation of”AudioOutputAdapter.startPcmStream
stop()
Section titled “stop()”stop(): Promise<void>;Defined in: runtime-web/src/audio-output.ts:388
Stop current playback and cancel any open PCM stream.
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”unlock()
Section titled “unlock()”unlock(): Promise<void>;Defined in: runtime-web/src/audio-output.ts:116
Prime browser autoplay permission from a direct user gesture.
Returns
Section titled “Returns”Promise<void>
Implementation of
Section titled “Implementation of”Interfaces
Section titled “Interfaces”AnalyserNodeLike
Section titled “AnalyserNodeLike”Defined in: runtime-web/src/audio-input.ts:56
Minimal AnalyserNode surface for time-domain RMS metering.
Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
fftSize |
number |
FFT size controlling analyser resolution. | runtime-web/src/audio-input.ts:58 |
frequencyBinCount |
number |
Number of bins available from AnalyserNodeLike.getByteTimeDomainData. | runtime-web/src/audio-input.ts:60 |
Methods
Section titled “Methods”getByteTimeDomainData()
Section titled “getByteTimeDomainData()”getByteTimeDomainData(array): void;Defined in: runtime-web/src/audio-input.ts:62
Fill array with uint8 time-domain samples.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
array |
Uint8Array |
Returns
Section titled “Returns”void
AudioContextLike
Section titled “AudioContextLike”Defined in: runtime-web/src/audio-input.ts:66
Minimal AudioContext surface for mic metering (not full Web Audio).
Methods
Section titled “Methods”close()
Section titled “close()”close(): Promise<void>;Defined in: runtime-web/src/audio-input.ts:69
Returns
Section titled “Returns”Promise<void>
createAnalyser()
Section titled “createAnalyser()”createAnalyser(): AnalyserNodeLike;Defined in: runtime-web/src/audio-input.ts:68
Returns
Section titled “Returns”createMediaStreamSource()
Section titled “createMediaStreamSource()”createMediaStreamSource(stream): { connect: void;};Defined in: runtime-web/src/audio-input.ts:67
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
stream |
MediaStreamLike |
Returns
Section titled “Returns”{ connect: void;}| Name | Type | Defined in |
|---|---|---|
connect() |
(node) => void |
runtime-web/src/audio-input.ts:67 |
AudioElementLike
Section titled “AudioElementLike”Defined in: runtime-web/src/audio-output.ts:15
Minimal HTMLAudioElement / Audio surface for one-shot encoded playback.
Injected via WebAudioOutputOptions.createAudio.
Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
src |
string |
Object URL or remote URL to play. | runtime-web/src/audio-output.ts:17 |
volume |
number |
Playback gain in [0, 1]. |
runtime-web/src/audio-output.ts:19 |
Methods
Section titled “Methods”addEventListener()
Section titled “addEventListener()”addEventListener(type, listener): void;Defined in: runtime-web/src/audio-output.ts:22
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
type |
string |
listener |
() => void |
Returns
Section titled “Returns”void
pause()
Section titled “pause()”pause(): void;Defined in: runtime-web/src/audio-output.ts:21
Returns
Section titled “Returns”void
play()
Section titled “play()”play(): Promise<void>;Defined in: runtime-web/src/audio-output.ts:20
Returns
Section titled “Returns”Promise<void>
AudioEnvelope
Section titled “AudioEnvelope”Defined in: runtime-web/src/audio-conversion.ts:22
Short RMS timeline of decoded assistant audio. Produced by measureBrowserAudioEnvelope and used as a playback reference for echo-aware barge-in.
Properties
Section titled “Properties”BlobLike
Section titled “BlobLike”Defined in: runtime-web/src/audio-input.ts:22
Minimal Blob surface for MediaRecorder dataavailable payloads.
Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
size |
number |
Byte length of the blob. | runtime-web/src/audio-input.ts:24 |
Methods
Section titled “Methods”arrayBuffer()
Section titled “arrayBuffer()”arrayBuffer(): Promise<ArrayBuffer>;Defined in: runtime-web/src/audio-input.ts:26
Copy blob contents into an ArrayBuffer.
Returns
Section titled “Returns”Promise<ArrayBuffer>
MediaRecorderLike
Section titled “MediaRecorderLike”Defined in: runtime-web/src/audio-input.ts:33
Minimal MediaRecorder surface for chunked mic encoding.
Injected via WebAudioInputOptions.mediaRecorder / browser global.
Methods
Section titled “Methods”addEventListener()
Section titled “addEventListener()”addEventListener(type, listener): void;Defined in: runtime-web/src/audio-input.ts:43
Subscribe to recorder events (e.g. dataavailable, error, stop).
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
type |
string |
listener |
(event) => void |
Returns
Section titled “Returns”void
pause()
Section titled “pause()”pause(): void;Defined in: runtime-web/src/audio-input.ts:39
Pause encoding without ending the recording.
Returns
Section titled “Returns”void
resume()
Section titled “resume()”resume(): void;Defined in: runtime-web/src/audio-input.ts:41
Resume after MediaRecorderLike.pause.
Returns
Section titled “Returns”void
start()
Section titled “start()”start(timeslice?): void;Defined in: runtime-web/src/audio-input.ts:35
Begin encoding; optional timeslice (ms) for periodic dataavailable events.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
timeslice? |
number |
Returns
Section titled “Returns”void
stop()
Section titled “stop()”stop(): void;Defined in: runtime-web/src/audio-input.ts:37
Stop encoding and release the recorder.
Returns
Section titled “Returns”void
MediaStreamLike
Section titled “MediaStreamLike”Defined in: runtime-web/src/audio-input.ts:16
Minimal MediaStream surface used by WebAudioInput.
Methods
Section titled “Methods”getTracks()
Section titled “getTracks()”getTracks(): MediaTrackLike[];Defined in: runtime-web/src/audio-input.ts:18
Tracks belonging to the stream (mic, etc.).
Returns
Section titled “Returns”MediaTrackLike
Section titled “MediaTrackLike”Defined in: runtime-web/src/audio-input.ts:10
Minimal MediaStreamTrack surface used to stop capture.
Methods
Section titled “Methods”stop()
Section titled “stop()”stop(): void;Defined in: runtime-web/src/audio-input.ts:12
End this track (releases the microphone).
Returns
Section titled “Returns”void
PcmAudioBufferLike
Section titled “PcmAudioBufferLike”Defined in: runtime-web/src/audio-output.ts:26
Minimal AudioBuffer surface for scheduling PCM frames.
Methods
Section titled “Methods”getChannelData()
Section titled “getChannelData()”getChannelData(channel): Float32Array;Defined in: runtime-web/src/audio-output.ts:28
Mutable float samples for one channel.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
channel |
number |
Returns
Section titled “Returns”Float32Array
PcmAudioBufferSourceLike
Section titled “PcmAudioBufferSourceLike”Defined in: runtime-web/src/audio-output.ts:32
Minimal AudioBufferSourceNode surface for gapless PCM streaming.
Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
buffer |
| PcmAudioBufferLike | null |
Buffer to play, or null before assignment. |
runtime-web/src/audio-output.ts:34 |
Methods
Section titled “Methods”addEventListener()
Section titled “addEventListener()”addEventListener(type, listener): void;Defined in: runtime-web/src/audio-output.ts:38
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
type |
"ended" |
listener |
() => void |
Returns
Section titled “Returns”void
connect()
Section titled “connect()”connect(destination): unknown;Defined in: runtime-web/src/audio-output.ts:35
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
destination |
unknown |
Returns
Section titled “Returns”unknown
start()
Section titled “start()”start(when?): void;Defined in: runtime-web/src/audio-output.ts:36
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
when? |
number |
Returns
Section titled “Returns”void
stop()
Section titled “stop()”stop(): void;Defined in: runtime-web/src/audio-output.ts:37
Returns
Section titled “Returns”void
PcmAudioContextLike
Section titled “PcmAudioContextLike”Defined in: runtime-web/src/audio-output.ts:45
Minimal Web Audio context used for incremental PCM playback and echo reference. Distinct from the mic-metering context shim on WebAudioInput.
Properties
Section titled “Properties”Methods
Section titled “Methods”createBuffer()
Section titled “createBuffer()”createBuffer( numberOfChannels, length, sampleRate): PcmAudioBufferLike;Defined in: runtime-web/src/audio-output.ts:52
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
numberOfChannels |
number |
length |
number |
sampleRate |
number |
Returns
Section titled “Returns”createBufferSource()
Section titled “createBufferSource()”createBufferSource(): PcmAudioBufferSourceLike;Defined in: runtime-web/src/audio-output.ts:57
Returns
Section titled “Returns”resume()
Section titled “resume()”resume(): Promise<void>;Defined in: runtime-web/src/audio-output.ts:50
Returns
Section titled “Returns”Promise<void>
suspend()
Section titled “suspend()”suspend(): Promise<void>;Defined in: runtime-web/src/audio-output.ts:51
Returns
Section titled “Returns”Promise<void>
PrepareBrowserAudioOptions
Section titled “PrepareBrowserAudioOptions”Defined in: runtime-web/src/audio-conversion.ts:33
Options for prepareBrowserAudio when converting browser capture to WAV. Use to cap capture length or downsample before sending to an Audio LLM.
Properties
Section titled “Properties”WebAudioInputOptions
Section titled “WebAudioInputOptions”Defined in: runtime-web/src/audio-input.ts:80
Injected primitives and timing knobs for WebAudioInput. Prefer createWebRuntime to wire browser globals; construct directly only when substituting stubs or a custom capture stack.
Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
audioContext? |
AudioContextCtor |
Override AudioContext (defaults to the browser global). | runtime-web/src/audio-input.ts:94 |
bargeInPreRollMs? |
number |
Encoded audio retained while playback is filtered for barge-in. Default 500 ms. | runtime-web/src/audio-input.ts:92 |
getUserMedia |
GetUserMedia |
Microphone permission + stream factory (getUserMedia). |
runtime-web/src/audio-input.ts:82 |
mediaRecorder |
MediaRecorderCtor |
Encoder constructor (MediaRecorder). |
runtime-web/src/audio-input.ts:84 |
mimeType? |
string |
MIME type for the recorder, e.g. audio/webm. |
runtime-web/src/audio-input.ts:86 |
now? |
() => number |
Override clock used for chunk timestamps and timers (tests). | runtime-web/src/audio-input.ts:96 |
timesliceMs? |
number |
Emit a chunk every N ms (MediaRecorder timeslice). Default 100. | runtime-web/src/audio-input.ts:88 |
volumePollMs? |
number |
Poll microphone RMS level every N ms for VAD. Default 50. | runtime-web/src/audio-input.ts:90 |
WebAudioOutputOptions
Section titled “WebAudioOutputOptions”Defined in: runtime-web/src/audio-output.ts:65
Injected playback primitives for WebAudioOutput.
Prefer createWebRuntime to wire browser Audio / URL / AudioContext;
pass stubs when testing or embedding outside a full DOM.
Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
createAudio |
() => AudioElementLike |
Create a playback element (default () => new Audio() in the browser). |
runtime-web/src/audio-output.ts:67 |
createObjectURL? |
(blob) => string |
Required for audioBuffer playback; turns a Blob into a URL. |
runtime-web/src/audio-output.ts:69 |
createPcmAudioContext? |
() => PcmAudioContextLike |
Create a Web Audio context used for gapless incremental PCM playback. | runtime-web/src/audio-output.ts:75 |
measureAudio? |
(audio) => Promise<AudioEnvelope> |
Decode encoded audio into RMS frames used as an acoustic echo reference. | runtime-web/src/audio-output.ts:73 |
now? |
() => number |
Override clock used for envelope timing (tests). | runtime-web/src/audio-output.ts:77 |
revokeObjectURL? |
(url) => void |
Release an object URL from WebAudioOutputOptions.createObjectURL. | runtime-web/src/audio-output.ts:71 |
WebRuntime
Section titled “WebRuntime”Defined in: runtime-web/src/index.ts:62
Browser RuntimeAdapter returned by createWebRuntime.
Exposes typed WebAudioInput / WebAudioOutput; no network
adapter — providers use global fetch / WebSocket.
Extends
Section titled “Extends”Properties
Section titled “Properties”| Property | Type | Description | Overrides | Inherited from | Defined in |
|---|---|---|---|---|---|
audioInput |
WebAudioInput |
Microphone capture via MediaRecorder + optional RMS metering. | RuntimeAdapter.audioInput |
- | runtime-web/src/index.ts:64 |
audioOutput |
WebAudioOutput |
Encoded and incremental PCM playback. | RuntimeAdapter.audioOutput |
- | runtime-web/src/index.ts:66 |
logger? |
LoggerAdapter |
Optional logger; core uses it sparingly. | - | RuntimeAdapter.logger |
core/dist/types.d.ts:853 |
network? |
NetworkAdapter |
Optional HTTP/WebSocket hooks for providers. | - | RuntimeAdapter.network |
core/dist/types.d.ts:849 |
storage? |
RuntimeStorageAdapter |
Optional persistence for caches. | - | RuntimeAdapter.storage |
core/dist/types.d.ts:851 |
WebRuntimeOptions
Section titled “WebRuntimeOptions”Defined in: runtime-web/src/index.ts:24
Capture, metering, and playback overrides for createWebRuntime.
Omit fields to use browser globals (navigator.mediaDevices, MediaRecorder,
Audio, URL, AudioContext). Inject stubs in tests or non-standard hosts.
Properties
Section titled “Properties”| Property | Type | Description | Defined in |
|---|---|---|---|
audioContext? |
AudioContextCtor |
Override AudioContext used for RMS metering. |
runtime-web/src/index.ts:50 |
bargeInPreRollMs? |
number |
Encoded audio retained while assistant playback is filtered. Released only after a confirmed barge-in so opening syllables survive. Default 500. |
runtime-web/src/index.ts:48 |
createAudio? |
() => AudioElementLike |
Factory for HTMLAudioElement-like playback targets. | runtime-web/src/index.ts:30 |
createObjectURL? |
(blob) => string |
Inject URL.createObjectURL. |
runtime-web/src/index.ts:32 |
createPcmAudioContext? |
() => PcmAudioContextLike |
Override factory used for PCM streaming playback. | runtime-web/src/index.ts:52 |
getUserMedia? |
GetUserMedia |
Inject navigator.mediaDevices.getUserMedia (defaults to the browser global). |
runtime-web/src/index.ts:26 |
mediaRecorder? |
MediaRecorderCtor |
Inject MediaRecorder (defaults to the browser global). |
runtime-web/src/index.ts:28 |
mimeType? |
string |
MediaRecorder MIME type, e.g. audio/webm;codecs=opus. When omitted, the runtime picks a browser-supported Opus/WebM type. |
runtime-web/src/index.ts:39 |
now? |
() => number |
Override clock (tests). | runtime-web/src/index.ts:54 |
revokeObjectURL? |
(url) => void |
Inject URL.revokeObjectURL. |
runtime-web/src/index.ts:34 |
timesliceMs? |
number |
Encode a chunk every N ms (MediaRecorder timeslice). Default 100. |
runtime-web/src/index.ts:41 |
volumePollMs? |
number |
Poll microphone RMS every N ms for VAD / barge-in. Default 50. |
runtime-web/src/index.ts:43 |
Type Aliases
Section titled “Type Aliases”AudioContextCtor
Section titled “AudioContextCtor”type AudioContextCtor = () => AudioContextLike;Defined in: runtime-web/src/audio-input.ts:73
Constructor for AudioContextLike (browser AudioContext).
Returns
Section titled “Returns”GetUserMedia
Section titled “GetUserMedia”type GetUserMedia = (constraints) => Promise<MediaStreamLike>;Defined in: runtime-web/src/audio-input.ts:53
navigator.mediaDevices.getUserMedia-compatible capture entry point.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
constraints |
unknown |
Returns
Section titled “Returns”Promise<MediaStreamLike>
MediaRecorderCtor
Section titled “MediaRecorderCtor”type MediaRecorderCtor = (stream, options?) => MediaRecorderLike;Defined in: runtime-web/src/audio-input.ts:47
Constructor for MediaRecorderLike (browser MediaRecorder).
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
stream |
MediaStreamLike |
options? |
{ mimeType?: string; } |
options.mimeType? |
string |
Returns
Section titled “Returns”Functions
Section titled “Functions”createWebRuntime()
Section titled “createWebRuntime()”function createWebRuntime(options?): WebRuntime;Defined in: runtime-web/src/index.ts:79
Assemble a browser RuntimeAdapter. With no options it reads the
standard web globals (navigator.mediaDevices, MediaRecorder, Audio,
URL); every primitive can be overridden for testing or non-standard hosts.
No network adapter is included — providers use the global fetch/WebSocket
directly.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options |
WebRuntimeOptions |
Capture, metering, and playback overrides. See WebRuntimeOptions. |
Returns
Section titled “Returns”encodeMonoWav()
Section titled “encodeMonoWav()”function encodeMonoWav(audio, options?): ArrayBuffer;Defined in: runtime-web/src/audio-conversion.ts:40
Encode decoded Web Audio samples as mono PCM16 WAV. Exported for tests; prefer prepareBrowserAudio in app code.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
audio |
DecodedAudioLike |
options |
PrepareBrowserAudioOptions |
Returns
Section titled “Returns”ArrayBuffer
measureBrowserAudioEnvelope()
Section titled “measureBrowserAudioEnvelope()”function measureBrowserAudioEnvelope(input, frameMs?): Promise<AudioEnvelope>;Defined in: runtime-web/src/audio-conversion.ts:141
Decode an encoded assistant reply into short RMS frames for echo-aware VAD.
Parameters
Section titled “Parameters”| Parameter | Type | Default value |
|---|---|---|
input |
ArrayBuffer |
undefined |
frameMs |
number |
50 |
Returns
Section titled “Returns”Promise<AudioEnvelope>
prepareBrowserAudio()
Section titled “prepareBrowserAudio()”function prepareBrowserAudio( input, format, options?): Promise<{ audio: ArrayBuffer; format: "wav" | "mp3";}>;Defined in: runtime-web/src/audio-conversion.ts:123
Decode browser-recorded WebM/Opus and return a WAV accepted by audio LLMs.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
input |
ArrayBuffer |
format |
AudioLLMInputFormat |
options |
PrepareBrowserAudioOptions |
Returns
Section titled “Returns”Promise<{
audio: ArrayBuffer;
format: "wav" | "mp3";
}>