# soundSDK **Repository Path**: softlgh/soundSDK ## Basic Information - **Project Name**: soundSDK - **Description**: 聚焦边缘设备特殊声音识别算法,婴儿哭声、鼾声、狗叫声、猫叫声、玻璃破碎声、警报声、枪声、敲门声、尖叫声等。算法完全在设备本地运行,音频不出设备;从音频特征提取、轻量模型设计到端侧推理优化与误报抑制,为嵌入式产品提供可直接集成的离线声音识别能力。 - **Primary Language**: C/C++ - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: https://51tage.com/zh/demo?s=gitee - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-18 - **Last Updated**: 2026-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # soundSDK **[English](README.md) | 中文版** **面向嵌入式平台的端侧声音 AI SDK —— 实时、完全离线的声音事件检测 (TinyML / 边缘 AI)。** **在线测试:** https://51tage.com/zh/demo?s=github ## 项目介绍 soundSDK 是面向嵌入式平台的端侧**声音 AI SDK**。它提供统一的"音频到事件"处理管道 —— 音频采集、特征提取、量化模型推理与报警逻辑 —— 完全离线、实时运行在低功耗硬件上, 覆盖从 MCU 到 Linux SoC 的各种设备。 SDK 包含**九大声音检测模型**: - **cryDetect** —— 婴儿哭声检测 - **snoreDetect** —— 鼾声检测 - **barkDetect** —— 狗叫检测 - **catDetect** —— 猫叫检测 - **glassDetect** —— 玻璃破碎检测 - **alarmDetect** —— 报警声检测 - **screamDetect** —— 尖叫检测 - **knockDetect** —— 敲击检测 - **gunshotDetect** —— 枪声检测 ## 为什么选择 soundSDK - **离线声音事件检测** —— 所有推理在设备端完成, 无云依赖, 适合隐私敏感的 7x24 小时连续监听。 - **面向微控制器的 TinyML** —— int8 量化 CNN 推理; 在 ESP32-S3 单核上约 50ms 处理 1 秒音频。 - **实时报警事件** —— 逐帧概率经可配置报警策略转换为起始/结束事件。 - **可移植的 C 实现** —— 各嵌入式平台共用同一套检测与报警 API, 平台差异仅在薄薄一层采集与推理后端。 ## 支持模型 | 模型 | 检测内容 | 正类标签 | |---|---|---| | cryDetect | 婴儿哭声 | cry | | snoreDetect | 鼾声 | snoring | | barkDetect | 狗叫 | barking | | catDetect | 猫叫 | cat | | glassDetect | 玻璃破碎 | glass_break | | alarmDetect | 报警声 | alarm | | screamDetect | 尖叫 | scream | | knockDetect | 敲击 | knock | | gunshotDetect | 枪声 | gunshot | ## 支持平台 **当前开放: ESP32-S3** (本仓库, ESP-IDF v5.3)。 其他平台的移植版本**请联系我们获取** —— 管道为纯 C 实现, 适配非常简单: - 乐鑫 ESP32-P4 (ESP-IDF) - 海思 Hi3519 / Hi3516 / Hi3559 (Linux) - 君正 T31 / T32 / T33 / X2000 (Linux) - 星宸 SigmaStar SSC 系列 (Linux) - 瑞芯微 RV1106 / RV1109 / RK3566 (Linux) - 全志 V853 / R128 (Linux) - 通用 Linux (ARM / x86) 与 RTOS 平台 其他平台请联系我们 —— 见 [联系方式](#联系方式)。 ## 目录结构 ``` opensource/ |-- cry_detect.c/h # 哭声检测公开接口 |-- alarm_strategy.c/h # 报警策略 (起始/结束事件) |-- audio_buffer.c/h # 音频环形缓冲 |-- inference_engine.c/h # 推理引擎工厂接口 |-- config.h # 编译期常量 |-- main.c # wav 文件 demo |-- main_mic.c # 实时麦克风 demo |-- audio_capture.h # 音频采集接口 |-- tinycthread.c/h # 第三方线程库 (zlib 协议) `-- esp32s3/ # ESP32-S3 工程 |-- CMakeLists.txt |-- sdkconfig / partitions.csv / dependencies.lock |-- audio_capture.c # I2S 采集实现 |-- main/ | |-- main_esp32.c # 固件入口 (app_main) | `-- CMakeLists.txt `-- lib/ |-- libcrydetect_engine.a # 预编译推理引擎库 `-- include/crydetect_engine_api.h ``` ## 构建 前置条件: ESP-IDF v5.3.5, 目标芯片 esp32s3。 ```bat cd esp32s3 _idf.bat build ``` 首次构建会按 `dependencies.lock` 从组件仓库联网拉取 esp-dl 等第三方组件。 构建产物: `esp32s3/build/cry_detect.bin`。 ## 烧录 ```bat _idf.bat -p COM4 flash ``` ## 使用 - 实时麦克风模式 (默认入口): 检测到哭声时输出 `CRY START` / `CRY END` 事件。 - wav 文件模式: `main.c` 为文件输入 demo。 ## 常见问题 **soundSDK 是什么?** soundSDK 是面向嵌入式平台的端侧声音 AI SDK: 音频采集、Mel 频谱特征、int8 量化 CNN 推理与报警事件逻辑, 完全离线运行。 **soundSDK 包含哪些声音模型?** 九大模型: cryDetect (婴儿哭声)、snoreDetect (鼾声)、barkDetect (狗叫)、 catDetect (猫叫)、glassDetect (玻璃破碎)、alarmDetect (报警声)、screamDetect (尖叫)、 knockDetect (敲击)、gunshotDetect (枪声)。 **支持哪些平台?** 本仓库开放 ESP32-S3。ESP32-P4、海思 Hi3519 系列、君正 T33 系列、星宸、瑞芯微、 全志以及通用 Linux/RTOS 平台的移植版本请联系我们获取。 **soundSDK 是开源的吗?** ESP32-S3 平台代码以 GPL-3.0 发布。如需闭源商业授权, 请联系我们。 ## 联系方式 - 微信: **softlgh** - 邮箱: **3116009971@qq.com** ## 许可证 本项目采用 **GNU 通用公共许可证 v3.0 (GPL-3.0)**。 允许商业使用, 但分发衍生作品时必须同样以 GPL-3.0 开源 —— 不允许闭源商业分发。 完整文本见 [LICENSE](LICENSE)。 如需**闭源商业授权**, 请联系我们 —— 见 [联系方式](#联系方式)。 ## 第三方组件 - tinycthread (zlib 协议) - esp-dl (Apache-2.0, 由 idf_component.yml 管理)