# 22级计科生产实习示例代码库 **Repository Path**: hqyjxa/XUPT-CS22-Example ## Basic Information - **Project Name**: 22级计科生产实习示例代码库 - **Description**: 西安邮电大学22级计科生产实习示例代码库 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-12 - **Last Updated**: 2026-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能监控系统 本项目实现一个智能监控系统,包含音频处理、语音合成和摄像头采集等模块。 ## 项目结构 ``` XUPT-CS22-Example/ ├── include/ # 头文件目录 │ ├── audio.h # 音频模块头文件 │ ├── llm.h # LLM 模块头文件 │ └── camera.h # 摄像头模块头文件 ├── src/ # 源代码目录 │ ├── audio.c # 音频模块实现 │ ├── llm.c # LLM 模块实现 │ └── camera.c # 摄像头模块实现 ├── test/ # 测试代码目录 │ ├── audio_test.c # 音频模块测试 │ ├── llm_test.c # LLM 模块测试 │ └── camera_test.c # 摄像头模块测试 ├── CMakeLists.txt # CMake 构建文件 ├── config.json # LLM 模块配置文件 ├── LICENSE # 许可证文件 └── README.md # 项目说明 ``` ## 功能特性 ### 音频模块 - 基于 ALSA 库实现音频播放 - 支持设置声道数、采样率和采样格式 - 提供简洁的 API 接口 - 包含完整的测试示例 ### LLM 模块 - 基于 CURL 和 Jansson 库实现 LLM API 调用 - 支持从配置文件加载 API 配置 - 提供简洁的 API 接口 - 支持 function calling 功能 - 实现 shell 命令执行功能(带白名单验证) - 包含完整的测试示例 ### 摄像头模块 - 基于 V4L2 接口实现摄像头图像采集 - 支持 1920x1080 分辨率和 MJPG 格式 - 提供简洁的 API 接口 - 包含完整的测试示例 ## API 接口 ### 音频模块 #### 结构体 - `audio_t`:音频设备句柄结构体 #### 函数 - `audio_open`:打开音频设备 - `audio_close`:关闭音频设备 - `audio_play`:播放音频数据 ### LLM 模块 #### 结构体 - `llm_t`:LLM 模块句柄结构体 #### 函数 - `llm_init`:初始化 LLM 模块 - `llm_load_config`:从配置文件加载配置 - `llm_send_message`:发送消息到 LLM - `llm_free`:释放 LLM 模块资源 ### 摄像头模块 #### 结构体 - `CameraDevice`:摄像头设备结构体 #### 函数 - `camera_init`:初始化摄像头设备 - `camera_capture_frame`:采集一帧图像 - `camera_save_frame`:保存图像到文件 - `camera_cleanup`:清理摄像头设备资源 ## 编译和运行 ### 编译 ```bash mkdir -p build cd build cmake .. make ``` ### 运行测试 #### 音频模块测试 ```bash ./audio_test ``` 其中 `` 是 PCM 格式的音频文件路径。 #### LLM 模块测试 ```bash ./llm_test ``` #### LLM Function Calling 测试 ```bash ./llm_function_calling_test ``` #### 摄像头模块测试 ```bash ./camera_test ``` ## 依赖 ### 音频模块 - ALSA 库:用于音频设备的操作 ### LLM 模块 - CURL 库:用于 HTTP 请求 - Jansson 库:用于 JSON 解析 ### 摄像头模块 - V4L2 库:用于摄像头设备的操作 ## 许可证 本项目使用 MIT 许可证。