AI语音智能体开发日记(一)如何为“小智”服务器启用并调试 License 功能
相关链接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博客开发笔记如何为“小智”服务器启用并调试 License 功能在嵌入式开发中集成第三方服务如“小智”语音助手时License 授权验证是绕不开的一环。最近在处理 某芯片AI语音智能体项目时我整理了一下的 License 功能开启、调试及恢复流程。这篇博客将详细记录从修改 CMake 配置、编写代码逻辑到通过串口工具获取和写入密钥的全过程希望能帮助遇到同样问题的开发者。1. 项目配置指定服务器与开启宏定义首先我们需要在编译配置中明确指定服务器实现为“小智”并打开 License 相关的功能开关。第一步修改 CMakeLists.txt打开项目根目录下的CMakeLists.txt文件找到服务器实现的配置部分。我们需要将SERVER_IMPL设置为xiaozhi。1# 选择服务器实现 2set(SERVER_IMPL xiaozhi)注意确保注释掉其他服务器如 qiniu的配置以免冲突。第二步开启 License 宏在project/ln_model_public/app/common.h文件中我们需要定义 License 相关的宏。将CONFIG_LICENSE_ENABLE的值设为1。1// common.h 2#define CONFIG_LICENSE_ENABLE (1) 3#define CONFIG_LICENSE_ERASE (0) 4#define CONFIG_OTA_ENABLE (0)2. 代码逻辑植入检查与条件编译配置修改完成后我们需要在应用代码中植入检查逻辑并确保“小智”特有的接口被正确调用。在usr_app.c中启动检查在用户应用任务创建函数creat_usr_app_task中加入 License 检查代码。如果检查失败程序应直接返回阻止后续运行。1// usr_app.c 2void creat_usr_app_task(void) 3{ 4 // ... 其他初始化代码 ... 5 6 #if defined(CONFIG_LICENSE_ENABLE) CONFIG_LICENSE_ENABLE 7 // 启动 License 检查如果返回 false 则终止 8 if (!cli_license_check()) return; 9 #endif 10 11 // ... 后续业务逻辑 ... 12}在server_interface.h中适配接口为了让编译器识别cli_license_check函数我们需要在server_interface.h中添加条件编译。只有当定义了CONFIG_SERVER_IMPL_XIAOZHI时才声明该函数否则提供一个空的 inline 实现以避免编译错误。3. 调试阶段绕过验证进入写入模式这是最关键的一步。为了能够向设备写入新的序列号Serial Num和密钥License Key我们需要暂时“欺骗”系统让它认为当前的 License 是无效的从而进入激活/写入模式。修改cli_license.c打开project/ln_model_public/app/servers/xiaozhi/cli_license.c。找到cli_license_check函数注释掉is_license_key_valid()的判断逻辑。将这句license_key判断注释掉否则无法进入小智的串码写入模式4. 硬件调试读取 MAC 与 写入密钥代码编译下载后我们需要通过串口调试助手如 SSCOM与设备交互。步骤 A确认进入激活模式使用921600波特率打开串口。如果看到如下日志说明我们成功绕过了验证进入了激活等待状态[cli_license_check:441] license key is invalid, start to activate[ate_cli_thr_entry:373] start步骤 B获取设备信息将波特率切换为1000000下载口波特率发送查询指令查询 MAC 地址发送ATMAC?返回示例MAC:00:50:19:81:c9:bb查询当前密钥状态发送ATSER_KEY?此时会返回设备当前的SER_NUM和LIC_KEY如果是新设备可能是默认值或空。步骤 C生成并写入新的 License如果你还没有对接官方的商务流程可以使用官方提供的测试链接生成临时密钥测试生成地址https://xiaozhi.me/api/developers/generate-license...(需替换 token)写入指令格式ATSER_KEY设备序列号,授权密钥实际示例举例00:50:3b:66:d4:aAATSER_KEYLN882H_AI_BOX_1_03522700A30980BF,7PMBsN2WugX6QdHfUhWKWaykEoQgUQ3W发送指令后若返回OK则说明写入成功。5. 最终发布恢复代码保护调试完成后千万不要直接发布当前的代码必须回到cli_license.c将第 3 步中注释掉的is_license_key_valid()判断恢复。1// 恢复后的代码 2if (is_license_key_valid()) return -1;这样设备在下次启动时就会严格执行 License 校验确保产品的安全性。

相关新闻

【Prometheus 联邦集群与 VictoriaMetrics 远程存储实战】

【Prometheus 联邦集群与 VictoriaMetrics 远程存储实战】

提示:本文原创作品,良心制作,干货为主,简洁清晰,一看就会 文章目录前言一、Prometheus联邦(Federation)1.1 什么是Prometheus联邦1.2 Prometheus联邦实战联邦节点配置配置prometheus主节点二、P…

2026/10/8 0:34:22 阅读更多 →
技术拆解(十五)具身智能:RT-2为什么能听懂“灭绝动物”?VLM知识如何变成动作

技术拆解(十五)具身智能:RT-2为什么能听懂“灭绝动物”?VLM知识如何变成动作

目录 一、RT-2的提出背景与模型定位 1.1 为什么已经有RT-1,还需要RT-2 1.2 RT-2是什么 1.3 RT-1、PaLM-E与RT-2的关系 1.4 RT-2不是一个固定网络,而是一套VLM转VLA的方法 二、RT-2的数据组织与动作表示 2.1 Episode与逐时间步训练样本 2.2 RT-2的…

2026/10/13 2:11:08 阅读更多 →
从 Excel 到电价 API:2026 市场化后能源系统如何结构化维护电价数据

从 Excel 到电价 API:2026 市场化后能源系统如何结构化维护电价数据

2026 年 3 月 1 日,国家发改委《电力中长期市场基本规则》正式施行。固定分时电价在 9 省地区被取消,现货市场每 15 分钟刷新一个新价格。对于工商业储能、EMS、售电、充电运营和虚拟电厂来说,这意味着过去"一年改一次、人工填 Excel&qu…

2026/10/11 8:51:32 阅读更多 →

最新新闻

Windows平台Rust开发环境配置与优化指南

Windows平台Rust开发环境配置与优化指南

1. Rust语言与Windows环境适配背景Rust作为一门系统级编程语言,其编译器工具链对操作系统底层有着深度依赖。在Windows平台进行Rust开发需要特别注意环境配置的差异性——与Linux/macOS不同,Windows存在MSVC和GNU两种ABI(应用程序二进制接口&…

2026/10/14 2:25:24 阅读更多 →
长波红外超构透镜偏振复用FDTD仿真全流程解析

长波红外超构透镜偏振复用FDTD仿真全流程解析

1. 项目背景与核心价值长波红外超构透镜偏振复用聚焦技术是近年来光学领域的前沿研究方向。作为一名光学工程师,我在实际项目中发现传统红外光学系统存在体积大、重量沉、功能单一等问题。而基于超构表面的偏振复用透镜,能在单层平面上实现多通道光学功能…

2026/10/14 2:25:24 阅读更多 →
2026 查重率和 AIGC 率都飘红?一站式降AI率软件实测推荐

2026 查重率和 AIGC 率都飘红?一站式降AI率软件实测推荐

一、前言:2026 高校论文审核新难题随着高校学术审核体系不断升级,知网、维普等主流检测平台全面上线AIGC 智能检测功能,当代毕业生的论文写作与修改迎来双重考验。以往论文仅需攻克重复率超标问题,如今还要规避AI写作痕迹检测风险…

2026/10/14 2:25:24 阅读更多 →
摄影工作室AI提效手册:婚纱写真儿童摄影的修图、营销与交付(v1.0)

摄影工作室AI提效手册:婚纱写真儿童摄影的修图、营销与交付(v1.0)

摄影工作室AI提效手册:婚纱、写真、儿童摄影的修图营销与交付版本 v1.0  2026年10月写在前面:这本手册解决什么这本手册写给三类人:开婚纱影楼的老板与修图主管、拍个人写真和家庭照的独立摄影师、做儿童摄影工作室的店长与后期。你大概率已…

2026/10/14 2:25:24 阅读更多 →
流水线设计实战:从冒险机制到乱序执行的性能优化

流水线设计实战:从冒险机制到乱序执行的性能优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 2:25:24 阅读更多 →
【数据可视化-155】第十五届全运会乒乓球男单半决赛:樊振东VS王楚钦技术分析报告

【数据可视化-155】第十五届全运会乒乓球男单半决赛:樊振东VS王楚钦技术分析报告

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个…

2026/10/14 2:24:24 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →