作者声音校准指南
目录
基本原则
去 AI 化不等于给文本加“人设”。第一人称、口语、比喻、短句和不确定词都可能是新模板。先保留作者原有的判断和语气,再处理妨碍自然度的表达。
判断“有人味”时优先看三件事:
- 判断来源:作者为什么会说这句话,依据是经历、观察、材料还是推断?
- 选择痕迹:作者改变过什么做法、拒绝了什么解释、仍在犹疑什么?
- 段落动力:下一段由上一段留下的问题推动,还是由“接下来谈三个方面”之类的框架提示推动?
没有作者材料时,不得编造经历、感受、客户、案件、讨论过程或立场变化。平实而准确的文本优于虚构的“真情实感”。
三种 voice 模式
cleanup_only
用户没有提供或选择作者样本时使用。只执行删除、合并、澄清和必要的句式重构:
- 不主动增加第一人称、反问、生活化比喻或短句金句;
- 不按固定比例“注入个人化”;
- 不要求每篇文章都有对话感、幽默感或情绪;
个性度评价“是否保住源稿已有的作者特征”,不评价“新增了多少风格”。
provided_sample
用户提供并确认可用于本次任务的样本时使用。先提取 profile,再改写。只学习稳定特征,不复制样本原句、独有比喻或事实。
local_anchor
用户明确要求使用本机个人声音时使用。必须记录 voice_anchor_id:用户给出 ID 时直接使用;未给出时,只在已经选择 local_anchor 的前提下,从 assets/local-voice-anchors/config.json 读取 default_voice_anchor_id。再读取同目录 <voice_anchor_id>.md 中的深层 profile、反例和适用边界。该目录由项目 .gitignore 排除,不属于公共 Skill;注册表中的“默认”也不是所有任务的默认人格。
Voice Profile 十维度
七个表层维度只够描述“怎么写”,不能解释“为什么像这个人”。在原有七维度上增加三个深层维度:
| 维度 | 观察内容 | 禁止的机械化处理 |
|---|---|---|
| 句长分布 | 长、中、短句的实际比例及出现位置 | 规定“每两句插一个短句” |
| 词选层级 | 口语、正式语、行业术语的边界 | 用口语词替换所有正式表达 |
| 段落开头 | 由事实、场景、判断、问题还是承接词起段 | 统一改成“很多人”“真正的问题” |
| 标点习惯 | 分号、破折号、括号、引号的实际功能 | 为了制造节奏强加破折号 |
| 过渡方式 | 复用前文对象、因果推进、时间推进或显式路标 | 全部删除连接词后硬切段 |
| 观点密度 | 每段承担几个新判断,解释展开到什么程度 | 每段强行只留一个口号式判断 |
| 语气倾向 | 第一人称、直接称呼、反问和判断强度 | 为“有人味”凭空增加“我”或“你” |
| 认识来源 | 观点来自亲历、观察、材料、推理还是转述 | 把通用知识伪装成个人发现 |
| 不确定性形态 | 作者对什么不确定,为什么仍未下结论 | 机械添加“可能、或许、某种程度” |
| 段落动力 | 段落怎样从前一段的问题或对象长出来 | 用标题提示和短句金句推动全文 |
只记录样本中反复出现的稳定特征。偶发表达写入“反例”,不得当成目标风格复现。
语气倾向还必须记录判断强度。声音样本中的克制不能被简化成几个“未必、可能”,也不能反向把目标稿写得更果断。源稿中的保留、推断和未知是内容边界:Voice Calibration 可以让边界表达更清楚,不得把“我仍有保留”升级为“这个判断错了/下得太早”,也不得凭样本新增频率或适用范围。
作者证据卡
希望文本呈现经验感或真情实感时,先为关键判断建立最小证据卡:
判断:作者真正要说什么?
来源:亲历 / 观察 / 材料 / 推断 / 转述 / 未提供
触发:什么事实或变化让作者形成这个判断?
边界:作者仍不确定什么,或该判断只适用于哪里?
代价:如果判断错了,谁会受到什么影响?处理规则:
- 来源为“未提供”时,只能保留为一般分析或提示作者补料;不得改成“我后来发现”“我们曾经遇到”。
- 事实、观察和推断必须分开写。不要用第一人称把推断伪装成事实。
- 一篇文章不必处处有故事。证据卡只服务于需要作者在场的关键段落。
提取与改写流程
- 确认样本授权、目标场景和 voice 模式。
- 通读样本两遍:第一遍看叙述位置和段落动力,第二遍填十维 profile。
- 为目标稿关键判断填写作者证据卡;标记材料不足处。
- 先修段落功能和信息次序,再调整句子。
- 只在 profile 有明确证据时保留或恢复对应风格;不要为了匹配分数添加装饰。
- 改写后执行修复伪影复扫:检查隐藏列表、假排名、替换口癖、虚构经历和 anchor 原句复刻。
- 将最终稿与源稿、样本一起交给
voice_anchor_copy_gate.py:只拦截改写后新增的长连续重合,默认不在日志中打印私有短语。
Profile 模板
作者/样本来源:
样本字数与场景:
voice_mode:provided_sample / local_anchor
voice_anchor_id(如适用):
- 句长分布:
- 词选层级:
- 段落开头:
- 标点习惯:
- 过渡方式:
- 观点密度:
- 语气倾向:
- 认识来源:
- 不确定性形态:
- 段落动力:
- 反例(不得复现):
- 本次目标稿缺少的作者材料:本机私有 Voice Anchor
约定目录:assets/local-voice-anchors/。
config.json使用schema_version、default_voice_anchor_id和anchors登记本机命名 anchor;每个注册项至少包含相对文件名与便于本人识别的 label;- 每个 anchor 使用稳定 slug 命名,例如
<voice_anchor_id>.md,注册文件必须位于同一目录,不接受绝对路径或..跳转; - 文件可包含授权范围、深层 profile、反例、禁复制项和冻结样本;
- 公共文档、fixture、日志和评测元数据只记录通用机制,不记录私有样本正文或作者 profile;
- 用户未明确选择
local_anchor,或本机配置、注册项、样本文件任一不存在时,不启用该 anchor。
私有 anchor 的作用是校准表达,不是提供可复制句库。不要把样本的事实、场景专属主语、独有比喻和高辨识短语带入目标稿。
匹配与安全门禁
使用作者样本或本机私有 anchor 后,逐项检查:
- Profile 匹配:至少匹配目标场景适用的主要稳定维度;不得只匹配句长和口头词。
- 证据一致:新增第一人称、经历和感受都能回到用户提供的材料。
- 强度不升级:改稿没有把源稿的可能、保留、条件或未知改成确定裁断、普遍频率或必然后果。
- 功能一致:分类、步骤和责任分配仍清楚;不得为打散排比破坏信息结构。
- 不复制样本:不出现样本原句、高辨识短语、独有比喻或标题结构的直接复用。
- 不引入样本事实:不把样本中的项目、人物、案件、机构或私人信息写入目标稿。
- 反例不复现:样本中的偶发排比、口号或场景专属语气不进入目标稿。
- 无修复伪影:不出现假排名、同义词绕行、强加比喻、强加短句金句或隐藏列表。
自动重合门禁只覆盖连续字符复刻:它会忽略源稿本来已有的共同表述,并对空白、Markdown 强调和常见标点做归一化;默认阈值为 14 个有效字符。它不能发现同义改写、事实泄漏或对样本段落结构的模仿,因此通过后仍要人工核对上述项目。
样本只能帮助校准表达,不能替目标稿补充事实深度。材料不足时明确标记 AUTHOR_MATERIAL_NEEDED。