UNPKG

starchild-widget

Version:

Starchild Widget

96 lines 2.42 kB
/** * WebSocket Realtime Voice Manager * 管理全局的 WebSocket 连接,使用自定义事件系统 */ export type RealtimeEventType = 'transcription.delta' | 'transcription.completed' | 'connection.stateChange' | 'error' | 'speech.started' | 'speech.stopped'; export interface RealtimeEventData { 'transcription.delta': { delta: string; }; 'transcription.completed': { transcript: string; }; 'connection.stateChange': { state: 'connecting' | 'open' | 'closing' | 'closed'; }; error: { error: Error; }; 'speech.started': Record<string, never>; 'speech.stopped': Record<string, never>; } type EventListener<T extends RealtimeEventType> = (data: RealtimeEventData[T]) => void; /** * WebSocket 实时语音管理器(单例模式) */ export declare class RealtimeVoiceManager { private static instance; private ws; private audioContext; private audioProcessor; private mediaStream; private sessionData; private isInitialized; private isTranscribing; private eventListeners; private initializingPromise; private constructor(); /** * 获取单例实例 */ static getInstance(): RealtimeVoiceManager; /** * 销毁单例实例 */ static destroyInstance(): void; /** * 添加事件监听器 */ on<T extends RealtimeEventType>(event: T, listener: EventListener<T>): void; /** * 移除事件监听器 */ off<T extends RealtimeEventType>(event: T, listener: EventListener<T>): void; /** * 触发事件 */ private emit; /** * 初始化 WebSocket 连接 */ initialize(): Promise<void>; /** * 执行实际的初始化逻辑 */ private doInitialize; /** * 发送会话配置 */ private sendSessionConfig; /** * 设置 WebSocket 事件处理器 */ private setupWebSocketHandlers; /** * 开始语音转录 */ startTranscription(): Promise<MediaStream>; /** * 停止语音转录(但保持连接) */ stopTranscription(): void; /** * 完全销毁(关闭连接) */ destroy(): void; /** * 检查是否已初始化 */ isReady(): boolean; /** * 检查是否正在转录 */ isActive(): boolean; } export {}; //# sourceMappingURL=realtimeManager.d.ts.map