@jaehyun-ko/speaker-verification
Version:
Real-time speaker verification in the browser using NeXt-TDNN models
77 lines • 2.54 kB
TypeScript
/**
* Easy-to-use API for NeXt-TDNN Speaker Verification
*
* Simple interface for speaker verification that handles all preprocessing,
* model loading, and comparison automatically.
*/
export interface ComparisonResult {
similarity: number;
processingTime: number;
}
export interface EmbeddingResult {
embedding: Float32Array;
processingTime: number;
}
export interface ModelInfo {
id: string;
name: string;
size: number;
channels: number;
type: 'standard' | 'mobile' | 'cyclical';
}
export declare class SpeakerVerification {
private engine;
private audioContext;
private currentModelId;
private modelCache;
static readonly MODELS: Record<string, ModelInfo>;
constructor();
/**
* Initialize with a specific model
* @param modelKey Model key from MODELS (e.g., 'standard-256', 'mobile-128')
* @param options Additional options
*/
initialize(modelKey?: string, options?: {
modelData?: ArrayBuffer;
cacheModel?: boolean;
}): Promise<void>;
private loadEngine;
/**
* Compare two audio inputs and return similarity
* @param audio1 First audio (File, Blob, ArrayBuffer, or Float32Array)
* @param audio2 Second audio (File, Blob, ArrayBuffer, or Float32Array)
* @returns Similarity score (0.0-1.0, higher = more similar)
*/
compareAudio(audio1: File | Blob | ArrayBuffer | Float32Array, audio2: File | Blob | ArrayBuffer | Float32Array): Promise<ComparisonResult>;
/**
* Extract speaker embedding from audio input
* @param audio Audio input (File, Blob, ArrayBuffer, or Float32Array)
* @returns Speaker embedding as Float32Array
*/
getEmbedding(audio: File | Blob | ArrayBuffer | Float32Array): Promise<EmbeddingResult>;
/**
* Compare two pre-computed embeddings
* @param embedding1 First speaker embedding
* @param embedding2 Second speaker embedding
* @returns Similarity score (0.0-1.0, higher = more similar)
*/
compareEmbeddings(embedding1: Float32Array, embedding2: Float32Array): number;
/**
* Process various audio input formats into Float32Array
*/
private processAudioInput;
/**
* Simple resampling function
*/
private resampleAudio;
/**
* Get information about the current model
*/
getCurrentModel(): ModelInfo | null;
/**
* Clean up resources
*/
cleanup(): Promise<void>;
}
export default SpeakerVerification;
//# sourceMappingURL=easy-api.d.ts.map