客厅采集到每日记忆已闭环
Tower直接采集C270,先过滤无效声音,再封口、入库、转写和生成生活事件。
- FireRedASR2-AED 的 API engine 为
fireredasr2。 - 事件、视觉和DailyMemory统一调用
ornith-1.0-35b-mlx。 - 媒体中心统一使用运行时Bearer Key,不把密钥写入代码、DB或日志。
它把分散的声音、照片和视频整理成可验证、可修正、可回看的家庭生活事件:几点起床、一天做了什么、孩子什么时候哭过和笑过,以及当天说过的话。
音频、照片和视频是证据;用户最终看到的是一天的生活时间线。
起床和入睡显示置信度、证据来源,并允许家人一键修正。
采集、媒体、数据库和任务队列常驻;Web/PWA 与电视关闭也不会中断。
边缘端先做 VAD;没有价值的空白声音不进入长期档案。
方案愿景、代码完成、生产部署和用户可用是四个不同层级。本页只记录已经有证据的真实状态。
当前主链为 C270 → Tower Collector → WP2 VAD → Source/Analysis → Tower Hub → 媒体中心 FireRedASR2-AED / Ornith → Event / Visual / DailyMemory。已明确取消独立计算节点方案;桌面版已经完成并通过真实录音状态与媒体回放验证。
Tower直接采集C270,先过滤无效声音,再封口、入库、转写和生成生活事件。
fireredasr2。ornith-1.0-35b-mlx。旧实现只看全频RMS/Peak,无法区分桌面震动;现已在VAD特征前加入120Hz四级高通,原始PCM保持不变。
too-short。桌面版与PWA界面已经实现,实时监控、原始片段、媒体回放和状态闭环均可用;但静态资源目前发布在.235服务器,而不是群晖。
23:09新版过滤器上线前的Observation、任务和媒体已从活动目录清理,既有Event与DailyMemory保持不变。
| 范围 | 状态 | 当前事实 | 验收证据 |
|---|---|---|---|
| WP0–WP1 · 数据模型 / Hub地基 | PASS · PRODUCTION | Tower是唯一事实源;SQLite、认证、健康检查和重启恢复已完成。 | 生产备份、真实API、FK/integrity Gate。 |
| WP2–WP3 · VAD / 封口 / Ingest | PASS · PRODUCTION | VAD-before-persist、双产物、hash、幂等和低频震动过滤运行中。 | 49Hz目标片段、真实语音对照、25/25 Rust、120/120 Collector与生产窗口Gate。 |
| WP4–WP6 + WP5B · 理解 / 每日记忆 | PASS · PRODUCTION | FireRedASR2-AED、Ornith Event/Visual和DailyMemory闭环。 | Bearer认证、真实ASR/Chat及生产任务验证。 |
| 桌面版与实时监控 | APP VERIFIED · HOSTING PENDING | 桌面版已完成;PWA当前在.235,不在群晖。 | 真实.app录停封口、生产PWA、今日原始片段与媒体播放。 |
| 移动 / Action / TV | DEFERRED | 保留产品方向,尚未进入生产实现。 | 概念方案不等于已交付。 |
| 家庭试运行与恢复 | PARTIAL | 备份、systemd、outbox、回滚和部分故障Gate已验证。 | 仍需更长时间家庭环境运行。 |
桌面版与Web/PWA已经可用;当前静态资源托管在.235服务器,后续再迁回Synology/Tower。Mac、Windows、iPhone和iPad访问同一份Tower时间线。
上午在家活动,下午短暂午睡,晚上有较长的亲子互动。
起床已确认 · 入睡待确认
17段有效语音 · 已全部转写
3张事件照片 · 1段短视频
早上七点多起床,早餐后在客厅搭积木。十点左右因为玩具短暂哭闹,安抚后继续玩耍。午后睡了约一小时,傍晚和家人在客厅玩球,多次大笑。晚上八点半开始洗漱和讲故事,九点半后房间趋于安静。
连续环境声、人声和客厅活动共同指向起床。
“今天我们先吃鸡蛋,吃完再去搭积木。”
持续约46秒,随后检测到安抚对话,3分钟后情绪恢复。
12:42后活动和人声显著降低,13:51重新出现持续活动。
检测到6次清晰笑声;保存一张照片和12秒视频。
讲故事结束后持续安静,卧室没有新的声音或活动证据。
电视端不承担后台采集,只负责大屏回忆、播放和少量控制。
早上七点多起床,下午睡了一个小时,傍晚在客厅玩球时笑得很开心。
照片、视频与当时的声音已经关联到同一个事件。
不再采用独立计算节点;采集、数据库、任务状态和AI编排都由Tower承担。
客厅C270通过USB直插Tower;Collector与Hub同机运行。Hub经带Bearer Key的媒体中心接口调用FireRedASR2-AED和Ornith。桌面版、Web/PWA和未来电视端只访问Hub API,不持有主数据库,也不承担后台任务。
客户端关机或静态站点迁移都不会中断采集、封口、数据库和后端任务。
32kHz单声道音频、MJPEG视频、滚动缓冲、VAD、Source/Analysis封口和durable outbox。
SQLite、媒体对象、Observation、Event、Evidence、Correction、任务状态、读取API和DailyMemory。
/api/asr调用FireRedASR2-AED;/v1/chat/completions调用Ornith完成事件、视觉和每日记忆。
桌面版已完成;Web/PWA当前在.235,目标迁回Synology/Tower。客户端只展示和修正,不改写事实源。
算法运行在Tower Edge;只有通过VAD Gate的候选才进入封口、ASR和事件分析。
原方案已经写过“持续机械声不得被误判成连续讲话”,但当时只把它列成验收要求;实际实现仍对全频PCM直接计算RMS/Peak,没有频率选择性,因此49Hz桌面震动能够累计超过2秒并被保留。现在这项要求已经落实为明确算法和生产Gate。
自适应noise floor能处理稳定底噪,但不能识别“能量主要集中在低频”的机械耦合。多个短震动脉冲可累计超过2秒。
full-band RMS > threshold → ACTIVE80Hz以下能量占76.7%,主峰约49Hz;300–3400Hz语音带仅5.4%。旧版记录14个零碎active range,累计4770ms并保留34.9秒。
49Hz · active 4770ms · retained状态跨frame连续、按声道隔离的120Hz四级高通只作用于判定特征;原始PCM仍原样写入ring与Source Clip。
HPF(120Hz × 4) → RMS / Peak内存保留最近30–60秒,不持续写盘。
有帧但全零持续2.5秒,判权限或静音故障。
120Hz四级高通,仅生成VAD特征,不修改原始录音。
在过滤后的语音带特征上计算活动强度。
开始阈值高、持续阈值低;只从明确背景帧学习。
默认有效活动≥2秒;保留3秒前文和5秒后文。
| 参数 | 旧基线 | 当前生产方案 | 验证方式 |
|---|---|---|---|
| 分析窗口 | 10ms block | 10ms RMS+Peak | 固定frame grid |
| 低频震动 | 无频率过滤 | analysisHighPassHz=120,stages=4 | 49Hz目标片段+真实语音双Gate |
| 固定峰值 | peak 0.04 | 仅校准期兼容回退 | 旧录音回放 |
| 底噪阈值 | 无 | 相对noise floor的开始/持续双阈值 | 每设备滑动校准 |
| 静音切段 | 0.1s | 100ms range split | 不切碎中文短句 |
| 最短活动 | 2s | speech profile默认2秒 | 震动210ms被判too-short |
| 上下文 | 无 | Pre-roll 3秒 · Post-roll 5秒 | 保住句首和情绪恢复 |
| 全零故障 | 无 | 连续2.5秒进入Error诊断 | 数字静音测试 |
旧版4770ms retained;新版只剩210ms,too-short,0 retained。
新版保留30160ms,证明高通没有误杀真实说话。
连续窗口3候选/2候选均0 retained并删除scratch。
WP2 25/25、Collector 120/120;配置向后兼容,参数显式进入report。
继续积累家庭真实样本,防止为了降噪而扩大漏录。
数据库和内部对象库隐藏;共享目录只展示已经整理好的家庭事件和导出。
数据库不能放在 SMB 共享目录里被直接修改;媒体原件按哈希保存,用户需要时生成按日期整理的可读视图。
媒体、推断、用户修正和每日总结必须分开,避免AI改写历史。
设备身份与能力,不把移动相机永久绑定房间。
一次采集的房间、旅行、时间与隐私上下文。
原始音频、图片、视频和传感信号。
哭、笑、起床、入睡、活动与对话等解释层。
转写、摘要、标签及其模型和版本。
AI只生成候选事件;高影响推断要经过证据检查和家人确认。
只保留最近30–60秒
语音、哭笑或手动保存
媒体哈希与原子写入
声音转文字、图片理解
时间、人物、活动、情绪
置信度、回放、人工修正
Web/PWA 与电视统一展示
不再建设独立计算节点;先稳定Tower主链和桌面/PWA,再扩展移动与电视端。
黄金链路:客厅说话 → C270 → Tower → 震动/空白过滤 → FireRedASR2-AED → Ornith → LifeEvent → DailyMemory → Desktop/PWA。
Device、Session、Observation、LifeEvent、DerivedArtifact、Evidence与Correction边界明确。
Rust服务、SQLite、媒体对象、幂等任务、认证、健康检查和systemd守护。
10ms特征、自适应底噪、迟滞、120Hz四级高通、2秒最短活动、3秒前录/5秒后录和双产物。
.partial、原子改名、SHA-256、durable outbox和Source/Analysis时间映射。
Tower Hub通过带Bearer Key的媒体中心/api/asr调用FireRedASR2-AED;记录模型版本和Source映射。
Ornith完成事件、视觉和DailyMemory;AI结论保留Evidence、置信度和修正历史。
实时监控、原始片段、状态、媒体和历史界面已完成;当前托管在.235,后续迁回Synology/Tower。
保留手机媒体导入、Action双通道去重和Apple TV家庭回看方向。
执行断网、AI超时、群晖重启、磁盘阈值、设备掉线、重复上传和恢复测试。
推断、证据、修正分离
震动过滤、封口、重启恢复
文本、事件、摘要可复核
手机与Action双通道去重
Web、桌面、电视、隐私与恢复