/** * This file is part of TEN Framework, an open source project. * Licensed under the Apache License, Version 2.0. * See the LICENSE file for more information. * * TEN VAD (Voice Activity Detection) WebAssembly Module * TypeScript type definitions */ export interface TenVADModule { /** * Create and initialize a VAD instance * @param handlePtr Pointer to store the VAD handle * @param hopSize Number of samples between consecutive analysis frames (e.g., 256) * @param threshold VAD detection threshold [0.0, 1.0] * @returns 0 on success, -1 on error */ _ten_vad_create(handlePtr: number, hopSize: number, threshold: number): number; /** * Process audio frame for voice activity detection * @param handle Valid VAD handle from ten_vad_create * @param audioDataPtr Pointer to int16 audio samples array * @param audioDataLength Length of audio data (should equal hopSize) * @param outProbabilityPtr Pointer to output probability [0.0, 1.0] * @param outFlagPtr Pointer to output flag (0: no voice, 1: voice detected) * @returns 0 on success, -1 on error */ _ten_vad_process( handle: number, audioDataPtr: number, audioDataLength: number, outProbabilityPtr: number, outFlagPtr: number ): number; /** * Destroy VAD instance and release resources * @param handlePtr Pointer to the VAD handle * @returns 0 on success, -1 on error */ _ten_vad_destroy(handlePtr: number): number; /** * Get library version string * @returns Version string pointer */ _ten_vad_get_version(): number; // WebAssembly Memory Management _malloc(size: number): number; _free(ptr: number): void; // Memory access helpers HEAP16: Int16Array; HEAPF32: Float32Array; HEAP32: Int32Array; HEAPU8: Uint8Array; // Value access methods getValue(ptr: number, type: 'i8' | 'i16' | 'i32' | 'float' | 'double'): number; setValue(ptr: number, value: number, type: 'i8' | 'i16' | 'i32' | 'float' | 'double'): void; // String utilities UTF8ToString(ptr: number): string; lengthBytesUTF8(str: string): number; stringToUTF8(str: string, outPtr: number, maxBytesToWrite: number): void; } /** * High-level TypeScript wrapper for TEN VAD */ export class TenVAD { private module: TenVADModule; private handle: number | null; private hopSize: number; constructor(module: TenVADModule, hopSize: number, threshold: number); /** * Process audio samples for voice activity detection * @param audioData Int16Array of audio samples (length must equal hopSize) * @returns Object with probability and voice detection flag */ process(audioData: Int16Array): { probability: number; isVoice: boolean; } | null; /** * Get library version */ getVersion(): string; /** * Destroy VAD instance */ destroy(): void; /** * Check if VAD instance is valid */ isValid(): boolean; } /** * Create TEN VAD WebAssembly module */ declare function createVADModule(): Promise; export default createVADModule;