你确定程序的问题出在这块吗?怎么我看不像呢。出错信息说函数名后面不能跟索引号{}或结构体索引“”,难道是mfcc的问题?这里面也就这一个函数了。返回的出错信息应该能定位到行吧,建议你把完整的出错信息或完整的程序贴出来。
语音识别原理
语音识别系统的本质就是一种模式识别系统,它也包括特征提取、模式匹配、参考模式库等基本单元。由于语音信号是一种典型的非平稳信号,加之呼吸气流、外部噪音、电流干扰等使得语音信号不能直接用于提取特征,而要进行前期的预处理。预处理过程包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。经过预处理的语音数据就可以进行特征参数提取。在训练阶段,将特征参数进行一定的处理之后,为每个词条得到一个模型,保存为模板库。在识别阶段,语音信号经过相同的通道得到语音参数,生成测试模板,与参考模板进行匹配,将匹配分数最高的参考模板作为识别结果。后续的处理过程还可能包括更高层次的词法、句法和文法处理等,从而最终将输入的语音信号转变成文本或命令。
DTW算法原理
DTW是把时间规整和距离测度计算结合起来的一种非线性规整技术,它寻找一个规整函数im=Ф(in) ,将测试矢量的时间轴n非线性地映射到参考模板的时间轴m上,并使该函数满足:
D就是处于最优时间规整情况下两矢量的距离。由于DTW不断地计算两矢量的距离以寻找最优的匹配路径,所以得到的是两矢量匹配时累积距离最小所对应的规整函数,这就保证了它们之间存在的最大声学相似性。
DTW算法的实质就是运用动态规划的思想,利用局部最佳化的处理来自动寻找一条路径,沿着这条路径,两个特征矢量之间的累积失真量最小,从而避免由于时长不同而可能引入的误差。
OCR的处理流程如下:
首先将标的物的影像输人,然后经过影像前处理、文字特征抽取、比对识别等过程,最后经人工校正将认错的文字更正,将结果输出。详细如下:
影像输入
要想进行OCR处理,必须先通过光学仪器,如影像扫描仪、传真机或任何摄影器械,将影像转人计算机。随着科技的进步,扫描仪等输人装置已制作得愈来愈精致,轻薄短小,品质也高,对OCR有相当大的帮助。扫描仪分辨率的提高使影像更清晰,扫描速度的加快提高了OCR处理的效率
影像前处理
影像前处理是OCR系统中需解决问题最多的一个模块。从得到一个不是黑就是白的二值化影像或灰阶、彩色的影像,到分离出一个个的文字影像的过程,都属于影像前处理。它包含了影像正规化、去除噪声、影像矫正等的影像处理,以及图文分析、文字行与字分离的文件前处理。影像处理的原理及技术都已成熟,在网站上有不少可用的链接库;在文件前处理方面,则凭各家本领了;影像需先将、表格及文字区域分离出来,甚至可将文章的编排方向、文章的提纲及内容主体区分开,而文字的大小及文字的字体也可如原始文件一样地判断出来。值得一提的是如何将独立文字从文字行抽取出来。中文字特别的地方在于它有部首的观念。因此,不只是上下的合成,左右合成的字也特别多,且有可能是两部分(如“利”、“明”等),也有三部分的(如“捌”、“晰”等)合成。当这些字与英文或数字同时存在且紧靠在一起时,判断如何连接或切出,是相当困难的。对排版整齐的印刷文件都无法百分之百解决,更何况是每个人写字习性都不同的手写文件。也因此,手写的OCR产品走向是特殊且有限制的。
文字特征抽取
单以识别率而言,特征抽取可说是OCR的核心,用什么特征,怎么抽取,直接影响识别的好坏,所以在OCR研究初期,特征抽取的研究报告特别多。而“特征”可说是识别的筹码,可简易的区分两类。一类为统计的特征。例如文字区域内的黑/白点数比,当文字区分成好几个区域时,这一个个区域黑/白点数比之联合,就成了空间的一个数值向量。在对比时,基本的数学理论就足以应付了。而另一类特征为结构的特征。例如文字影像细线化后,取得字的笔画端点、交叉点之数量及位置,或以笔划段为特征,配合特殊的比对方法进行比对,市面上的线上手写输人软件的识别方法多以此种结构的方法为主。
比对数据库
当输人文字算完特征后,不管是用统计或结构的特征,都需有一比对数据库或特征数据库来进行比对,数据库的内容应包含所有欲识别的字集文字以及根据与输人文字一样的特征抽取方法所得的特征群组。
比对识别
比对识别是指根据不同的特征特性,选用不同的数学距离函数进行比对.较有名的比对方法有欧式空间的比对方法、松弛比对法(Relaxation)、动态程序比对法(Dynamic Programming, DP)以及类神经网络的数据库建立及比对、HMM(Hidden Markov Model)等著名的方法。为了使识别的结果更稳定,提出了专家系统(Experts System),利用各种转征比对方袂的相异互补性,使识别结果的可靠性提高。
字词后处理
由于OCR的识别率并无法达到百分之百,为了加强比对的正确性及信心值,一些除错或甚至帮忙更正的功能,便成为OCR系统中必要的一个模块。字词后处理就是一例。它在比对后的识别文字与其可能的相似候选字群中,根据前后的识别文字找出最合乎“词”的词,作为更正的功能。例如识别出“找门”,在词库中找不到这个词,而“我”是“找”的相似候选字,因此很自然地将“我”取代“找”,而成“我们”。
字词数据库
它是为字词后处理所建立的词库。
人工校正
这是OCR最后的关卡。在此之前,使用者可能只是拿个鼠标,跟着软件设计的节奏 *** 作或仅是观看,而在此则需要使用者去更正甚至找寻可能是OCR出错的地方。一个好的OCR软件,除了有一个稳定的影像处理及识别核心以降低错误率外,人工校正的 *** 作流程及其功能也影响OCR的处理效率。因此,文字影像与识别文字的对照及其屏幕信息摆放的位置,还有每一识别文字的候选字功能、拒认字的功能及继字词后处理而特意标示出可能有问题的字词,都是为了让使用者尽量少地使用键盘。当然,不是说系统没显示出的文字就一定正确,可根据具体要求决定是否重新校正一次。
结果输出
其实输出是件简单的事,但需看使用者用OCR到底为了什么。有人只要求文本文件用于部分文字的再使用,所以只要一般的文字文件,有人要求输人文件的原文原封不动地重现出来;有人注重表格内的文字,要求跟Excel等软件结合。无论怎么变化,都只是输出档案格式的变化而已。
以上就是关于Functions cannot be indexed using {} or . indexing.全部的内容,包括:Functions cannot be indexed using {} or . indexing.、matlab中的特定人语音识别算法DTW算法的应用例程、用matlab对图片进行字符识别,只要能识别字母就行…十万火急!!请各位大侠们多多帮忙…等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)