@speechly/browser-client
Version:
JavaScript client for Speechly Streaming API
51 lines (50 loc) • 2.09 kB
TypeScript
import { AudioProcessorParameters, ContextOptions, StreamOptions, VadOptions } from '../client';
/**
* Web worker to handle streaming audio to cloud and receiving speech processing results.
* Also handles audio processing like maintaining history ringbuffer and running the VAD
* @internal
*/
declare class WebsocketClient {
private readonly workerCtx;
private targetSampleRate;
private isContextStarted;
private audioContextStartTimes;
private websocket?;
private audioProcessor?;
private controlSAB?;
private dataSAB?;
private immediateMode;
private readonly frameMillis;
private readonly outputAudioFrame;
private debug;
private defaultContextOptions?;
constructor(ctx: Worker);
connect(apiUrl: string, authToken: string, targetSampleRate: number, debug: boolean): void;
initAudioProcessor(sourceSampleRate: number, frameMillis: number, historyFrames: number, vadOptions?: VadOptions): void;
/**
* Control audio processor parameters
* @param ap - Audio processor parameters to adjust
*/
adjustAudioProcessor(ap: AudioProcessorParameters): void;
setSharedArrayBuffers(controlSAB: number, dataSAB: number): void;
startStream(streamOptions: StreamOptions): void;
stopStream(): void;
/**
* Processes and sends audio
* @param audioChunk - audio data to process
*/
processAudio(audioChunk: Float32Array): void;
processAudioSAB(): void;
startContext(contextOptions?: ContextOptions): void;
stopContext(): void;
switchContext(contextOptions?: ContextOptions): void;
closeWebsocket(code?: number, reason?: string, wasClean?: boolean, userInitiated?: boolean): void;
private readonly onWebsocketClose;
private readonly onWebsocketOpen;
private readonly onWebsocketError;
private readonly onWebsocketMessage;
send(data: string | Int16Array): void;
setContextOptions(options: ContextOptions): void;
}
export declare function contextOptionsToMsg(contextOptions?: ContextOptions): Record<string, any>;
export default WebsocketClient;