基于语音识别技术的日语学习系统的设计与实现
2021-06-24牛立保马永辉
牛立保, 马永辉
(西安翻译学院 1.亚欧语言文化学院,2.工程技术学院, 陕西 西安 710105)
0 引言
据2019年我国高等教育学生信息统计,日语在我国不论是在办学规模还是在学生人数上都已经成为继英语之后的第二大外语语种。同时由于日语相对于英语的备考词汇量要少很多,故日语高考人数也在逐年递增。学好一门外语自身努力非常重要,但能够拥有一款优秀的日语学习软件会达到事倍功半的效果。
借助学习软件,学习者可以不受地点、时间等限制,利用电脑、平板、手机等电子设备就可以在课外时间充电学习[1-2]。虽然市场上外语学习的软件、APP很多,但90%以上是为英语学习者开发的[3]。针对日语学习的软件和APP屈指可数,而且功能仅局限在日汉双语字典功能。随着日语学习人群数量日益增多,有必要开发一款简洁、易用、功能强大的日语学习软件来满足社会的需求。
1 系统功能设计
本系统主要分为六大功能模块: 词库管理、学习测试、练习游戏、工具、设置和帮助模块。 本系统的各功能模块的组成,如图1 所示。
图1 系统功能结构图
(1) 词库管理
此模块为本系统的基础模块,通过加载词库功能,学习者可以根据自己的需要选择“汉日词典”或“日汉词典”,并进行相应的词典查阅。学习者也可以根据自己的需要使用编辑词库功能,手动编辑词库,在原有词库中增加一些自己遇到的新词汇。为了防止词库文件损坏、误删除或丢失,系统提供了备份词库功能。
(2) 学习测试
“学习测试”模块为系统的核心模块,通过学单词功能,学习者可以根据中文查询到对应的日文,并给出标准读音,同时可以比对发音的正确性,锻炼听力和发音。“背单词”功能采用顺序或随机日文出题,根据学习者写出或读出的日文,打分并记录学习成绩。“错词本”功能将学习者在背单词过程中错误的词汇自动记录到“错词本”中,便于复习巩固。“错词本”还允许学习者将已经掌握的原来错题删除。在轻松的学习状态下,“循环播放单词”功能无需学习者干预,每间隔3秒钟,循环依次播放词库中的单词或错词本中的词汇。
(3) 练习游戏
本系统遵循“寓教于乐”的教育理念,在学习的同时,提供练习游戏功能,包括打字练习游戏,单词连连看和日文欣赏。
(4) 工具
工具模块提供了定时器、记事本和软件更新功能。分别用于学习自测的倒计时提醒,在线记事和软件版本更新服务。
(5) 设置
设置模块提供了系统的参数设定功能。如词库文件的存储位置、锁屏时间及单词随机播放时间的设定。系统锁屏密码设置功能保障系统的安全。软件换肤功能允许学习者修改软件背景,以满足美观性和个性化的需求。
(6) 帮助
帮助模块主要提供用户操作手册,详细说明了本款软件的一些基本功能与方法。
2 系统实现及关键技术
2.1 系统实现
系统实现使用MVC设计模式及组件化设计思想,软件界面风格和操作习惯按照标准Windows软件进行设计,从而带给学习者更好的使用体验[4]。系统主界面除了功能菜单外,还提供了单词的双向查询功能,默认为“日汉词典”的模糊查询。学习者在未输入检索词的情况下,显示所有日文词语,学习者也可以精确输入日文词汇,系统就会显示该日文词语及中文解释,若用鼠标点击“日文”旁边的“喇叭”符号,系统可以自动对该日语进行朗读,系统的主界面如图2所示。
图2 日语学习系统主界面
2.2 关键技术
(1) 词料库和语音库设计
日语词料库可以使用数据库存储,也可以使用文件存储。由于CSV格式文件用来做数据存储容量小,与Excel格式兼容,读取速度快等特点。本软件使用CSV格式文件保存词料库数据和语音库数据。词料库与语音库通过单词编号进行匹配。事先把音频文件一个一个录好,根据单词编号读取对应的音频文件,实现软件真人发音朗读功能。对软件中单词例句及范文使用语音识别技术实现日语文本自动朗读。
具体词料库和语音库的数据结构如下所示。
词料库(单词编号,单词 ,词性,释义,例句)
语音库(单词编号,语音文件名)
(2) 语音识别技术TTS
语音识别技术是本软件核心技术。TTS技术的主要作用在于利用计算机合成人语,并将文字信息转化为语音信息进行播放。TTS技术的产生赋予了计算机“开口说人话”的能力。
在人工智能领域,语音识别技术的应用领域非常广阔。本系统的日文朗读功能解决了用户在识记日语单词外,听力和发音能力的练习。系统不仅提供单词、段落和全文朗读,还支持语音录入比对功能。在该功能的开发中,应用了FreeTTS语音合成的Java组件。FreeTTS是一个完全用JavaTM编程语言编写的语音合成系统组件。由Speech Interat ion Group of Sun Micro systemsLaboratiories 和来自IBM的Speech for Java两公司合作开发。
语音识别功能开发步骤如下。
1) 从freetts.sourceforget.net官方网站下载freetts的最新版本;
2) 在开发工具中加载freetss的jar包,freetts.jar和mbrola.jar,后者用于选择更多的声音;
3) 导入java语音类库,包括Java扩展包下面的speech、和synthesis,前者用于提供音频功能,后者用于语音的合成能力;
4) 声明对象并对语音合成器进行初始化;
5) 创建语音合成器
创建语言合成器时需要用到Central 类,其作用是提供用来访问所有语音输入和输出的能力, 同时也可以定为语言引擎,根据描述符所定义的属性集合选择匹配的引擎,从而创建语音识别器和语音合成器,分别实现用户语音录入和发音功能。
(3) 单词循环播放的原理
单词循环播放目的是在无需学习者干预的情况下,由软件系统自动按学习者事先设定的模式进行单词的随机播放,方便学习者以“浏览”的方式迅速温习掌握单词。系统提供顺序、随机两种播放模式,以及播放速度的设定。学习者设定的播放模式和速度写入扩展名为ini的配置文件中进行保存。单词播放流程如图3所示。
图3 单词播放流程图
单词的循环播放程序利用Java中的定时调度工具Timer类,它是Java提供的原生Scheduler(任务调度)工具类,直接可以使用。它可以实现在某个具体时间执行程序员设定的任务。底层上,Timer使用一个后台线程去执行定时任务。Timer类在时间上可以精确到毫秒级。
(4) 背单词的功能
背单词的功能,可以帮助学习者记忆单词,并将错误的单词记录到“错词本”中,以便后期有针对性地对易错词语进行记忆,提高学习效率。背单词功能的程序流程如图4所示。
图4 背单词流程图
学习者打开“背单词”的界面,程序显示单词并停留3—5秒钟,然后会隐藏显示的单词,这时学习者输入自己记忆的单词,系统自动比对,并计分后自动显示下一个单词,进行记忆,直到学习者停止记忆。若记忆过程中出现错误,系统会将该单词计入错题本中。学习者可以随时选择退出“背单词”功能。
3 系统特点
本系统由于是采用Java语言开发的,具有良好的跨平台性和扩展性。可以快速地升级到手机Android版。系统具有以下特点。
(1) 绿色:系统将Java生成的可执行JAR文件,利用“JARTOEXE”工具生成exe文件,只需要Java运行环境,就可以直接使用;
(2) 体积小:由于系统采用了文件词库的方式,无需数据库,所以系统体积小;
(3) 单机版、无需网络: 采用文件系统开发,是一个单机版学习软件,无需网络的支持,随时可以使用;
(4) 功能拓展性好:由于网络上具有标准词库,有很多语种的词库,所以系统后期可以增加英语、法语、德语、韩语等学习的功能;
(5) 支撑环境简单:不需要网络和数据库软件的支持,系统资源要求低,速度快。
4 总结
本文结合日语学习人群工作、生活中的需求,设计和开发了一款日语学习软件,系统提供了简单实用的学习功能,并且利用了人工智能技术中的语音识别技术,实现了学习者在学习过程中发音正确性的判断、有力地保证了业余日语学习者在自学环境下,同样能具备正确的读、听、写、译的能力。后期研究工作,下载其它主要语种的词库,将该软件升级为多语种学习系统,学习者可以方便切换到相应语种学习界面,并将与大数据技术相结合,对学习者学习数据进行深度分析,为他们提高学习效果提供有利数据支撑。