美文网首页无题工具癖输入法开发
岁寒输入法——重新定义双拼

岁寒输入法——重新定义双拼

作者: cbda0e8d017e | 来源:发表于2017-10-26 12:56 被阅读266次

    上学时老师总是说,“考试不带笔,就像上战场不带枪。”互联网时代,输入法就是我们的枪,办工、作业、撩骚,都离不开输入法,偶尔做回键盘侠,输入法就更加重要。越是常用的工具,它的一成不变就越显得不起眼。当你在网上码字或以一敌百时有没有想过,你的工具几年没有更新?

    全拼输入法的盛世造就了输入法创新的颓势。全拼不是最快的输入法,更不是输入法的最终形态。当大厂把各自的精力放在全拼输入法上,推出各自噱头十足的新技术时,这款由独立开发者设计的“岁寒输入法”显得尤其珍贵。

    改变是困难的,也是进步的必由之路。

    岁寒输入法图标

    从双拼输入法的规则开始探索

    双拼输入法,也叫双打,顾名思义,是通过两个按键确定一个音节的输入法。

    在全拼输入法中,我们按照顺序,依次输入组成音节的每个字母。例如,打出“设想”一词需要依次按8个键。

    >【全拼】

    输入S+H+E+X+I+A+N+G

    =>打出“设想

    而在双拼输入法中,每个音节的声母部分和韵母部分分别被看作是一个整体。为了两键确定音节,要把每个类似sh、iang这样无法通过单个按键输入的声母和韵母分别绑定在某个按键上,使得每个声母和韵母都能够通过一次按键打出。双拼键位设计有很多种方案,本文以“微软双拼”为例,它的方案如下图:

    微软双拼键位图

    在微软双拼中,sh绑定在U上,iang绑定在D上,那么要打出“设想”,只需要输入UEXD,便可打出:

    【双拼】

    输入U(sh)+E+X+D(iang)

    =>打出“设想

    我们知道汉语拼音中声母和韵母数量比键盘上的按键多,键位绑定会导致一些按键既代表声母又代表韵母,即键位的二义性。那么输入时输入法怎么知道我想输入是声母还是韵母?

    为了解决这个问题,双拼输入法规定,把按键以两个为一组进行识别,默认第一个按键为声母,第二个为韵母。但是有一些特殊音节没有声母,例如“安全”的“安(an)”。输入这种音节时怎么办?

    其实在声韵学中,这些音节也是有声母的,叫做“零声母”。我们不需要了解什么是零声母,只知道有这个东西就行。打这种音节时,要先输入一个字母充当零声母,来告诉输入法“声母已经有了,下面请直接识别韵母”。不同的双拼方案可能用不同的按键作为零声母。在微软双拼中,O是零声母键,那么输入an时,需要输入OJ

    【双拼】

    输入O(零声母)+J(an)+Q+R(uan)

    =>打出“安全

    双拼可以视为全拼的改进版,而且一样可以通过输入法的智能联想功能受益。初学者最大的难点在于记键位,这也是学习双拼的主要门槛。(虽然已经比五笔简单多了)

    那么如果不记键位,怎么实现双拼呢?专为移动平台设计的岁寒输入法提供了一个思路:滑动输入

    岁寒输入法键位

    独特的滑动输入

    主流的手机拼音输入法的键位布局主要有两种,一种是衍生自桌面平台传统键盘的「QWERT」键盘,一种是由功能机键盘演变而来的「九宫格键盘」。

    全键盘(百度输入法) 九宫格键盘(百度输入法)

    这两种键位布局虽然占据主流,但在使用中存在着很多问题。QWERT键盘对于习惯了桌面键盘的人来说没有学习成本,但是在寸土寸金的手机屏幕上,密布30多个键位会大大增加误触率,九宫格键盘起源于固定电话和功能手机,键位少,很适合手机屏幕的单手输入,代价是重码率过高,26个字母按照字母表顺序三个或四个为一组排布在8个数字按键上,布局方式简单粗暴未经优化,重码率大大增加。

    另外还有一些非主流键盘,比如十四键(也叫双键)和米旮旯九宫格键盘等。

    双键键盘(讯飞输入法) 米旮旯双拼方案

    在这些键盘中,不管是经典键盘,还是针对移动平台优化的键盘,都是在用物理键盘的思路实现输入。

    在触控设备上,常用输入方式有三种:点击、滑动和长按。点击是一维的,只包含一个点的坐标信息,而滑动是二维的,它包含起点、终点、以及中间无数个点的坐标信息,从中还可以获取不断变化的方向、速度以及路程,相比于点击来说是巨大的飞跃。而上面这些键盘只用到点击这一种方式,滑动输入的优势没有得到发挥。

    说到滑动输入,Swype输入法是先驱者。使用Swype输入法时,用户需要按照顺序依次划过需要点击的按键完成输入,相当于点按输入的升级版,只是节省了“抬手动作”。用动作游戏来类比就是招式前摇和后摇被取消,连招更连贯了。

    岁寒输入法借鉴了Swype的方案,用来解决复韵母的输入。反映到键位布局中,所有能够组成复韵母的字母被放置在一起,组成了一个“韵母方阵”,在小范围内滑动就可以解决复韵母的输入。例如要输入韵母iao时,手指依次划过IAO即可。

    韵母方阵

    岁寒输入法真正神奇之处在于zh/ch/sh鼻韵母的输入。

    zh/ch/sh/h是汉语中使用频率比较高的四个声母,如果按照Swype方案,z/c/s三个字母围绕h放置,会大大增加所在区域的使用频率,而科学的布局方式应该避免使用频率高的字母过于集中,以平衡键盘不同位置的使用量。为了让z/c/s摆脱h的束缚,岁寒输入法使用了技能——“滑到第二行”。顾名思义,当需要输入这三个声母时,点击z/c/s,然后滑动到下一行,视为输入zh/ch/sh。如果说,Swype滑动输入法让连招更流畅,那么岁寒输入法就是在连招中加入了魔法。

    输入zh/ch/sh

    鼻韵母输入方式与zh/ch/sh类似,输入-n后缀韵母时,下滑到第三行,视为输入了-n,例如要输入ian是,依次划过IAG;而输入-ng后缀韵母时,则需要下滑到第四行,视为输入了-ng,例如要输入uang时,依次划过UAGX。由于按键U和I键位过高,输入un/in/ing时会与下方的韵母冲突,所以设置了Y/U和R/I这两个声韵共用键。需要注意,这两个按键只在下滑输入时视为U和I,其它情况下都当作声母使用。

    输入鼻韵母

    另外在输入整个音节时,声母和韵母之间可以连续滑动输入。例如输入“要”时,依次划过Y+A+O;输入“样”时,依次划过Y+A+G+X

    现在再看回岁寒的键位,起初不名所以的布局,已经显得有条理了。键盘被设计成四行,一是给滑动输入留下空间,二是为了减少全键盘的误触。韵母集中起来方便滑动输入,Z/C/S放置在第一行,U/A/O/E/I这些可以组成鼻韵母的字母放在第二行,上下分工明确。

    就这样,没有复杂的键位要记,仅仅依靠神奇的滑动魔法,所有的声韵母都可以顺利输入了。即使以前没用过双拼,也可以直接上手岁寒输入法进行输入。

    突破双拼的桎梏

    前面介绍过,传统的双拼输入法有零声母的概念。这是由输入规则导致的。因为传统双拼每个声母按键在作为声母的同时也作为韵母使用,输入法为了识别你输入的是声母还是韵母,规定了每个音节必须有声母,而且声母必须在前。

    同样的原因,如果前一位被识别为声母,那么输入法会把后一位优先识别为韵母,并尝试把它与前一位拼到一起。如果拼不到一起,才会把后一位识别为声母。例如微软双拼中,输入H键和C键,如果H键被识别为声母h,那它后面的C键只能被识别为韵母iao。hiao?汉语里没有这个音呀,这就很尴尬,输入法为了避免这种情况发生,只好使用Plan B,把C也识别为声母。面对hc这两个声母的组合,输入法给出了智能联想词——“缓存”,这种情况就是双拼输入法中的简拼。

    全拼输入法中的简拼是非常常见的技巧,还诞生了很多“LZSB”“红红火火恍恍惚惚”这样的简拼梗。然而在传统双拼中简拼是个非主流的存在。这其中有需求不大、断节奏感等原因,但键位二义性是重要原因之一。

    比如你想打出“岁寒”。在全拼中,只要你以前曾经打过这个词,大可放心输入S和H,后面的联想词中一定能找到。但是在双拼中,你输入S和H,H会被识别为ang,最后打出sang。。。

    岁寒输入法不存在键位二义性的问题,又遵从双拼的规则,每个韵母和声母都作为整体输入,所以它具有非常高的简拼自由度。你可以像全拼那样只输入声母,还可以放心大胆地只输入韵母:

    【岁寒】

    输入I+I+U+I+A

    => 打出 “你是不是傻

    如果情况允许,还可以声韵混输。

    【岁寒】

    输入UI+A+W+IU+I+SH

    => 打出“对啊我就是傻

    简拼问题解决了,零声母问题也迎刃而解。岁寒输入法中,并没有第一个字母一定是声母的规定,可以是声母,也可以是韵母(前提是前一位不是省略韵母的简拼),因此也不需要使用零声母进行额外声明。

    使用报告

    目前岁寒输入法的最大限制是词语联想和词库。全拼输入法横扫输入法市场的依靠就是词语联想,不光有本地词库,登陆账号后还有个人词库、云联想、智能联想,千方百计地为想让你减少输入。而我们的岁寒输入法,只有可怜的本地词库。。。所以如果你需要的词组比较生僻,就有机会见识汉字的博大精深。虽然提供了类似辅助码的比划筛选功能,但在长短文字连续输入时,体验并不好。

    刚才说过岁寒输入法的零声母规则,打无声母音节时不需要声明,可以直接输入韵母,这就带来了一个新的问题。当我需要打出无声母音节而直接输入韵母时,输入法会认为我在用简拼。。。给朋友介绍 Android O 系统,我输入“ao‘li’ao”(奥利奥),被识别为“脑力劳动”“妖里妖气”。。。往后翻好几页才看到“奥”。无声母音节也是音节啊喂,为啥完全不当音节看。

    滑动,按照以往经验,通常用来处理精度要求比较低的操作,下划呼出通知栏,右划返回等,充分利用触屏特性,减少用户负担。但是岁寒输入法的滑动操作,在狭小区域里进行,还规定了起点和终点,对精度要求很高。考虑到输入速度,这个操作还要在短时间内完成,可以说有点不近人情。如果我没有实际使用,可能会妄下结论,认为不行。但岁寒输入法的作者不仅想到了,而且真的去做了。且不论它的好坏,能把这些神奇想法实现就已令人五体投地。

    想想我自己,曾经连双拼都懒得学。(光速逃

    一点想法

    关掉网页又打开手机,我们“网上冲浪”的时间没有一刻在休息。日渐成熟的互联网,融进我们生活,我们越来越依靠它看、听和发声。而互联网规律像牢笼,禁锢住我们的思想和行为。各种应用都以我们喜欢的方式出现在我们面前,我们点击、浏览、留下评论。互联网企业又根据这些数据调整产品,直到我们再也离不开它。这一过程中,我们需要做的只有使用,然后等待讨好。日复一日,年复一年,这些应用本身也进化成为生活的一部分,我们不会再去怀疑他们的存在,也不愿挤出时间去审视他们的好坏。甚至一个并不怎么好用的输入法都可以一用十几年。

    好在还有类似岁寒输入法这样的应用,带给我们一些新意,也带给我们一些思考。当改变出现的时候,是不安多一点,还是期待多一点?

    相关文章

      网友评论

      • TimoTimo:設計很不錯,但我想知道如果出桌面版,這設置跟布局要怎樣改
      • 临岁之寒:在下岁寒,感谢分享

      本文标题:岁寒输入法——重新定义双拼

      本文链接:https://www.haomeiwen.com/subject/gazhpxtx.html