一 语音识别基本概念( 三 )


-语言模型( model)
语言模型用于限制词的搜索范围 。它定义了哪个词可以跟在前一个已经被识别出来的词的后面(因为匹配是一个序列的过程,只有识别出前一个词才能识别后一个词),并且通过剔除不可能的词来帮助我们极大地限制匹配的过程 。最广泛使用的语言模型就是n-gram语言模型(统计词序列)和有限状态( state)语言模型(通过有限状态自动机,有时还带有权重,来定义语音序列) 。要想获得好的识别精度,你的语言模型必须限制搜索空间上做的非常成功 。这就意味着它应该非常善于预测下一个词 。一个语言模型常常会限制被考虑包含的单词的词汇量 。这是命名识别(name )中的一个问题 。为了处理这种情况,一个语言模型可以包含更小的块(),如子词甚至音素 。但要注意的是,在这种情况下对搜索空间的限制要差很多,因此识别的精度也会比基于词的语言模型要低 。
在一个引擎中,这三个部分被组合到一起用于识别语音 。如果你想用你的引擎去识别其他的语言,你需要把这些部分放在适当的位置 。对很多语言来说,有声学模型、发音字典甚至大词汇量语言模型可供下载 。
其他常用概念
-
一个是用于表示所有识别可能的有向图( graph) 。通常,获得最佳匹配是不实际的(动态规划只能获得局部最优,无法保证全局最优) 。在这种情况下,是一种好的用于表示识别结果的中间形式 。
-N-best lists
和类似,但是没有稠密(只保留前N条概率最大的路径)
-词混淆网络(Word)

一  语音识别基本概念

文章插图
和一样,只是格式更为规整
-语音数据库
-文本数据库
用于语言模型训练 。需要将格式转化成口语文本形式( text form),即,将标签和头移除,将数字转化成口语的形式,将缩写转化为完整形式 。
评价指标
当语音识别开发完成后,最复杂的问题是使搜索精确,并使搜索速度达到最快 。因为模型不完美,另一个挑战是使模型匹配语音 。
通常系统会在测试集上进行测试,评价指标如下:
-词错误率(Word error rate)
假设我们有一个原始的文本以及长度为N个词的识别文本 。I是插入词( words)的数量,D是删除词( words),S表示替换词( words) 。则词错误率可以通过下式计算:
WER=(I+D+S)/NW E R = ( I + D + S ) / N
词错误率通常用百分数来表示 。
- 准确率()
和词错误率类似,但是不考虑插入错误的情况:
=(N?D?S)/NA c c u r a c y = ( N ? D ? S ) / N
在绝大多数情况下,准确率都是一种比词错误率更差的衡量指标,因为插入错误对最终的结果也非常重要 。然而,对于一些任务,准确率是一个合理的评价指标 。
- 速度
包括录音的时间和解码的时间
- ROC曲线
当我们谈论检测任务时,会有虚警(false )和命中/错过(hits/)的概念 。用ROC曲线可以描述它们 。ROC曲线试图找出最佳点,在这个点上虚警小而命中数100%匹配上(意思是所有被命中的都是应该被命中的,即为100%) 。关于ROC曲线可以参考 维基百科
【一语音识别基本概念】还有一些其他一些不常被考虑但是对于很多应用很有用的特性 。你的第一个任务应该是创建该评价方式并且将其应用到系统开发中 。你的第二个人无是收集文本数据库,然后测试你的应用的性能怎么样 。