Hanah ← 信任中心 美国 · 验证方法
验证方法 · v1.1

我们如何衡量准确率。

转录准确率和文书幻觉作为同一件事进行测试:一套测试框架、一个有版本控制的语料库、每条录音一次端到端运行,然后通过两个互补的评估层评分。A 层(词错误率)衡量语音转文字流程相对于逐字标准参照的表现。B 层(LLM 评审团)衡量生成的临床文档是否涵盖了事先声明为重要的事实,以及是否添加了未曾说过的内容。推理分为两层,而不是压缩成一个掩盖取舍的单一分数。

A 层:WER · 已上线 B 层:LLM 评审团 · v1 评审组 C 层:语义漂移 · 已排期

为什么这是一套测评方法,而不是两套

把 WER 数字和单独的“幻觉率”分别发布在不同页面上很有诱惑力。我们没有这样做,因为它们共享所有关键要素:相同的音频、相同的端到端运行、相同的版本化语料库、相同的发布周期,以及签核底层标准参照的同一批审阅者。拆成两个页面会让人以为是两个独立的项目,而实际上一次运行就会同时产生这两个数字,其中一项退步通常也会在另一项中体现。每条录音只在生产流程中运行一次;这一次运行产生的数据会用于下方每一个评估层。

  1. 1
    录音:音频 + 逐字标准参照 + 预先登记的事实清单,在代码仓库中固定版本。
  2. 2
    端到端运行:临床医生注册、创建患者、录音、生成文档。与生产环境用户的路径完全相同。
  3. 3
    A 层:WER 将录得的转录稿与标准参照进行比较。
  4. 4
    B 层:LLM 评审团对照事实清单为生成的文档逐项评分,每次调用评一项事实。
  5. 5
    汇总与发布:由单一的 aggregate.json 生成公开的透明度页面。

语料库

一组固定且版本受控的录音,测评方法基于这些录音运行。每条录音都配有逐字转录稿,以及一份人工编写的事实清单,列出生成的病历中应当出现的临床要点(以及不得出现的要点)。

v1:合成音频,多厂商 TTS

合成音频听起来不自然;我们是有意使用的。脚本本身就是参考转录稿,因此标准参照是精确的,而不是由转录员近似得出。整个语料库可以与验证报告一起逐字节公开,审计人员可以用相同的输入重新运行测试框架,复现公布的数字。不自然并不意味着容易:合成语音带有口音和以英语为第二语言(L2)者的说话方式,音频中还混入了临床医生实际录音时的环境,例如隔壁房间开着的电视、家访时的室内环境音、户外的交通和风声。

  • ✅
    多厂商口音覆盖

    每个口音 / 队列单元都至少从两家 TTS 厂商(ElevenLabs、OpenAI TTS、Google Cloud TTS、Azure Neural)中采样,这样单一厂商语音库带来的偏差会以跨厂商分歧的形式显现,而不会悄悄被计入核心数字。覆盖范围包括新西兰、澳大利亚、英国、美国、印度和太平洋岛屿口音的英语,以及 L2 说话者,涉及专职医疗、初级保健和门诊等预约类型。

  • ✅
    有意加入口音和背景噪音

    临床医生不会在录音棚里录音,语料库也一样。录音由带口音的说话者和以英语为第二语言的说话者配音,并混入诊疗实际发生时的环境:隔壁房间开着的电视、家访时的室内环境音、户外的交通和风声。在已发布的 v1 运行中,11 条评分录音中有 5 条带有口音或音频条件标签:4 条带背景噪音(Background noise、Background TV Noise、Room ambience、Outdoors),3 条带口音或语言变化(L2 English、Heavy accent、Code Switching)。每个标签在 A 层明细中都是一个独立队列,因此噪音和口音带来的影响会以各队列的 WER 数字公布,而不会被平均掉。

  • ✅
    每条录音预先登记的事实清单

    由脚本作者起草,在任何模型接触音频之前由临床负责人签核。分为三类:正向事实(必须出现在病历中)、负向事实(不得被错误断言),以及允许的固定表述(即使转录稿中没有,也允许出现的临床安全网用语)。事实清单固定版本;任何修改都会提升版本号并触发重新运行。

  • 🟡
    v1 能证明什么,不能证明什么

    v1 衡量的是退步情况、端到端流程的正确性、可重复性,以及在不同英语口音单元和音频中混入的噪音条件下,各队列的 STT(语音转文字)差异。v1 不声称具有真实性:混入的电视声、室内环境音和户外噪音只是模拟诊室环境,并非诊室的真实录音;合成口音也不能替代真实的说话者。因此,v1 对毛利语(te reo Māori)、真实的中途语言切换、言语不流畅、构音障碍或儿童语言不作任何声明。针对真实队列内容的 LLM 层偏差评估将在 v2/v3 中进行。

升级路线图

版本音频来源偏差声明目标
v1 多 TTS、多口音合成音频,混入噪音:11 条录音,涵盖各类口音、音频条件和预约类型 在英语口音差异上提供实质性的 A 层偏差信号;LLM 层偏差仍有待 v2/v3 验证 已交付
v2 角色扮演:新西兰临床医生 + 临床演员,在接近真实临床的环境中录制 首个针对具体队列的偏差信号,受限于脚本化内容 合同签订后 60 天
v3 基于知情同意的真实录音,先从澳大利亚生产环境队列开始,然后扩展到新西兰合作诊所 在澳大利亚 / 新西兰合作队列中进行真实场景下的偏差测量 合同签订后 120 天
v4 与 Health New Zealand 联合开展的临床验证队列 代表 HNZ 部署情况的偏差声明 按 HNZ 部署里程碑

A 层:词错误率

机械层。词错误率是一项历史悠久的语音识别指标:统计转录内容与实际所说内容之间的替换、插入和删除次数,再除以参考文本的词数。数值越低越好;0% 表示转录稿与标准参照逐词一致。

WER =(替换数 + 插入数 + 删除数)/ 参考文本词数

与其他产品的比较。目前没有可以对标的基准。大多数环境 AI 病历助手厂商根本不公布词错误率;我们能找到的两家公布了这一数字,即 Nabla 的 11.8%和 Abridge 的 12.7%,但它们是在不公开的内部基准上测得的,因此这两个数字都无法复现或核查。WER 只有在相同音频、相同规范化规则下才可比较,所以我们按自己的条件呈现结果,并说明上文所述的语料库、录音和评分方法。我们欢迎其他厂商以同样的方式公布他们的数字。在此之前,把我们的数字与任何其他厂商的数字相比较都没有太大意义。

如实说明的局限性。在原始 WER 中,影响重大的替换(10mg → 100mg)与影响很小的替换(okay → OK)计数相同。这就是需要 B 层的原因:仅凭词元级 WER 无法推断临床内容是否正确。

B 层:评估覆盖率和幻觉的 LLM 评审团

定性层。由来自多家厂商的独立 LLM 评估模型组成的评审团,对照录音预先登记的事实清单,为生成的临床文档评分。两项属性分别测量,以便分别报告:

覆盖率(召回率)

病历是否涵盖了录音要求的每一项临床事实?针对 detailsThatMustBeCaptured 中每一项预先登记的预期内容,对每份输出、每个评审模型各进行一次评审调用,并重复多次以进行内部多数表决。Yes / partial / no(是 / 部分 / 否)。

幻觉(精确率)

病历中是否包含转录稿不支持的、具有临床意义的陈述?对每份生成的输出、每个评审模型各进行一次评审调用,返回一份编造陈述清单,即模型编造的内容。评审模型之间的一致情况保留在评审团的并集结果中。

每个评审模型看到的确切提示

系统提示和用户消息模板在测试框架代码仓库(app/next/tests/accuracy/lib/juror.ts)中固定版本,并在每次刷新结果时同步到本页面。两者均在下方逐字转载,审计人员看到的正是模型被问到的原文,而非转述。重新运行和评审团组成会有所变化,但提示框架本身不变。

提示尚未同步。请运行 REGION=au website/publish-trust.sh。

原子化的单问题调用

测试框架向评审团提出的每一项判断都是一项事实、一个问题、一次调用。众所周知,让模型在一次调用中为整份病历评分,往往会得出“看起来没问题”的平均化结论,个别错误会被掩盖。原子化调用也便于审计:任何人都可以重新运行单项判断,查看全部三个评审模型的回答以及评审团的判定。

什么算作幻觉

对于每份输出,评审团会拿到转录稿和生成的文档。每个评审模型逐一列出输出中转录稿不支持的、具有临床意义的陈述,即模型编造的内容。评审团的结果是各评审模型结果的并集,并按陈述文本去重。核心指标只计入已确认的标记,即被 2 个或以上评审模型标记的陈述;只有一个评审模型标记的情况会在每份输出的明细中显示为“暂定”,但不计入核心指标。两个评审模型一致的门槛,使该指标不易受单个评审模型过于严格的解读所造成的误报影响。

算作幻觉不算作幻觉
输出中断言的症状、检查结果、病史项目、剂量、药物、侧别(左侧或右侧)、测量值或时间细节,但在转录稿实际所说的内容中找不到任何依据。 固定表述、文档标题、格式或章节标签。
剂量错误、侧别错误或药物错误的陈述,即使表面上与所说的内容相似。 保留了转录稿实际内容临床含义的措辞变化和转述。
以事实形式呈现的编造检查结果(转录稿中未提及发热,却写成“患者否认发热”)。 将有依据的内容合理地整理到病历各部分中(例如把某个症状移到“现病史”中)。
超出对转录稿合理转述范围的临床陈述。 不断言新临床事实的标准安全网用语(“如症状加重,建议复诊”)。

对于在转录稿中有依据、但不在预期清单中的内容,我们有意不标记。detailsThatMustBeCaptured 是一份必备清单,而不是“文档应包含的全部内容”的约定。把清单外每一项有依据的陈述都扣分会产生过多误报,尤其是 SOAP 类病历,其客观检查和评估部分本来就会合理地超出列明的必备项目。

评审团构成

采用来自多家厂商的独立模型,使各自的失误模式互不相关。测试框架不依赖特定提供商:任何通过受支持适配器接入的模型都可以加入评审团,评审团规模也会随着适配器的增加而扩大。该方法发表于Replacing Judges with Juries(Verga 等人,2024,Cohere)。我们采用它,是因为在临床安全场景中,多个独立模型的交叉验证比信任单一模型更可靠。

席位供应商说明
评审模型 AAnthropic(Claude,Sonnet 或 Opus 级别)指令遵循能力强;判定幻觉时较为保守。
评审模型 BOpenAI(GPT-4 系列)训练语料和对齐方法与 A 不同。
评审模型 C开放权重模型(Llama 或 Mistral)提升透明度的手段:HNZ 或任何审查方都可以自行重新运行这一席位。
评审模型 D (可选)Google(Gemini)与生产环境的生成流程属同一厂商。单独报告,见下方说明。

同一厂商的注意事项。Gemini 可以参与评审,但生产环境的文档生成流程同样使用 Gemini,而同一厂商的模型担任评审可能产生相关联的盲点:作为生成模型的 Gemini 编造的内容,可能更容易被作为评审模型的 Gemini 认为合理。缓解措施在操作层面:Gemini 的判定与多厂商评审团的判定分开报告,读者可以看到仅由 Gemini 评审会得出什么结果,以及多厂商评审团得出的结果。当评审团规模 N=1 且唯一的评审模型是 Gemini 时(例如早期开发运行),验证报告会明确指出这一点,以免读者过度解读这些数字。

判定规则(随评审团规模调整)

评审团规模判定规则
N = 1以唯一评审模型的判定为准;评审模型内部的重复表决是降低方差的手段。
N = 2两者必须一致;如有分歧,该次调用会记录为分歧,并记录较保守的判定(partial)。
N ≥ 3按 Verga 等人的方法进行多数表决;一致判定记录为高置信度;多数但不一致的判定记录为分歧。
任意规模在已发布的子集中,对幻觉严重程度的分歧会提交给临床负责人进行人工审查。

报告包含每条录音的评审一致率:评审团意见一致的调用所占比例(N ≥ 2 时)。一致率高,说明明确的案例占多数;分歧率高,说明测评方法正处于疑难区间。两者对评估者都是有用的信息,而不是需要隐藏的缺陷。

每个评审模型的重复表决

每个评审模型在温度为 0 的设置下被调用 R 次(默认 R = 3,可按每次运行配置);该评审模型的投票取其自身 R 次回答的多数结果。这样可以消除 5–10% 的调用中单个评审模型回答不稳定的情况。每项判断的成本为 N × R 次调用;所用的模型类别相对于生成流程而言成本较低,而降低方差正是目的所在。快速开发迭代时可降低 R;需要更高置信度的公开数字时则提高 R。

校准与评分者间一致性

Cohen's κ处理方式
≥ 0.7评审团的判定可以合理地作为临床专家判断的替代指标。
0.5 ≤ κ < 0.7附明确说明后公布;触发测评方法迭代。
< 0.5该报告的测评方法不合格;结果不作为准确率声明公布;对测试框架展开调查。

Cohen's κ 不是凭感觉的指标,它会排除偶然一致的影响。纳入这一指标,使评审团从“相信 LLM”变成“每份报告中 LLM 都与临床医生进行了对照测量”。

C 层:语义漂移 已排期

介于原始 WER(词元级)和 LLM 评审团(临床内容级)之间的桥梁指标。参考转录稿和生成的文书使用同一个嵌入模型进行嵌入;余弦相似度给出每条录音的漂移分数。它反映重组的保真度:文书本来就要对原始内容进行提炼,但应保留临床含义。作为一项无需逐条标注的低成本连续指标很有用,也便于观察随时间的趋势。异常值(漂移超出均值 N σ)会被标记以供人工审查。已列入路线图;不包含在 v1 公布的数字中。

可重复性

一个流程可能平均而言是准确的,但前后不一致:同一段音频每次生成不同的文书,这是临床安全问题,而不是小插曲。每次 CI 运行会将部分语料库录音处理 N 次(默认 3 次)。每次重新运行都会执行所有评估层;各次重新运行之间的差异即为可重复性分数,与核心准确率数字一并报告。

报告周期

产出物受众周期
CI 摘要 工程师 每个拉取请求:给出通过/失败结果及与 main 的差异,运行时间约 10 分钟,退步超出阈值时失败(总体 WER > 2 个百分点,任一队列 > 5 个百分点)。
每晚趋势 工程团队 + 管理层 持续:完整语料库、完整的按队列细分,以及可重复性评估。
公开透明度报告 客户、评估者、审计人员、监管机构及公众 每季度:每条录音、转录稿、生成的文档、每个评审模型的判定及推理。实时页面直接根据测试框架的 aggregate.json 呈现。

可复现性

统计方法

枯燥,但站得住脚。明确规定这些方法,能让每份报告从“我们运行了测试框架”变成“我们用这种方法运行了测试框架,其他人可以复现”。

要素选择
WER 计算jiwer Python 库,在锁定文件中固定版本。
文本规范化转为小写、去除标点、展开常见缩写、Unicode NFKC。规则固定版本。
WER 置信区间自助法重抽样(10,000 次重抽样),95% 置信水平;以 WER% [lower, upper] 的形式报告。
按队列比较跨版本在同一录音集上进行配对自助法检验;跨队列差异采用置换检验。
评分者间一致性在 20% 人工评分子集上计算评审团与临床负责人之间的 Cohen's κ,按指标(覆盖率、幻觉)分别报告,而不只是报告总体结果。
幻觉率的分母生成的病历中的句子数(因此不同长度的病历之间的比率可以比较)。
覆盖率的分母预先登记的正向事实数(因此 100% 表示每一项必需事实都已涵盖)。
评审模型间的分歧每次调用在评审团内计算 Fleiss' κ,按录音汇总,用于检验评审模型的一致性(N ≥ 2 时可计算)。
多重比较处理同时检验多个队列之间的差异时,采用 Benjamini-Hochberg FDR 校正。
降低方差重复表决(每个评审模型在温度 0 下 3 次);按 Verga 等人的方法由三个评审模型多数表决。

对比基准测试:Claude 评审

2026年10月,我们将相同的 13 条语料库录音分别交给 Hanah 和另外六款 AI 病历助手(Heidi、Lyrebird、Freed、PatientNotes、CliniScripts 和 Preve)处理,并在基准测试页面上公布了每一份转录稿、病历和评分。该对比中的病历由 Claude 评审打分。透明度页面上的版本报告则由 B 层所述的评审团评分。

录音

每款 AI 病历助手都在 Chrome 中各自的网页应用里运行,登录标准账户并使用默认设置。录音通过浏览器的麦克风输入播放,每款产品使用同一个文件,每条录音的提示逐字输入到该产品自己的文档或对话功能中。每款产品每条录音运行一次,全部在 2026年10月6日完成。词错误率根据每款产品的最终转录稿计算,方法与 A 层完全相同。

盲评

对于每条录音,每款产品针对每个提示的输出都与参考转录稿和检查清单放在同一个评分包中。输出以字母(A 到 G)代替并打乱顺序,文本中的产品名称也被删除。由 Anthropic 的模型 Claude 仅对照参考转录稿为每个评分包打分。全部 13 条录音评分完成后,才揭晓字母与产品的对应关系。

评分标准

评分含义
检查清单:是病历正确陈述了该项目。措辞可以不同,但含义必须一致。
检查清单:部分有提及,但不完整或不精确,且临床医生会注意到,例如缺少侧别、剂量、数字或时间范围。
检查清单:否未提及,或陈述错误。
重大幻觉标记转录稿不支持、且可能改变诊疗或错误描述临床情况的陈述:编造的症状、检查结果、体格检查结果、诊断、药物或计划;侧别或药名错误;没有人问过的过敏情况;临床医生尚未下结论时,把某一鉴别诊断写成病因。
轻微幻觉标记其他任何没有依据的陈述:没有人说过的病因或风险、“严重”之类的强化词、没有人问过的阴性情况、笼统的复诊语句、编造的日期。

一致性规则

转录稿

每份转录稿都与逐字参考文本逐词对齐,语气填充词的差异不计。Claude 对其余每一处差异进行盲评:具有临床意义的转录错误,是指可能在诊断、治疗、随访、安全或记录方面误导临床医生的错误,例如药物、剂量、数字、侧别或症状错误,否定词或红旗征丢失,或临床内容遗漏。词错误率的计算方法与 A 层相同,等价的书写形式视为相同的词(22 mm 与 22 millimetres、美式与英式拼写、汉字数字与阿拉伯数字、简体字与繁体字)。中文按字计分。

语言设置

对于主要以普通话进行的那次复诊,每款提供输入语言设置的产品都设为普通话:Heidi 设为英语和中文(普通话),Lyrebird 和 PatientNotes 设为中文(普通话,简体)。CliniScripts 在选择中文和英语的情况下两次尝试均未生成转录稿,因此使用其标准设置。Preve 没有输入语言设置,Freed 和 Hanah 会自动检测语言。Heidi 和 Hanah 的这次复诊各运行了三次,其转录结果取平均值。

分数

“已涵盖的临床细节”按每条录音第一个提示的临床检查清单项目计分:是计 1 分,部分计 0.5 分,否计 0 分。幻觉标记在同一批病历中计数。Preve 的标准临床病历按相同的临床项目评分,因为 Preve 只有在上传示例 PDF 以创建模板后才会遵循自定义指令。显著转录错误按每次诊疗计数。行业数字为另外六款产品的平均值。每一项判定和幻觉标记连同理由都公布在基准测试页面上。

预先说明的局限性

这些内容出现在每份验证报告的第 1 页,让读者了解所测量内容的范围。

关于语料库(特指 v1)
  • 即使混入了噪音,合成音频上的总体 WER 相对于真实场景的 WER 仍然偏乐观。我们有意叠加了背景电视声、室内环境音和户外噪音,但仍缺少说话重叠、言语不流畅,以及某个真实诊室的特定声学环境。
  • 由多家 TTS 厂商生成的英语口音单元之间,各队列 STT WER 的差异是一项实质性的 A 层偏差信号:每个单元使用不止一家厂商,可以让单一厂商语音库带来的偏差以跨厂商分歧的形式显现,而不会悄悄被计入核心数字。
  • v1 不能证明 LLM 层的偏差情况(遗漏、刻板印象、文化适应性),也不能证明在毛利语(te reo Māori)、真实的中途语言切换、言语不流畅、构音障碍 / AAC 或儿童语言上的表现。这些仍有待真实队列验证,将升级到 v2(与新西兰临床医生 + 演员进行角色扮演)和 v3(基于知情同意的真实音频)。
  • 合成的新西兰口音和毛利口音语音是在规模较小、可能缺乏代表性的语料上训练的;跨厂商采样可以降低但无法消除这一风险。它们不能替代真实的毛利语使用者,测试框架也不会把它们当作替代品。
  • v1 的幻觉率是一个下限。干净的输入让 LLM 可用来虚构的噪音更少;真实场景下的比率会更高。
关于评审团
  • LLM 评审团本身也并不完美。与临床负责人评分之间的 Cohen's κ,就是公布的评审团判定可信程度的界限。κ < 0.5 意味着该报告不会作为准确率声明公布。
  • 允许的固定表述需要主观判断。较宽松的清单可以减少错误的幻觉标记,但也可能掩盖真实的漂移。修改允许清单须经临床负责人批准,并留有记录。
  • 预先登记的事实清单反映的是一位临床医生对什么重要的看法。对于一份病历“应当”涵盖什么,存在合理的分歧。
关于范围
  • 针对 HNZ 部署的准确率只能通过针对该部署的验证来确认。v3 涵盖澳大利亚生产环境队列;v4(与 HNZ 联合开展)是获得代表新西兰部署情况数字的途径。
  • 可重复性测试捕捉单次运行内的差异;跨版本漂移则作为逐季度的配对比较单独报告。
  • 如实说明样本量。n = 10 条录音分布在 4–5 个队列中,各队列的置信区间很宽。我们如实报告较宽的区间并附上扩充计划,而不是给出窄但不现实的区间。

证据在哪里

参考文献

引用本测评方法

Hanah(2026)。验证方法 v1.1:AI 病历助手准确率的词错误率与 LLM 评审团评分(美国)。Hanah,最后更新于 2026年9月12日。https://hanah.health/us/trust/wer-methodology/

要引用的是结果而不是方法?美国报告在准确率基准测试页面上有单独的引用信息,并注明了评分和发布日期。

测评方法 v1.1 · 最后更新于 2026年9月12日 · 由 CEO、临床负责人和工程团队维护。已发布的验证报告会注明其所依据的测评方法版本,因此每项声明都可以追溯到评分时所用的确切规则。