摘要:叙述了利用JAVA和C++混合编程技术的彝语真人发音词典的开发和技术要点及软件功能特点。
关键词:词典;真人发音;数据库;编码
随着彝文信息处理领域的拓宽和发展,规范彝文获得了更大的普及和发展,也使更多的人开始学习和研究彝文。传统的学习彝文的辅助工具大多是字词典,在电脑上和网络上进行彝文学习的辅助工具很少。彝语真人发音词典在一定程度上填补了这一空白,在电脑和网络普及的今天,实现了彝语(文)词(字)典无纸化、数字化,用电脑查询代替了手工书本查询,并且可以真人朗读彝语词汇,还可对词汇数据进行管理和打印,极大地方便了学习彝语(文)的学生和研究者。
1 系统的开发环境
本词典系统采用Java和C++混合编程,软件的外壳和界面采用C++实现,软件的后台和数据库存取采用Java来实现。这种技术组合利用了C++界面快捷的反应速度和Java编程的便利简洁性,在桌面程序的开发上具有很大的优势,其代表技术就是IBM公司新开发的SWT/Jface技术。数据库采用了Microsoft桌面关系数据库Access。
本软件基于Windows平台开发,可以在装有windows 98/2000/2003/XP 的机器上运行,安装后即可开始使用。
2 系统的功能特点
2.1 彝汉对照词汇查询
彝语真人发音词典在彝汉对应词汇互查的功能上实现了彝语词汇的真人发音朗读。词汇查询方式有两种:精确查找和模糊查找。精确查找只检索与用户输入的词条相对应的数据,模糊查找可以把以用户输入的词条为开头的所有相关数据检索出来。该功能截图如下:
2.2 彝语真人朗读和音标标注
真人发音是本软件的一大特色,只要用户点击了输入框旁边的小喇叭按钮就可以真人朗读检索出来的彝语词汇。用户可以自定义真人朗读功能,可以男女声选择、语速选择和声音大小选择。彝语录音采用彝语北部方言的标准喜德口音来录制,分别录制了男生声音库和女生声音库。该功能对学习彝语(文)的用户很有帮助,使学习过程不仅可以看还可以听,使彝语(文)的学习更加轻松。
还可以将检索出来的彝语词汇标注音标,以方便用户正确拼读该词汇。音标和朗读的搭配使学习更加有效率。
2.3 用户自定义词汇
此外,本着开放和扩展的目的,用户可以增加和编辑自己的专业词汇。目前系统数据库只收录了8万余条词汇,只基本覆盖了日常生活和各学科的常用词汇,对于要求比较高的高级研究者和用户,词汇量方面还不能完全满足其要求。所以系统允许用户增加和扩充自己的专业词汇。
2.4 数据备份、导出和打印
由于允许用户扩充词汇,基于安全性的考虑,系统提供了数据备份功能,该功能可以确保用户电脑重装操作系统后可以继续使用原有的补充词汇。数据导出可以将查询结果导出另存为word、html和txt等格式的文件。数据打印功能可以将查询结果打印出来。
2.5 其他功能
由于不同编码字符的共同处理和显示,同一种文字样式对彝文和汉文的实现效果不完全相同,所以允许用户为不同的文字选择字体、颜色和大小等格式,这样可以确保彝文和汉字具有相同的外观。其他附带功能还包括彝文古籍欣赏、彝语对话练习等。
3 系统开发技术要点
3.1 数据库的设计
本软件采用了Microsoft桌面关系数据库Access,采用JDBC数据库编程来存取数据。数据库中有4个表。
第一个表为系统词汇数据表,该表收录了彝汉对应词汇8万余条,此表用户只能查询不能进行修改,词汇的 查询(精确查找和模糊查找)就从该表和第二个表中来检索。彝文词汇收录以《彝汉词典》(四川民族出版社1987 年)为蓝本,汉语词汇以《现代汉语词典》(商务印书馆1983年)为蓝本,以及《彝汉对照词典》、《彝汉词典》等。
第二个表是补充数据表,它是用来给用户增加和补充词汇用的,在词汇的查询中,如果该表为空那么系统只在第一个表中检索数据。
第三个表是彝语音标表,它储存了1165个彝文字的对应音标,该表在程序初始化时就被读取并且封装进一个哈希表结构中来常驻内存中,在数据的检索中是用一个线程来读取该哈希表并且在界面上显示音标,用线程是因为可以减少系统等待时间,加快查询速度。
第四个表为语音数据表。在该表中储存了每个彝文字所对应的声音文件的路径,声音文件也可以直接存储在表中,但是那样会增大数据库的体积,所以在数据库中我们只储存路径,具体的声音文件则存储在另外一个文件包中。该表也是在程序初始化时就被读取并且和音标一块被封装进一个哈希表结构中来常驻内存。
数据库查询采用了预查询,因为词汇的查询大同小异,只是参数不同而已,所以用JDBC的PreparedStatement可以获得极大的性能提升。由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。
3.2 声音数据的录制和编辑
在声音录制中有两种方案,一种是给词汇(组)录音,这种方式语调自然流畅,但是可扩充性不好,而且会增 加软件发行时的体积。鉴于此我们选了另外一种方案,就是录字,这种方式语调流畅度不如第一种,但是可以减少 软件的发行体积,而且可扩充比好,可以朗读用户增加的词汇。
声音的录制和编辑采用专业的录音棚和设备来进 行,分别录制了标准彝语喜德口音的男生声音库和女生声音库。将彝文字的声音片断剪辑成WAV格式。在程序中让程序来调用和播放。WAV格式是Microsoft公司的音频文件格式,也叫波形声音文件,被Wiodows平台及其应用程序广泛支持,利用该格式记录的声音文件能够和原声 基本一致,声音质量非常高,可达到CD音质。
3.3 不同编码文字的处理
在编程中处理多语言文字数据时都要涉及到Unicode编码。Java语言的内核是Uniyode,Java支持多国语言编码,在Java中,字符都是以Unicode进行存储的。由于Java的String类里的char都是Unicode编码,所以我们可以直 接用字符的机内码来判断和识别字符。
彝文字和汉文字的编码体系不一样,所以在程序中就应该让程序来判断用户输人的是彝文还是汉文。判断是根据文字的内码来进行的,汉字用的是GBK编码的内码,GBK是为了推进Unicode的实施,同时也是为了向下与我国一直沿用的字符集标准GB2312完全兼容,电子部与国家技术监督局联合颁布的一个新的汉字内码扩展规范。在基本操作环境方面,微软公司自Windows 95简体中文版始,系统汉字就开始采用GBK编码,所以在字符编 码的判断中采用了GBK编码。GBK汉字编码中汉字范围为4E00一9FA5(转换成十进制为19968—40869),其中有汉字(包括部首和构件)20902个。
在彝文方面,目前应用的彝文系统主要有YiWin彝文系统和方正Unicode彝文系统,YiWin彝文系统由西南民族大学民族文字信息处理研究所开发(2000年),目前被广泛使用,编码位于用户自定义区(EUDC)E000~F8FF,彝文范围E006~E491(转换成十进制为57350~58513),共1165个彝文字符。方正unicode彝文系统是西南民族大学与北大方正集团公司合作研制(2004年)的一套新型的基于Unicode彝文国际标准编码的彝文系统,编码范围从0xA000—0xA4C6,目前该系统还处于推广阶段,没有得到广泛的使用。
由于本系统的词汇数据库采用的彝文是YiWin彝文系统,为了让以后使用方正Uninndo彝文系统的用户也可以正常使用本软件,我们在程序的后台中增加了内码转换功能,它可以将用户输入的方正Unicode彝文转接 为YiWin彝文来使用,转换利用了两者的内码对应关系如彝文“’字在Yi Win彝文中编码为E007,转换成 十进制为57351,而在方正Unicode彝文中编码为A018。
在程序中判断过程为:
/*str为用户输入的查询关键字*/
int num=str.charAt(0);//判断第一个字符
if(num<=128){//英文
//略
}
else if(num>=19968&&num<=40869){//汉字
//略
}
else if(num>=57344 &&num<=58565) {//彝文
//略
}else{//其他语种文字
//略
}
3.4 声音的播放
为了在朗读的同时用户可以进行其他的操作,声音的播放用线程来解决。比如朗读3个彝文字,就让线程按顺序先朗读第一个字,朗读完毕后才让线程朗读下一个字,依此类推,就可以让程序按顺序逐个朗读彝文。
4 结束语
基于现代电脑技术的彝语真人发音词典实现了传统词典的电子化、数字化和多媒体化,是一部彝语(文)的 学习辅助工具和平台,方便和促进了学习,提高了工作效率,与传统的词典相比具有很大的优势。另外,开发中涉及 到的彝文方面的处理对其他民族文字的类似应用提供了可参考性。
[1]张云涛,龚玲E]ipse精要与高级开发技术[M],北京:电子工业出版社,2005
[2]柳克俊,关于人机交互、人机和谐环境的思考〔J〕计算机应用,2005,25(10):2226-2227
[3]马争,周艳,谢世波:MVC设计模式在网管系统中的应用与研究,电子科技大学学报,2005,34(5) 638 -641
[4]姜楠,王健:常用多媒体文件格式与压缩标准解析[M],北京:电子工业出版社,2005
[5]陈烨,张蓓,JDK1.5类库大全[M],北京:清华大学出版社,2005
[6]许嘉璐,陈章太:中文信息处理[M],广东教育出版社1999
[7]沙马拉毅:计算机彝文信息处理[M],成都四川民族出版社2000
[8]吴兵,史军,刘玉萍,张楠,王莉,基于Linux系统的彝文输人动态挂接[J],西南民族大学学报2005,4:606-610
原载:《西南民族大学学报》自然科学版(增刊),2005年12月。
文字来源:彝学研究网。
作者简介:李金发(1978~)男,彝族,西南民族大学中国少数民族语言文学专业2003级硕士研究生。 特此向图文原作者致以敬意和感谢!