APP下载

通用文字识别与语音播报系统的设计与实现*

2022-10-31杨玉婷史宗岳李梦瑶

山西电子技术 2022年5期
关键词:文档投影预处理

杨玉婷,吕 菠,李 顺,史宗岳,李梦瑶

(苏州市职业大学计算机工程学院,江苏 苏州 215000)

0 引言

随着互联网的高速发展,人们的时间碎片化趋势越来越明显。在繁忙的工作中,对于一些简单、需要快速处理的文件,人们往往希望能在做其他事情的同时也能顺便处理,而文字识别与语音播报系统(Character Recognition and Language Broadcasting System, CR&LB)可以为人们的工作和学习提供更加便捷的方式。通过CR&LB系统的文字识别模块可以快速识别文件中的内容,而语音播报系统则可以快速将识别的内容播报出来,使用户在不需要阅读或者不方便阅读的情况下也可以快速了解文件内容,提高文件处理效率。

实际上,语音播报系统早已存在于我们的日常生活中。例如,人们经常通过“喜马拉雅”、“蜻蜓FM”等在线音频软件收听有声书[1-2],通过“百度地图”、“高德地图”等语音导航软件辨别方向、更加快捷的到达目的地[3],通过“微信”、“QQ”等即时通讯工具的语音功能进行语音通话等。但是,这些语音播报系统只能针对特定内容或指定内容的语音播报,无法修改,也无法指定个性化的播报内容,而通用的CR&LB系统除了可以完成常见文字的语音播报功能之外,还可以播报用户指定的个性化文字或图片文字的内容,同时也可用于视力具有残障疾病的弱势群体用户[4],使他们也可以通过CR&LB系统轻松实现个性化阅读及对外界事物的认识。

1 文字识别与语音播报系统(CR&LB)

CR&LB系统能够完成文档图像中汉字、数字和英文等不同类型文字的自动识别及语音播报。整个系统由图像的预处理、文档图像的分割、文字识别和文字阅读等4个模块组成,具体结构如图1所示。其中,图像预处理模块完成输入图像的预处理工作,实现图像的灰度和二值化、图像的倾斜校正等;文档图像分割模块实现了对文档整体结构的分析与处理,完成了文档中单个文本行和单个文字的分割;文字识别模块完成了对单个文字的识别及数字化转换;文字阅读模块能够根据文字识别模块得到的内容进行语音播报。

图1 系统结构

1.1 图像预处理模块

由于图像采集设备的质量参差不齐,文字在采集过程中容易造成形态畸变、断笔、粘连和污点等问题。因此,在进行文档分割和文字识别之前,需要使用图像预处理模块对带有噪声的文档图像进行预处理。预处理的内容包括文档图像的灰度化、二值化,倾斜检测与校正等。对文档图像的处理效果如图2所示。经过图像的预处理,原始文档图像中的色彩和背景得到了较好的去除,文字本身的特征更加显著,从而降低了文档图像分割和识别的复杂度。

图2 文档图像的预处理

1.2 文档图像分割模块

计算机中的图像都是由像素构成的,若假设图像的背景像素是白点,文字、图形、图像等所对应的像素是黑点,那么一个像素行(列)的黑点数的总和,就是这一像素行(列)的投影值,而所有像素行(列)的投影值就是整个图像的水平(垂直)投影[5]。因此,为了更好地保留字符中有利于分割的信息,减少其他噪声因素对分割过程产生的影响,首先判断文档图像的排列方向,然后采用投影算法对二值化图像重复执行水平或垂直投影分割,直到分割结果为单个文字块为止。文档图像分割算法的处理流程如图3所示。

图3 文字图像分割流程

由于文档图像的排版方向具有一定的规律性,当以错误的方向对原始图像进行投影分割时,得到的文字块一般较少,且大小不规则;而以正确的方向对原始图像进行投影分割时,得到的文字块一般都较多且大小均匀。因此,为了能够快速判断文字的排版方向,直接使用水平投影和垂直投影两种分割算法对文档图像进行分割,并得到对应的字块数量n1和n2。若n1>n2,说明文档是按照水平方向排版的,则首先进行水平投影,然后再进行垂直投影;若n1

图4 文档图像的文本行分割和字符分割

1.3 文字识别模块

为了提高开发效率,充分利用已有资源,基于Tesseract实现了CR&LB系统的文字识别模块。Tesseract是惠普布里斯托实验室在1985到1995年间开发的一个开源的OCR引擎,曾经在1995 UNLV精确度测试中名列前茅。2005年,惠普将其对外开源,2006由Google对Tesseract进行改进、消除Bug、优化工作。2006年时,Tesseract就被认为是最精准的开源光学字符识别引擎之一。

Tesseract与Leptonica图片处理库结合,可以读取各种格式的图像并将它们转化成超过60种语言的文本。同时,它也支持使用用户自定义的文字库来强化训练,使图像转换为文本的能力不断增强。

1.4 文字阅读模块

文字阅读模块实现了将一段文字转换为语音的功能。为了让声音听起来更加自然,使机器能够像人一样开口说话,需要合成不同音色、语速和语调的声音。因此,选择Kaldi来实现文字阅读模块。Kaldi是当前非常流行的开源语音识别工具(Toolkit),提供了基于有限状态变换器(finite-state transducers)的语音识别系统、详细的文件和脚本来辅助我们构建完整的文字阅读模块。Kaldi使用C++编写,其核心库支持所有语音上下文的建模、子空间的高斯混合模型(SGMM)和标准高斯混合模型的声学模型建模,以及线性变换和仿射变换等,具有便于理解和扩展的特点。基于Kaldi的文字阅读模块的实现流程如图5所示。

图5 文字阅读模块的实现流程

2 用户界面设计

用户界面是连接用户与软件的窗口,是软件与用户交互的主要方式。好的用户界面能够帮助用户快速了解软件功能并能较快理解、学会软件的使用。因此,在CR&LB系统的界面设计过程中,采用VisualC#窗体应用程序设计并实现了面向用户的界面。VisualC#提供了多种不同功能的插件以方便开发人员使用,在突出“所见即所得”、界面简洁、风格一致、显示直观形象等特点的同时,也与用户所使用的操作系统UI风格保持一致。同时,用户也可以根据自身需要对用户界面的风格进行修改,如图6所示。

图6 CR&LB系统的用户界面

3 实验

CR&LB系统具有良好的用户交互界面,能够实现随机文档图像的输入、识别和语音播报。首先,用户通过点击“导入图片”按钮加入指定的单一文档图像,也可以批量选择需要语音播报的多个文档图像,如图7(a)所示。其次,图像导入后,点击“读取”按钮,系统将自动调用文字识别模块对图像中的文字进行识别,并将识别结果显示在文本框中,以满足用户阅读的需求,如图7(b)所示;再次,点击“文字转语音”按钮,则系统会调用“文字阅读”模块读出图像中的文字内容。

整个系统界面简单,指向明确,用户非常容易上手使用。同时,通过测试也可以看出,系统对文档图像的处理、识别和语音播报的准确性较高、效果较好。

图7 CR&LB系统测试效果

4 小结

具有通用性的CR&LB系统可以满足用户更多个性化的需要,但是对系统的准确性、效率和可扩展性也提出了更高的要求。相信随着技术的不断进步,CR&LB可以在更多的领域发挥它的优势。

猜你喜欢

文档投影预处理
浅谈Matlab与Word文档的应用接口
求解奇异线性系统的右预处理MINRES 方法
有人一声不吭向你扔了个文档
解变分不等式的一种二次投影算法
基于最大相关熵的簇稀疏仿射投影算法
找投影
找投影
基于预处理MUSIC算法的分布式阵列DOA估计
基于RI码计算的Word复制文档鉴别
浅谈PLC在预处理生产线自动化改造中的应用