@volley/recognition-client-sdk
Version:
Recognition Service TypeScript/Node.js Client SDK
69 lines • 1.8 kB
TypeScript
/**
* Audio Ring Buffer
* Manages circular buffer for audio data with overflow detection
*/
export interface BufferedAudio {
data: ArrayBuffer | ArrayBufferView;
timestamp: number;
}
export interface AudioRingBufferConfig {
maxBufferDurationSec: number;
chunksPerSecond: number;
logger?: (level: 'debug' | 'info' | 'warn' | 'error', message: string, data?: any) => void;
}
export declare class AudioRingBuffer {
private buffer;
private bufferSize;
private writeIndex;
private readIndex;
private hasWrapped;
private totalBufferedBytes;
private overflowCount;
private chunksBuffered;
private logger?;
constructor(config: AudioRingBufferConfig);
/**
* Write audio chunk to ring buffer with overflow detection
*/
write(audioData: ArrayBuffer | ArrayBufferView): void;
/**
* Read next chunk from buffer
*/
read(): BufferedAudio | null;
/**
* Read all buffered chunks without removing them
*/
readAll(): BufferedAudio[];
/**
* Flush all buffered data and advance read pointer
*/
flush(): BufferedAudio[];
/**
* Get count of buffered chunks
*/
getBufferedCount(): number;
/**
* Check if buffer is empty
*/
isEmpty(): boolean;
/**
* Check if buffer has overflowed
*/
isOverflowing(): boolean;
/**
* Clear the buffer and reset all counters
* Frees memory by releasing all stored audio chunks
*/
clear(): void;
/**
* Get buffer statistics
*/
getStats(): {
chunksBuffered: number;
currentBufferedChunks: number;
overflowCount: number;
hasWrapped: boolean;
totalBufferedBytes: number;
};
}
//# sourceMappingURL=audio-ring-buffer.d.ts.map