| /** | |
| * 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<TenVADModule>; | |
| export default createVADModule; |