SQLCipher 3.0.1 Windows 安装指南:加密数据库部署与排错
简介SQLCipher 3.0.1 Windows发行包面向需要在Windows环境里使用SQLCipher加密SQLite数据库的C/C开发者。它内置现成库文件和命令行工具省去手动编译开源库的步骤可用于数据加密、解密及日常数据库管理。全部内容共18个文件约5.16MB包含6个PDB调试符号、4个EXE可执行程序、4个LIB静态库、2个示例DB、1个使用教程TXT和1个头文件并同时覆盖32位与64位架构便于集成时灵活选择。资源还附带一份txt使用教程重点讲解库文件的链接方式与加密参数配置配合调试版本符号和示例数据库可帮助读者快速完成环境搭建并验证加密效果。目前已有623人学习下载适合对SQLite加密有明确需求、希望快速落地的初学者或项目开发者。1. SQLCipher 3.0.1 在 Windows 上为什么这么难装SQLCipher 是 SQLite 最常用的加密分支很多老项目在 Windows 客户端上用 3.0.1 这个版本做本地数据库加密结果部署时翻车率极高。最常见的场景是明明把 sqlite3.dll 放进去了程序一启动就报“file is not a database”或者数据库建出来了用十六进制工具一看文件头还是明晃晃的“SQLite format 3”等于没加密。这套环境装不好轻则功能跑不通重则本地敏感数据裸奔。这篇文章面向两类人一类是第一次在 Windows 上接触 SQLCipher 的新手需要一份能照着敲完的安装流程另一类是从 2.x 版本迁移老库的开发者需要搞清楚版本差异和参数取舍。我会从版本选型、解压放置、DLL 加载、命令行验证一路写到五个典型报错的排查方法。2. 装前准备版本选型、系统架构与包结构2.1 3.0.1 的定位为什么是加密数据库的分水岭版本SQLCipher 3.0 系列和 2.x 系列相比页面加密格式完全不兼容。2.x 时代没有逐页 HMAC 校验密钥派生迭代次数也短一截而 3.0 开始默认走 AES-256-CBC 加每页校验安全性提升明显。3.0.1 是 3.0 系列里被老项目锁版最多的一个修订版——很多跨平台系统的 Windows 客户端、本地数据采集工具至今还钉在这个版本上不敢动原因是升级意味着老库全部要重新导出导入代价太大。所以拿到“sqlcipher-3.0.1-windows”这个包之前先搞清楚一个概念SQLCipher 不是 SQLite 的插件而是一套独立的 SQLite 完整实现。它修改了 SQLite 的存储层所有读写都经过加密和解密。普通 SQLite 3.8.x 的官方二进制在这里完全不能用也替代不了。很多新手把 SQLCipher 当成“SQLite 加个密码字段”这是第一个认知坑。安装 SQLCipher 3.0.1 本质上只做三件事把编译好的二进制放到合适位置、让程序加载到 SQLCipher 的 DLL 而不是普通 SQLite 的 DLL、确认加密参数和你的应用场景匹配。三步走完环境就算立住了。2.2 下载包里的东西文件组成与前置依赖清单SQLCipher 的 Windows 预编译包结构和普通 SQLite 包很不一样不能只拿一个 DLL 就跑。常见的包内文件组成大致如下不同渠道打出来的包会略有差异但核心文件一般都在文件/目录作用缺失时的影响sqlite3.exeSQLCipher 版命令行 shell内置 PRAGMA key 支持无法命令行建库/验库sqlite3.dll核心加密库导出 sqlite3_key、sqlite3_rekey 等专属 API程序无法调用加密能力sqlite3.h / sqlite3ext.hC 接口头文件编译期必用没有头文件没法二次开发sqlite3.lib 或 .defMSVC 链接用的导入库或模块定义文件编译期链接报 LNK2019使用教程/README版本说明、PRAGMA 参数表、示例命令参数配错找不到根因拿包之后第一件事不是解压而是检查有没有 missing file。我一般会先看两个东西有没有 sqlite3.exe以及有没有带 .lib 或 .def。只有 DLL 没有导入库的话C/C 项目链接会卡壳需要自己用 dumpbin 或 lib 命令生成导入库属于额外折腾。另一个隐藏前置要求是 Visual C 运行库。预编译的 Windows 二进制大多依赖 VC 2013/2015 运行库如果你跑在一台精简版系统或虚拟机里打开 sqlite3.exe 直接报“找不到 VCRUNTIME140.dll”或者“0xc000007b”错误那往往不是 SQLCipher 的问题是运行库缺失。先把对应位数的 VC Redistributable 装上再回来测 sqlite3.exe。2.3 先确认架构x64、x86 和 PATH 的三角关系Windows 下装 SQLCipher 最容易被忽视的是位数匹配。包的名称里如果没写 x64 或 x86默认要去看包内 DLL 的导出格式。你用一个 32 位程序去加载 64 位的 sqlite3.dll在 Windows 上不是报“格式不正确”就是无声失败。反过来64 位程序加载 32 位 DLLLoadLibrary 直接返回 NULL。判断方法很简单在命令提示符里运行 sqlite3.exe如果能启动说明这个 shell 和你当前系统能跑但 shell 能跑不代表给你的 DLL 也是同一位数因为 shell 和 DLL 可能是分别编译的。稳妥做法是用 PowerShell 读一下 PE 头# 读取 DLL 的 PE 机器类型0x8664 是 x640x14c 是 x86 $stream [System.IO.File]::OpenRead(C:\sqlcipher\sqlite3.dll) $reader New-Object System.IO.BinaryReader($stream) $stream.Seek(0x3C, [System.IO.SeekOrigin]::Begin) | Out-Null $peOffset $reader.ReadInt32() $stream.Seek($peOffset 4, [System.IO.SeekOrigin]::Begin) | Out-Null $machine $reader.ReadUInt16() $reader.Close(); $stream.Close() if ($machine -eq 0x8664) { x64 } elseif ($machine -eq 0x14c) { x86 } else { unknown: {0:X} -f $machine }我一般建议新项目一律按 x64 走因为现在 Windows 10/11 的客户端基本都是 64 位VC 运行库和调试工具对 x64 的支持也更省心。如果你要对接的是老旧的 32 位业务组件才考虑 x86 包而且存放路径、PATH 配置都要和 x64 隔离避免两个位数的 sqlite3.dll 在系统里互相抢注。经验是单独建一个不参与系统 PATH 的专用目录靠程序内相对路径找到正确的 DLL比让 Windows 在系统目录里乱找要可控得多。3. 安装与配置解压、放 DLL、跑通第一个加密库3.1 目录规划与解压把包解压之前先定目录。最常见也最省事的做法是在磁盘根目录建一个不带空格的路径比如 C:\sqlcipher。不要解压到“C:\Program Files\xxx”下不是不行而是空格会给后面对接脚本、命令行传参、编译路径平白添一堆转义的事故。我踩过一次之后凡涉及底层 DLL 的包一律用无空格短路径。解压命令在管理员命令行里执行mkdir C:\sqlcipher xcopy /E /I /Y D:\downloads\sqlcipher-3.0.1-windows C:\sqlcipher cd C:\sqlcipher dirxcopy 的 /E 会把子目录连同空目录一起拷过来/I 让目标目录不存在时自动创建/Y 省去逐个确认。dir 看一下目录里是否把 sqlite3.exe、sqlite3.dll、include、lib 这几个关键项都带过来了。确认好后先不急着配系统 PATH我建议从命令行直接临时指定路径测一遍避免环境变量写错后连基础 shell 都跑不了。3.2 命令行创建第一个加密库先验证 shell 本身可用再验证加密能力。进入 C:\sqlcipher直接运行 sqlite3.exe 打开一个空库文件然后立刻设置密钥cd C:\sqlcipher sqlite3.exe test.db在 sqlite3 提示符下依次执行PRAGMA key your-passphrase; CREATE TABLE user_info (id INTEGER PRIMARY KEY, name TEXT NOT NULL); INSERT INTO user_info (name) VALUES (test); SELECT * FROM user_info;执行到 SELECT 能看到一行 test 数据说明当前连接下建表和读写都正常。这时候 test.db 已经被 SQLCipher 加密写入了。不要在这里用.quit草草退出接着做一次“错密码验证”——这是判断库是否真的加密的关键一步sqlite3.exe test.db PRAGMA key wrong-pass; SELECT * FROM user_info;这次应该报错提示 file is encrypted or is not a database或者直接报告 key mismatch。看到这类报错反而说明加密生效了。如果你用错误密码还能读出明文那说明 shell 用的是普通 SQLite 版本而不是 SQLCipher 版本回头检查 sqlite3.exe 的来源。注意PRAGMA key 必须在当前连接下、任何读表操作之前设置。同一个连接里 close 再 open 后密钥要从头再设一次。每次程序重启都要重新调 sqlite3_key这是 SQLCipher 的固有模型不是因为你配置错了。3.3 编译/运行时怎么挂 SQLCipher 的 DLL命令行只是验枪真正项目集成要解决的是你的程序怎么加载到 SQLCipher 的 sqlite3.dll而不是系统里某个普通 SQLite DLL。Windows 下 DLL 搜索顺序是应用程序所在目录优先于系统 PATH。所以最简单可靠的做法是让 sqlite3.dll 和你的 exe 放在同一目录不需要动任何系统环境变量。如果项目是通过 VC 编译链接的假设解压包里有 sqlite3.lib工程配置里加上链接指令# MSVC 链接阶段假设你已经把 include 目录和 lib 目录指到 C:\sqlcipher cl.exe /I C:\sqlcipher /EHsc main.c C:\sqlcipher\sqlite3.libC 代码里这样初始化和设置密钥#include sqlite3.h #include string.h sqlite3 *db NULL; char *err NULL; const char *key your-passphrase; // 打开数据库文件此时还不要求密钥 int rc sqlite3_open(test.db, db); if (rc ! SQLITE_OK) { // 错误处理打印 sqlite3_errmsg(db) } // SQLCipher 专属 API设置密钥并触发解密初始化 sqlite3_key(db, key, (int)strlen(key)); // 验证密钥是否正确执行一次空查询 rc sqlite3_exec(db, SELECT count(*) FROM sqlite_master;, NULL, NULL, err); if (rc ! SQLITE_OK) { // 密钥错误或文件损坏这里会返回 SQLITE_NOTADB }sqlite3_key 函数的第二个参数是密钥指针第三个参数是密钥字节长度。这里有个常见误区密钥传字符串时长度一定要用 strlen写死 sizeof(key) 会把结尾的空字符也算进去导致密钥实际变成“your-passphrase\0”换台机器再输入相同密码就解不开库。这个问题非常隐蔽因为第一次建库和第二次开库如果用同一个写错的函数反而能对上直到你要把库文件发给别人或换一套代码打开时才炸。如果你的构建环境只有 DLL 和 .def 没有 .lib需要先用 VS 开发者命令提示符生成导入库lib /def:C:\sqlcipher\sqlite3.def /out:C:\sqlcipher\sqlite3.lib /machine:x64这里 /machine 必须和你的目标程序位数一致。32 位程序用 x64 导入库链接期直接报 LNK1112 模块机器类型冲突改过来就好。3.4 用 PRAGMA 确认和调整加密参数SQLCipher 3.0.1 的可配置项不算少但生产环境我一般只动三个kdf_iter、cipher_use_hmac、cipher_legacy。它们分别管密钥派生迭代次数、是否启用逐页校验、是否兼容旧版格式。在 sqlite3.exe 里都改过之后用密文字段确认没有缩水配置。PRAGMA cipher_version; PRAGMA kdf_iter; PRAGMA cipher_use_hmac; PRAGMA cipher_legacy;如果全部执行正常会依次显示 3.0.1 对应的版本字符串、4096、ON 或 1、OFF 或 0。这就是 3.x 的默认形态。若要打开 2.x 老库需要调整为PRAGMA key old-passphrase; PRAGMA cipher_legacy 1; PRAGMA kdf_iter 4000; PRAGMA cipher_use_hmac OFF; SELECT * FROM user_info;注意顺序先设置 key再调兼容参数然后再读表。三条 PRAGMA 全部要在第一次读表前执行少一条都不行。以前有人漏掉 cipher_use_hmac结果老库还是打不开单独设置 key 和 kdf_iter 对 2.1.x 老库是不够的。4. Windows 下 SQLCipher 3.0.1 常见问题排查五个翻车现场4.1 打开库直接报“file is not a database”现象程序或命令行打开库文件得到一个错误内容类似“file is not a database”而不是“key mismatch”。原因这个错误绝大多数发生在你完全没有设置 PRAGMA key 就尝试读取表结构的时候。SQLite 引擎按普通库格式去解析文件头发现不符合就报这个错。还有一种情况是文件本身加密过了但你加载的是官方原版 SQLite DLL原版 SQLCipher 库不认识加密页也会报同一句英文。解决先确认加载的 DLL 是 SQLCipher 版最简单的办法是在代码里调 sqlite3_key 看是否链接成功。再确认执行顺序open 之后、任何 SELECT 之前先跑 sqlite3_key 或 PRAGMA key。我一般会在测试脚本里先执行一次PRAGMA key x再SELECT count(*) FROM sqlite_master用它代替表查询来触发密钥验证这样能区分“没设密钥”和“密钥错了”两种情况。4.2 错密码报 key mismatch 但实际密钥没错现象明明用建库时相同的密码打开时仍报 key mismatch换任何密码都一样。原因典型的密钥长度 bug。前面提到的 strlen 和 sizeof 混用是最常见原因另一个常见原因是在建库时密钥里带了不可见字符比如从 Windows 记事本复制的文本里混入了 \ufeff 或末尾换行。我见过一个项目配置文件里密码写在 ini 里读取时没 trim尾部多了个 \r导致建库密码和开库密码字节不一致。解决把密码集中到一个常量配置里建库和开库共用同一处定义避免手工复制粘贴。如果库已经建到一半先用当前密码试验性打开读取失败的话没有任何后悔药只能回到建库时的那份代码逐字节比对密钥。这也解释了为什么我从来不用随机生成的密码一次性建完库——一定要把密码固定成可变参数写入后立刻用另一个独立进程重新打开验证一次。4.3 程序报“无法定位程序输入点 sqlite3_key”现象程序编译链接都通过运行时弹出“无法定位程序输入点 sqlite3_key 于动态链接库 sqlite3.dll 上”之类的对话框。原因链接期用的 sqlite3.lib 确实来自 SQLCipher但运行时加载的 sqlite3.dll 是系统里另一份普通 SQLite。Windows 加载 DLL 时优先找 exe 同目录如果那里没有就去搜索 PATH。如果你的项目输出目录里没有放 SQLCipher 的 DLL系统就会到 C:\Windows\System32 或某个已加入 PATH 的目录里捡到普通 sqlite3.dll入口点找不到自然就崩了。解决把 sqlite3.dll 作为项目的 post-build 复制动作每次编译后自动从 C:\sqlcipher 拷贝到 exe 输出目录而不是手工偶尔拷一次。VS 工程里可以这样加一条生成后事件xcopy /Y /D C:\sqlcipher\sqlite3.dll $(OutDir)sqlite3.dll这也解释了为什么我建议不要图省事把 SQLCipher 的 DLL 复制进 System32——那是全系统最高的“污染源”一旦和某个旧版本 SQLite 组件重名整个机器上的程序都会遭殃。4.4 数据库文件头还是“SQLite format 3”现象新建数据库并写入数据后用十六进制工具查看文件头前面 16 个字节仍然是“SQLite format 3\000”。原因SQLCipher 加密后的文件头不再是明文 SQLite 格式字符串而是随机字节。如果你看到标准文件头说明这个库并不是 SQLCipher 创建的——大概率你命令行调用的 sqlite3.exe 是系统 PATH 里的原版 SQLite shell而不是包里的那个。解决命令行先敲where sqlite3.exe看你到底执行的是哪个文件。如果指向的不是 C:\sqlcipher 目录下的那个就把路径改成显式调用C:\sqlcipher\sqlite3.exe test.db PRAGMA key test; CREATE TABLE t (a); INSERT INTO t VALUES (1); .quit再拿十六进制看文件头已经是乱码或非标准结构时才算真正走了 SQLCipher。这是我装完任何版本都会做的最低限度验证比看任何版本号输出都直观。4.5 旧版 2.x 库迁移后写入报错现象用 SQLCipher 3.0.1 打开一个 2.x 老库读数据正常但执行 UPDATE 或 INSERT 时报“database disk image is malformed”。原因SQLCipher 3.x 和 2.x 的页面格式不同3.x 带 HMAC 校验2.x 没有。处于兼容读模式下数据可以解密出来但一旦写入新页会用 3.x 格式落盘老页面和新页面混在一起引擎就认定文件损坏。解决不要长期停留在兼容模式读写。正确流程是打开后立刻做一次完整导出把数据迁移到全新库在 3.0.1 里用兼容参数打开旧库然后用 SQLCipher 3.x 格式新建一个库逐表复制数据。包的使用教程文档里一般也会明确写这一点简单说就是旧库只用来读新库才是以后唯一要维护的版本。我自己的习惯是迁移前先对旧库做个文件级备份再开始导数据毕竟兼容模式读写造成的损坏是不可逆的。5. 装完怎么验证三种确认加密生效的方法5.1 命令行验证装完环境后不要跳进集成开发先花两分钟在命令行把加密能力过一遍。建一个新库设置密钥写入一条数据退出。再用相同的密码打开能查换错误密码打开报错。这一正一反两个结果同时出现才能确认 shell 版本和 DLL 功能都没问题。我一般会这样收尾验证C:\sqlcipher\sqlite3.exe verify.db PRAGMA key correct-pass; CREATE TABLE v (id INTEGER PRIMARY KEY, note TEXT); INSERT INTO v (note) VALUES (ok); .quit然后立即用错误密码重开 verify.db。看到 key mismatch 是好事随后把 verify.db 删掉不影响任何业务数据。5.2 文件头验证命令行验证通过后我还习惯看一眼文件头。加密库的文件头没有“SQLite format 3”这样的明文签名用 PowerShell 直接读前 16 字节Format-Hex -Path .\verify.db -Count 16如果是 SQLCipher 加密库前 16 字节是随机数或密文相关的字节不会出现可读的 ASCII 字样。这一步多花十秒钟能直接排除掉“编译了半天发现自己一直在调普通 SQLite”这种最窝火的翻车现场。从那以后我每装一个新版本 SQLCipher都会先建个临时库、跑一次错密码、再看一眼文件头强行走一遍这三步验证才准开始项目联调。5.3 程序集成验证最后用你的实际开发语言跑一个最小集成测试。C 就写 sqlite3_open sqlite3_key sqlite3_exec 三行Python 用带 SQLCipher 的 Django 也可以用专用驱动连接然后执行一条 PRAGMA cipher_version。关键是验证整个链路的 DLL 搜索顺序是否正确这一点在编译期完全看不出只有运行起来才能暴露。如果集成测试返回的版本号不是 3.x 而是类似“SQLite 3.8.x”的原版标识说明你链接的还是普通实现回头检查 4.3 里的 DLL 放置问题。希望这份安装记录能帮你在 Windows 上少绕几个弯毕竟 SQLCipher 这套东西一旦跑通后续换版本、迁移老库都只是参数问题不再需要从头趟坑。本文还有配套的精品资源点击获取

相关新闻

Linux虚拟机必备:open-vm-tools安装配置与避坑指南

Linux虚拟机必备:open-vm-tools安装配置与避坑指南

不管你现在用的是物理机上的VMware Workstation,还是公司里那套ESXi集群,只要跑的是Linux虚拟机,我建议你第一件事就是把open-vm-tools装上。没装这个东西之前,你可能只是觉得虚拟机“能用”:能开机、能联网、能装软件…

2026/10/18 19:23:20 阅读更多 →
HDFS中Secondary NameNode:不是备胎,是检查点助手

HDFS中Secondary NameNode:不是备胎,是检查点助手

1. 项目概述1.1 核心需求解析关于Hadoop生态,市面上讨论NameNode和DataNode的资料汗牛充栋,但提到Secondary NameNode,很多人的第一反应往往是“备胎”——以为它是NameNode的热备,随时准备在NameNode宕机后顶上。这个理解&#x…

2026/10/18 19:23:20 阅读更多 →
BrowserSkill:面向终端的浏览器自动化CLI工具

BrowserSkill:面向终端的浏览器自动化CLI工具

1. 项目概述:BrowserSkill 是什么,它解决的到底是什么问题? BrowserSkill 这个名字乍一听像某个浏览器插件,或者某个 Chrome 扩展的代号,但其实它完全不是。我第一次在 GitHub 上看到 browserskill 这个仓库时&…

2026/10/18 19:23:20 阅读更多 →

最新新闻

LiteLLM Proxy 启动方式与 Python 环境管理:用 uv 与虚拟环境把 TaoToken 接入本地代理

LiteLLM Proxy 启动方式与 Python 环境管理:用 uv 与虚拟环境把 TaoToken 接入本地代理

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

2026/10/18 20:04:40 阅读更多 →
基于Go语言的区块链学历认证系统:从存证到验真全流程实践

基于Go语言的区块链学历认证系统:从存证到验真全流程实践

简介:一套基于Hyperledger Fabric的学历学位认证管理系统完整源码及部署文档,面向高校计算机相关专业学生、教师及区块链开发者,适用于毕业设计、课程设计或学历认证类项目前期调研与二次开发。压缩包共723个文件,整体约15.56MB&a…

2026/10/18 20:04:40 阅读更多 →
研华IPC-510工控机搭建工业数据采集与自动化监控方案

研华IPC-510工控机搭建工业数据采集与自动化监控方案

做自动化项目的老工程师估计都遇到过这种场景:产线上设备明明都有通讯口,但数据就是拿不上来,老板要的报表靠人工拿着纸笔去抄,设备报警只能等操作员发现再跑过去看。这背后缺的往往不是采集模块,而是一个能常年7x24小…

2026/10/18 20:04:40 阅读更多 →
安全审计不是扫漏洞:构建可信交付的工程闭环

安全审计不是扫漏洞:构建可信交付的工程闭环

1. 安全审计不是“扫漏洞”,而是构建可信交付的工程闭环最近帮一家做SaaS工具的团队做代码健康度复盘,他们刚上线一个新模块,CI流水线里跑着SonarQube和ESLint,但安全团队突然发来一份报告:三个高危SQL注入点、两个硬编…

2026/10/18 20:04:40 阅读更多 →
无监督学习实战指南:聚类、降维与异常检测全解析

无监督学习实战指南:聚类、降维与异常检测全解析

接手一批新数据时,我最先问自己的不是“能不能建模预测”,而是“这批数据里到底藏着几类模式”。这个问题往里挖,核心就是无监督学习。无监督学习说的是:在没有任何标签、没有标准答案的情况下,靠数据本身的结构去找分…

2026/10/18 20:04:40 阅读更多 →
华为IGMP组播原理与实战:从精准调度到排障精要

华为IGMP组播原理与实战:从精准调度到排障精要

1. 为什么组播不是“群发”,而是一场精准的流量调度革命?很多人第一次听说IGMP,下意识就把它和微信群发、邮件群抄送划等号——“不就是让一台设备把数据同时发给多台设备吗?”这个理解方向错了,而且错得挺关键。我刚接…

2026/10/18 20:03:40 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →