UNPKG

convai-web-sdk

Version:

Integrate lifelike digital beings into your web applications with real-time conversations, actions, and facial expressions. Supports a variety of voices, languages, and emotions.

87 lines (86 loc) 2.95 kB
import { ActionConfig, GetResponseResponse } from "../../Proto/generated"; import { AudioPlayer } from "./streaming_audio_player"; export interface ConvaiClientParams { apiKey: string; characterId: string; speaker?: string; speakerId?: string; enableAudio?: boolean; sessionId?: string; enableFacialData?: boolean; enableFacialEmotionData?: boolean; faceModel?: 0 | 1 | 2 | 3; narrativeTemplateKeysMap?: Map<string, string>; textOnlyResponse?: boolean; micUsage?: boolean; webstreamUrl?: string; languageCode?: string; retryCount?: number; apiBaseUrl?: string; } export declare class ConvaiClient { private sessionId; private responseCallback; private errorCallback; private requestQueue; private apiKey; private characterId; private speaker; private speakerId; private languageCode; private enableAudio; private enableAddingChunk; private finalChunkReceived; private audioRecorder; private audioPlayer; private convaiGrpcClient; private retryCount; private totalReties; private temporaryUserTranscript; private webstreamUrl; private narrativeTemplateKeysMap; private apiBaseUrl; private speakerResolutionPromise; private dynamicInfo; private enableFacialData; private enableFacialEmotionData; private faceModel; constructor(params: ConvaiClientParams); private whenSpeakerReady; private validateBeforeRequest; resetSession(): void; setResponseCallback(fn: (response: GetResponseResponse) => void): void; setErrorCallback(fn: (type: string, statusMessage: string, status: string) => void): void; invokeTrigger(name: string, message?: string): void; sendFeedback(interaction_id: string, character_id: string, session_id: string, thumbs_up: boolean, feedback_text: string): void; sendTextChunk(text: string): void; sendTextStream(text: string, isTyping?: boolean): void; connectionState(text: string): void; startAudioChunk(): void; endAudioChunk(): void; toggleAudioVolume(): void; private processRequestQueue; getAudioVolume(): number; stopCharacterAudio(): void; onAudioPlay(fn: () => void): void; onAudioStop(fn: () => void): void; endRecording(): void; pauseAudio(): void; resumeAudio(): void; onAudioStateChange(fn: () => void): void; playAudio(): void; setActionConfig(actionConfig: ActionConfig): void; updateDynamicInfo(_dynamicInfo: string): void; updateNarrativeTemplate(narrativeTemplateKeysMap: Map<string, string>): void; updateSpeakerMetadata(metadata: Record<string, string>): Promise<{ speakerId: string; name: string; } | null>; getSpeakerMetadata(): { name: string; metadata: Record<string, string>; }; getSpeakerId(): string; getSpeakerName(): string; getAudioPlayer(): AudioPlayer | undefined; }