引擎实例句柄。
typedef void* volc_engine_t;
音频数据类型。
typedef enum { VOLC_AUDIO_DATA_TYPE_UNKNOWN = 0, VOLC_AUDIO_DATA_TYPE_OPUS = 1, VOLC_AUDIO_DATA_TYPE_G722 = 2, VOLC_AUDIO_DATA_TYPE_AACLC = 3, VOLC_AUDIO_DATA_TYPE_G711A = 4, VOLC_AUDIO_DATA_TYPE_PCM = 5, VOLC_AUDIO_DATA_TYPE_G711U = 6, } volc_audio_data_type_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_AUDIO_DATA_TYPE_UNKNOWN | 0 | 未知或未指定类型 |
VOLC_AUDIO_DATA_TYPE_OPUS | 1 | OPUS |
VOLC_AUDIO_DATA_TYPE_G722 | 2 | G.722 |
VOLC_AUDIO_DATA_TYPE_AACLC | 3 | AACLC |
VOLC_AUDIO_DATA_TYPE_G711A | 4 | G.711 A-law |
VOLC_AUDIO_DATA_TYPE_PCM | 5 | 原始 PCM 数据,未经压缩 |
VOLC_AUDIO_DATA_TYPE_G711U | 6 | G.711 μ-law |
音频编解码器类型,指网络传输的实际音频数据类型。
typedef enum { VOLC_AUDIO_CODEC_TYPE_UNKNOWN = 0, VOLC_AUDIO_CODEC_TYPE_OPUS = 1, VOLC_AUDIO_CODEC_TYPE_G722 = 2, VOLC_AUDIO_CODEC_TYPE_G711A = 3, VOLC_AUDIO_CODEC_TYPE_PCM = 4, VOLC_AUDIO_CODEC_TYPE_G711U = 5, } volc_audio_codec_type_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_AUDIO_CODEC_TYPE_UNKNOWN | 0 | 未知或未指定类型 |
VOLC_AUDIO_CODEC_TYPE_OPUS | 1 | OPUS |
VOLC_AUDIO_CODEC_TYPE_G722 | 2 | G.722 |
VOLC_AUDIO_CODEC_TYPE_G711A | 3 | G.711 A-law |
VOLC_AUDIO_CODEC_TYPE_PCM | 4 | PCM |
VOLC_AUDIO_CODEC_TYPE_G711U | 5 | G.711 μ-law |
音频数据描述信息。
typedef struct { volc_audio_data_type_e data_type; bool commit; } volc_audio_frame_info_t;
成员 | 类型 | 描述 |
|---|---|---|
data_type | 当前音频帧的数据格式 | |
commit | bool | 结束标记。true-表示本轮会话的结束,将文本送大模型处理,用在按键场景 |
视频编解码器类型。
typedef enum { VOLC_VIDEO_CODEC_TYPE_UNKNOWN = 0, VOLC_VIDEO_CODEC_TYPE_H264 = 1, VOLC_VIDEO_CODEC_TYPE_H265 = 2, VOLC_VIDEO_CODEC_TYPE_JPEG = 3, } volc_video_codec_type_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_VIDEO_CODEC_TYPE_UNKNOWN | 0 | 未知视频编解码器类型 |
VOLC_VIDEO_CODEC_TYPE_H264 | 1 | H.264 |
VOLC_VIDEO_CODEC_TYPE_H265 | 2 | H.265 |
VOLC_VIDEO_CODEC_TYPE_JPEG | 3 | MJPEG |
视频数据类型。
typedef enum { VOLC_VIDEO_DATA_TYPE_UNKNOWN = 0, VOLC_VIDEO_DATA_TYPE_H264 = 1, VOLC_VIDEO_DATA_TYPE_H265 = 2, VOLC_VIDEO_DATA_TYPE_JPEG = 3, } volc_video_data_type_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_VIDEO_DATA_TYPE_UNKNOWN | 0 | 未知视频数据类型 |
VOLC_VIDEO_DATA_TYPE_H264 | 1 | H.264 |
VOLC_VIDEO_DATA_TYPE_H265 | 2 | H.265 |
VOLC_VIDEO_DATA_TYPE_JPEG | 3 | MJPEG |
视频数据描述信息。
typedef struct { volc_video_data_type_e data_type; } volc_video_frame_info_t;
成员 | 类型 | 描述 |
|---|---|---|
data_type | 当前视频帧的数据格式 |
消息数据描述信息。
typedef struct { bool is_binary; } volc_message_info_t;
成员 | 类型 | 描述 |
|---|---|---|
is_binary | bool | 消息类型: |
数据类型。
typedef enum { VOLC_DATA_TYPE_AUDIO = 0, VOLC_DATA_TYPE_VIDEO, VOLC_DATA_TYPE_MESSAGE, VOLC_DATA_TYPE_CNT, } volc_data_type_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_DATA_TYPE_AUDIO | 0 | 音频数据 |
VOLC_DATA_TYPE_VIDEO | 1 | 视频数据 |
VOLC_DATA_TYPE_MESSAGE | 2 | 消息数据 |
VOLC_DATA_TYPE_CNT | 3 | 计数 |
数据描述信息。
typedef struct { volc_data_type_e type; union { volc_audio_frame_info_t audio; volc_video_frame_info_t video; volc_message_info_t message; } info; } volc_data_info_t;
成员 | 类型 | 描述 |
|---|---|---|
type | 数据类型 | |
info.audio | 音频数据描述信息 | |
info.video | 视频数据描述信息 | |
info.message | 消息数据描述信息 |
错误码。
typedef enum { VOLC_ERR_NO_ERROR = 0, VOLC_ERR_FAILED = -1, VOLC_ERR_LICENSE_EXHAUSTED = -10, VOLC_ERR_LICENSE_EXPIRED = -11, } volc_error_code_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_ERR_NO_ERROR | 0 | 成功 |
VOLC_ERR_FAILED | -1 | 失败 |
VOLC_ERR_LICENSE_EXHAUSTED | -10 | License 中的预置资源耗尽 |
VOLC_ERR_LICENSE_EXPIRED | -11 | License 过期 |
事件码。
typedef enum { VOLC_EV_UNKNOWN = 0, VOLC_EV_CONNECTED, VOLC_EV_DISCONNECTED, } volc_event_code_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_EV_UNKNOWN | 0 | 未知事件 |
VOLC_EV_CONNECTED | 1 | 成功连接 |
VOLC_EV_DISCONNECTED | 2 | 断开连接 |
事件信息。
typedef struct { volc_event_code_e code; union { int placeholder; } data; } volc_event_t;
成员 | 类型 | 描述 |
|---|---|---|
code | 事件码 | |
data | union | 事件数据,具体内容根据 |
智能体状态。
typedef enum { VOLC_CONV_STATUS_LISTENING = 1, VOLC_CONV_STATUS_THINKING, VOLC_CONV_STATUS_ANSWERING, VOLC_CONV_STATUS_INTERRUPTED, VOLC_CONV_STATUS_ANSWER_FINISH, } volc_conv_status_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_CONV_STATUS_LISTENING | 1 | 智能体聆听中 |
VOLC_CONV_STATUS_THINKING | 2 | 智能体思考中 |
VOLC_CONV_STATUS_ANSWERING | 3 | 智能体说话中 |
VOLC_CONV_STATUS_INTERRUPTED | 4 | 智能体被打断 |
VOLC_CONV_STATUS_ANSWER_FINISH | 5 | 智能体说话完成 |
SDK 与云端的传输通道。
typedef enum { VOLC_MODE_RTC = 0, VOLC_MODE_WS = 1, VOLC_MODE_UNKNOWN, } volc_mode_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_MODE_RTC | 0 | 高质量传输通道(RTC):抗弱网波动能力强,延时更低更稳定,支持视频能力扩展 |
VOLC_MODE_WS | 1 | 低负载传输通道(WebSocket):基于TCP协议,资源占用低,适用于强量级语音对话设备 |
VOLC_MODE_UNKNOWN | 2 | 未知模式 |
会话选项。
typedef struct { volc_mode_e mode; char* bot_id; char* params; } volc_opt_t;
成员 | 类型 | 描述 |
|---|---|---|
mode | 本次会话的运行模式:高质量传输通道(RTC)或者低负载传输通道(WebSocket) | |
bot_id | char* | 智能体 ID |
params | char* | 会话参数,以 JSON 字符串形式传递 Config 和 AgentConfig 参数。具体参数结构,请参见创建智能体 AibotCreate |
智能体类型。
typedef enum { VOLC_AGENT_TYPE_TTS = 0, VOLC_AGENT_TYPE_LLM = 1, VOLC_AGENT_TYPE_UNKNOW, } volc_agent_type_e;
枚举值 | 数值 | 描述 |
|---|---|---|
VOLC_AGENT_TYPE_TTS | 0 | 直接由 TTS 处理,不经过 LLM |
VOLC_AGENT_TYPE_LLM | 1 | 先经过 LLM 处理再由 TTS 处理 |
VOLC_AGENT_TYPE_UNKNOW | 2 | 未知模式 |
SDK 事件回调。具体事件,请参看回调。
typedef struct { void (*on_volc_event)(volc_engine_t handle, volc_event_t* event, void* user_data); void (*on_volc_conversation_status)(volc_engine_t handle, volc_conv_status_e status, void* user_data); void (*on_volc_audio_data)(volc_engine_t handle, const void* data_ptr, size_t data_len, volc_audio_frame_info_t* info_ptr, void* user_data); void (*on_volc_video_data)(volc_engine_t handle, const void* data_ptr, size_t data_len, volc_video_frame_info_t* info_ptr, void* user_data); void (*on_volc_message_data)(volc_engine_t handle, const void* data_ptr, size_t data_len, volc_message_info_t* info_ptr, void* user_data); } volc_event_handler_t;
成员 | 描述 |
|---|---|
on_volc_event | 关键事件回调 |
on_volc_conversation_status | 智能体状态变更回调 |
on_volc_audio_data | 音频数据回调 |
on_volc_video_data | 视频数据回调 |
on_volc_message_data | 消息数据回调(如字幕) |