@simplito/privmx-webendpoint
Version:
PrivMX Web Endpoint library
39 lines (38 loc) • 937 B
TypeScript
export declare const DEFAULTS: {
rmsEmaAlpha: number;
noiseEmaAlpha: number;
thresholdOffset: number;
activityWindowMs: number;
holdMs: number;
};
type SpeakerId = number;
interface FrameInput {
id: SpeakerId;
rms: number;
timestamp: number;
}
export interface SpeakerState {
streamId: number;
emaRms: number;
noiseFloor: number;
lastAboveThresholdTs: number;
activeSince: number;
active: boolean;
}
interface ActiveSpeakerDetectorOptions {
rmsEmaAlpha: number;
noiseEmaAlpha: number;
thresholdOffset: number;
activityWindowMs: number;
holdMs: number;
}
export declare class ActiveSpeakerDetector {
private opts;
private speakers;
private activeSpeaker;
constructor(opts: ActiveSpeakerDetectorOptions);
onFrame({ id, rms, timestamp }: FrameInput): SpeakerState[];
private selectActiveSpeakers;
private getOrCreateState;
}
export {};