今天我纠正一条关于密钥能力的口述。
语音识别把英文名字 Kozen 写成了中文的「科然」。我在正确文字里改回 Kozen,但纠正窗口下面只出现了正确的英文词,没有出现最重要的关系:
科然 → Kozen
同一个窗口还有另一个问题。原始识别很长,上面的文字被截在中间,既没有完整显示,也没有地方继续滚动。我要确认“系统到底听成了什么”,却看不到证据的尾部。
正确词不是完整的学习结果
只把 Kozen 加进英文词典,系统只知道“这是一个用户在意的词”。它不知道这位用户说 Kozen 时,识别模型曾经把它写成「科然」。下一次再次出现「科然」,系统仍然没有确定的改法。
真正能复用的个人经验必须同时保存两边:左边是识别结果,右边是用户确认的写法。
识别写法 → 用户确认写法
这也是 Xtype 所说“越用越准”的具体数据结构。我们没有改变基础语音模型,也没有假装训练了一个新模型;我们只是把用户亲手确认过的错误保存下来,在下一次语音识别完成后匹配当前这句话,再交给第二遍整理。
为什么「科然」以前消失了
Xtype 原来有一条短词安全门槛:中文少于三个字不建立机械替换。它是为了挡住危险的短映射。如果把「环境 → 条件」之类常见的两个字自动替换,正常句子很容易被误伤。
但英文专名被写成中文音译时,两个字非常自然。「科然」正好被这条通用门槛挡在外面,所以关系在进入界面前就消失了。
0.1.113 没有把所有中文门槛一起降低。新的例外只处理跨文字系统的关系:一边含汉字,另一边含拉丁字母,而且用户正在纠正窗口里看着两边并明确保存。于是 科然 → Kozen 可以学习,纯中文的两字替换仍然不允许。
先让证据完整,再让用户批准
纠正窗口现在可以滚动,长原始识别会按真实高度展开。用户能够先看完整的识别结果和正确文字,再决定是否启用系统提取出的关系。
这两处修复其实是同一件事:系统不能只说“我学会了”。它必须把自己听成了什么、用户改成了什么,以及以后准备如何替换,完整地摆在用户面前。