sycoraxai-voice-assistants
Version:
A voice assistant package for React applications supporting multiple providers
48 lines (40 loc) • 1.32 kB
text/typescript
import { Room } from 'livekit-client';
import { RetellWebClient } from 'retell-client-js-sdk';
export interface GeneralConnectionDetails {
provider: 'livekit' | 'retell';
payload: any;
}
export interface LiveKitConnectionDetails {
serverUrl: string;
participantToken: string;
provider: 'livekit';
}
export interface RetellConnectionDetails {
access_token: string;
provider: 'retell';
sample_rate?: number;
capture_device_id?: string;
emit_raw_audio_samples?: boolean;
}
export type ConnectionDetails = LiveKitConnectionDetails | RetellConnectionDetails;
export interface VoiceAssistantConfig {
onDeviceFailure?: (error: Error) => void;
onCallStarted?: () => void;
onCallEnded?: () => void;
onAgentStartTalking?: () => void;
onAgentStopTalking?: () => void;
onError?: (error: Error) => void;
}
export interface LiveKitVoiceAssistant {
room: Room;
connect: (connectionDetails: LiveKitConnectionDetails) => Promise<void>;
disconnect: () => void;
}
export interface RetellVoiceAssistant {
client: RetellWebClient;
connect: (connectionDetails: RetellConnectionDetails) => Promise<void>;
disconnect: () => void;
isCallActive: boolean;
agentStatus: 'idle' | 'connecting' | 'listening' | 'speaking';
}
export type VoiceAssistant = LiveKitVoiceAssistant | RetellVoiceAssistant;