「本文参与少数派 2018 年度征文」
https://sspai.com/page/2018
2018年,我个人业余生活最大的收获就是开发了这个专为单手打字而设计的带调汉字输入方案——李氏三拼输入法,在这里重新系统地介绍一下这个发明吧。
设计初衷:为单手打字而生
李氏三拼是我个人使用的输入法,设计这个输入法的初衷就是在手机上使用单手快速而准确地输入汉字。之前的文章中提到过,这个想法最初来源于我2000年看过的一部影片《007明日帝国》,其中有人使用单手键盘快速而准确地输入英语,基本上和思维同步,而当时没有一款中文输入法可以做到单手输入,即使是使用双手,也没有任何一种汉字输入法可以达到那样快的速度,我从小是个民族自尊心和自豪感极强的人,我认为我们的汉语输入速度一定不输于英语,只是还没有人发明出合适的输入法,当时上初中的我就决心一定要找到一种可以实现单手快速输入汉字的输入法。
后来我接触到五笔、郑码、仓颉、全拼、双拼、注音等多种汉字输入法,为追求速度曾使用五笔多年,但后来还是觉得,形码更适合于文字录入工作,对于想打或者说创作来说,还是声码符合人的思维。但是很可惜,我找到的所有汉字输入法都无法实现单手快速输入,进入移动互联网以后,人们更习惯于在触屏手机上打字,还有人用手机进行创作,但手机输入键盘要么是qwerty全键盘,必须使用双手,单手打字很慢,要么是九宫键,按键是快了,但重码很多,选字过程很慢,都不符合我的要求。
后来我通过多年的思考和摸索,结合了全拼、双拼、注音等多种声码输入方案的优点,设计出一套又快又准的汉字输入方法,命名为“李氏三拼”,并在2018年通过同文输入平台实现了在手机上的应用,经过自己和几位热心网友的试用,效果很好,打字很流畅,总的来说,李氏三拼有以下几个特点:
一是编码数适中,我在全键盘和九宫键盘之间做了个折中,只用15键,既有类似于全键盘的准确度,又有类似于九宫键的按键速度,很合适单手操作,当然也可以双手操作;
二是编码长度短,李氏三拼是声码方案,不考虑字形因素,因此有拼音基础、会说汉语的人都可以使用,每个音节只使用3个编码,只用按3次,远小于全拼的最大码长(例如音节chuang共6码需按6次);
三是编码包含声调,输入更准确,李氏三拼每个音节的3个编码中包含了声调信息,解决了拼音输入法无法区分“哪里/那里”、“山西/陕西”等字词带来的不便。
以下将三种方案的特点进行对比:
实现原理:汉语声母、介母、韵母三拼
李氏三拼的优点从上面的表格中已经看得很明显了,那就是既有9键的速度,又有26键的准确度,还能区分声调,理论上来讲,汉字输入的效率至少提高了4倍(区分4个声调,但平均码长反而减少了),那么,这么高效的方案是如何实现的呢?说起来,输入原理一点也不神秘,我的想法最初来源于汉语“声-介-韵”的成音规律,汉语不就是用“声介韵”三拼拼读出来的吗,只要我们按照顺序依次用一个键输入声母、介母、韵母三个部分,一个音节也就拼读出来了。
说到这里,很多朋友们要不淡定了,小学语文不是学过,汉语音节是声母和韵母拼读而成的吗,所谓拼音就是声韵拼读成音节的意思,这里所谓的介母又是怎么回事呢?
所谓介母,就是指三个特殊的韵母:i,u,ü,它们可以放在声母、韵母之间,构成三拼音节,其实我们的汉语音节是由声母、介母和韵母三个部分拼读而成的,比如“shuang双”,就是sh+u+ang拼读而成的,中间的u就是介母,意思是介于声母和韵母之间。对于三拼音节,其实大家都知道,只是平时没有注意罢了。
汉语有三拼音节,也有两拼音节,比如“lan兰”,就是“声母+韵母”拼读而成,对于这类无介母的音节,可以视为空介。而i,u,ü这三个介母同时也是韵母,它们可以作为单独的韵母和声母相拼,比如“li李”就是“声母+介母(韵母)”拼读而成,后面不再跟其他韵母了;如果后面再跟韵母,比如an,就构成了三拼音节“lian连”,这就是“声介韵”三拼了。
拼音 | 声母 | 介母 | 韵母 | 说明 |
---|---|---|---|---|
li | l | i | 无韵母 | |
lan | l | an | 空介 | |
lian | l | i | an | |
yan/ian | i | an | 零声母 | |
luan | l | u | an | |
wan/uan | u | an | 零声母 |
介母之所以是特殊的韵母,是因为它们既可以作为单独的韵母,也可以放在声母和韵母之间形成三拼音节,还可以当作声母直接和韵母相拼,比如“lian连”音节中的介韵组合ian其实可以不要声母而单独成为一个音节,这时候ian=yan,因为汉语拼音中规定,当零声母音节以介母引导时,介母i、u要写作y、w,介母ü要写作yu。
没错,汉语拼音声母表中最后两个声母y、w其实只是韵母(介母)i、u的零声母形式,也就是它们当声母用时的特殊写法,如果你认识到这一点,也就掌握了李氏三拼最大的奥秘,即李氏三拼恢复了汉语拼音中声母y、w原本的形式:它们只是韵母i、u(介母)当声母用时的另一种写法。
例如,“yan烟”的发音和韵母“ian”的发音完全一样,只是“ian”在作零声母时要写作yan。汉语拼音规定,零声母音节在和前面一个音节连写时要加上隔音符,比如“西安”的拼音要写作xi'an而不能写作xian,否则就和“xian先”的发音混淆了,韵母i、u(介母)在作声母时写作y、w也就是起到隔开音节的作用。
汉语拼音隐藏的秘密之一:y、w = i、u
在汉语拼音中,声母y、w = 韵母i、u,这是汉语拼音中隐藏的一个大秘密,可能很多人用了多年的拼音还没有察觉,但也有的小伙伴们早就发现这个秘密了,只是不知道为什么会这样,其实很简单,y、w只是i、u在作声母时的写法,起到的就是隔音符的作用。
李氏三拼为了把每个音节规范为三拼,恢复了声母y、w原本的写法,它们和其他零声母音节都用同一个声母“零”,比如“ai爱”的三拼形式是“零声母+空介母+韵母ai”,“yan烟”的三拼形式是“零声母+介母i+韵母an”,“wan玩”=“零声母+u+an”,规则非常简单,把y、w换成原来的形式i、u,声母用零声母,后面再加上相应的韵母就可以了。
汉语拼音隐藏的秘密之二:in音=ien衣恩音
或许有的小伙伴还发现了汉语拼音另一个大秘密,有的韵母其实可以拆分成两个韵母相拼的形式,例如韵母“in音”其实可以用“衣恩音ien”相拼,in相关的音节看似是两拼其实是三拼,比如“林”看似是“勒音-林”,其实也可以拼作“勒衣恩-林”,这样,这类音节就也变成三拼啦!
说起来,其实三拼才是这类音节原本的形式,在1958年《汉语拼音方案》出台之前,中国人在小学学汉语一直是用三拼形式的,汉语拼音中把ien采用简写in的形式,是为了缩短拼音长度,但这样就又创造了很多新的韵母,这样的新创造的韵母共有7个,分别是:in=ien,ing=ieng,iu=iou,ui=uei,un=uen,ong=ueng,ün=üen。
拼音 | 原型 | 零声母 |
---|---|---|
in | ien | yin |
ing | ieng | ying |
iu | iou | you |
ui | uei | wei |
un | uen | wen |
ong | ueng | weng |
ün | üen | yun |
但是在台湾,小学语文一直使用汉语拼音的前身注音字符来教授拼读,所以台湾的小伙伴们对“lien林”、“lieng灵”这样的三拼形式要熟悉多啦。
汉语拼音隐藏的秘密之三:没有gi,ki,hi和ja,qa,xa
汉语音节还有一个隐藏的秘密就是,有的声母和韵母从来不会相拼,比如g、k、h这三个声母,就从来不会和介母i相拼,所以不会有gi,gia,giu等音节,而相对应的j、q、x三个声母则不会和空介相拼,也就是不会有ja,je,jai等这些音节。
声母合并在15键上
或许有的小伙伴很早之前就发现了这个秘密,那么知道这个秘密有什么用呢,除了可以证明自己很牛逼之外……我琢磨着利用它把拼音的声母进行了合并,反正九宫格也进行了字母合并嘛,但是九宫键按照ABC、DEF的顺序进行简单合并,造成了大量重复音节,比如JKL+i就会有“li力”、“ji鸡”等重复音节,给选字造成了很大困扰,而我设计的李氏三拼把gj、kq、hx分别合并,这样GJ+i就只能是“ji鸡”而不可能是“gi”啦,通过这种方法就消除了重复音节,使得可单手操作的15键输入和双手操作的26键输入同样准确。
而且李氏三拼的“声介韵”三拼还是包括声调的噢,从图中可以看出,这次输入只出现了一声“jī鸡击机基积”等字,选字准确度有了很大的提高,也就是说只用15键和更少的按键次数(每个音节只按3次),却实现了比26键更准确的输入!
而这又是怎样实现的呢,这时候我又脑洞大开,把“声+介+韵+调”组合变成了“声+介调+韵”组合,把介母和声调结合起来了,由此实现了三次按键内包含声调信息。
介调组合正好15键
前面我们了解了一个汉语音节由“声介韵”三部分构成,但其实还有一个声调,一个完整的汉语音节应该是“声介韵调”四部分的组合,而其中介母只有三个,声调只有五个(包括轻声),我开动脑筋一想,把这两部分结合起来,不正好是3x5=15键吗?至于实现方法,其实很简单啦。
我用1-9*0#ABC一共15个字母数字和符号来代表15个按键,456A是第一行,789B是第二行,*0#C是第三行,47*是第一列,580是第二列,69#是第三列,那么第一行代表空介,第二行代表介母i,第三行代表介母u/ü(u/ü+韵母的组合比较少,两者之间也有一定的相似性,把它们合并了),1234列分别代表第1234声,至于最上面的三个键,分别代表三类介母的轻声,因为轻声用到的最少,所以放在最上面了。
韵母合并在12键上
通过前面一系列操作,已经把声母和介韵组合都安排在了15键上,第三码是韵母,现在要把韵母安排在12键上,对,亲爱的朋友,你没有看错,确实第三码韵母只用十二键,也就是上面提到的第一二三行共十二键,而最上面的三个键是不用的,因为通过“声介韵”的组合安排,韵母确实只剩下12个了,而按键数越少,打字也就越快啦。
小学语文告诉我们,汉语拼音韵母一共有24个,也有人说是39个,那是把类似“ian”这样的介韵组合都算上了的,那么同样地,如果把上面提到in(ien)等七个韵母也按原型进行拆分的话,韵母就只剩24-7=17个啦,然后我灵机一动,再参照上面提到的声母合并原理(把不重复音节安排在同一个键位上)把某些韵母合并在同一个按键上,这17个韵母就能被放在12个按键上,并且不会出现重复音节啦。
韵母合并主要有以下几种情况,看似不少,但其实是不用记的,键盘上有标注(请看上面的李氏三拼键盘图),打字的时候看着打就行,多打几次很容易就记住了。
ao和ün(üen)合并,因为ao只和空介和介母i组合,不和介母uü组合,也就是说只有ao、iao,没有uao、üao,因此用介韵组合“空介/介母i/介母uü”+“ao ün”就能准确地区分出ao、iao、ün三个韵母。
介母 | 韵母 | 合成韵母 |
---|---|---|
空 | ao ün | ao |
i | ao ün | iao |
u/ü | ao ün | ün |
同样道理,可以把韵母ou和iong合并:
介母 | 韵母 | 合成韵母 |
---|---|---|
空 | ou iong | ou |
i | ou iong | iu(iou) |
u/ü | ou iong | iong(üeng) |
在这里需要说明一下,介母i和韵母ou的组合iou就是韵母iu,而它的零声母形式是you,这在前面已经说明过了,另外需要说明一下,韵母iong的介母应该是ü,它的原型是üeng,零声母形式是yong,其实由于韵母ong=ueng,ü=yu,因此韵母iong可以写作多种形式,例如i-u-eng=[i-u]-eng/ü-eng=i-[u-eng]/i-ong,这个韵母只有三个音节:jiong, qiong, xiong。
类似地,有
介母 | 韵母 | 合成韵母 |
---|---|---|
空 | ü ai | ai |
i | ü ai | ü |
u/ü | ü ai | uai |
介母 | 韵母 | 合成韵母 |
---|---|---|
空 | i ei | ei |
i | i ei | i |
u/ü | i ei | ui(uei) |
介母 | 韵母 | 合成韵母 |
---|---|---|
空 | u er üan | er |
i | u er üan | u |
u/ü | u er üan | üan |
至此,我设计的李氏三拼带调汉字输入法的原理和实现思路就全部介绍完啦,我已通过同文平台实现了在安卓手机上的应用,只需花费大概5分钟的学习成本,就可以获得比全拼和九宫键好得多的输入体验,聪明的你是不是很迫切地想尝试一下呢?
最后放出下载地址:https://pan.baidu.com/s/1i4X3WFz
密码: 1jpd
根据网友的反馈意见,我的输入法还在不断调整优化中,您也可以到QQ群(150478288)下载最新安装文件,如有任何问题,欢迎反馈和讨论。