1 概述
目前的双拼一般是在智能拼音输入法的基础上增加一个声母和韵母对应表来实现的。这样的好处是,可以同时支持多种双拼,并能共享字词库。但是,这种整句模式的智能双拼不便于兼容简拼,因此其缩减码长的效果被不能使用简拼大大削弱。强行兼容的话,又会极大损害音字转换的准确性,而且影响了两码一字的输入节奏。同时,单字的重码问题依然没有得到解决,回改选重非常麻烦,严重降低输入效率。有的输入法,如手心输入法,可以支持一个直接辅助码,在一定程度上缓解单字选重的问题,但是没有解决根本问题。
小鹤音形是自然码之后影响比较大的双拼双形输入法。小鹤音形采用字词编码的方式,解决了兼容简拼和缩减编码的问题,在四码时还能省略空格。同时,小鹤音形可以利用两个部件码来较好地区分单字重码。但是,由于需要同时掌握双音和双形,学习难度还是相当大的。
有没有什么办法降低小鹤音形的学习难度,同时提高它的效率,还增强它的功能呢?有这种好事吗?答案是肯定的。秘诀就是采用顶功编码技术!这样,可以让小鹤音形用户也享受顶功技术带来的红利。声笔小鹤就是对小鹤音形的顶功改造,并且取得了非常好的效果。
对于小鹤音形用户来说,学习声笔小鹤的成本是非常低的,只需要了解一下双拼的细微变化并掌握笔画即可,其基本内容是:声母不分平翘舌,零声母用v表示,韵母没有变化;双形用顺序笔画代替,用aeuio分别表示折、横、撇、竖、点五种笔画。
2 优势
声笔小鹤相比小鹤音形的优势可以总结为:更简单、更高效和更强大。
更简单是因为:首先,声笔小鹤用v表示零声母,简化了零声母音节的编码方式;其次,声笔小鹤不区分平翘舌;最后,也是最重要的是,声笔小鹤用aeuio代表笔画,代替了复杂的辅助码。
更高效是因为:首先,单字三码起顶,码长更短;其次,字词支持动态调频,可以减少击键次数。
更强大是因为:首先,声笔小鹤实现了字词分离,不再纠结是字优先还是词优先,可以支持GBK字符集超两万的汉字;其次,可以通过笔画反复进行重码筛选,轻松应对超大字词库;最后,具有自动词组功能,没有的词组拆开打过一次后就能自动造好。
3 快速入门
为了减轻初学者的记忆负担,在手机上提供了助记皮肤,可以长按N键打开或者关闭助记。在打开时,给出了韵母、笔画和零声母用键的提示,如下图所示。如果是在电脑上,则可以把该图并放在电脑桌面上,在打字的时候帮助记忆。

注意,「嗯n」[呣m」「嘸m」「呒m」这几个字是没有韵母的,这时用v作为韵母,称为零韵母。
3.1 基本编码
声笔小鹤的编码规则和示例如下。其中,s表示声母,不区分平翘舌;y表示韵母;b表示笔画。b为aeuio,s为b之外的21个英文字母,数字表示第几字(其中0表示末字),_表示空格。笔画不足时,则重复末笔。注意,您输入时,四码字词的候选顺序可能有变化,这是因为动态码长调整的缘故。本文在后面的动态码长一节,会专门讲动态码长调整。
- 单字:
sybb,即声母加韵母再加前两个笔画。例如,就jqoe 从csuo 觉jnoo 钱qmue 貌mcuo 缘yraa 源yroo 简jmue。注意,单字的后两码都是采用的顺序单笔画,而不是小鹤音形里复杂的双形,学习难度大大降低。 - 二字词:
s1y1s2y2,即第一字的声母韵母加第二字的声母韵母。二字词的例子有关系grxi 参加cjjx 正确zgqt 模范mofj 答应dayk。注意,这里的正zg是没有区分平翘舌的,与小鹤音形的正vg不同。 - 三字词:
s1s2s3y3,即前三字的声母加第三字的韵母。三字词的例子有示范区sfqu 想不到xbdc 处理器clqi 宪兵队xbdv。注意,这里的示s 处c是没有区分平翘舌的,与小鹤音形的示u 处i不同。 - 多字词:
s1s2s3s0,即前三字的声母加末字的声母。多字词的例子有爱因斯坦vyst 有限公司yxgs 人民共和国rmgg 声东击西sdjx。注意,这里的爱v是零声母音,用v代表零声母,而小鹤音形里「爱」的首码为a。
当一个字有多种不同的读音且声母不同时,则可以用多种方法输入该字。例如,「盛」对应的拼音有cheng和sheng,对应了c和s两个不同的声母,因而它在声笔小鹤中也会有两个编码,分别是cgeu和sgeu。
对于非成字偏旁部首,可以用纯笔画的方式输入。比如,「亻」可以用uiiii输入。
在声笔小鹤中,单字和词组各自有不同的编码格式,它们享有不同的编码空间,不会发生冲突,不存在单字和词组那个优先的问题。单字肯定是用sybb格式,其第三码是笔画,而词组的编码第三码肯定是声母,笔画和声母所用的编码字母集合是不相交的。
例如,单字觉jnoo 钱qmue 貌mcuo 缘yraa,和词组关系grxi 参加cjjx 示范区sfqu 想不到xbdc 人民共和国rmgg 声东击西sdjx,它们之间是不可能重码的。
3.2 缩减编码
声笔小鹤中的缩减编码,又称为缩减码,可以缩短字词的输入码,类似于搜狗拼音中的固顶字词或者五笔字型中的简码字,或称简码。
3.2.1 常规简码
声笔小鹤的单字有一、二、三级简码,分别称为一简字、二简字和三简字。一简字的例子有就j 我w 没m,二简字的例子有从cs 此ci 起qi 来ld,三简字的例子有节jpe 未wwe 凝nko 管gru。声笔小鹤的词组是不存在缩减码的。由于声笔小鹤的常规三简字数量庞大,高达1658个,而且不乏常见字,所以对单字输入效率的提升有很大帮助。这就是为什么声笔小鹤用极其简单的五个笔画代替小鹤音形的大量辅助码后,单字的平均码长反而下降的原因。
在使用声笔小鹤时,要尽量使用单字的简码,对输入效率的提升帮助很大,因为简码的码长短,而且是静态编码,不会发生改变,便于形成条件反射。
3.2.2 空位简码
用就会造成很大的浪费。为此,利用单字的空码位安排了一些具有特殊编码的常见单字和二字词,分为声笔字、声声词、声笔笔词、声声笔词、声笔笔笔词和声声笔笔词(详见sbxh.dict.yaml)。这种简码字词也能用来离散重码。
声笔字的编码方式是声母+首笔,如刃ra 扶fe 极je 请qo 项xe。为了便于用户使用,这些字在输入声母后会有如下提示。

上述简码字在后接二简字时,会形成无重码的二字组合,可以利用这种特性进行盲打输入,比如:「极好」「扶手」「项项」等。

声声词的编码方式是两个字的声母,如重新cx 舞曲wq 结构jg 双目sm。声笔笔词的编码方式是首字声母+次字的首笔和次笔,如比较bea 幸好xau 技术jei 激动jee。声声笔词的编码方式是首字的声母+次字的声母和首笔,如并非bfi 独立dlo 赣南gne。声笔笔词和声声笔词在紧接后续字词的声母时可以被顶上屏幕,因此一般只需要三键。声笔笔笔词的编码方式是首字声母和首笔+次字的前两笔,如布局beae 姓名xaua 教师jeiu。声声笔笔词的编码方式是首字的声母+次字的声母和前两笔,如北非bfie 鼓弄gnee。
为了便于用户使用,上述二字词在输入全码后会有如下提示。





3.2.3 组合简码
声笔小鹤三简码位上设置是二简字词和一简字的组合,而不一定是真正的词,例如:挂是gxs 时是sis 富有就fyj 无限发wxf等等。这种组合一般需要空格上屏,不管是否构成词组,是绝对没有重码的,可以放心大胆的盲打。
3.2.4 高频简词
在声笔小鹤中,还有一种二字简词,是取两字声母作为编码的高频词,例如:「没有」「管理」「看见」等等,输入两码时会提示在单字之后作为次选,可用Tab或者单引号上屏。

二字简词在声笔简码中称为声声词,共有441个,详见声声词。为了便于用户使用,这些词在输入全码后会有如下提示。

3.3 扩展编码
3.3.1 单字扩展编码
由于汉语声母和韵母组合规则的限制,双拼编码对同音字的离散能力比较弱。声笔小鹤可以通过增加字的前两个笔画来快速地离散重码,这和传统的双音双形输入法类似。
声笔小鹤的四码单字空间只有21×26×5×5 = 13650个码位,而汉字在音节上的分布极不均匀,同时双拼又存在音节合并,所以单字的重码现象是相当严重的。对于重码的重灾区,仍然需要一次甚至多次翻页才能找到想要的字。比如,「吚」就需要三次翻页操作才能找到。
为了解决这个问题,声笔小鹤利用顶功编码的特性,通过扩展编码在基础编码之上追加字的第3至8个笔画,就能做到输入单字时无需翻页,且一般能提前到首选而利用顶功来省略空格。
3.3.2 词组扩展编码
为了适应现今的信息社会,中文词汇的数量暴增,传统字词输入法的四码空间显得捉襟见肘。按照26个字母编码,满打满算,四码空间也只有26×26×26×26 = 456,976个码位。然而,实际的输入法空间利用率是很低的,编码分布很不均匀,所以随着词组数量的增加,重码的重灾区越来越多。
声笔小鹤的四码词组空间为21×26×21×26 = 298,116个码位,而收录的词组数量有100万多。所以,词组的重码重灾区是比较常见的。即使比较常用的词,都有可能需要翻页,甚至数次翻页来输入。翻页查找属于强交互的操作,每页都需要用眼睛扫瞄六个选项,是非常耗费时间的,会大大降低输入效率,而且容易看花眼而出错。
为了解决以上问题,声笔自然采用了扩展编码,利用编码的顶功特性,通过追加多达六个笔画,进行多级筛选。在重码严重时,可以快速筛选出所需的重码词。结合后述动态码长的使用,完美地兼顾了编码空间与输入效率,既能享有巨大的编码空间,又能具有很短的平均码长,两全其美。
对于二字词来说,扩展编码是首字的前两笔加次字的前四笔。
例如,「质子」一词在第一次输入时,在输入zizi后需要按三次翻页键,即出现在第四页上,然后再选重。每一页,都需要用眼睛扫视 6 个选项,人机交互频繁,效率很低。然而,如果再追加第一字前两个笔画的话,「质子」就出现在第一页上。
对于三字词和多字词来说,扩展编码是前三字的前两笔。
比如,「旧石器」一词在第一次输入时,在输入jsqi后需要按多次翻页键,然后再进行选择,效率比较低,但是在追加首字的前两笔ii后它就出现在第一页上了。
再如,「结绳记事」在第一次输入时,输入jsjs后需要按多次翻页键才能找到,而在加上首字的前两笔aa后就可能没有重码了。
3.4 编码反查
在使用声笔小鹤的时候,特别是在学习声笔小鹤之初,不可避免地会遇到不会打的字。怎么办呢?程序提供了丰富的反查手段,可以通过笔画和拼音来反查编码,还可以采用字海两分来反查和输入非 GBK 汉字。另外,还通过反查提供了临时拼音输入法。
3.4.1 拼音反查
在知道拼音而不知道字形时用 a 引导拼音反查,注意零声母要用 v 充当。
例如,要反查「访」字的编码,就在输入 a 之后再输入它的拼音 fang,所以实际的输入为 afang,结果如下图所示。反查出「访」字的编码为 fhoa。如果是多音字,那么就会有多个编码,如图中的「房」字就有 fhoa 和 phoa 两个编码。

对于零声母字,如「案」字,在反查时除了用a引导还需要在正常拼音的前面加 v,因为 an 是零声母音,所以实际的输入为 avan。在图中提示出的案vjoo,表示「案」字的编码为 vjoo。

3.4.2 笔画反查
在完全不知道读音的时候,直接用 aeuio 按顺序输入笔画进行反查,无需引导。
在下面的笔画反查的例子中,不用引导而直接输入 uuao 后,出现了以这四个笔画开头的字。第一项是反fluuao,表示「反」字的编码为 fluuao。第二项为般bjuuao bouuao pjuuao,说明「般」是个多音字,有三个编码。

3.4.3 两分反查
通过i引导的拼音还支持用字海两分法来进行反查, 支持查找八万多汉字,一般用于反查难读而易于两分的字或者输入 GBK 以外的字。GBK 以外的字,声笔小鹤不提供正常编码,不能按正常方式输入,只能在两分查找到后选择输入。引导字母i可以理解为英文inquire(询问)的首字母,以便记忆。
下面是字海两分法查找的例子。第一个例子是反查「龖」字的编码,在输入到第二部分拼音的第一码时就出来了。第二个例子是通过输入「尸」和「水」的拼音来反查「尿」的编码,输入了两部分完整的拼音。


对于非 GBK 字集里的「㕛」字,它是没有编码的,只能用两分法来输入,如下所示。

3.4.4 临时拼音
在一时半会想不起某个词中某个字的笔画,而这个字因为不常见又不方便用单字进行反查时,可以用 a 引导临时拼音来变相地输入词组或者查到该字的写法。但是,对于反查出来的词组是不会显示编码的。
例如,「饕餮」可以用 ataotie 来查找和输入,而「耄耋」可以用 amaodie 来查找和输入。注意,用于引导的字母 a 是不会显示的。


4 技能提升
4.1 续码顶屏
在小鹤音形中,当字词的码长不足四时,需要用空格上屏,只有码长为四时的首选字词才能省略空格。在声笔小鹤中,三简字在后接其它字词时,空格是可以省略的。
例如,声笔小鹤的三简字如节jpe 未wwe 凝nko 管gru,在连续输入时都不需要空格上屏。
再如,用纯单字输入「中国人民站起来了。」这句话,声笔小鹤输入时的用键为 zs_go_r_mb_zjoqi_ld_l.。若切换到单字状态,那么二简字的空格还可省略,能少用5键,进一步提升效率。
4.2 动态码长
动态码长是指在输入的过程中,字词的码长会适应用户的使用习惯而发生变化,越常用的字词码长会变得越短,而不常用的字词码长会变长,从而在总体上提高输入效率。动态码长不仅是码长的调整,也包括重码顺序的调整,实际上都是因为对频率的调整而引起的。
当四码字词有重码的时候,如果选择了某个非首位的字词,那么它的频率权重就会提高,在下次输入的时候,其排序就会提前。一般通过一、两次选择就可以提前到首位,从而就能利用顶屏来节约一次按键。
例如,第一次输入jiei时,「吉」可能是排在第五位的,那么用i选择上屏后,下次输入就可能排在首位了,于是可以利用顶屏节约一次选择键。
再如,第一次输入 suss 时,如果「输送」排在第二位,用a选择上屏后,下次输入就可能排在首位了。
如果在输入的时候采用了扩展编码,比如用ziziuu输入了「质子」,那么在下次输入的时候一般就只需要zizi就可以了,码长得到了缩短。
4.3 自动词组
声笔小鹤目前自带100万多词组,覆盖的面已经很广。但是,用户在使用过程中不可避免地还会遇到缺词的情况,需要添加新的词组,而且对于不满意的词组可能还想删除。为了避免产生大量不需要的废词,在单字模式时是不进行自动造词的。
4.3.1 自动造词
声笔小鹤的造词是在输入过程中自动进行的。例如:输入声sge 笔biu后,下次输入sgbi时就会有该词了,只是如果有重码的话,新造的词会排在后面。如果重码太多,可以追加首字前两笔或者用Shift+Tab一次性地跳到最后,以避免多次翻页。自动造的词组是临时词组,带有太极标志,优先级别低,只有在选择使用一次以后,才会成为正式词组,并提高优先级别。
需要注意的是,在进行枚举自动造词的时候,是以编码对应的字、词为单位来进行组合的,并不是以单字为单位的。例如,在输入声笔sgbi 系列xilp 码mae后,生成的词组为「声笔系列码」「声笔系列」「系列码」,而不会生成「声笔系」「笔系列」「列码」等。另外,如果之后马上使用了退格键,系统就会自动删除所造的词组;中间夹杂有非汉字的话,也会中断造词。
4.3.2 打空造词
如果在输入四码后,发现没有所需的二字词,且首页未满。若首字是二简字,则可用条件顶屏。若首字不是二简字,那么可以按Ctrl+L定位在第二码后进行快捷造词。
如果在输入五、六码后,发现没有所需的二字词,则可按单引号将追加的笔画置于前两码后,再继续造词,可以避免浪费已经输入的编码。
4.4 组合变换
除了顶屏之外,编码变换也是节约用键的重要手段。一、二简字的组合,不管是不是词组,都可以通过这种方式来进行输入,从而有效地利用编码空间。注意,这个时候是没有提示的,需要用户对简字非常熟习才行。编码变换通过分号键触发,有时也通过Tab键和单引号触发。
(1) 一简字与一简字的组合
例如,「个人」一词,可以按词组的方式用gerf来输入。更好的方式是当成两个一简字用g_r_来输入,其中下划线表示空格,可以离散重码。然而最好的方式是采用编码变换,用gr;来输入,可以节约一次用键。
(2) 一简字与首选二简字词的组合
例如,「一会」可以用yhv;来输入,虽然不能节约用键,但是输入变得确定了,而且可以将yihv的首选让给「议会」,就起到了离散重码的作用。又如,「我富有」可以用wfy;来输入,其中「富有fy」是首选二简词。
(3) 次选二简词与一简字的组合
用Tab上屏的次选二简词与一简字可以组合起来通过Tab一起上屏,从而节约一次空格键。例如,「我们的」在常规输入时,得用wm + Tab + d + 空格,而利用组合变换后就只需wmd + Tab了。
(4) 一简字的组合与次选二简词
一简字与用Tab上屏的次选二简词可以组合起来通过单引号一起上屏,从而节约一次空格键。例如,「的时候」在常规输入时,得用d + Tab + sh + 空格,而利用组合变换后就只需dsh'了。
(5) 首选二简字词与首选二简字词的组合
例如,「中数」可以是zssu;来输入,而「太放松」可以用tlfs;来输入,可以节约一个空格键。
(6) 首选二简字词与二简词的组合
首选二简字词与二简词可以组合起来通过单引号一起上屏,从而节约一次空格键。例如,「太麻烦」用单引号组合变化后,用tdmf'就可以输入了,否则就需要用td_mf'来输入。
(7) 首选二简字词与三简字的组合
首选二简字词与三简字可以组合起来通过分号一起上屏,虽然并不能节约用键,但可以避免回改。例如,假设想用户以为「都顶」是个系统有的词组,然而输入dzdk后发现没有该词,同时又知道「都」是二简字、「顶」是三简字,于是就可追加「顶」的第三码e后,再用分号变换来上屏「都顶」。
(8) 三个一简字的组合,可以用Shift+空格来输入,手机上可上滑空格。例如,「一个人」「就是了」「是不是」「不是不」等都可以这样输入。
(9) 二简字加两个一简字的组合,可以用Shift+空格来输入,手机上可上滑空格。例如,「有一个」「两个人」「那不是」「走下去」等都可以这样输入。
4.5 自定词典
除了声笔系列码公用的自定词典sbzdy.dict外,声笔小鹤还提供了手动调整词典sbxh.dict。如果用户觉得系统提供的静态字词如空码字词、声声词等不理想,还可以对它们进行调整和定制,甚至增加其它类型的字词。字词的编码可以是有理的,也可以是无理的,但是务必符合声笔小鹤的输入逻辑,否则可能影响顶功或造成无法预料的情况。修改的方法是,用编辑器修改sbxh.dict文件,保存后重新部署一下就可以生效。在修改的时候,一定要按照词典的格式进行,首列为词条,第二列为编码,两者之间以制表符分隔。
注意,有的编辑器默认会自动将制表符转换为空格,那样就会失败。如果是个别的条目,可以复制一条合规的来改。如果条目很多,就需要在编辑器设置中禁止自动将制表符转换为空格。
附录:编码格式
在后面各方案的编码格式中,采用了一下表达方式。
- s = [qwrtsdfgzxcvbyphjklnm]
- y = [qwertasdfgzxcvbyuiophjklnm]
- b = [aeuio]
^表示起始顶屏码位,字母后的数字表示词组中的第几个字,0特别地表示末字;'表示码长调整位;s表示声母(大写时表示用大写字母输入),y表示双拼,b表示笔画。s采用 aeuio 以外的 21 个英文字母,y采用所有26个字母,b采用 aeuio 这几个元音字母。注意,笔画不足时,则重复末笔。
为了便于用户总结和记忆声笔小鹤的基本内容,现将其字词的编码格式以浓缩的表达式方式总结如下。
- 单字
syb^b'bbbbbb - 二字词
s1y1s2y2^'b1b1b2b2b2b2 - 三字词
s1s2s3y3^'b1b1b2b2b3b3 - 多字词
s1s2s3s0^'b1b1b2b2b3b3