自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (7)
  • 收藏
  • 关注

原创 开发板上搭建nextcloud和minio服务

搭建nextcloud和minio服务及过程中踩的坑

2025-11-16 18:14:05 736

原创 第十二章:无限篇 - 通过 MCP 拓宽能力边界

在第十一章,我们将 MCP(Model Context Protocol/模块化能力平台)以客户端服务的形态嵌入到语音助手内核中,实现了远端工具的发现与调用。本章在此基础上迈向“能力无限”,系统化阐述如何通过 MCP 扩展助手的知识边界(文件系统/知识库)、信息边界(互联网/抓取与整合)以及行动边界(智能家居/设备控制)。我们不仅提供工程可落地的实施方案、完整代码与验证步骤,还将从架构设计、性能优化与安全治理的角度进行深度分析,确保该能力在生产环境中可维护、可观测、可扩展。

2025-10-26 13:44:33 50

原创 第十一章:跃迁篇 - 集成 MCP,连接能力宇宙

本章将从工程视角系统化拆解 MCP(Model Context Protocol/能力上下文协议)的核心机制与集成路径,目标是让我们的 C++ 语音助手在保持内核高内聚、低耦合的前提下,能够“连接能力宇宙”:即在统一协议下发现、注册、调用远端的工具(Tools)与资源(Resources),并将结果以一致的事件模型在系统中流转。整个章节严格对齐项目现有风格与术语,代码示例可编译运行,并给出逐行注释、API 设计与调用示例、性能优化与最佳实践。

2025-10-26 13:40:52 29

原创 第十章:生态篇 - 构建您的第一个插件生态

本章从生态构建视角出发,系统化讲解如何在现有语音助手内核之上,设计、注册、加载与运行插件(Extensions/Services),并以三个可运行的插件实战案例贯穿:信息获取类(天气)、系统控制类(文件)、娱乐互动类(AI 对话)。同时,我们将给出插件间通信机制与依赖管理策略、插件安全性与隔离设计、性能优化与错误处理实践,以及开发者最佳实践与项目集成案例。文中所有技术观点均以仓库现有代码实现为依据,并辅以可执行的最小完备代码与架构/流程图示。

2025-10-26 13:37:12 62

原创 第九章:架构篇 - 设计可插拔的语音助手内核

本章目标:构建一套高内聚、低耦合、可插拔的语音助手内核,使语音前端处理(APM)、VAD、ASR、TTS、任务执行(例如查询天气、查询时间)等能力均能以插件形式独立交付与迭代。我们将以仓库现有的 `kernel` 模块为基础,结合真实代码实现(`DynamicLinker`、`IService`、`Extension`、`EventBus`、`ServiceManager`、`Configuration`),给出接口规范、加载机制、通信协议、异常与安全策略、性能优化与扩展性设计,并通过“查询时间功能”重构为

2025-10-26 13:31:50 53

原创 第二阶段技术总结报告

本报告总结了第二阶段在语音前端处理、语音活动检测(VAD)、云端语音识别(ASR)与语音合成(TTS)四大模块的技术成果,统一呈现接口规范、评测数据与工程衔接方案。所有示例与实现均与仓库依赖一致(`cpp-httplib`、`nlohmann::json`、`PortAudio`、事件总线架构)。

2025-10-26 13:25:26 46

原创 第八章:表达篇 - 对接云端语音合成,让助手“开口说话”

本章系统讲解云端 TTS(Text-to-Speech,文本转语音)的技术原理与工程实现,结合本项目的 Provider 架构、事件总线与音频服务,给出可运行的 HTTP API 对接示例、音频流处理与缓冲实现、播放链路的接入方法、错误处理与性能优化策略,并通过流程图与时序图串起“从文本到声音”的完整闭环。

2025-10-26 13:22:02 82

原创 第七章:理解篇 - 对接云端语音识别,让助手“听懂”人话

本章系统阐述云端 ASR(Automatic Speech Recognition,自动语音识别)的核心算法与工程实践,结合本项目已有的音频采集与事件总线架构,提供可运行的 HTTP API 调用示例、错误处理与性能优化方案,并通过流程图、时序图与类图帮助你从“音频采集”走到“文字理解”。

2025-10-26 13:18:15 144

原创 第六章:感知篇 - 语音活动检测:让助手知道“你何时在说话”

本章深入语音活动检测(VAD, Voice Activity Detection)的算法原理与工程实践,结合前几章的音频采集与前端处理代码,给出可运行的实时与离线示例、逐行注释解析、参数调优与性能评估,以在多场景中稳定识别“你何时在说话”。

2025-10-26 13:14:30 30

原创 第五章:清晰篇 - 语音前端处理:从嘈杂环境中捕捉纯净人声

本章面向语音前端处理(Speech Front-End Processing),围绕噪声抑制(NS, Noise Suppression)、回声消除(AEC, Acoustic Echo Cancellation)、增益控制(AGC, Automatic Gain Control)与波束形成(BF, Beamforming)等关键模块,给出算法原理、工程实现与复现实验。我们在 PortAudio 实时采集基础上,提供 3+ 可运行示例与性能评估表,保持与前几章一致的风格与技术深度。

2025-10-26 13:09:00 87

原创 第四章:奠基篇 - 项目雏形与核心抽象

本章从“项目雏形”和“核心抽象”两条主线展开:以最小可用的音频引擎为目标,明确模块边界、生命周期管理和事件驱动连接方式,保证后续与 AI、GUI 的无缝衔接。

2025-10-26 11:43:37 587

原创 第三章:破壁篇 - 叩开音频开发的大门

本章以“破壁”为线索,直面音频开发的核心难点:采集(capture)、处理(processing)与编解码(codec)。每一小节包含理论、可运行代码示例与实践建议,帮助你快速打通麦克风到扬声器的闭环。

2025-10-26 10:30:00 33

原创 第二章:武装篇 - 现代C++工程化实战入门

本章聚焦“工程化跃迁”。从可维护的构建系统、资源管理到并发与异常处理,围绕真实项目代码,提供标准概念、最佳实践与常见问题解法,帮助你把“会写C++”升级为“能落地复杂项目”。

2025-10-25 21:13:57 341

原创 第一章 蓝图篇 - 全景认知与项目设计

本章作为项目的总览与蓝图,围绕技术背景、架构设计、技术选型与跨平台环境搭建展开,帮助你从“为什么与如何”两端建立对项目的全景认知。内容紧贴实际代码与工程结构,理论与实战并重。

2025-10-25 21:00:57 282

原创 本专栏简介

本专栏简介以及学完收获。

2025-10-25 14:10:51 43

原创 DeepSeek官方api无法使用的情况下,如何使用deepseek api写代码?最新教程来了!

deepseek官方api无法使用?还有其他服务商可以。

2025-02-11 23:11:24 1744

原创 plantuml的picoweb无法渲染分页图表的问题

使用plantuml自带的picoweb在渲染分页图表时,vscode,但是使用plantuml官网渲染则没问题。查看plantuml官网的picoweb的说明,picoweb只是plantuml服务的最小实现。因此考虑可能是plantuml服务不全导致的上述问题。

2024-12-26 16:42:54 464

原创 【踩坑】minidlna一直提示文件权限问题No Accesible

会报错:No accessible[Permission Denied]。安装的,会自动开启minidlna服务,并且服务启动用户为。通过rc.local自己写minidlna启动服务。,此时如果使用正常路径作为。

2024-06-05 17:47:36 529

原创 Qt子线程更新UI的一种新玩法

从上面代码来看,一般做法里,代码量增加了不少。而且对现有代码的破坏性较大,这种破坏性更改,在接口类中,是难以容忍的。一般的做法是,子线程发送信号,主线程接收信号,并执行对应槽函数。假设现在有一个任务队列,队列里的每一个任务,都会在结束时,往主窗口的控制台打印一条消息。)的公开接口也没改,增加了一个信号和一个本身的槽函数,同时它还是线程安全的。在上述代码中,子线程更新主线程ui界面,这种方法在Qt中是。Qt不允许子线程直接操作主线程UI,推荐的做法是,其最终的效果,依旧不是子线程直接操作主线程UI。

2024-05-21 13:51:30 1113 4

原创 【老文新说】C++读取.shp文件

shp文件格式说明和代码解释。仓库在[whu-geocat/openfile](https://github.com/whu-geocat/openfile),欢迎大家fork和star!

2024-03-09 22:22:14 1638

原创 vscode常用快捷键整理:学会一天搬3个人的砖!

vscode常用快捷键整理,持续更新~~~

2024-03-09 21:39:23 379

原创 【Rust应该对比着C++学】【0x0】Rust简介

我最开始了解到Rust是去年在某公众号推文中,当时对Rust的唯一印象就是:呵,又是一门新语言,我学C++就够了。(🤣)后来慢慢看到了很多关于Rust的资讯:《Windows用Rust重写了3.6万行内核代码》、《用Rust构建高性能应用》、《Rust取代C++?》等,尤其是看到Rust取代C++的说法,之前我作为C++的忠实拥蹙,对这种说法可实在是——对这种说法,我不敢苟同。(我是“卧龙凤雏”🤣)于是看了一些rust相关的信息,了解到Rust的历史和目标。但是仅仅如此,我还不至于就直接爱上rust。

2023-09-20 17:46:29 282

原创 vscode配置clangd和clang-format

my_project|-- a.h|-- b.h|-- c.hpp|-- source|-- a.cpp|-- b.cpp|-- d.cpp// 使用clangd作为语言服务器是,会与微软的智能感知引擎产生冲突 // 想使用clangd,就需要禁用微软的只能感知引擎。

2023-06-14 22:02:39 20269 1

原创 【点云抽稀】一种基于均匀分布随机数的点云抽稀算法

一种基于均匀分布的随机数的点云抽稀算法,时间复杂度是O(n)。经验证,效果可行,效率也行。

2023-05-19 10:48:09 2421

原创 WSL2-Ubuntu上安装搭建gitlab服务,并在本机运行

如何在Windows-WSL上搭建gitlab服务。网上都是docker安装,本文介绍的则是真实环境安装。

2023-02-22 00:30:51 4605 3

原创 C++数据结构【01】——链表

C++数据结构第一篇,讲讲链表。

2023-01-08 21:23:05 1188 1

原创 从0开始制作ArcGis——第一章

对shp文件和矢量数据及栅格数据进行简单介绍。

2022-09-13 23:46:03 590

原创 从0开始制作ArcGis——目录

本文是《从0开始制作ArcGis》系列的目录,从目录中可以看到在这个系列中有哪些内容,如果某一部分是你需要的,那么你可以订阅看看。

2022-04-03 11:03:57 1742

原创 Windows上最轻量的vscode-C++开发环境搭建

本文目录1. 前言2. 准备工作3. vscode的一些常用插件3.1 C++主要插件3.2 一些辅助插件4. 单文件工程示例5. 多文件工程示例5.1 工作空间结构5.2 CMakelists.txt5.3 代码文件5.4 运行结果6. 结语1. 前言笔者刚入行时直接使用Qt进行C++软件开发,习惯了Qt浅色风格之后,尤其是虚函数斜体显示的主题。再转到VS,无论是VS的深色还是浅色主题,都让笔者感觉到强烈的不习惯。而且,VS的安装有时候着实让人诟病,安装vs2017之前的还好,可以下载离线包。但vs

2022-02-26 13:02:15 2775

原创 GDAL将内存数据生成等高线——GDAL_CG_Create创建等高线生成器

详细介绍了如何使用GDAL的GDALContourGeneratorH和GDALContourWriter进行内存数组的等高线生成,以及相应函数的参数解释。

2021-12-29 22:23:21 2763

原创 第1章序言

说明

2021-07-16 15:34:47 208

原创 纯C++操作文件和文件夹的工具类

前言一般涉及到文件和文件夹的操作的时候,要么使用Qt的QFile或者QDir类,要么使用别的库。但是当我们的程序不想包含太多太杂的库的时候,对于文件夹的操作就不那么容易了。因此,为解决这个问题,本文创建了一个File类,以及从File类派生出的Dir类,用以对文件和文件夹进行操作。基本想法为什么需要从File类派生出Dir类呢?是因为在linux下,所有东西都可以看成文件,因此文件夹属于一类特殊的文件,故从File类派生出Dir类,以重用File类的一些方法。特点纯C++,不包含其他的任何第三

2021-07-16 14:37:32 1653 5

原创 VS2017编译sqlit3——官网只有32位dll解决办法

本文目录1. 下载2. 编译2.1 sqlite3的编译2.1.12.1.22.2 打包编译2.2.1 打包2.2.2 VS2017新建项目2.2.3 添加预处理器定义3. 测试代码1. 下载sqlite3官网下载如下三个包:sqlite-amalgamation-3350500.zipsqlite-autoconf-3350500.tar.gzsqlite-dll-win32-x86-3350500.zip截止本文写作日期,sqlite3的最新版本位3.35。2. 编译2.1 sqli

2021-04-21 00:09:06 553

原创 Ubuntu20.04主题美化

本文目录效果终端文件管理器步骤Ubuntu 上的准备工作tweak tool 安装火狐浏览器/谷歌浏览器安装插件安装插件下载主题、图标等配置终端的标题栏太大???方案1方案2效果终端文件管理器步骤Ubuntu 上的准备工作tweak tool 安装sudo apt install gnome-tweak-tool火狐浏览器/谷歌浏览器安装插件在浏览器的插件管理界面搜索gnome shell integration插件,然后安装。安装插件上面的东西都准备好之后,去gnome插件官网

2021-03-19 11:40:42 803

原创 qt中解决QString中文乱码的问题

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2020-12-10 15:38:09 7000 1

原创 VS2017编译最新版GDAL3.2及其最新版依赖库

VS2017编译最新的GDAL3.2.0一堆的源码GDAL3.2.0PROJ7.2.0Sqlite3.3GEOS3.8.1TIFF4.1.0CURL7.73.0辅助工具everythingnotepad++准备工作编译Sqlite3编译TIFF编译CURL编译PROJtest_network项目预处理命令编译GEOSGDAL的编译修改nmake.opt文件编译源码生成库install生成可执行文件devinstall生成目标库一堆的源码GDAL3.2.0PROJ7.2.0Sqlite3.3GEOS

2020-11-21 16:44:56 2692

原创 OSG3.6.4+osgQt+Qt5.14制作的osgb三维模型展示工具

本文目录1. 工具准备1.1 OSG3.6.41.2 osgQt2. 正文开始2.1 需求分析2.2 源码分析2.2.1 Widget.h2.2.2 Widget.cpp2.2.3 ui_Widget.h2.2.4 main.cpp2.3 完整源码3. 效果图4. 不足1. 工具准备1.1 OSG3.6.4关于OSG的编译我之前的博客已经写的很详细,这里贴出链接。1.2 osgQtosgQt的编译过程也在我之前的博客中,这里接着贴链接。2. 正文开始2.1 需求分析在做osgb三维模型的分割

2020-09-21 22:26:30 5863 3

原创 别的VS2017+PCL的安装配置教程都不用看了,踩坑无数总结出来的血泪经验都在这里了!!!

本文目录1. 下载环境1.1 VS20171.2 PCL1.9.11.3 其他2. 安装2.1 VS的安装2.2 PCL的安装3. 几个重要的注意事项3.1 Boost的编译3.2 VS中配置项目属性3.2.1 添加库目录和包含目录3.2.2 SDL检查设置为否3.2.3 预处理器定义加上几句话3.2.4 附加依赖项设置4. 一段测试代码1. 下载环境1.1 VS2017百度搜索VS2017, 跳进MS官网下载,VS的安装就不用多说了。VS2015之后的安装,都是通过下载器(Visual Studi

2020-09-02 00:50:49 1861 2

原创 osgQOpenGL的简单使用——在一个窗口中显示三维模型

本文目录1 简介2 环境准备2.1 OSG2.2 osgQOpenGL2.2.1 osgQOpenGL下载2.2.2 osgQOpenGL编译2.3 Qt3 osgQOpenGL的简单使用3.1 osgQOpenGL源码3.2 osgQOpenGLWidget的使用。3.2.1 MyWidget.h头文件3.2.2 MyWidget.cpp源文件3.2.3 程序效果1 简介osgQOpenGL是OSG嵌入到QT的一种新的实现方法。OSG使用OpenGL进行三维模型的渲染,恰好Qt5也提供了对OpenGL

2020-07-05 00:09:00 8531 28

原创 别再看别的OSG配置教程了,最全的都在这儿了!—— VisualStudio2017+QT5.14.2+OSG3.6.4下载编译

文章目录在看本教程之前,首先保证你的环境是VS2017,QT5.14.2,OSG3.6.4!!!!!!!!!!!!在看本教程之前,首先保证你的环境是VS2017,QT5.14.2,OSG3.6.4!!!!!!!!!!!!在看本教程之前,首先保证你的环境是VS2017,QT5.14.2,OSG3.6.4!!!!!!!!!!!!在看本教程之前,首先保证你的环境是VS2017,QT5.14.2,OSG3.6.4!!!!!!!!!!!!好了,重要的事情说了四遍。。。。。。下面是本文中所用到的所有软件的下载

2020-06-24 14:59:36 6163 21

适合clangformat的配置文件

一个配置好的clangformat配置,里面有详细的参数解释和效果实例。

2023-09-20

Windows下使用vscode和mingw搭建最轻量的C++开发环境

Windows下使用vscode和mingw搭建最轻量的C++开发环境文章的资源包,里面包含vscode安装文件,文中提及的vscode的插件,以及示例代码。欢迎朋友下载

2022-02-26

读SHP的源码.rar

读SHP的源码.rar

2021-02-22

最新版的GDAL3.2编译好的库

GDAL3.2的库网上资源很少,编译的时候也是一堆的坑。这是已经编译好的GDAL3.2的库,有需要的可以下载下来直接用。另外,也可以看我博客的GDAL编译教程

2020-11-21

一个简单的QTGUI程序的运行效果

一个简单的QT程序的运行效果,当中包含的事件有鼠标点击事件、鼠标移动事件、鼠标释放事件、鼠标滚轮事件。

2020-05-30

PCL安装后测试程序能用到的pcd文件

本文件是本人博客中关于VS2017 + PCL安装配置教程的测试程序所用到的测试文件。使用PCL打开pcd文件,可测试PCL是否安装成功。

2020-09-02

博主辛辛苦苦下载下来的Ubuntu主题包

这是适用于Ubuntu20.04,gnome3.6的主题包,其中包含好几种Ubuntu主题,有需要的可以下载下来用。

2021-03-19

osgQt-master.zip

这是最新的osgQt的源码包,截至2020.07.04。有需要的朋友可以下载。关于此插件的使用,有兴趣的朋友可以看我的博客,里面有简单的使用方法。

2020-07-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除