voice-agent
Version:
A Vue.js voice agent plugin for real-time voice communication via WebSocket
77 lines • 1.73 kB
TypeScript
/**
* 音频队列管理器
* 支持流式音频播放,实时播放音频片段,支持打断和恢复机制
*/
interface ConversationMessage {
isPlaying?: boolean;
[key: string]: any;
}
interface AudioQueueStatus {
queueLength: number;
isPlaying: boolean;
isPaused: boolean;
scheduledBuffers: number;
}
export declare class AudioQueueManager {
private audioQueue;
private isPlaying;
private isPaused;
private currentMessage;
private audioContext;
private gainNode;
private playbackStartTime;
private scheduledBuffers;
private nextStartTime;
private sampleRate;
private processingQueue;
/**
* 初始化音频上下文
*/
initAudioContext(): Promise<void>;
/**
* 添加音频片段到队列
*/
enqueueAudio(base64Audio: string, message?: ConversationMessage | null): Promise<void>;
/**
* 解码Base64音频数据为AudioBuffer
*/
private decodeAudioData;
/**
* 开始播放队列中的音频
*/
private startPlayback;
/**
* 处理音频队列
*/
private processQueue;
/**
* 调度音频缓冲区播放
*/
private scheduleAudioBuffer;
/**
* 打断当前播放(用于语音检测开始时)
*/
interrupt(): void;
/**
* 恢复播放(用于语音检测结束时)
*/
resume(): Promise<void>;
/**
* 停止播放
*/
stopPlayback(): void;
/**
* 清空队列
*/
clearQueue(): void;
/**
* 销毁管理器
*/
destroy(): void;
/**
* 获取队列状态
*/
getStatus(): AudioQueueStatus;
}
export {};
//# sourceMappingURL=audioQueueManager.d.ts.map