当前位置: 首页 > news >正文

AI语音智能体开发日记(十二)GX8006 固件定制指南——从双唤醒词到 UART 音频传输

相关链接:
AI语音智能体开发日记(一)如何为“小智”服务器启用并调试 License 功能-CSDN博客

AI语音智能体开发日记(二)解决 Wi-Fi 配网小程序的兼容性问题-CSDN博客

AI语音智能体开发日记(三)解决小程序配网中的蓝牙命名与MAC地址获取问题-CSDN博客

AI语音智能体开发日记(四)在FreeRTOS中构建线程安全的UART2通信模块-CSDN博客

AI语音智能体开发日记(五)为智能设备注入“灵魂”——详解MCP工具的注册与使用-CSDN博客

AI语音智能体开发日记(六)为智能体注入旋律——七牛云音乐服务的接入与避坑指南-CSDN博客

AI语音智能体开发日记(七)搞定功放控制——详解GX8006平台Mute电平配置-CSDN博客

AI语音智能体开发日记(八)LVGL 8.4.0 移植实战——从零构建嵌入式GUI-CSDN博客

AI语音智能体开发日记(九)LVGL 8.4.0 中文字体配置全攻略-CSDN博客

AI语音智能体开发日记(十)LVGL 图标字体实战——从 FontAwesome 到屏幕显示-CSDN博客

AI语音智能体开发日记(十一)为智能设备“声”临其境——详解音频资源自动化生成流程-CSDN博客

AI语音智能体开发日记(十二)GX8006 固件定制指南——从双唤醒词到 UART 音频传输-CSDN博客

AI语音智能体开发日记(十三)一次由寄存器溢出引发的串口波特率“玄学”问题排查-CSDN博客

推荐链接:

AI语音智能体架构解析(一)系统架构全景图-CSDN博客

AI语音智能体架构解析(二)大模型(AI 的大脑)-CSDN博客

AI语音智能体架构解析(三)智控台(指挥中心)-CSDN博客

AI语音智能体架构解析(四)AI 语音终端(执行器官)-CSDN博客

AI语音智能体架构解析(五)小程序/APP(遥控器)-CSDN博客

推荐链接:
AI 应用 图文 解说 (一) -- 百度智能云 实现 语音 聊天-CSDN博客
AI 应用 图文 解说 (二) -- 百度智能云 ASR LIM TTS 语音AI助手程序 -CSDN博客

开发手记:GX8006 固件定制指南——从双唤醒词到 UART 音频传输

在嵌入式语音产品的开发中,固件的定制化配置是连接算法与硬件的关键环节。今天这篇博客,我将详细记录在 GX8006 平台上,如何通过make menuconfig图形化界面,一步步完成从模型部署到功能开关的完整固件定制流程。

参考网址:

kwsModelAutoDeploy工具使用文档 - AIoT文档中心

本次配置的核心目标是:

  • 部署支持两个唤醒词的 KWS(Keyword Spotting)模型。
  • 启用 UART 音频传输功能。
  • 配置功放(SPK)的 GPIO 控制逻辑。
  • 更新固件的软件版本号。
第一步:准备工作与模型部署

在开始修改固件配置前,我们需要先准备好语音唤醒模型,并使用官方工具进行自动化部署。

  1. 准备 Python 环境
    官方提供的kws_model_auto_deploy工具对 Python 版本有特定要求(Python 3.11),否则可能会出现库不兼容的问题。

    1# 1. 更新并安装 Python 3.11 及 venv 模块 2sudo apt update 3sudo apt install python3.11 python3.11-venv python3.11-dev 4 5# 2. 进入工具目录 6cd /home/zrh/GX8006/ovp_260630_1/tools/kws_model_auto_deploy 7 8# 3. 清理旧的虚拟环境(如果存在) 9rm -rf venv 10 11# 4. 创建新的虚拟环境 12python3.11 -m venv venv 13 14# 5. 激活虚拟环境 15source venv/bin/activate 16 17# 6. 安装依赖库 18pip install -r requirements.txt
  2. 部署唤醒模型
    将训练好的模型文件拷贝到tools/kws_model_auto_deploy/v0.2.0目录下,然后执行自动化部署命令。

    ./kwsModelAutoDeploy bunkwsdeploymentmode \ -i ./v0.2.0 \ -r /home/GX8006/ovp_260630_1 \ -p lightning \ -dv v0.2.0 \ -b

    这个命令会自动将模型文件集成到固件源码中,为后续的双唤醒词功能打下基础。

第二步:进入固件配置界面

模型部署完成后,我们进入项目根目录,启动图形化配置工具。

cd /home/GX8006/ovp_260630_1 make menuconfig

执行命令后,会进入NationalChip Offline Voice Process Configuration的蓝色配置主界面。

第三步:启用 UART 音频传输与功放控制

这是本次配置的核心部分,我们将在这里开启关键功能。

  1. 进入应用设置
    在主菜单中,使用方向键选择OVP Application Settings,按回车进入。

  2. 启用 UART 音频传输
    在应用设置子菜单中,找到并选中[*] Enable UART audio transmission

    • 这个选项是开启通过串口传输音频数据的关键,对于调试或特定的音频流应用至关重要。
  3. 配置功放(SPK)流控
    选中Enable UART audio transmission后,会进入其子菜单。在这里,我们需要配置功放的硬件控制方式。

    • 找到Select default SPK flow control (gpio)选项,按回车。
    • 在弹出的窗口中,选择(X) gpio
    • 这表示我们将使用一个 GPIO 引脚来控制功放的开启和关闭(流控),而不是使用 ACK 信号等方式。确认uart的设置
第四步:配置语音播放器与静音电平

功放控制逻辑通常与语音播放器模块紧密相关,我们需要确保两者的配置相匹配。

  1. 进入通用功能设置
    退出到主菜单,选择Common Function Settings并进入。

  2. 进入语音播放器配置
    在通用功能菜单中,找到并选中[*] Has voice player,按回车进入其详细配置。

  3. 设置静音(Mute)电平
    在语音播放器配置中,找到Mute Level (High)选项。

    • 这里的(High)表示当前配置为“高电平静音”,即当 Mute GPIO 输出高电平时,功放关闭;输出低电平时,功放工作。
    • 重要提示:此配置必须与你的硬件原理图设计保持一致。如果硬件是低电平静音,则需要在此处修改为(Low)
第五步:更新软件版本号

最后,我们来更新一下固件的版本信息,便于后续的版本管理。

  1. 进入对象信息菜单
    退出到主菜单,选择最下方的Object Info并进入。

  2. 修改版本号
    找到(1.3.2) Soft Verstion选项。

    • 直接输入新的版本号,例如1.3.2。这个版本号将会被编译进固件,并用于生成固件包的名称。
总结

完成以上所有步骤后,按<Exit>键逐级退出,并在提示时选择<Yes>保存配置。最后,在项目根目录执行make命令重新编译,即可生成一份集成了双唤醒词模型、开启了 UART 音频传输并正确配置了功放控制逻辑的全新固件。

通过这次详细的配置流程,我们可以看到menuconfig工具的强大之处,它将复杂的编译选项和硬件配置以图形化的方式呈现,极大地简化了固件的定制工作。

http://www.jsqmd.com/news/1398193/

相关文章:

  • 04-时序数据聚合统计:按小时/天/月设备数据汇总
  • 微信聊天记录导出备份:3 步用 WeChatMsg 把对话永久留在自己手里
  • Diablo Edit2完整指南:10分钟搞定暗黑破坏神2角色存档修改(1.09到2.6全版本通用)
  • KMS_VL_ALL_AIO智能激活脚本完整教程:3分钟免费搞定Windows与Office激活
  • 免驱动标签打印怎么落地:LPrint 用 1 个进程接管全公司打印机
  • 不想越狱又想给 iPhone 换位置?iFakeLocation 跨平台虚拟定位完整上手指南
  • OneNote 迁移实战终极指南:onenote-md-exporter 5 步完成笔记无损转换
  • Figma 界面汉化完整指南:FigmaCN 安装教程与使用技巧
  • 抖音无水印下载工具douyin-downloader实战教程:如何轻松搞定单个视频与主页批量下载
  • 网易云音乐等级自动打卡工具入门:从安装到每日300首歌曲打卡
  • 基于Python的公共卫生数据分析实战:环孢子虫病监测案例
  • Mac上NTFS硬盘只能读不能写?Free-NTFS-for-Mac帮你免费解锁完整读写
  • AI编程助手自主模型切换:基于VS Code扩展的智能路由实战
  • Java全栈开发环境搭建:从JDK到DataGrip的一站式配置指南
  • 免费Steam创意工坊模组下载器WorkshopDL完整上手指南
  • 【可灵 3.0】
  • Git Rebase详解:从原理到实践,打造整洁提交历史
  • Figma 全是英文看不懂?FigmaCN 中文汉化插件 5 分钟让整个界面彻底变中文
  • GPIO的理解
  • AOSP -- 第一章 概述
  • YOLO目标检测实战:从零到一快速上手训练与部署
  • 上海服务咨询选哪家
  • RedHat Linux磁盘扩容实战:从GPT分区到XFS文件系统挂载
  • 蓝奏云解析工具 LanzouAPI 完整实战指南:三步部署,让加密资源秒变高速直链
  • 微信聊天记录导出备份:免费开源 WeChatMsg,把十年对话永久装进自己的保险箱
  • Java大厂面试实录:Spring Boot、Redis缓存、Kafka消息队列、微服务与JVM实战问答
  • RA-FinBERT:融合规则感知的低资源金融文本情感分类实战
  • 从提示词工程到交互架构:动态感知与多模态协同
  • SpringBoot监听Redis键事件:从Pub/Sub原理到生产环境实战
  • Agent Memory:从上下文管理到持续学习的完整闭环