引擎实例句柄。
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_G711A = 3, VOLC_AUDIO_DATA_TYPE_PCM = 4, VOLC_AUDIO_DATA_TYPE_G711U = 5, } 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_G711A | 3 | G.711 A-law |
| VOLC_AUDIO_DATA_TYPE_PCM | 4 | 原始 PCM 数据,未经压缩 |
| VOLC_AUDIO_DATA_TYPE_G711U | 5 | 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 | volc_audio_data_type_e | 当前音频帧的数据格式 |
| commit | bool | 结束标记。true-表示本轮会话的结束,将文本送大模型处理,用在按键场景 |
视频数据类型。
typedef enum { VOLC_VIDEO_DATA_TYPE_UNKNOWN = 0, VOLC_VIDEO_DATA_TYPE_H264 = 1, } volc_video_data_type_e;
| 枚举值 | 数值 | 描述 |
|---|---|---|
| VOLC_VIDEO_DATA_TYPE_UNKNOWN | 0 | 未知视频数据类型 |
| VOLC_VIDEO_DATA_TYPE_H264 | 1 | H.264 |
视频数据描述信息。
typedef struct { volc_video_data_type_e data_type; } volc_video_frame_info_t;
| 成员 | 类型 | 描述 |
|---|---|---|
| data_type | volc_video_data_type_e | 当前视频帧的数据格式 |
消息数据描述信息。
typedef struct { bool is_binary; } volc_message_info_t;
| 成员 | 类型 | 描述 |
|---|---|---|
| is_binary | bool | 消息类型:true:二进制数据。false:文本数据(如 UTF-8 字符串)。 |
数据类型。
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 | volc_data_type_e | 数据类型 |
| info.audio | volc_audio_frame_info_t | 音频数据描述信息 |
| info.video | volc_video_frame_info_t | 视频数据描述信息 |
| info.message | volc_message_info_t | 消息数据描述信息 |
错误码。
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; } volc_event_t;
| 成员 | 类型 | 描述 |
|---|---|---|
| code | volc_event_code_e | 事件码 |
智能体状态。
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 | volc_mode_e | 本次会话的运行模式:高质量传输通道(RTC)或者低负载传输通道(WebSocket) |
| bot_id | char* | 智能体 ID |
| params | char* | 会话参数(JSON String 格式) |
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 | 消息数据回调(如字幕) |