SDK介绍*
SDK相关链接,无权限请联系销售经理开通
目前 ovp_aiot 支持了两套应用方案,我们称其为:
- 可配置 ASR 方案:可通过与
viva配合,轻松定义和配置语音指令词、串口协议、TTS 播报以及方言自学习,实现真正的“0代码”开发。 - 离在线大模型方案:可通过参考 大模型方案概述 中相关文档,实现一套完整的语音交互解决方案,
lightning为 LN882H 芯片的实现参考。
1. ovp_aiot介绍*
1.1. 软件框架*

应用 (APP)
- 实现具体的业务逻辑和用户交互
- 处理语音识别结果并执行相应动作
- 管理 LED、按键、串口通信等外设交互
- 典型应用:offline_asr_app(可配置 ASR 方案APP)、smartbot_app(离在线大模型方案APP)
运行模式(Framework)
- 根据不同需求,初始化相对应的 VPA 功能,并将 VPA 的返回数据推送给 APP
- 典型模式:ovp_mode_offline_asr(可配置 ASR / 离在线大模型 都在用的KWS唤醒模式),bypass(直通VPA不处理的模式)
OVP 公共模块 (Common)
- 应用核心: 提供事件驱动机制,处理应用事件循环
- 公共模块: 提供系统初始化、内存管理、音频输入输出、TTS播放等通用功能
VPA 语音处理 (VPA)
- 模式管理器: 管理系统工作模式切换(离线ASR、降噪、录音等)
- VPA Process: 语音处理引擎的顶层接口,管理处理流程
- VMA Modules: 语音算法模块(AEC回声消除、降噪、特征提取等)
- VUI Engines: 语音交互引擎(KWS关键词识别、VAD语音检测、SED声音事件检测等)
驱动层 (Driver)
- HAL: 硬件抽象层,提供统一的硬件访问接口
- Fornax Drivers: 针对 GX8005/GX8006 芯片的底层驱动实现
硬件层 (Hardware)
- GX8005/GX8006 芯片硬件资源
1.2. 目录结构*
1.2.1. 顶层目录结构*
ovp_aiot/
ovp_aiot$ tree -L 1
.
├── 3rdparty # 第三方代码
├── app # 应用代码
├── arch # 启动代码,应用开发无需关心此目录
├── boards # 板级配置代码,根据硬件进行配置,一般无需修改
├── configs # 默认配置
├── drivers # 驱动代码
├── include # 公共头文件
├── lib # 库文件
├── ovp # 离线语音处理及框架调用 *
├── scripts # 公共脚本
├── tools # 辅助工具
├── utility # 公用代码
├── Kconfig # 编译配置源码
├── Makefile
└── README.md
1.2.2. 核心目录结构*
ovp/
ovp$ tree -L 2
.
├── app_core
│ ├── app_core.mk
│ ├── ovp_app_core.c # app core,app框架核心代码
│ ├── ovp_app_core.h
│ └── ovp_app.h
├── common
│ ├── audio_in # audio in 模块
│ ├── countdown # 提供一个简单的倒计时接口,可用于超时判断
│ ├── custom_space # flash 读写封装
│ ├── Kconfig
│ ├── kws_uart_report # 配合viva,实现串口指令上报
│ ├── log.h # 日志头文件
│ ├── Makefile
│ ├── ota # 双备份 OTA
│ ├── ovp_buffer.c # 流水线buffer管理接口
│ ├── ovp_buffer.h
│ ├── queue.c # 队列
│ ├── queue.h
│ ├── ringbuf.c # 环形缓冲区
│ ├── ringbuf.h
│ ├── self_learning # 配合viva,实现自学习
│ ├── system_init.c # 系统初始化
│ ├── system_init.h
│ ├── tts_play # 配合viva,实现 opus tts 播放,调用voice_player实现(控制音量时需调用上层tts_play模块的接口)
│ ├── uart_message # 比较旧的一份串口协议
│ ├── uart_record # 使用 uart_message 实现的串口录音
│ ├── uart_smartbot # WiFi大模型串口协议
│ ├── uart_tts_reply # 配合viva,实现串口指令响应
│ ├── viva_resource # 配合viva,解析viva生成的resource.bin文件
│ ├── voice_player # opus/pcm 播放器
│ └── vpa_helper.c
├── Kconfig
├── main.c # 系统初始化与主循环
├── Makefile
├── ovp_mode_bypass.c
├── ovp_mode.c
├── ovp_mode.h
├── ovp_mode_idle.c
├── ovp_mode_nn_denoise.c
├── ovp_mode_offline_asr.c # 离线asr模式,该模式调用app core接口驱动app框架,调用 vpa 处理语音降噪、唤醒跟识别
└── vpa # 处理语音降噪、唤醒跟识别
├── example # 示例算法包
├── Kconfig
├── olab_panda # 默认算法包
└── vpa.mk
1.3. 数据流介绍*

2. viva 介绍*
viva 是一款功能强大的配置工具,专为简化 ovp_aiot 低功耗离线语音识别 SDK 的开发而设计。
通过 viva,用户可以轻松定义和配置语音指令词、串口协议、TTS 播报以及方言自学习,实现真正的“0代码”开发。
有关使用说明可见 SDK 下 Documentation 目录。
3. lightning 介绍*
lightning 是针对 LN882H 芯片开发的SDK,应用与 GX8006 + LN882H 大模型方案,开发方案位于 SDK project/ln_model_public
方案主要包含三大块:
一是云端对接,即和云端之间的音频双向交互,以及一些控制消息的传输
二是和GX8006语音芯片的交互,即基于串口的双向音频传输及流控,相关控制指令的发送,例如配置播放参数、设置音量等
三是给出了一套授权和OTA,以及基于MCP实现控制的示例