数据保留边界¶
每条空白会议默认纯识别:原始音频用后即弃,不提供回放。账号用户可在开始前点击一次启用录音+识别按钮,保留并回放本次录音;按钮点击生效后立即灰掉,不能再关闭,也不是可反复选择的选项。
| 数据 | 账号模式 | 访客模式 |
|---|---|---|
| 标题、标签、转写 | 服务器 SQLite,按账号隔离 | 当前浏览器 IndexedDB |
| 摘要、纪要完善、Markdown Todo 与对话 | 随会议保存 | 随本地会议保存 |
| 会议原始录音 | 纯识别丢弃;录音+识别私有保留 | 仅纯识别,不建立录音档案 |
| 导入的原始文件 | 固定私有保留并支持回放 | 不允许导入,提示登录 |
| 实时对话文字 | 随对话记录保存 | 当前浏览器保存 |
| 模型服务密钥 | 仅服务端配置 | 不发送到浏览器 |
选择录音模式¶
| 模式 | 行为 | 适用范围 |
|---|---|---|
| 纯识别 | 处理后丢弃全部原始音频,不显示回放 | 默认;账号和访客 |
| 录音+识别 | 从开始录音时采集浏览器编码的音频,正常结束后与本次会议关联并可回放 | 已登录账号 |
点击启用后即持久锁定录音+识别,仍允许首次开始录音。未启用而直接开始纯识别,也会在文字到达前灰掉按钮并锁定路线。暂停与继续、正常尾部收尾仍属于同一次录音;结束后必须新建会议才能增加音频。清空、重开或刷新不会解锁,也不能向已开始的会议导入或挂接另一段录音。录音归档最大 128 MiB;超限或浏览器录音失败会显示具体原因。
服务端保存锁定、开始/完成状态及本次采集身份,两方向的后续模式切换都会被拒绝。旧记录和已有混合音频按最保守方式归类为已完成,不因迁移删除文件。
导入已有音频¶
在会议录音控制区点击 导入录音。接受 WAV、MP3、WebM、Ogg、M4A/MP4、FLAC 容器,单个文件最大 128 MiB,实际解码能力取决于所选 ASR 通道。成功后打开普通会议,继续生成标题、摘要和完善纪要;不会建立独立的音频文件库。
导入始终建立已锁定、已完成的“录音+识别”会议并保留原始文件;不是可选保存。导入要求登录,访客会看到说明且不会静默降级。识别失败、空结果、取消或存储失败不会建立半成品会议。取消阻止结果提交,不代表可以立即中断第三方或正在执行的模型计算;取消未确认时应检查会议历史,勿重复提交。
超过 12 MiB 的文件需要主服务宿主安装 FFmpeg:服务顺序解码为 30 秒、16 kHz 单声道 WAV 块,每块走所选 ASR 通道,继续复用已有的持久 GPU 模型。服务端识别预算为 15 分钟,取消在块间检查;网页上传与识别合计预算为 30 分钟,长上传会占用该总预算。反向代理需允许 128 MiB 文件及 multipart 开销,并将识别请求等待设为至少 1020 秒。小文件仍使用原 ASR 路径。
私有文件与清理¶
- 保留文件位于运行目录的
data/meeting-audio/,目录权限为0700、文件为0600,文件名由服务端生成。 - 播放和下载需要有效账号会话与会议所有权,不是匿名直链;只读数据 Token 不自动获得音频文件访问权。
- 清空会议会删除关联音频并使旧上传失效;删除会议也清理音频。清理失败会报告错误,不把残留当成删除成功。
- 已下载、导出、备份或第三方保存的副本需要分别管理。保存和使用录音前应确认使用授权。
处理不等于归档¶
麦克风或导入音频会经过浏览器、ChatVoice 和所选 ASR 服务。服务端可能使用 temp/asr 或 temp/audio-uploads 的临时文件解码、识别或上传校验,正常处理后清理。外部服务有自己的数据政策。“不保存录音”不代表音频不经过网络或磁盘,也不代表访客转写可离线运行。
声音工作室的 TTS/复刻输出仍是当前任务的临时试听/下载结果;复刻参考需本人授权,不建立永久音色库或生成历史。实时对话的原始音频保留不属于会议保存模式。
备份¶
chatvoice data dump 只备份 SQLite,不包含原始音频文件。使用保留模式时,先正常停止服务,再把数据库一致性快照与 data/meeting-audio/ 一起备份和恢复;只恢复数据库不能恢复丢失的录音。代码回滚不得用旧数据库覆盖新记录。