doomiaichat
Version:
Doomisoft OpenAI
100 lines • 2.6 kB
TypeScript
import CozeBot from './cozebot';
import { ApiResult } from './declare';
import { RoleType } from '@coze/api';
export default class VoiceCozeBot extends CozeBot {
private socket;
private traceId;
private chatVoiceBuffer;
private chatContent;
private serverVad;
private combineTTS;
private currentAgentStatus;
private waitingWarmVoice;
private waitingInterval;
private willSendWarmVoice;
private maxWaitingTimes;
private waitingTimes;
private waitingTimer;
/**
* 返回整个对话的语音流(pcm)
*/
getChatVoiceFile(): Buffer;
/**
* 清除等待计时器
*/
private clearWaitingTimer;
/**
* 开始等待用户说话
*/
private startWaitingUserSpeaking;
/**
* 获取到整个对话过程内容
* @returns
*/
getChatContent(): {
role: string;
content: string;
}[];
/**
* 提交端插件结果
* @param data
*/
submitActionResult(result: {
chat_id: string;
tool_outputs: {
tool_call_id: string;
output: string;
}[];
}): void;
/**
* 提交一个暖场的内容,生成语音后下发到客户端
* @param text
*/
submitWarmVoice(text: string): void;
/**
* 持续发送来自于客户端语音流
* @param originalVoice 原始的录音流
* @param cleanVoice 经过回声消除后的录音流
*/
sendVoice(originalVoice: Buffer, cleanVoice?: any): void;
/**
* 手动提交对话内容
* @param data
*/
sendChatMessage(content: string, role?: RoleType): void;
/**
* 停止对话
*/
close(): void;
/**
* 提交语音片段 (这个在非server_vad 模式下,如按停止录音按钮。主动提交,Server_vad模式下无效)
* 其实就是给服务器一个截止的标记
* @param voiceBuffer
*/
submitVoiceBuffer(): void;
/**
* 手动清除缓冲区的音频
* 同上面submitVoiceBuffer 配套,Server_vad模式下无效
*/
clearVoiceBuffer(): void;
/**
* 打断智能体回复中
*/
breakAnswer(): void;
/**
* 开启语音对话(Coze支持双向语音对话流)
* @param setting
*/
startVoiceChat(setting?: any): Promise<ApiResult>;
/**
* 双向对话连接成功
* @param data
*/
ChatCreated(chatsettting?: any): void;
/**
* 上行指令发送
* @param command
*/
sendCommand(command: any): void;
}
//# sourceMappingURL=voicecoze.d.ts.map