中文比英文麻烦。这是林知夏的团队在第四个月达成的共识。
麻烦不在于复杂度——汉字本身是有规律的,形声、会意、象形,每一种都有内在逻辑。麻烦在于输入。英文只有二十六个字母,键盘上放得下。汉字有几万个,放不下。所以任何中文输入法都是在做一件事:用有限的操作,从无限的汉字库里选出你要的那一个。
而林知夏要做的事,比这更难——他要在没有物理键盘的屏幕上,让中国人打字。
周把第一版输入法原型装进测试机的时候,李家港正好在实验室。周递过来那台缠着胶带的测试机,李家港拿起来,在屏幕上点了一个拼音:nihao。
屏幕上跳出候选词:你好、拟好、泥好、你号。
他选了你。然后他接着打:nihaoma。
候选词跳出来的时候,他发现自己在等。等屏幕反应。那一瞬间的延迟,在英文输入法上几乎感觉不到,但换成中文拼音——每个字母都要排队,每个候选词都要等待加载——那种卡顿被放大了。
李家港说。
林知夏站在旁边,双手插在口袋里。我知道。
有多慢?
比英文输入慢四十。比黑莓键盘慢七十。
李家港把测试机放下。慢七十,用户不会用。
林知夏没有反驳。他走到工作台前,打开那台测试机的调试日志。屏幕上刷出一行一行的数据——每一个按键的响应时间、每一次候选词的加载时长、每一次内存分配的开销。林知夏看了大概三分钟,然后拿起笔在白板上画了一条线。
这是现在的速度。他在线的一端画了一个点,这是目标。
中间差多少?
差一个算法。林知夏说,现在的词库是静态的。每个拼音组合对应一个固定的候选列表。如果用户打一个生僻词——他在白板上写了一个字,茴香——这个词不在词库里,系统就不会把它排在前面。用户需要翻很多页才能找到。
翻页太慢。
太慢。林知夏放下笔,但如果词库是动态的——系统记录用户输入习惯,按使用频率排序,生僻词也能在几次输入之后自动排到前面。这样输入速度会大幅提升。
需要多久?
林知夏回头看了一眼坐在角落里的吴。吴正戴着耳机,面前是一台笔记本电脑,屏幕上滚动着密密麻麻的代码。他听到有人提到动态词库,摘下耳机抬起头。
两个月。吴说,词库算法我可以重写。
两个月后能进测试机?
吴顿了一下,但有一个问题。
词库的数据量。如果我们要做到覆盖九成常用词汇——他在键盘上敲了几下,屏幕上跳出一组数字,词库本身会占用一百兆左右的存储空间。我们的手机总存储只有两Gb。一个输入法吃掉一百兆,其他应用就没地方了。
李家港想了想。能压缩吗?
能压缩。吴说,但压缩会影响速度。解压需要时间。时间就是刚才你感觉到的那种卡顿。
办公室里安静了几秒。林知夏走回白板前,在那条线的旁边画了一个圆圈。他在圆圈里写了一个字:
李家港问。
词库存在云端。林知夏说,手机里只存常用的那部分——比如覆盖百分之七十的词汇。生僻词实时从云端调取。这样手机本地词库只需要三十兆,速度也能保住。
李家港看着白板上的那个字。2007年,这个词还不像后来那么热。大多数人听到想到的是天上的云,而不是服务器集群。但林知夏已经在用了。
云端调用需要网络。李家港说。
需要。
没网的时候怎么办?
林知夏沉默了几秒。没网的时候用本地词库。速度会慢一点,但至少能用。他拿起笔,在字的旁边又画了一个小方块,写着。两种模式切换。有网用云端,没网用本地。系统自动判断。
李家港点了点头。
林知夏放下笔,走回工作台。他拿起那张两个月前方洁瑛画的键盘方案速写——键盘弹入弹出的示意草图——把它贴在了白板的旁边。
输入法界面,就是屏幕下半部分。林知夏说,拼音九宫格加候选词栏。空格键大一点,方便选词。语音输入的入口也放在这里。
语音输入?李家港问。
林知夏从抽屉里拿出另一个测试机。这台机器的屏幕上运行着一个不同的界面——底部有一个麦克风图标,灰色的,旁边有一行小字:点击说话。
他按了一下那个图标,对着机器说了一句:香港的天气怎么样。
机器顿了两秒。屏幕上跳出一行字:香港的天气怎么样。
李家港看着那行字。识别得不算准——但识别出来了。
谁做的?他问。
一个语音团队。三个人,从微软和谷歌挖的。林知夏说,现在还只能做到简单的语音到文字转换。准确率大概百分之八十五。方言更是没法识别。
能提升吗?
能。需要更多的语音数据——不同人、不同口音、不同环境下的录音。让算法学习。林知夏把测试机关掉,但如果要赶在明年——不,后年——发布,语音输入只能做到基础功能。准确率争取做到百分之九十。再多就来不及了。
李家港没有说话。他坐在一把椅子上,看着白板上那些图——方洁瑛的键盘草图、林知夏的系统架构图、吴写的词库性能曲线,还有那个画在角落里的字。几张纸和一块白板拼在一起,像一幅不太完整的拼图。
但他知道这些东西会拼起来的。
语音的事,他说,你先做百分之九十。等手机卖出去,用户的数据回来,再迭代升级。
林知夏点头,把那个灰色的麦克风图标拖进了系统的开发目录里,加了一行标签:V1基础版,等待迭代。
那天傍晚,李家港走出将军澳的实验室大楼,天已经快黑了。工业邨的路灯是橘黄色的,在地面上投出一圈一圈的光斑。他走在回停车场的路上,想起那个灰色的麦克风图标。
语音输入。在屏幕上点一下,说句话,手机就把字打出来了。
他想到爷爷的笔记本。那本笔记本上用钢笔写满了技术笔记和蓝图,但从来没有一个人用声音记录过什么。在那个年代,技术只能靠笔和纸传递。现在——他低头看了看自己的口袋,手机没在里面,放在了办公室——现在只要说一句话,它就会变成文字、变成数据、变成指令。
他走到车边,拉开车门,坐进驾驶座。他没有马上发动车。他看着挡风玻璃外那些路灯的光斑,想着林知夏说的需要更多的语音数据。
中国有十几亿人。说普通话的、说粤语的、说闽南话的、说四川话的。每一种口音都是一个数据集。他想了想,拿起手机给楚梦瑶发了一条消息。
你有认识做语言学研究的人吗?
回复很快:有。中科院的。怎么了?
帮我约一下。
好。什么时候?
越快越好。
他把手机放在副驾驶座上,发动了车。引擎的声音在工业邨的夜色里很轻,像是怕惊动什么。车灯亮起来,两道白光铺在路面上,照亮了通往主路的方向。
他开出去的时候想——语音输入,第一步是让人对手机说话。第二步,是让手机听懂不同的中国话。第三步——手机不仅能听懂,还能回应。
他踩下油门,车驶上了将军澳道。路两旁的灯一盏一盏往后退,连成一条流动的光线。
后年,曙光手机就要发布了。
他还有两年。他要让这台手机听懂几亿人说话。