赵阳把烟塞回抽屉的时候,陈砚舟已经站在实验室门口了。
他没敲门,直接推开了。屋里几个人正围着一台灰白色的主机箱忙活,电线像藤蔓一样缠在桌脚,显示器蓝光一闪一闪。
“今天能试?”陈砚舟问。
研发组长抬头看了眼时间,又看了看手里的焊枪,“再给十分钟,最后接个电源模块。”
赵阳从后面跟上来,喘着气,“我说你别一早就往这儿跑啊,好歹吃口早饭。这玩意儿又不会自己飞起来。”
“它要是能飞,我们现在就不在这儿了。”陈砚舟脱下外套搭在椅背上,袖口磨得发白的地方裂开了一小条线。
赵阳翻了个白眼,“你这话要让投资人听见,项目立马黄一半。”
没人笑。空气里有股金属烧过的味道,混着胶带和塑料的气味。一个实习生蹲在地上理线,手抖了一下,差点把插头碰掉。
“稳住。”陈砚舟走过去,蹲下帮他固定接口,“别急,通不了电也怪不了你。”
实习生点点头,额头上的汗滑到鼻尖也没擦。
十分钟后,灯灭了。
不是全黑,是那种测试专用的暗光模式。墙上挂着的显示屏亮起一行字:【系统启动中……】
所有人屏住呼吸,眼神紧紧盯着屏幕,心脏都提到了嗓子眼。
三秒后,机械音响起:“设备自检完成,语音交互模块就绪。”
赵阳猛地拍了下大腿,兴奋得跳了起来,大声喊道:“成了?!”
话音刚落,头顶的日光灯“啪”地亮了,窗帘轨道发出“咔哒”一声,缓缓拉开一条缝。
“我靠!”有人激动得一下子从座位上弹起,双手用力鼓掌,脸颊因兴奋而泛红,嘴里不停地喊着:“真动了!真动了!”
只见窗帘猛地往上冲,撞到顶轨发出巨响,那声音在寂静的实验室里格外刺耳,仿佛是项目遇到阻碍发出的抗议。屋里一下子静了,每个人都面露紧张之色,有人甚至下意识地捂住了耳朵。
工程师赶紧拔电源,趴在地上查线路板。另一个翻日志,手指发颤:“驱动电流超标,可能是主板过热保护触发了。”
陈砚舟眉头紧锁,眼神在设备和日志之间来回扫视,大脑飞速运转,思考着可能的原因和解决办法。
“是不是烧了?”赵阳低声问。
没人回答。
陈砚舟弯腰捡起掉落的螺丝,走到窗边,把松动的接头拧紧。动作不快,但每一步都稳。
“重新上电。”他说。
“现在?”
“现在。”
第二次启动比第一次顺利。灯光、窗帘、空调依次响应指令。这次唤醒只说一个“启”,反应速度明显快了。
赵阳咧嘴笑了:“行啊,这回真成了。”
掌声响了起来,夹杂着几句“终于熬出来了”。
然而,当窗帘猛地往上冲撞到顶轨断电时,屋里的兴奋瞬间消失得无影无踪。每个人脸上都露出了沮丧的神情,有人无奈地叹气,有人低着头不敢看别人,空气仿佛都凝固了。
陈砚舟没鼓掌。他打开手机,回放刚才录的视频,慢放到老人模拟操作那段——画面里假人坐在椅子上,说了三遍“启,开灯”,第三遍才成功。
他把手机递给赵阳。
赵阳看了两秒,笑容淡了。
“这不是智能。”陈砚舟说,“这是添麻烦。”
“可技术已经实现了。”赵阳不服,“总不能要求第一版就完美吧?”
“我不是要完美。”陈砚舟指着屏幕,“我要的是简单。你说一句就能办的事,凭什么让人重复三次?”
“系统需要确认信号清晰度。”
“那就在后台处理,别让用户承担代价。”
会议室很快聚齐了人。陈砚舟把视频投到墙上,一句话没讲,只放那段失败记录。
底下有人低头记笔记,有人交换眼神。
“我们做的不是展示品。”陈砚舟开口,“是要进人家卧室、厨房的东西。谁家老人会对着空气喊三遍才开灯?谁生病躺在床上还得大声说话才能关窗帘?”
没人说话。
“所以接下来,目标只有一个。”他在白板上写下几个字:极简交互,高容错率。
“什么意思?”有人问。
“意思是,哪怕用户发音不准、声音小、背景吵,我们也得让它听懂。”陈砚舟合上笔盖,“做不到这点,产品就不该出门。”
赵阳坐在后排,本来想反驳,看到研发组几个年轻人已经开始改代码,话又咽了回去。
散会后,陈砚舟留下组长单独聊。
“上次预算里有个项目叫‘测试环境搭建’,执行了吗?”
“做了三分之二,剩下那部分……原计划下周开始。”
“提前。”陈砚舟说,“用预留资金,加装信号屏蔽舱和压力测试模块。”
“钱批下来了就能动?”
“我已经通知财务走流程。”
组长点头走了。陈砚舟坐回椅子,翻开笔记本,在蓝笔栏写下一排待办事项。
第一条是:更换语音识别模型训练集,增加老年失真语料样本。
第二条:电机驱动电路重设计,避免过载断电。
第三条写着:用户不会读说明书。
赵阳这时候端了杯咖啡进来,放在桌上。“你还真打算让机器听懂咳嗽声?”
“如果咳嗽是唯一能发出的声音呢?”陈砚舟抬头,“上周养老院试点的数据看了吗?八十岁以上老人,平均每天有效语音输出不到六句话。”
“所以?”
“所以我们不能等他们适应机器。”陈砚舟合上本子,“得让机器学会适应人。”
赵阳哼了声,“你这标准,神仙来了都得加班。”
“那就加班。”陈砚舟站起来,“反正现在有钱了。”
赵阳愣住,随即笑出声:“你总算说了句痛快话。”
“我没变。”陈砚舟走向门口,“只是知道什么时候该往前推一步。”
走廊灯光忽明忽暗,可能是电路还没完全稳定。远处传来敲击键盘的声音,节奏越来越快。
回到实验室,新一批传感器正在安装。有人举着红外探头调试角度,嘴里念叨着参数。
陈砚舟没打扰,站在原型机旁看了一会儿。面板上的指示灯规律闪烁,像某种呼吸节律。
他伸手摸了摸外壳边缘,温度正常。
赵阳凑过来,“下一步干啥?拍宣传视频?搞个发布会?”
“下一步。”陈砚舟打开记录本,“把昨天所有异常日志整理出来,按发生频率排序。”
“这些破数据有啥用?”
“问题藏在里面。”陈砚舟翻到一页涂满红圈的纸,“你看这里,七次误触发里,五次发生在空调启动瞬间。说明电源波动影响了麦克风灵敏度。”
“那怎么办?”
“加滤波器。”陈砚舟用蓝笔画了个框,“或者调整供电时序。”
赵阳看着那一堆符号直摇头,“你说的我都听不懂。”
“没关系。”陈砚舟抬头,“你只要记住一点——每次失败都不是结束,是线索。”
赵阳张了张嘴,最终没再说什么。
夜深了,大部分人都走了。只剩两个程序员还在调算法,屏幕上的波形图不断跳动。
陈砚舟坐在角落,手里拿着测试记录本,一页页翻看。某一页停住了。
上面写着:第14次测试,指令“关窗”,系统误执行为“开灯”。
他盯着这行字,手指轻轻划过纸面。
窗外雨开始下,打在玻璃上发出细碎声响。
实验室的灯忽然闪了一下。
所有人都抬头。
陈砚舟没动,目光落在语音模块的接口处。
他慢慢翻开新的一页,在顶部写下:
【检查电源隔离方案】
笔尖顿了顿,继续写:
【尤其是空调与主控共线时的干扰情况】
最后一个字落下时,头顶的日光灯再次闪烁。