2. 之江实验室 类人感知研究中心, 杭州 311121;
3. 浙江理工大学 计算机科学与技术学院, 杭州 310018;
4. 浙江理工大学 机械工程学院, 杭州 310018
2. Humanoid Perception Research Center, Zhejiang Lab, Hangzhou 311121, China;
3. School of Computer Science and Technology, Zhejiang Sci-Tech University, Hangzhou 310018, China;
4. School of Mechanical Engineering, Zhejiang Sci-Tech University, Hangzhou 310018, China
随着人口的不断增长、人口老龄化问题日趋严重, 视障人群的数量也处于不断增长阶段. 据2019年统计, 我国中度视力障碍人群有4 592万, 重度视力障碍人群有467万, 失明人群有869万, 与1990年相比增加了64.35%[1]. 视障群体缺少重要的视觉感官, 只能通过触觉与听觉来获取信息, 很难像正常人那样获得信息时代带来的便利. 盲文信息无障碍化建设是为解决视障群体的生活和学习不便问题, 使其在任何环境下都可方便平等且无障碍地进行信息获取. 在此需求下, 出现了以计算机实现盲文数字化的方法, 实现文字与盲文之间的翻译作用. 现存的汉盲翻译方法多以软件形式实现, 在嵌入式环境下, 受限于处理器的算力, 难以达到实时的汉盲翻译效果.
对于数据密集型计算, 常用的加速方法是使用专用的硬件加速器(如GPU和FPGA), 通过对数据的并行处理来提高运算的效率. 如基于神经网络算法模型设计出的专用CNN硬件加速器, 因其具有优异的性能而被广泛应用于图像处理、语音识别等应用中[2], 也可用于自然语言处理领域. 硬件也可用于实现多模式匹配算法, 通过并行流水线结构设计和折叠窗口的BF计算来提高算法的执行速度和准确率[3], 可应用于文本搜索、网络安全等领域. 在盲文翻译领域, Zhang等人[4]提出过一种基于马尔可夫系统的在硬件上实现的盲文翻译器, 可实现英文与二级盲文的相互转换; 该方法利用FPGA的可重构性和并行性, 加快了翻译的速度, 但该方法只对英文进行翻译, 无法翻译其他语言. 这项成果为盲人朋友提供了更加便捷的英文盲文互译工具, 同时也为硬件实现盲文翻译提供了新的思路和方法.
片上系统(system-on-chip, SoC)是一种将用户所需功能进行集成、在单一芯片上实现复杂功能的特殊集成电路[5], 由可复用的IP核(intellectual property core)[6]组成, 具有广泛的应用领域. 为促进我国盲文信息无障碍建设, 提高嵌入式环境下汉盲翻译的速度, 本文在逆向最大匹配分词算法[7]的基础上设计了一种专用的汉盲翻译IP核, 并基于开源Cortex-M3软核[8]构建出汉盲翻译SoC, 通过数据的并行处理和减少程序运行时的取指、译码等控制逻辑, 提高汉盲翻译算法的执行效率. 为测试设计的合理性, 本文使用集成开发工具Vivado和FPGA实验平台构建出完整的汉盲翻译SoC, 并进行了测试实验和性能分析.
1 汉盲翻译的发展情况由于世界上的盲文体系均是基于布莱叶盲文构建的, 盲文在表现形式上具有一致性. 盲文以“方”作为最小的表意单位, 一方盲文包含6个点位, 通过调整每个点位的凹凸情况, 可形成
|
图 1 盲文示例 |
虽然盲文的表现形式相同, 但因为语言的差异, 各个国家在文字与盲文之间制定了不同的转换规则. 若是字母文字, 由于字母与盲文存在着映射关系, 盲文转换较为简单. 但对一些文字繁多、表意复杂的语言, 文字与盲文之间无法建立起唯一映射, 盲文转换困难. 汉字就属于此类情况, 仅常用汉字就有3 500个. 汉字与盲文之间的转换较为复杂, 常使用的是以汉字-拼音-盲文的方案实现盲文翻译[9]. 一般情况下, 2–3方盲文即可表示一个汉字, 其中声母、韵母各占一方盲文, 部分情况下还需增加一方表示声调. 但是, 汉字常出现多音、多调、同音不同字的情况, 这需要使用算法进行甄别.
汉语没有自然断点, 不同的断句常会有不同的语义和读音, 因此汉字分词是汉盲转换的重要环节. 现有的汉字分词算法按实现原理可分为: 基于词典的机械匹配方法[10]、基于概率统计模型方法和基于机器学习的语义理解方法. Wang等人[11, 12]提出一种基于盲文语料库的汉盲转换方法, 该方法建立起大规模的盲文语料库, 以机器学习来训练LSTM模型, 具备较高的分词准确率. 并使用bi-gram语言模型对汉字进行标调, 建立起汉字标调语料库. 该方法无需考虑汉盲转换中的流程和逻辑, 转换效果优于采用纯盲文语料库的方法, 缺点是标准库搜集困难、校验繁琐. Zhang等人[13]自建了通用盲文语料库, 结合HanLp词典和汉语-盲文词语料库(一种用于生成单元语言模型的盲文分词和连接词典), 利用n-gram语言模型设计实现了集成汉语、盲文分词和连接规则的汉盲互译系统, 汉盲转换准确率达95.01%. 目前, 汉盲翻译算法多使用软件实现, 以硬件方式实现汉盲转换的方向仍是一片空白. 为填补该空白, 提高在嵌入式环境下的汉盲翻译速度, 本文设计了专用的汉盲翻译SoC, 设计方法详见下文.
2 系统结构设计 2.1 SoC整体框架本文设计的SoC整体框架如图2所示, 该设计由Cortex-M3软核、串口通讯、汉盲翻译IP核、LCD驱动显示等部分组成. 其中Cortex-M3主要负责执行软件部分的功能, 同时负责调用外设运行、与外设进行数据传输、进行初始化配置等工作. 串口通信负责接收上位机传输的文本数据和控制指令, 并将翻译得到的数据传输给上位机或点阵显示模块. 汉盲翻译IP负责接收中文的Unicode编码、进行中文分词与汉盲转换, 实现汉盲翻译功能. 为方便实验人员观察, 本文通过LCD驱动模块将盲文数据在LCD屏幕上以点阵的形式显示出来.
|
图 2 汉盲翻译SoC结构框图 |
Cortex-M3是ARM公司旗下的一款32位开源处理器, 该处理器基于哈佛总线架构进行设计, 指令总线I-Code和地址总线D-Code公用一个地址空间[14]. 在处理器中已经制定了粗略的存储器映射, 如图3(b)所示, 相关的开发过程必须在指定的地址空间范围内进行. 如Code区的地址范围为0x00000000–0x1FFFFFFF, 其中仅使用了0x00000000–0x0000FFFF区间作为指令存储器ROM, 大小为64 KB. 此外, 本文使用0x20000000–0x2000FFFF范围作为数据存储器RAM. Cortex-M3预定义0x40000000–0x5FFFFFFF为片上外设地址, 将其划分为两个部分, 分别连接APB桥接器(0x40000000–0x4FFFFFFF)和AHB桥接器(0x50000000–0x5FFFFFFF)[15]. UART、SPI、Timer等部分没有太高的带宽需求, 将其挂载在APB总线上; 汉盲翻译属于一种数据密集计算方法, 为提高汉盲翻译模块的计算执行效率, 本文将汉盲翻译模块和LCD显示模块挂载在AHB总线上, 如图3(a)所示为外设的地址映射. 为平衡汉盲翻译的效率和SoC的功耗, 让不同的模块工作在不同的时钟频率下, 实现跨时钟域传输和运行. 其中, 处理器、ROM、RAM、AHB Mux和LCD模块的时钟域为50 MHz, Chinese braille模块运行在100 MHz时钟域下.
|
图 3 Cortex-M3地址映射 |
2.2 汉盲转换IP设计
汉盲翻译是一种将汉字转换为6点盲文的过程, 是实现盲文无障碍建设的重要环节. 汉盲翻译一般包含中文分词、汉盲转换、符盲转换、点序输出等步骤. 根据汉盲转换的实现步骤, 本文设计出一个汉盲翻译IP核, 其结构如图4所示. 整个模块由读写缓存、中文分词模块、单字转换模块、多字转换模块、比较模块、Flash读写模块、盲文拼接模块组成. 当处理器调用该模块时, 经AHB总线向写缓存写入文本数据与控制指令; 翻译完成后, 完成信号使能, 处理器由读缓存读取翻译得到的分词结果和盲文点序. 具体的实现原理和步骤见下文.
|
图 4 汉盲翻译IP结构图 |
2.2.1 中文分词模块设计
分词是自然语言处理中的重要环节, 直接决定了汉盲转换的准确性. 考虑到汉语信息重点常置于句末, 且单个词汇的长度决定了该词包含的信息量, 本文选取逆向最大匹配算法实现中文分词, 其实现流程如图5所示.
|
图 5 逆向最大匹配分词算法流程 |
对输入字符串进行初步分割后, 获得不定长的中文与非中文字符串; 其中中文文本需要进行逆向最大匹配分词处理, 记录待分词文本的长度
逆向最大匹配分词依赖于分词词库, 本文使用的是一种基于隐马尔可夫模型建立的分词词库, 为提高算法执行的效率, 本文将词库数据以Unicode格式进行存储, 根据词条的长度和编码顺序进行分类和排列. 表1所示为分词词库的词条统计, 考虑到盲人不方便摸读过长的词汇, 本文限定词库的最大词长为16 B. 由于分词词库中的词条数目庞大, 若使用顺序匹配的方法, 执行效率极低, 分词的实时性也无法满足需求. 由于词条是按汉字数量和编码顺序进行排列存储, 可以使用二分法进行查找.
| 表 1 分词词库词条统计 |
2.2.2 汉盲转换模块
经分词处理后, 即可得到不定长度的中文词组和其他符号, 继而进行盲文转换过程. 对于英文字母、数字、标点符号等字符, 由于对应的盲文转换规则较少, 可在转换系统中建立与之映射的盲文编码, 直接使用选择器进行盲文转换. 汉字在转换时需进行汉拼转换, 得到正确的拼音. 但因汉字数量庞大, 且存在一字多音、多调和多音字的情况, 无法建立起与拼音的唯一映射关系; 同时, 拼音转换盲文需要遵循标调规则、声调省写规则、汉字简写规则等规则, 在硬件上实现比较困难. 因此, 本文建立起一个汉字-盲文转换词库, 硬件上以查表法读取词条内容和输出盲文数据.
汉字有单音节和多音节之分, 导致汉字的编码和盲文长度没有直接关联. 为防止系统读取盲文数据时出现冗余或缺失, 在汉字Unicode码与盲文数据之间添加1 B空间, 写入盲文长度. 如图6所示是部分盲文对照库的数据结构, 虚线框中的数据是6点盲文的数量, 虚线框左侧是3字词汇的Unicode编码, 虚线框右侧是HEX格式的盲文点序. 在Unicode字符集中, \x4E00–\x9FA5范围内的编码属于中日韩统一表意文字, 共计20902个词条, 在本文作为盲文转换的单字使用. 异常发音词汇的盲文数据源于开源盲文翻译软件Liblouis中的现行盲文方案中的异常发音汉语词汇, 共计114099个词条.
汉盲转换模块分为单字转换和多字转换两个部分. 当进行单字转换时, 根据单字盲文表的初始地址和Unicode码数据计算出目标地址, 即可得到单字盲文. 当分词结果为多字时, 需根据分词长度确定目标盲文的地址范围, 通过与盲文表中的中文Unicode部分进行匹配对比, 若匹配成功, 输出盲文数据和盲文方数; 否则, 认定该分词结果没有特殊的拼音和音调, 将其以单字转换的形式, 逐字进行盲文转换.
|
图 6 盲文对照库的数据结构 |
2.2.3 Flash读写模块
在执行分词和汉盲转换时, 需要使用较大的分词词库和盲文查找表, 共计需要占据3.65 MB存储空间. 本文使用外置的Flash作为存储器, 型号为W25Q128, 存储大小为16 MB, 对外接口为SPI接口. 当比较模块接收到分词和多字盲文转换的文本数据时, 根据文本的长度确定地址范围, 以二分法确定中间地址, 并驱动Flash读写模块读取数据进行匹配. 若匹配成功, 输出成功信号和目标地址; 否则进行地址转换, 直到超过地址范围, 输出匹配失败信号. 图7所示为Flash读写模块的结构框图, 其中
经盲文转换后的盲文数据是16进制的无符号数, 不具备可读性. 为此, 本文设计单独的盲文拼接模块对盲文数据进行处理. 该模块有两个功能, 一是在分词结果对应的盲文之间添加一个空方, 表示在盲文信息中的断句, 确保盲文数据能显示准确的含义; 二是按顺序拼接由盲文转换模块输出的盲文数据, 最终得到正确的汉盲翻译结果.
|
图 7 Flash读写模块框图 |
3 仿真与实验结果 3.1 汉盲转换IP的仿真结果
前文详细介绍了汉盲翻译SoC的设计方案, 根据该方案, 本文在Xilinx公司提供的Vivado集成开发工具上搭建出SoC, 与Modelsim仿真工具配合进行综合仿真和时序验证. 仿真结果如下.
当微处理器调用汉盲翻译模块时, 通过AHB总线向翻译模块的寄存器中写入数据. 本文设置了3组寄存器, 分别为控制寄存器、写数据寄存器和读盲文寄存器. 其中控制寄存器除输入控制指令与中文长度外, 还负责输出翻译得到的盲文方数. 如图8所示是AHB总线工作的时序图. 当HSEL使能时, 选中汉盲翻译从机; 此时HREADY和HWRITE同时使能, 向HADDR指向的寄存器写入中文数据, 写入完成后向控制寄存器写入控制指令. 在此次仿真中, 共向写数据寄存器中写入了4个32位数据(即8个Unicode汉字编码), 写入的控制指令为0x00010008, 0–7位为中文字长, 第16位为汉盲翻译使能位. 翻译完成后, 当HWRITE为低电平时读出控制指令, 此时控制寄存器中的翻译使能位失能, 同时向8–15 bit写入翻译得到的盲文方数, 最终得到了15方盲文. 若需要获取盲文数据, HADDR指向读盲文寄存器, HWRITE为低电平时, 从该寄存器中获取盲文数据.
汉盲翻译从机的仿真效果如图9, 由上到下分别为分词模块、多字转换模块、单字转换模块和盲文拼接模块的仿真时序. 当
|
图 8 AHB总线数据读写 |
|
图 9 中文分词及汉盲翻译仿真 |
为进行Flash仿真, 本文使用了W25Q128的仿真模型作为Flash读写模块的从机. 由于在汉盲翻译过程中, 对Flash主要执行的是读操作, 故本文仅对读逻辑进行时序仿真, 如图10所示. 当启用Flash读写模块读功能时, 由外部输入地址
为验证本文设计的汉盲翻译SoC的合理性和可行性, 本文使用Xilinx公司型号为xc7a200tfbg484的FPGA, 在其中构建和运行SoC. 为获取汉盲翻译的结果, 除构建汉盲翻译IP外, 在其中搭载了串口和LCD驱动显示接口, 并进行了多次实验. 如图11所示是以汉字 “一种半定制的现场可编程逻辑门电路”的Unicode编码作为输入的翻译结果, 用LCD屏幕进行显示, 空方表示盲文分词的位置. 结果表明, 汉盲翻译结果无误.
为确定汉盲翻译的速度, 本文进行了相关测试. 当前主流的盲文显示装置一次可显示40或80方盲文[16], 以80方为例可显示50–100 B左右的汉字信息. 因此, 本文在50–100 B的长度中选取了5组不同规模的中文文本作为样本输入, 并进行多次测试, 得到平均翻译时间和翻译速度, 详见表2. 表中, 样本1–样本4是从小学三年级语文课文中随机摘取的文本数据, 分为两个数量规模进行测试. 根据表中数据, 发现不同样本之间的翻译速度略有差异. 经过分析, 这是由于每次翻译过程中根据标点符号截取的中文字符串长度不同导致的, 理论上连续的中文字符串越长、单次翻译所需时间也越长. 如对分段的8+8字文本和连续的16字文本, 前者的翻译速度一般高于后者. 本文设计的汉盲翻译IP核一次最多可翻译16字的文本数据, 为验证文本为16字时的汉盲翻译速度, 选取了包含2条16字的文本数据作为样本5进行测试, 翻译速度为5 079.37 B/s, 远低于普通样本的转换速率. 文献[17]中, 在时钟频率为168 MHz的STM32平台下运行了汉盲翻译软件程序, 并使用50字节的文本数据进行测试, 得到的翻译速度为217.39 B/s. 与其相比, 本文构建的汉盲翻译SoC的翻译速率仍有20倍以上的提升.
|
图 10 Flash读写仿真 |
|
图 11 汉盲翻译效果图 |
| 表 2 汉盲翻译速度统计 |
4 结束语
随着社会的不断进步, 视障群体的日常生活和学习方面越来越受到重视. 盲文数字化的提出和推进, 为信息时代下视障群体的无障碍信息获取提供了有利条件. 为推进盲文数字化发展, 扩大盲人群体获取盲文信息的场景, 本文设计出专用于汉盲翻译的SoC系统, 实现对中文Unicode数据的获取, 以逆向最大匹配分词进行中文分词, 依靠建立的盲文对照表进行汉盲转换, 最终快速且准确地得到盲文数据. 本文使用Xilinx公司提供的XC7A200T FPGA搭建SoC并成功运行, 经测试, 汉盲翻译的速度可达5 079.37 B/s, 可满足嵌入式环境下的需求. 该SoC使用Cortex-M3作为处理器, 具有较强的扩展性, 方便进行后续功能的添加.
致谢感谢胡庆玲、刘畅、陶文韬、阮刘霞等人在此研究工作中做出的贡献.
| [1] |
Xu TL, Wang BS, Liu H, et al. Prevalence and causes of vision loss in China from 1990 to 2019: Findings from the global burden of disease study 2019. The Lancet Public Health, 2020, 5(12): e682-e691. DOI:10.1016/S2468-2667(20)30254-1 |
| [2] |
Bouaafia S, Khemiri R, Messaoud S, et al. Deep CNN co-design for HEVC CU partition prediction on FPGA-SoC. Neural Processing Letters, 2022, 54(4): 3283-3301. DOI:10.1007/s11063-022-10765-1 |
| [3] |
骆潇, 郭健, 邓敏, 等. 基于FPGA的多模式匹配算法研究与实现. 计算机工程, 2012, 38(18): 231-233, 237. DOI:10.3969/j.issn.1000-3428.2012.18.062 |
| [4] |
Zhang X, Ortega-Sanchez C, Murray I. Text-to-braille translator in a chip. Proceedings of the 2006 International Conference on Electrical and Computer Engineering. Dhaka: IEEE, 2006. 530–533.
|
| [5] |
Chakravarthi VS. A practical approach to VLSI system on chip (SoC) design: A comprehensive guide. Cham: Springer, 2020.
|
| [6] |
Nath APD, Boddupalli S, Bhunia S, et al. Resilient system-on-chip designs with NoC fabrics. IEEE Transactions on Information Forensics and Security, 2020, 15: 2808-2823. DOI:10.1109/TIFS.2020.2977534 |
| [7] |
Zhang LY, Li YZ, Meng J. Design of Chinese word segmentation system based on improved Chinese converse dictionary and reverse maximum matching algorithm. Proceedings of the 2006 International Workshops on Web Information Systems. Wuhan: Springer, 2006. 171–181.
|
| [8] |
Ge F, Wu N, Xiao H, et al. Compact convolutional neural network accelerator for IoT endpoint SoC. Electronics, 2019, 8(5): 497. DOI:10.3390/electronics8050497 |
| [9] |
Zhu XY, Bao T. EasyBraille: A translation system for mandarin and braille natural language understanding and machine translation. Proceedings of the 6th Joint Symposium on Computational Linguistics in China. Beijing, 2001. 326–331.
|
| [10] |
Li ZP, Wang R, Zhang TC, et al. Intelligent braille conversion system of Chinese characters based on Markov model. Proceedings of the 3rd IEEE Information Technology, Networking, Electronic and Automation Control Conference. Chengdu: IEEE, 2019. 1283–1287.
|
| [11] |
Wang XD, Yang Y, Zhang JC, et al. Chinese to braille translation based on braille word segmentation using statistical model. Journal of Shanghai Jiao Tong University (Science), 2017, 22(1): 82-86. DOI:10.1007/s12204-017-1804-x |
| [12] |
Wang XD, Zhong JH, Cai J, et al. CBConv: Service for automatic conversion of Chinese characters into braille with high accuracy. Proceedings of the 21st International ACM SIGACCESS Conference on Computers and Accessibility. Pittsburgh: ACM, 2019. 566–568.
|
| [13] |
Zhang JX, Chen, HF, Chen B, et al. Design and implementation of Chinese common braille translation system integrating braille word segmentation and concatenation rules. Computational Intelligence and Neuroscience, 2022, 2022: 8934241. |
| [14] |
Yiu J. The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 processors. Amsterdam: Elsevier, 2014.
|
| [15] |
ARM Ltd. AMBA specification rev2.0. http://www.arm.com. (2022-01-20).
|
| [16] |
陈楷闻. 嵌入式盲文数字化系统研究[硕士学位论文]. 杭州: 浙江理工大学, 2022.
|
| [17] |
林栋. 面向国家通用盲文方案的盲文转换方法研究[硕士学位论文]. 杭州: 浙江理工大学, 2022.
|
2023, Vol. 32


