语音识别在医疗领域要跨过的那些坎儿

  前言:在开始进行语音识别研究之前,首先要建立一个语音数据库。目前在医学领域并没有专门的语音识别词库和模型。

  语音识别即通过麦克风捕捉用户发出的声音,将声波信号转换成机器可以处理的“发音特征”,再从发音和语言的“模型空间”中快速搜索最匹配的句子,即识别结果。语音识别过程就是一个模型匹配的过程,模型训练的好坏直接关系到系统识别的结果。

  为了得到一个好的模型,往往需要有大量的原始语音数据来进行训练,特别是对于非特定人的语音识别系统来说,这一点显得更为重要。因此,在开始进行语音识别研究之前,首先要建立一个语音数据库。数据库包括不同性别、年龄、口音的说话人的声音,并且必须具有代表性,能均衡地反映实际使用情况。模型训练就是指按照一定的准则,从大量已知模式中获取表征该模式本质特征的模型参数。

  目前在医学领域并没有专门的语音识别词库和模型。由于医学术语、药物名称、疾病名称等用词的专业性很强,识别率会大幅下降。我带领团队花费了7个月的时间,分别于iOS平台和Android平台,采用科大讯飞和云之声两个主流第三方SDK,对药品词库的36176个药品名称和疾病词库的23501个疾病名进行了测试,训练出错率较高的词汇,初步搭建了医学语音识别领域的第三方素材库,并决定免费给任何有志于开发移动医疗APP的创业团队和个人。

  下面以Android为例,具体介绍我们构建体系的流程、标准和测试方法,以帮助各位移动医疗开发人员快速上手:

  测试平台:2台android4.0系统手机(小米2、中兴U930HD)、珍立拍系统、科大讯飞SDK

  测试方法:对所有药品和疾病名称进行反复测试,使用纠正训练法,来克服语音识别体系中HMM的训练效果。小组A测试药品,小组B测试疾病,普通线. 总结出识别易错词汇,两组交叉测试后,随后交给程序人员,按科大讯飞SDK模型训练,输入相应代码,完善建库。

  1. 读错:由于医学词汇中有很多较为生僻的汉字,读错很难避免,很多医生即使会写这个词,但是发音也可能会错。

  由统计结果可以看出,疾病名的识别率高于药品名。笔者分析,造成此结果的原因在于,疾病名的广普率要高于药品名,所以各个语音识别公司比较重视,而且疾病生僻汉字较少,而药品种类要远多于疾病种类,其中生僻汉字也较多。二次测试的正确率较一次测试大约提升了一个百分点左右,还是可以适当减少错误数据库中的词汇量。

  音节短的词出错率较高,如:单音节词,痣(识别结果“志”),双音节词,义眼(识别结果“一眼”),长音节词出错率低,原因可能是音节越短的词,其同音节的普通词较其更常见,而且如果其尾音特殊的话,影响较大。

  虽然有用户词表,但是目前科大讯飞用户词表仅限数量2000,经沟通后他们正在扩大词汇表数量中。但如果数据过大,将会导致数据包过重的问题,而移动端由于存储和运算能力受限,所以无法满足数量庞大的整个医学词库,因此我们只能先做常用库。

  语音识别虽然在实用性上已得到很大提高,但是由于目前语音识别的单一性(只能单纯的识别中文或者英文),以及使用、语音差异化等因素的影响,容易造成识别错误。就这些因素而言,我们为此做了大量的基础工作,用于搭建第三方数据库,在尽可能排除其它干扰因素的情况下,检测出识别错误的词汇,也为下一步构建专业领域的识别模型搭建出了样本数据库(针对大量样本数据库,精简出识别错误的小样本数据库,减少模型训练词库)。

  对于有大量专业词汇的识别系统来说,使用模型训练可以有效提升识别率,目前模型训练比较常用的有四种方法:最大似然估计、纠正训练法、最小分类错误、最大互信息方法。模型训练需要专业的技术,并与语音识别公司进行合作,由企业提库信息和语音集,专业人员采用模型训练对需要识别的词库进行训练,最终给出个性化定制的识别模型,以提升识别率。

  语音识别技术在移动医疗领域中的应用会越来越普遍,但还有大量的基础工作需要我们大家齐心协力去完成。希望业内的精英之士能够对此多交流,多合作,抛开一些利益的纠葛,共同为行业的发展贡献出自己的力量。

手机正文底部

您可以还会对下面的文章感兴趣:

  • 专属DNA手环:定制你的独一无二
  • 在家呆着别动,这两款APP把协和医院专家带到你身边
  • 移动健康时代即将到来
  • 缺血性卒中影像检查做什么?
  • 中南大学将合作开发医疗大数据和移动医疗应用
  • 最新评论