news 2026/6/10 18:53:41

医院场景实测:Fun-ASR医疗术语识别准确率大提升

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
医院场景实测:Fun-ASR医疗术语识别准确率大提升

医院场景实测:Fun-ASR医疗术语识别准确率大提升

在三甲医院门诊楼的语音转写工作站旁,我亲眼看到一位医生对着录音笔说:“患者主诉右上腹隐痛三天,伴恶心、低热,既往有胆囊结石病史。”五秒后,屏幕上跳出的文字是——“患者主诉右上腹隐痛三天,伴恶心、低热,既往有胆囊结石病史。”没有错字,没有谐音误判,“胆囊结石”四个字稳稳当当,连标点都自动补全。这不是云端API返回的结果,而是部署在科室本地服务器上的Fun-ASR系统实时完成的识别。

这背后没有神秘算法,只有一套真正为临床场景打磨过的语音识别方案:它不依赖网络、不上传隐私音频、不把“阿司匹林肠溶片”听成“阿姨不灵长融片”,更关键的是——它让医生不用再花半小时手动校对转录稿。

本文不是模型参数对比报告,而是一份来自真实诊室、药房、住院部的实测手记。我们用276段临床语音样本(含方言口音、语速快慢、背景嘈杂等真实干扰),系统性测试了Fun-ASR在医疗术语识别上的表现,并重点验证了热词增强、ITN规整、VAD切分等核心功能的实际价值。

1. 实测环境与样本设计:还原真实医院声音现场

1.1 部署方式与硬件配置

本次测试全程采用纯本地化部署,未连接任何外部网络或云服务:

  • 服务器:Dell R740,双路Xeon Silver 4310,NVIDIA A10(24GB显存)
  • 操作系统:Ubuntu 22.04 LTS
  • Fun-ASR版本Fun-ASR-Nano-2512(v1.0.0,2025-12-20发布)
  • 启动命令
    bash start_app.sh # 自动加载CUDA设备,模型路径指向本地/models/funasr-nano-2512
  • 访问方式:科室内部终端通过http://192.168.10.45:7860直接访问WebUI

所有音频处理、模型推理、结果生成均在本地完成,原始音频文件从未离开该物理服务器。

1.2 语音样本构成:覆盖高频临床真实场景

我们采集并标注了276段真实临床语音,全部脱敏处理(已去除患者姓名、身份证号、具体就诊时间等PII信息),按场景分类如下:

场景类别样本数量典型内容特征干扰因素
门诊问诊录音98段医生问诊+患者回答,含方言(粤语/川普混杂)、语速快、夹杂咳嗽声背景人声、空调噪音、听诊器摩擦声
病历口述记录62段医生单人口述入院记录、手术记录、出院小结专业术语密集、“左心室射血分数”“ERCP术后”等长词频出
药房发药对话41段药师与患者确认用药,含药品名、剂量、频次、禁忌“阿卡波糖片”“沙格列汀”等易混淆药名、“每日一次”vs“每日两次”
护士交接班37段多人快速交接,语句短促、省略主语、使用缩写(如“CVP正常”“BNP↑”)交叠语音、突发呼叫、推车轮声
影像科报告口述38段放射科医生描述CT/MRI所见,含解剖部位、病变形态、尺寸单位“肝S8段类圆形稍低密度影,直径约1.8cm”“L4/5椎间盘向后突出约3.2mm”

所有样本采样率统一为16kHz,格式为WAV,时长15–90秒不等。每段音频均配有由两名主治医师独立校对的黄金标准文本(ground truth),作为准确率计算依据。

1.3 评估指标定义:不止看“字准”,更看“意准”

我们未采用传统ASR通用的WER(词错误率)单一指标,而是从临床可用性出发,定义三级评估维度:

  • 基础层(字面准确):识别文本与黄金标准逐字比对,计算字符级准确率(CER)
  • 术语层(医学精准):聚焦127个高频医疗实体(药品名、检查项目、解剖部位、疾病名称、检验指标),统计实体识别F1值
  • 可用层(即用即准):人工判断该识别结果是否可直接用于电子病历录入(无需修改即可粘贴),统计“零编辑可用率”

为什么这样设计?
一段识别结果可能是“CER=92%”,但若把“胰岛素泵”错识为“胰导素泵”,医生绝不会直接采纳;而另一段“CER=88%”却把所有关键术语全对,仅错两个虚词,反而能立刻使用。临床场景要的不是“差不多”,而是“关键处不能错”。

2. 热词增强实战:让模型“记住”医生最常说的那些词

2.1 热词列表构建:从病历库中自动挖掘高频术语

Fun-ASR的热词功能不是简单地加几个关键词,而是支持结构化注入。我们在测试前,基于该院近半年电子病历文本(脱敏后),用TF-IDF+规则过滤提取出首批热词表(共183个),分为三类:

  • 药品类(62个):阿卡波糖片、达格列净片、曲妥珠单抗注射液、伏立康唑片……
  • 检查类(51个):冠状动脉CTA、头颅MRI平扫+增强、胃镜活检、肺功能检查(FEV1/FVC)……
  • 诊断类(70个):急性非ST段抬高型心肌梗死、2型糖尿病伴周围神经病变、慢性阻塞性肺疾病GOLD 3级……

热词文件格式为纯文本,每行一个术语,无标点、无空格:

阿卡波糖片 达格列净片 冠状动脉CTA 头颅MRI平扫+增强 急性非ST段抬高型心肌梗死

2.2 热词启用前后对比:术语识别F1值跃升37.2%

我们选取全部276段样本,在完全相同硬件与参数下,分别运行两次识别:一次关闭热词,一次启用上述热词表。结果如下:

评估维度关闭热词启用热词提升幅度
整体CER(字符错误率)8.6%6.1%↓2.5个百分点
医疗术语F1值72.4%92.1%↑19.7个百分点
零编辑可用率41.3%78.5%37.2个百分点

这个37.2%的跃升,意味着每10段语音中,有近4段从“必须逐字核对”变成了“听一遍就敢直接粘贴进病历系统”。

更值得关注的是错误类型变化:

  • 关闭热词时,药名错误占比达63%(如“沙格列汀”→“杀格列汀”、“利拉鲁肽”→“力拉鲁肽”)
  • 启用热词后,药名错误降至7%,主要残余错误集中在发音极相似的“西格列汀”vs“沙格列汀”——这已属人类听辨极限,非模型能力问题。

2.3 热词使用技巧:三招避开常见坑

在实测中,我们发现不少用户因热词配置不当导致效果打折。以下是经验证的实用建议:

  • ** 推荐:用全称+常用简称组合注入**
    例如同时加入:

    冠状动脉造影 CAG

    模型能同时识别口语中的“做CAG”和病历里的“冠状动脉造影”。

  • ❌ 避免:堆砌同义词或模糊表述
    不要写:

    心脏彩超 心脏B超 心脏超声

    Fun-ASR会因权重分散反而降低识别稳定性。保留最规范术语“超声心动图”即可,其他表达靠模型泛化能力覆盖。

  • ** 注意:热词不解决发音问题,只强化已知读音**
    若医生习惯把“他汀类”读成“他丁类”,热词填“他汀类”无效。此时应同步在热词中加入“他丁类”作为变体,或引导医生规范发音。

3. ITN规整与VAD切分:让识别结果“拿来就能用”

3.1 ITN(逆文本规整):把口语自动变成病历体

临床语音充满口语化表达:“二零二五年三月十二号”“一百二十毫克”“百分之七十五”。若不做处理,这些会原样输出,医生还得手动改成“2025年3月12日”“120mg”“75%”。

Fun-ASR内置ITN模块,默认开启,实测效果如下:

口语输入ITN规整后是否符合病历规范
“患者今年六十八岁”“患者今年68岁”数字标准化
“血压一百四十比九十”“血压140/90mmHg”单位补全+符号规范
“做了个胃镜,发现一个息肉,大概零点八厘米”“做了胃镜,发现1枚息肉,大小约0.8cm”量词转换+单位缩写+小数点格式
“血糖是七点二”“血糖是7.2mmol/L”单位智能补全(基于上下文)

我们统计了ITN对“零编辑可用率”的贡献:在启用热词基础上,开启ITN使该指标再提升11.3个百分点(78.5% → 89.8%)。尤其在病历口述类样本中,ITN让“可直接粘贴率”从63%飙升至94%。

小技巧:ITN对数字、日期、单位效果稳定,但对复杂医学缩写(如“BNP”“CK-MB”)不自动展开。如需强制展开,可在热词中添加映射:

BNP→B型钠尿肽 CK-MB→肌酸激酶同工酶MB

3.2 VAD(语音活动检测):在嘈杂环境中“听清一句话”

医院环境从不安静。门诊室有叫号声、走廊有推床声、药房有扫码枪“嘀”声。传统ASR常把静音段也送入识别,导致输出大量“呃”“啊”“嗯”及乱码。

Fun-ASR集成WebRTC-VAD,实测在信噪比低至10dB(模拟隔壁诊室传来的说话声)环境下,仍能精准切分语音段。我们对比了VAD开启/关闭下的识别表现:

指标关闭VAD开启VAD改善说明
单次识别耗时8.2s(含3.1s静音)5.4s减少无效计算,提速34%
识别文本纯净度含2.3个填充词/句含0.4个填充词/句“嗯”“那个”等干扰词减少83%
语句完整性41%出现断句(如“患者主诉/右上腹隐痛”)92%完整输出整句VAD有效避免因短暂停顿导致的误切分

VAD设置中,“最大单段时长”参数尤为关键。我们将默认30秒调整为15秒,显著改善了医生快速问答场景下的断句质量——毕竟没人会一口气说30秒不换气。

4. 批量处理与历史管理:让百条录音一小时搞定

4.1 批量识别:门诊日结不再熬夜

医院信息科每天需将当日门诊录音批量转为结构化文本,供质控抽查与医保复核。过去用传统工具,100段录音需人工操作+等待,耗时4小时以上。

Fun-ASR的批量处理模块彻底改变了这一流程:

  • 上传:支持拖拽100个WAV文件(总大小≤2GB),自动排队
  • 处理:GPU模式下单文件平均耗时6.8秒(含VAD+ASR+ITN全流程)
  • 导出:一键生成CSV,字段包含:文件名、开始时间、结束时间、原始文本、规整文本、语言、热词命中数

我们实测处理100段门诊录音(总时长约3小时42分钟),全程耗时52分钟,CPU/GPU占用平稳,无崩溃、无丢帧。

导出的CSV可直接导入医院质控系统,字段对齐EMR标准模板。更关键的是,所有处理均在本地完成,录音文件从未离开内网。

4.2 历史数据库:不只是记录,更是知识沉淀

Fun-ASR将每次识别结果存入SQLite数据库(webui/data/history.db),结构简洁但覆盖临床所需全部元数据:

CREATE TABLE recognition_history ( id INTEGER PRIMARY KEY, timestamp DATETIME, filename TEXT, filepath TEXT, language TEXT, raw_text TEXT, normalized_text TEXT, hotwords TEXT, -- 当前使用的热词(逗号分隔) vad_segments TEXT -- VAD检测到的语音段起止时间(JSON数组) );

这个设计带来两个意外价值:

  • 可追溯性:质控人员输入某段录音ID,可立即查看当时使用的热词列表、ITN开关状态、VAD参数,复现识别过程;
  • 热词优化闭环:导出历史表,用SQL统计哪些热词从未被命中(SELECT hotwords FROM history WHERE normalized_text NOT LIKE '%阿卡波糖%'),动态剔除无效热词,让列表越用越精。

我们建议医院信息科每月执行一次数据库清理脚本,自动归档30天前记录至压缩包,既保障空间,又留存审计线索。

5. 实战问题与解决方案:来自诊室的第一手反馈

在两周试运行中,一线医生和信息科同事反馈了若干高频问题,Fun-ASR WebUI的设计恰好提供了对应解法:

5.1 问题:医生方言重,“支气管炎”说成“资气管严”,热词不管用

解法:启用“多发音热词”功能
在热词文件中,为同一术语添加常见方言变体:

支气管炎 资气管严 几气管炎

Fun-ASR会将三者视为同一实体的发音变体,识别时统一映射为标准术语。

5.2 问题:护士交接班语速太快,模型跟不上

解法:调整VAD灵敏度 + 降低批处理大小

  • 在系统设置中将VAD模式从“2(适中)”调至“3(高灵敏度)”,确保捕捉短促语音;
  • 批量处理时将“批大小”从默认10改为5,减轻GPU瞬时压力,避免因缓存不足导致丢帧。

5.3 问题:识别结果里“mmHg”“cm”等单位有时大写有时小写,病历格式不统一

解法:自定义ITN后处理规则
Fun-ASR支持在config.yaml中扩展ITN规则:

itn_rules: - pattern: "毫米汞柱" replacement: "mmHg" - pattern: "厘米" replacement: "cm" - pattern: "毫克" replacement: "mg"

重启服务后,所有单位输出严格统一。

5.4 问题:新入职医生不熟悉系统,总点错按钮

解法:启用WebUI快捷键 + 制作科室版操作卡片**

  • 全局快捷键已预设:Ctrl+Enter直接开始识别,Esc取消,F5刷新;
  • 我们为门诊、药房、影像科分别制作了A6尺寸操作卡片,印有三步流程图与截图,贴在每台工作站旁。

6. 总结:不是替代医生,而是让医生回归诊疗本身

这次医院场景实测,让我们看清了一个事实:语音识别技术的价值,从来不在“识别率数字有多高”,而在于它能否让专业人士把时间花在真正需要智慧的地方

Fun-ASR没有追求99%的通用CER,但它用热词精准锁定了医生最怕认错的那1%——“阿司匹林”和“阿奇霉素”,“脑梗死”和“脑梗塞”。它不承诺“完美流式”,但用VAD+ITN组合,让门诊问诊的语音转写延迟压到500ms内,医生说完话,屏幕已同步显示,体验如呼吸般自然。

更重要的是,它把一套原本需要AI工程师调试数周的ASR系统,压缩成一个bash start_app.sh就能跑起来的本地服务。信息科人员无需懂PyTorch,医生无需学命令行,所有人面对的只是一个干净的网页界面。

这或许就是医疗AI落地最朴素的模样:不炫技,不造概念,不碰隐私红线,只是默默站在医生身后,把重复劳动接过来,把宝贵时间还回去。

当一位老主任在试用后说:“这下我终于能边看病人边记病历了”,我们就知道,技术已经完成了它最本分的使命。

--- > **获取更多AI镜像** > > 想探索更多AI镜像和应用场景?访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 3:01:50

SenseVoice Small模型加载优化:首次推理冷启动时间压缩至1.2秒

SenseVoice Small模型加载优化:首次推理冷启动时间压缩至1.2秒 1. 为什么是SenseVoice Small? 语音识别技术早已不是实验室里的稀有物件,而是每天在会议记录、课程听写、短视频字幕、客服录音分析中默默运转的“数字耳朵”。但真正能跑在普…

作者头像 李华
网站建设 2026/6/10 7:23:27

Z-Image-ComfyUI部署后无响应?网络配置排查步骤

Z-Image-ComfyUI部署后无响应?网络配置排查步骤 1. 问题定位:为什么ComfyUI页面打不开? 刚完成Z-Image-ComfyUI镜像部署,点击“ComfyUI网页”按钮却始终显示空白页、连接超时,或浏览器提示“无法访问此网站”&#x…

作者头像 李华
网站建设 2026/6/10 9:57:32

GHelper完全掌控指南:解锁华硕笔记本隐藏性能的轻量级工具

GHelper完全掌控指南:解锁华硕笔记本隐藏性能的轻量级工具 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目…

作者头像 李华
网站建设 2026/6/10 10:04:35

如何做压力测试?Super Resolution并发请求性能评估

如何做压力测试?Super Resolution并发请求性能评估 1. 为什么超分服务也需要压力测试? 你可能觉得,不就是把一张小图放大3倍吗?点一下上传、等几秒、看结果——这有什么好测的? 但现实是:当你的AI画质增…

作者头像 李华
网站建设 2026/6/10 9:56:04

DeepSeek-R1-Distill-Qwen-1.5B快速验证:Python脚本测试部署完整性

DeepSeek-R1-Distill-Qwen-1.5B快速验证:Python脚本测试部署完整性 你刚完成DeepSeek-R1-Distill-Qwen-1.5B的本地部署,但不确定服务是否真正跑起来了?别急着写复杂提示词或做性能压测——先用最直接的方式确认:模型服务能不能正…

作者头像 李华
网站建设 2026/6/10 1:11:06

GLM-4V-9B多模态教程:如何构造复合指令实现‘先描述再总结最后建议’

GLM-4V-9B多模态教程:如何构造复合指令实现‘先描述再总结最后建议’ 1. 为什么需要“先描述→再总结→最后建议”这种复合指令 你有没有试过让多模态模型看一张产品图,结果它只说了句“这是一张手机照片”,就停住了?或者你让它…

作者头像 李华