GrowLog Home
LIVE EXECUTION STATUS · 2026-07-23
Family Memory System · Updated 2026-07-23

每天发生了什么,GrowLog 帮你留下来。

GrowLog 不是一个录音机。

它把分散的声音、照片和视频整理成可验证、可修正、可回看的家庭生活事件:几点起床、一天做了什么、孩子什么时候哭过和笑过,以及当天说过的话。

P-01事件优先,不是文件优先

音频、照片和视频是证据;用户最终看到的是一天的生活时间线。

P-02推断必须可解释

起床和入睡显示置信度、证据来源,并允许家人一键修正。

P-03群晖是唯一事实源

采集、媒体、数据库和任务队列常驻;Web/PWA 与电视关闭也不会中断。

P-04隐私默认在家里

边缘端先做 VAD;没有价值的空白声音不进入长期档案。

当前状态 · 已经能生产什么,还差什么

方案愿景、代码完成、生产部署和用户可用是四个不同层级。本页只记录已经有证据的真实状态。

EXECUTION SNAPSHOT · 2026-07-23 23:40 CST
Live Progress

客厅采集、理解和桌面展示已经闭环;静态托管位置仍待迁回群晖。

当前主链为 C270 → Tower Collector → WP2 VAD → Source/Analysis → Tower Hub → 媒体中心 FireRedASR2-AED / Ornith → Event / Visual / DailyMemory。已明确取消独立计算节点方案;桌面版已经完成并通过真实录音状态与媒体回放验证。

v2VIBRATION-AWARE VAD
2AI MODELS · AED + ORNITH
1TOWER FACT SOURCE
.235CURRENT STATIC HOST
01 · PRODUCTION PIPELINE

客厅采集到每日记忆已闭环

Tower直接采集C270,先过滤无效声音,再封口、入库、转写和生成生活事件。

  • FireRedASR2-AED 的 API engine 为 fireredasr2
  • 事件、视觉和DailyMemory统一调用 ornith-1.0-35b-mlx
  • 媒体中心统一使用运行时Bearer Key,不把密钥写入代码、DB或日志。
02 · VIBRATION FILTER

49Hz机器震动不再被当作语音

旧实现只看全频RMS/Peak,无法区分桌面震动;现已在VAD特征前加入120Hz四级高通,原始PCM保持不变。

  • 22:18:20目标片段:80Hz以下能量76.7%,主峰约49Hz。
  • 活动时长由4770ms降为210ms,结果 too-short
  • 真实中文语音仍保留30160ms;生产连续窗口0 retained。
03 · DESKTOP / WEB

桌面版已完成,当前托管位置不是最终形态

桌面版与PWA界面已经实现,实时监控、原始片段、媒体回放和状态闭环均可用;但静态资源目前发布在.235服务器,而不是群晖。

  • 当前入口仍可正常使用,不影响Tower采集和Hub事实源。
  • 迁移到Synology/Tower属于托管收口,不是当前功能阻塞。
  • 客户端关闭不会中断采集、数据库或任务处理。
04 · DATA SAFETY

旧噪音数据已退出活动系统

23:09新版过滤器上线前的Observation、任务和媒体已从活动目录清理,既有Event与DailyMemory保持不变。

  • 当前无可运行旧任务,不会继续调用旧ASR或视觉接口。
  • Hub与Collector由systemd守护,DB FK/integrity检查通过。
  • 清理与部署均有可回滚备份。
Milestone Ledger

里程碑与验收状态

范围状态当前事实验收证据
WP0–WP1 · 数据模型 / Hub地基PASS · PRODUCTIONTower是唯一事实源;SQLite、认证、健康检查和重启恢复已完成。生产备份、真实API、FK/integrity Gate。
WP2–WP3 · VAD / 封口 / IngestPASS · PRODUCTIONVAD-before-persist、双产物、hash、幂等和低频震动过滤运行中。49Hz目标片段、真实语音对照、25/25 Rust、120/120 Collector与生产窗口Gate。
WP4–WP6 + WP5B · 理解 / 每日记忆PASS · PRODUCTIONFireRedASR2-AED、Ornith Event/Visual和DailyMemory闭环。Bearer认证、真实ASR/Chat及生产任务验证。
桌面版与实时监控APP VERIFIED · HOSTING PENDING桌面版已完成;PWA当前在.235,不在群晖。真实.app录停封口、生产PWA、今日原始片段与媒体播放。
移动 / Action / TVDEFERRED保留产品方向,尚未进入生产实现。概念方案不等于已交付。
家庭试运行与恢复PARTIAL备份、systemd、outbox、回滚和部分故障Gate已验证。仍需更长时间家庭环境运行。
Truth Boundary

现在能用什么,暂时不能承诺什么

已经真实可用

  • Tower持续采集C270音视频并在VAD后保留候选。
  • 有效音频自动转写,生成事件、视觉分析和每日记忆。
  • 桌面版与PWA可查看实时原始片段、状态和媒体。
  • 120Hz四级高通已阻止典型49Hz震动误触发。

尚未完成

  • Web/PWA静态资源尚未迁回Synology/Tower。
  • 远场小声语音仍需持续家庭样本验收。
  • 移动端、Action导入和Apple TV尚未生产实现。
  • 完整长跑和家庭发行Gate尚未收口。
Next Focus

建议按这个顺序继续

01观察真实家庭语音

持续比较震动误触发与远场语音漏检。

02托管迁回群晖

把当前.235静态资源迁到Synology/Tower。

03收口生产代码

提交已验证的认证、实时监控和VAD修复。

04家庭试运行

执行断网、重启、磁盘阈值和恢复Gate。

Web/PWA · 一天的事件,而不是一堆录音

桌面版与Web/PWA已经可用;当前静态资源托管在.235服务器,后续再迁回Synology/Tower。Mac、Windows、iPhone和iPad访问同一份Tower时间线。

UI CONCEPT · RESPONSIVE WEB / PWA
growlog.home/timeline/2026-07-17

2026年7月17日 · 星期五

最后更新 21:46 · 2个推断等待确认
TODAY平静而充实的一天

上午在家活动,下午短暂午睡,晚上有较长的亲子互动。

WAKE / SLEEP07:12 → 21:38

起床已确认 · 入睡待确认

VOICE48 分钟

17段有效语音 · 已全部转写

MOMENTS哭 2 · 笑 6

3张事件照片 · 1段短视频

今日摘要

早上七点多起床,早餐后在客厅搭积木。十点左右因为玩具短暂哭闹,安抚后继续玩耍。午后睡了约一小时,傍晚和家人在客厅玩球,多次大笑。晚上八点半开始洗漱和讲故事,九点半后房间趋于安静。

07:12

起床

连续环境声、人声和客厅活动共同指向起床。

已确认
置信度 92%声音 02:14客厅活动
08:03

早餐时的对话

“今天我们先吃鸡蛋,吃完再去搭积木。”

转写 04:26客厅 C270
10:17

孩子短暂哭闹

持续约46秒,随后检测到安抚对话,3分钟后情绪恢复。

情绪事件
哭声 88%声音 00:46事件照片
12:42

午睡

12:42后活动和人声显著降低,13:51重新出现持续活动。

自动推断
置信度 81%静音 69分钟可修正
18:34

客厅玩球,多次大笑

检测到6次清晰笑声;保存一张照片和12秒视频。

家庭时刻
笑声 94%照片视频 00:12
21:38

可能已经入睡

讲故事结束后持续安静,卧室没有新的声音或活动证据。

等待确认
置信度 76%确认修正时间

Apple TV · 家庭共同回看的一天

电视端不承担后台采集,只负责大屏回忆、播放和少量控制。

TVOS CONCEPT · 10-FOOT EXPERIENCE
GrowLog tvOS · Today
今天时间线照片与视频设备 ●
FRIDAY · JULY 17

今天,家里发生了这些事

平静而充实的一天

早上七点多起床,下午睡了一个小时,傍晚在客厅玩球时笑得很开心。

07:12起床
10:17短暂哭闹,随后恢复
12:42午睡 69分钟
18:34客厅玩球,多次大笑
播放今天的回忆
查看完整时间线

晚上的快乐时刻

照片、视频与当时的声音已经关联到同一个事件。

播放 12秒
保存为成长时刻

系统架构 · Tower事实源,媒体中心提供AI能力

不再采用独立计算节点;采集、数据库、任务状态和AI编排都由Tower承担。

SENSOR · TOWER EDGE/HUB · MEDIA AI · CLIENT
Architecture Direction

Tower保存事实并调度AI,客户端只呈现生活。

客厅C270通过USB直插Tower;Collector与Hub同机运行。Hub经带Bearer Key的媒体中心接口调用FireRedASR2-AED和Ornith。桌面版、Web/PWA和未来电视端只访问Hub API,不持有主数据库,也不承担后台任务。

单一事实源不变

客户端关机或静态站点迁移都不会中断采集、封口、数据库和后端任务。

01 · SENSOR / EDGE

C270 + Tower Collector

32kHz单声道音频、MJPEG视频、滚动缓冲、VAD、Source/Analysis封口和durable outbox。

02 · FACT HUB

Tower GrowLog Hub

SQLite、媒体对象、Observation、Event、Evidence、Correction、任务状态、读取API和DailyMemory。

03 · MEDIA AI

Key认证的统一媒体中心

/api/asr调用FireRedASR2-AED;/v1/chat/completions调用Ornith完成事件、视觉和每日记忆。

04 · CLIENTS

Desktop / Web / PWA / TV

桌面版已完成;Web/PWA当前在.235,目标迁回Synology/Tower。客户端只展示和修正,不改写事实源。

采集与空白过滤 · 底噪、震动与语音必须分开

算法运行在Tower Edge;只有通过VAD Gate的候选才进入封口、ASR和事件分析。

120HZ HPF · 10MS FEATURES · ADAPTIVE FLOOR · REPLAY GATE
Capture Algorithm · wp2-edge-audio-2

先排除数字故障和机械震动,再判断有没有值得保存的声音。

原方案已经写过“持续机械声不得被误判成连续讲话”,但当时只把它列成验收要求;实际实现仍对全频PCM直接计算RMS/Peak,没有频率选择性,因此49Hz桌面震动能够累计超过2秒并被保留。现在这项要求已经落实为明确算法和生产Gate。

120HzVAD高通截止
4级连续RC高通
210ms震动剩余活动
30.16s真实语音保留
01 · Root Cause

为什么旧算法会把震动当成人声

OLD · FULL-BAND ENERGY

只看全频RMS与Peak

自适应noise floor能处理稳定底噪,但不能识别“能量主要集中在低频”的机械耦合。多个短震动脉冲可累计超过2秒。

full-band RMS > threshold → ACTIVE
TARGET · 2026/07/23 22:18:20

典型49Hz震动样本

80Hz以下能量占76.7%,主峰约49Hz;300–3400Hz语音带仅5.4%。旧版记录14个零碎active range,累计4770ms并保留34.9秒。

49Hz · active 4770ms · retained
NEW · SPEECH-BAND FEATURES

VAD特征先做高通

状态跨frame连续、按声道隔离的120Hz四级高通只作用于判定特征;原始PCM仍原样写入ring与Source Clip。

HPF(120Hz × 4) → RMS / Peak
02 · Production Algorithm

数字故障、低频震动、环境底噪、有效语音四层判定

01滚动缓冲

内存保留最近30–60秒,不持续写盘。

02数字全零保护

有帧但全零持续2.5秒,判权限或静音故障。

03震动高通

120Hz四级高通,仅生成VAD特征,不修改原始录音。

0410ms RMS / Peak

在过滤后的语音带特征上计算活动强度。

05自适应底噪+迟滞

开始阈值高、持续阈值低;只从明确背景帧学习。

06最短时长与上下文

默认有效活动≥2秒;保留3秒前文和5秒后文。

参数旧基线当前生产方案验证方式
分析窗口10ms block10ms RMS+Peak固定frame grid
低频震动无频率过滤analysisHighPassHz=120stages=449Hz目标片段+真实语音双Gate
固定峰值peak 0.04仅校准期兼容回退旧录音回放
底噪阈值相对noise floor的开始/持续双阈值每设备滑动校准
静音切段0.1s100ms range split不切碎中文短句
最短活动2sspeech profile默认2秒震动210ms被判too-short
上下文Pre-roll 3秒 · Post-roll 5秒保住句首和情绪恢复
全零故障连续2.5秒进入Error诊断数字静音测试

Source Clip · 事实证据

  • 原始PCM与保留录音不做高通改写
  • 从触发前3秒开始,到结束后5秒封口
  • 写入后计算hash,后续模型不能修改
  • 可用于争议检查和未来重新分析

Analysis Clip · AI输入

  • 只由通过Gate的Source Clip派生
  • 可裁首尾和长静音,保留时间映射
  • 进入FireRedASR2-AED和事件模型
  • 算法版本明确记录为wp2-edge-audio-2
03 · Real Replay Gate

不能只写“过滤机械声”,必须对同一真实样本证明

R01 · VIBRATION22:18:20机器震动

旧版4770ms retained;新版只剩210ms,too-short,0 retained。

R02 · REAL SPEECH09:37真实中文语音

新版保留30160ms,证明高通没有误杀真实说话。

R03 · LIVE WINDOWTower生产窗口

连续窗口3候选/2候选均0 retained并删除scratch。

R04 · REGRESSION自动化回归

WP2 25/25、Collector 120/120;配置向后兼容,参数显式进入report。

R05 · FAR FIELD远场与小声语音

继续积累家庭真实样本,防止为了降噪而扩大漏录。

数据与文件 · 用户看得懂,系统不会乱

数据库和内部对象库隐藏;共享目录只展示已经整理好的家庭事件和导出。

IMMUTABLE ORIGINALS · HUMAN FRIENDLY EXPORTS
01 · Storage Boundary

内部事实源与用户共享目录分离

数据库不能放在 SMB 共享目录里被直接修改;媒体原件按哈希保存,用户需要时生成按日期整理的可读视图。

系统内部 · 不通过 SMB 暴露

/volume1/@appdata/GrowLog/ ├── catalog/growlog.sqlite3 ├── objects/sha256/ab/cd/<hash> ├── derived/audio-analysis/ ├── spool/capturing/ ├── spool/sealed/ ├── jobs/dead-letter/ ├── thumbnails/ └── backups/

家庭共享 · 可以直接查看

/volume1/GrowLogMedia/ ├── 2026/07/17/ │ └── 18-34_客厅玩球/ │ ├── audio.opus │ ├── snapshot.jpg │ ├── video.mp4 │ ├── transcript.txt │ └── event.json └── exports/
CAPTURING边缘滚动缓冲
SEALED完整媒体已封口
FILTERED空白或无效片段
QUEUED等待AI处理
DERIVED文本与事件已生成
CONFIRMED家人确认或修正
02 · Core Objects

五个核心对象

媒体、推断、用户修正和每日总结必须分开,避免AI改写历史。

OBJECT A

Device

设备身份与能力,不把移动相机永久绑定房间。

OBJECT B

CaptureSession

一次采集的房间、旅行、时间与隐私上下文。

OBJECT C

Observation

原始音频、图片、视频和传感信号。

OBJECT D

LifeEvent

哭、笑、起床、入睡、活动与对话等解释层。

OBJECT E

DerivedArtifact

转写、摘要、标签及其模型和版本。

03 · Runtime Flow

从声音到“今天发生了什么”

AI只生成候选事件;高影响推断要经过证据检查和家人确认。

01滚动采集

只保留最近30–60秒

02触发事件

语音、哭笑或手动保存

03封口入库

媒体哈希与原子写入

04转写理解

声音转文字、图片理解

05候选事件

时间、人物、活动、情绪

06证据与修正

置信度、回放、人工修正

07每日总结

Web/PWA 与电视统一展示

执行方案 · Tower闭环与多端展示

不再建设独立计算节点;先稳定Tower主链和桌面/PWA,再扩展移动与电视端。

WORK PACKAGES · GATED DELIVERY
Implementation Direction

先证明家庭环境下的声音能被准确保留,再扩展设备数量。

黄金链路:客厅说话 → C270 → Tower → 震动/空白过滤 → FireRedASR2-AED → Ornith → LifeEvent → DailyMemory → Desktop/PWA。

当前托管事实
桌面版已完成;PWA静态资源暂在.235,迁回Synology/Tower不阻塞采集。
WP0 · BASELINESTART HEREPASS · PROD

产品事件模型与隐私边界

Device、Session、Observation、LifeEvent、DerivedArtifact、Evidence与Correction边界明确。

出口:推断能回到证据,人工修正不覆盖历史
WP1 · HUBDEPENDS WP0PASS · PROD

Tower GrowLog Hub

Rust服务、SQLite、媒体对象、幂等任务、认证、健康检查和systemd守护。

出口:重启后数据库、媒体和任务状态一致
WP2 · EDGEDEPENDS WP1PASS · PROD

C270采集与震动/空白过滤

10ms特征、自适应底噪、迟滞、120Hz四级高通、2秒最短活动、3秒前录/5秒后录和双产物。

出口:49Hz震动0 retained;真实中文语音保留;参数变更附真实回放报告
WP3 · INGESTDEPENDS WP1 · WP2PASS · PROD

媒体封口、去重与目录

.partial、原子改名、SHA-256、durable outbox和Source/Analysis时间映射。

出口:断电或重复上传不产生半文件和重复资产
WP4 · TRANSCRIPTDEPENDS WP2 · WP3PASS · PROD

声音转文本完整闭环

Tower Hub通过带Bearer Key的媒体中心/api/asr调用FireRedASR2-AED;记录模型版本和Source映射。

出口:有效语音可搜索,失败有边界且不阻塞采集
WP5–WP6 · EVENT / DAILYDEPENDS WP4PASS · PROD

生活事件与每日记忆

Ornith完成事件、视觉和DailyMemory;AI结论保留Evidence、置信度和修正历史。

出口:一天可生成稳定、可复核的DailyMemory
WP7 · DESKTOP / WEBDEPENDS WP1 · WP6APP PASS · HOST PENDING

桌面版与Web/PWA

实时监控、原始片段、状态、媒体和历史界面已完成;当前托管在.235,后续迁回Synology/Tower。

出口:多端使用同一Hub数据;静态站点迁移不影响采集
WP8–WP10 · MOBILE / ACTION / TVDEPENDS WP3 · WP7DEFERRED

移动采集与家庭大屏

保留手机媒体导入、Action双通道去重和Apple TV家庭回看方向。

出口:多设备素材不重复,家庭成员能完成查看和确认
WP12 · HARDENINGDEPENDS ACTIVE PATHPARTIAL

故障注入、备份与家庭试运行

执行断网、AI超时、群晖重启、磁盘阈值、设备掉线、重复上传和恢复测试。

出口:连续试运行中不丢原件、不重复事件、不绕过隐私边界
GATE 0事实边界可信

推断、证据、修正分离

GATE 1客厅闭环稳定

震动过滤、封口、重启恢复

GATE 2一天可被还原

文本、事件、摘要可复核

GATE 3多设备不重复

手机与Action双通道去重

GATE 4家庭成员真能用

Web、桌面、电视、隐私与恢复