alpha-ai-avatar-sdk-js
Version:
Alpha AI Avatar SDK (JS)
83 lines (82 loc) • 3.31 kB
TypeScript
import { Room, RoomOptions } from 'livekit-client';
import { HTTPClient } from './HTTPClient';
import { AvatarClientConfig, Avatars, CreateVideoConfig, GetSupportedVoicesResponse, Prompt, VideoPlayerConfig, SynthesizerOptions, Landmarks, AvatarAttribute } from './types';
import { VideoPlayer } from './VideoPlayer';
export declare class AvatarClient extends HTTPClient {
private room?;
private avatarId?;
private isAvatarSpeaking;
private avatarsAvailable;
private landmarks;
private conversational;
private initialPrompt?;
private synthesizeOptions?;
private audioElement?;
private _videoPlayer?;
private videoPlayerConfig?;
private canvas;
private ctx;
private currentLandmarks;
private targetLandmarks;
private previousLandmarks;
private lerpFactor;
private isLerpingActive;
private animationFrameId;
private readonly LERP_THRESHOLD;
private readonly MAX_DISTANCE_THRESHOLD;
private attributes;
private eventEmitter;
private customPreset?;
constructor(config: AvatarClientConfig);
init(videoPlayerConfig: VideoPlayerConfig, audioElement: HTMLAudioElement, canvas?: HTMLCanvasElement): Promise<void>;
connect(avatarId?: number, roomOpts?: RoomOptions & Omit<AvatarClientConfig, 'apiKey'>): Promise<Room>;
get avatars(): Avatars;
get isConnected(): boolean;
get isSpeaking(): boolean;
get videoPlayer(): VideoPlayer | undefined;
get attributesList(): Map<string, AvatarAttribute>;
getAvatars(): Promise<Avatars>;
getSupportedVoices(): Promise<GetSupportedVoicesResponse>;
say(message: string, options?: SynthesizerOptions): void;
stop(): void;
setMessagesHistory(messages: Prompt[]): void;
setSynthesizerOptions(options: SynthesizerOptions): void;
switchAvatar(avatarId: number): void;
sendConversationalMessage(message: any): void;
addEventListener(eventName: string, listener: (...args: any[]) => void): void;
removeEventListener(eventName: string, listener: (...args: any[]) => void): void;
enableMicrophone(): Promise<void>;
disableMicrophone(): Promise<void>;
createVideo(avatarId: number, message: string, config?: CreateVideoConfig): Promise<{
url: string;
}>;
setLerpFactor(factor: number): void;
addAttribute(name: string, imageSrc: string, drawFunction?: (ctx: CanvasRenderingContext2D, landmarks: Landmarks, image: HTMLImageElement) => void): Promise<void>;
removeAttribute(name: string): void;
disconnect(): void;
loadPresetAttributes(): void;
generateAvatarVideo({ image, text, voiceId, }: {
image: string;
text: string;
voiceId: string;
}): Promise<unknown>;
getAvatarVideoStatus(id: string): Promise<unknown>;
private lerp;
private startLerping;
private stopLerping;
private getPresetDrawFunction;
private drawAttributes;
private clearRect;
private setupRoomListeners;
private removeRoomListeners;
private handleTrackSubscribed;
private handleTrackUnsubscribed;
private handleDataReceived;
private processLandmarks;
private calculateDistance;
private updateAndEmitLerpedLandmarks;
private emitLandmarks;
private destroyEmitter;
private fetchAvatars;
private sendMessage;
}