Pinyin4j是Java中的拼音库,作者李民。
拼音这件事其实非常简单,无非是一种映射。但是拼音中包含的学问很多,很多前贤都研究过汉语拼音,提出了多种拼音方案。随着历史变迁,拼音的形式也在不断发生变化,所以设计一个拼音库就需要考虑到拼音的格式、拼音的体系。
一、拼音体系
1、GWOYEU_ROMATZYH
国语拼音起源于民国时期,制作者赵元任、林语堂。
2、HANYU_PINYIN
《汉语拼音方案》,是1958年第一届全国人民代表大会第五次会议正式批准公布的拉丁字母式的汉语拼音方案。但是实际落实到教学和普及使用则是1960年前后,当时有中国文字改革委员会发行的汉语拼音报,此后汉语拼音开始逐步取代了原来的汉字注音字母直至现在汉语拼音在我国的社会各个领域都占有极其重要的地位。
3、MPS2_PINYIN
Mandarin Phonetic Symbols 2 (MPS2) Pinyin system
4、通用拼音
通用拼音,是中国台湾地区的一种中文拉丁化拼音法。由“中央研究院民族学研究所”副研究员余伯泉在1998年发表,后经数次修正,于2000年由台湾教育主管部门宣布使用,并取代原定改用的国语注音符号第二式,台湾当局政府自2002年起全面推行以通用拼音为基础的统一译音政策,但并未强制要求使用。2008年9月,中国台湾地区确定中文译音政策将由“通用拼音”改为采用“汉语拼音”,涉及中文英译的部分,都将要求采用汉语拼音。通用拼音有个略去 f 而使用 v(注音符号:万)的音标版,可能原先用于客家话,但实际上拼读国语时无用。
5、威氏拼音
WADEGILES_PINYIN
威妥玛式拼音法(Wade-Giles romanization)又称威妥玛-翟理斯式拼音,简称威氏拼音法 。
它是1867年开始的,由英国人威妥玛(Thomas Francis Wade 1818年—1895年,今天的习惯应该翻译成托玛斯·韦德)等人合编的注音规则,叫“威氏拼音”。
威妥玛曾于1871年任英国驻华公使,1883年回国。1888年起在剑桥大学任教授,讲授汉语,直至1895年逝世。他以罗马字母为汉字注音,创立威氏拼音法。后来H.A.Giles稍加修订,合称WG威氏拼音法(Wade-Giles System)。它的最大优点是利用送气符号(‘)来表示送气的声母。
6、耶鲁拼音
1943年初,美国一批新学员包括即将来华参加抗日战争的军人集中到美国耶鲁大学,进行短期训练,学习汉语。为了适应需要,由美国耶鲁大学远东语言研究所的肯尼迪负责拟订了一个拼写汉语的拉丁字母方案。这个方案主要用来编写汉语的口语教材,供学员做会话练习。
耶鲁方案的主要特点是﹕(1)以北京语音为标准音﹔(2)用b﹑d﹑g表示不送气清塞音﹐p﹑t﹑k表示送气清塞音﹐不再使用送气符号﹔(3)用y﹑w﹑yw表示介音﹐如tyan(天)﹑gwo(国)﹑jywe(觉)﹔(4)用r﹑z分别表示两个舌尖元音(即“知”﹑“资”后面的元音)﹔(5)用符号表示声调﹕第一声“–”﹐第二声“ˊ”﹐第三声“ˇ”﹐第四声“ˋ”﹔(6)实行按词分写。
二、拼音格式
1、大小写
拼音者,以少表多也。少的肯定是字母,多的肯定是中日韩三国文字。既然是字母,就要遵循人家用字母的规矩:区分大写小写。
如:大写 拼成 DAXIE还是daxie
2、音调类型
汉语是有音调的,如何表示音调?常见的有三种方法:忽略音调、使用后缀数字、使用带音调的字母
WITH_TONE_NUMBER da3
WITHOUT_TONE da
WITH_TONE_MARK dǎ
3、鱼
汉语拼音里面最奇葩的莫过于ü,这个字母是唯一的一个26个英语字母中没有的字符,它明明应该用v的,那样将会少掉无数争端。
还记得小时候神奇的歌谣:j、q、x三兄弟,和ü相遇把点吃。
如果用v表示ü,完全没有这么多冗余的规则。所以设计拼音的人有点脑残。
在pinyin4j中,ü被作为一种格式来专门讨论。表示方式有三种:u+冒号、v、ü。
WITH_U_AND_COLON u:
WITH_V v
WITH_U_UNICODE ü
在以上三种格式中,并非有2×3×3=18种拼音方式,因为这些格式之间会产生冲突。主要原因是鱼的两种表示法u+冒号、v跟音调类型中的WITH_TONE_MARK不兼容。
三、关于pinyin4j
pinyin4j已经很古老了,代码是放在sourceforge上的,maven仓库中都没有。另外,pinyin4j引用的xml解析库sparta-xml虽然据说很快,但是很小众。
有人把pinyin4j迁移到了github并放到了maven仓库中:https://github.com/belerweb/pinyin4j/