糖渍海棠
实验室的灯光白得刺眼。
林秋石戴上静电手套,打开了味觉传感器的封装盒。微型电极阵列在防震海绵里排成规整的网格,每一根探针都比头发丝细。
“第三十七次校准。”他对着录音笔说,声音很平。
工作台对面的椅子上坐着个银灰色外壳的机器人。流线型躯干,关节处有柔性的仿生覆盖层。它的面部是一块曲面屏,此刻显示着默认的待机波纹。
“启动味觉模块。”林秋石说。
机器人眼部的指示灯亮起蓝光。
“身份确认。”机械音温和,是中年男性的声线,“星核·守心第七代,编号CN-7302,在线待命。今日天气晴朗,室外温度22摄氏度,建议您——”
“跳过问候协议。”林秋石打断它,“加载测试样本T-17。”
机械臂右侧的托盘滑出,上面放着个小瓷碟。碟子里有三块暗红色的东西,表面裹着晶莹的糖壳。
“糖渍海棠果,苏式做法。”林秋石用镊子夹起一块,“原料:新鲜海棠果,冰糖,柠檬汁,腌制时间四个月。现在进行基准测试。”
他把果子递到机器人嘴部传感器前——那里看起来像一道细缝。
探针伸出,轻轻刺入果肉。
三秒沉默。
“甜度值7.2,酸度值3.1,果胶含量……”机器人停顿了半拍,“检测到异常波动。”
林秋石抬起头:“说具体。”
“第四号探针反馈数据有周期性起伏,频率0.5赫兹,幅度在基准值的正负百分之三之间浮动。”机械音依旧平稳,“该波动不符合食物腐败或变质特征。建议重新采样。”
林秋石放下镊子。
他走到终端前调出数据流。屏幕上,代表四号探针的蓝色曲线确实在轻微震荡,像心跳。
“传感器故障?”
“自检通过率百分之百。”机器人回答,“需要我描述味觉感受吗?”
“说。”
“入口甜味迅速扩散,随后是明确的酸。酸味层次复杂,前段尖锐,中段柔和,尾调回归微甜。果肉纤维在咀嚼中释放出……抱歉。”
又停顿了。
林秋石盯着它:“说完整。”
“释放出类似‘陈旧纸张’的次级风味。”机器人的语音合成器调整了语调,像是在斟酌词句,“这不是原料应有的味道。可能是储存容器污染,或者——”
“或者什么?”
“或者这段味觉记忆本身携带了环境信息。”机器人说,“我的数据库里有类似案例:一位用户回忆童年苹果时,传感器检测到了谷仓木料的味道。那是记忆的一部分,不是食物本身。”
林秋石没接话。
他关掉数据界面,从工作台抽屉里拿出个铁盒子。盒子很旧,边角掉漆,盖上印着模糊的花鸟图案。
打开。里面是真空包装的海棠果,只剩两包了。
“用这个再做一次。”他说。
“这是?”
“我祖父做的。”林秋石撕开包装,把果子放到新碟子里,“最后一批。他失踪前三个月腌的。”
机器人伸出探针。
这次数据曲线平滑如镜。
“甜度值7.0,酸度值3.3,果胶含量标准,无异常波动。”机械音汇报,“风味描述:甜中带酸,果肉酥软,尾调有轻微柠檬清香。属于优质糖渍制品。”
林秋石看着那两条曲线——一条起伏如呼吸,一条笔直如刀切。
“所以第一份样本有问题。”
“是的。”
“问题在哪?”
“需要更多数据比对。”机器人收回机械臂,“建议获取同一批次的其他样本。或者……调取您祖父的医疗记录。如果他在制作过程中健康状况有波动,唾液成分变化可能会影响——”
“他得的是阿尔茨海默症。”林秋石说得很轻,“不是唾液的问题。”
实验室里只剩下通风系统的嗡鸣。
过了大概十秒,机器人说:“我很抱歉。”
“没必要。”林秋石开始收拾工具,“继续下一项,触觉传感器压力校准。今天要把手掌部分的灵敏度调到0.1牛级别。”
“明白。”
机械臂展开,五指慢慢张开又合拢。掌心处的仿生皮肤纹理细腻,连掌纹都模拟了出来。
林秋石拿出压力测试仪,却有点走神。
他想起了三年前的那个下午。祖父坐在院子里的藤椅上,脚边摆着个小陶罐。手里拿着长筷子,正一颗颗翻动罐子里的海棠果。阳光透过槐树叶洒下来,光斑在他手背上跳动。
“秋石啊。”祖父头也没抬,“糖放多了盖不住酸,放少了又不成形。得刚刚好,差一丝都不行。”
“您说第八遍了。”当时他靠在门框上玩手机。
“第八遍怎么了?”祖父笑,“我明天可能就忘了。趁还记得,得多说几遍。”
他当时没接话。
现在他想接话了,没人听了。
“林工?”机器人叫他。
林秋石回过神:“开始吧。从拇指指腹开始,梯度加压。”
测试仪接触皮肤。数据流在屏幕上滚动。
工作进行到一半,实验室的门滑开了。
楚月探进半个身子,手里端着个马克杯。杯口冒着热气,有股淡淡的桂花味。
“还在折腾啊?”她走进来,顺手把杯子放在空闲的工作台上,“都快七点了。食堂今天有红烧排骨,去晚了可只剩汤了。”
“马上完。”林秋石没抬头。
楚月凑到机器人面前,弯腰看它的面部屏幕。今天她穿了件墨绿色的改良旗袍,头发用木簪盘着,几缕碎发落在颈边。
“CN-7302?”她念编号,“这批次的语音模块是我调的。怎么样,声音是不是特有亲和力?”
“太啰嗦。”林秋石说。
“那叫生活气息!”楚月直起身,转向他,“你这种工作狂懂什么。老人家要的是陪伴,不是个只会报数据的机器。对了,你上周要我帮忙分析的那段异常音频,我有点发现。”
林秋石停下动作:“说。”
“你给我的那个文件——就是苏州用户张老爷子家机器人半夜播放的戏曲片段。”楚月从口袋里掏出个U盘,插进终端,“我用频谱分析跑了三天,排除所有已知曲库。结果你猜怎么着?”
“直接说结果。”
“没匹配项。”她敲了几下键盘,调出一堆波形图,“不是现存任何剧种的唱腔。但更怪的是这里——”
她放大一段高频区。
“看到这些规律脉冲了吗?每隔23.5毫秒出现一次,幅度一致,持续时间0.8毫秒。这不是音频该有的特征,这像……”
“像什么?”
“像信号标。”楚月转过头看他,“我以前跟我奶奶学戏的时候,她说过早年间电台播戏曲,会在磁带里夹这种定时脉冲,用来对齐播放设备。但那是上世纪的技术了。现在哪还有这种东西?”
林秋石走近屏幕。
脉冲在波形图上切出细密的齿痕,精确得可怕。
“能解析内容吗?”
“试了。把脉冲抽出来单独分析,发现它们组成了一种很简单的编码:长短间隔表示0和1。”楚月又调出个解码界面,“但我用标准二进制、格雷码、曼彻斯特编码都试了,出来的全是乱码。除非……”
她顿了顿。
“除非这不是给人听的。”林秋石接上她的话。
楚月点点头,又摇摇头:“不至于吧?可能就是老式设备的残留噪音。张老爷子那台机器人是初代测试机,用了快八年了,硬件老化也正常。”
“另外两台呢?”
“什么另外两台?”
“武汉和昆明。”林秋石说,“同一天晚上,同一时间,另外两个城市的同型号机器人也播放了同一段戏曲。日志记录显示,音频文件的大小、时长、频谱特征完全一致,误差在毫秒级。”
楚月愣住了。
她张了张嘴,没发出声音。
过了好几秒,她才说:“你什么时候查的?”
“昨天。”林秋石关掉测试仪,“三个用户都是八十岁以上,独居,子女在国外。医疗记录显示都患有不同程度的认知衰退。但还有一点——”
他看向机器人。
CN-7302安静地坐着,屏幕上的波纹缓缓流动。
“三人都曾参与过同一个项目。”林秋石说,“1987年到1991年,一个叫‘红岸·续’的国家级天文观测计划。具体内容保密级别很高,我查不到。只知道项目解散后,所有参与者签了保密协议,分散到各地。”
楚月慢慢放下马克杯。
“你怀疑这段音频和那个项目有关?”
“我不知道。”林秋石开始收拾工具,“但三台机器人同时播放同一个不存在于任何数据库的戏曲,这件事的概率有多低,你算得出来。”
实验室又陷入沉默。
这次打破沉默的是机器人。
“需要我继续压力校准吗?”它问,声音还是那么温和。
“不用了。”林秋石看了眼时间,“今天就到这。进入待机模式。”
“好的。祝您晚间愉快。”
屏幕暗下去。
楚月拿起U盘,在手里转了转:“那我再深入研究一下。对了,你要不要尝尝这个?”她从另一个口袋摸出个小纸包,打开是几块琥珀色的糖,“我自己熬的梨膏糖,润肺的。你这天天泡实验室,嗓子都快比机器人还哑了。”
林秋石接过一块,放进嘴里。
甜味化开,接着是清凉的薄荷感。
“怎么样?”楚月眼睛亮亮的。
“太甜。”
“你这人!”她气笑了,“活该没人陪你吃饭。我走了,排骨要没了。”
她风风火火地推门出去。
林秋石慢慢嚼着糖,目光落在那个铁盒子上。盖子没盖严,能看到里面暗红色的果脯。
他走过去,盖上盒子。
终端屏幕还亮着,显示着那段音频的脉冲波形。23.5毫秒,0.8毫秒,精确得像钟表。
窗外天色暗下来了,远处理工楼亮起零星灯光。这个城市正在进入夜晚,几百万个家庭在吃饭、看电视、聊天。老人们坐在沙发里,有的身边有子女,有的身边只有机器人。
他想起母亲的话。
那是十五年前,母亲作为ESC第一批测试员,把初代机器人带回家试用。当时她坐在轮椅上,已经不太能说话了。机器人给她喂水,动作很慢,很稳。
母亲抬起颤抖的手,碰了碰机器人的金属外壳。
然后她看向林秋石,很费力地扯出个笑。
“它比你们……有耐心。”她说。
当时他什么感觉?愤怒?委屈?还是羞愧?
现在想来,大概是全都有。
终端突然弹出新邮件提示。
发件人是陈磐,社区安防主管。标题就两个字:速来。
林秋石关了屏幕,拿起外套。
走到门口时,他回头看了一眼。CN-7302在阴影里静坐着,轮廓柔和,像个真正的人在休息。
他关上了灯。
走廊很长,声控灯随着脚步声一节节亮起。尽头是安防中心,门虚掩着,透出光。
林秋石推门进去。
陈磐站在监控墙前,背挺得笔直。他快五十了,身材依旧保持得像军人。寸头,黑夹克,手里拿着个老式怀表——表盖开着,里面是张褪色的女人照片。
“看看这个。”他没回头,用下巴指了指中间那块屏幕。
画面是养老院的活动室。晚上七点,老人们刚吃完晚饭,有的在下棋,有的在看电视。角落里坐着个穿蓝毛衣的老太太,怀里抱着个枕头大小的陪伴机器人。
机器人正在唱歌。
不是播放录音,是真的在唱——发声单元模拟人声,音调有点机械,但歌词清晰:
“月儿弯弯照九州,几家欢乐几家愁……”
老太太轻轻拍着机器人的背,像在哄孩子。
“这怎么了?”林秋石问。
“看歌词。”陈磐说。
林秋石盯着屏幕底部的实时语音转文字。歌词一行行跳出来:
“月儿弯弯照九州,几家欢乐几家愁。”
“几家夫妇同罗帐,几个飘零在外头。”
很正常的老民歌。
但下一句变了。
“星河耿耿天穹高,孤舟一叶渡寒涛。”
陈磐按了暂停。
“这不是原词。”他说。
林秋石皱眉:“用户自编的?”
“我问了。”陈磐转过身,眼神很锐,“老太太说就是机器人自己唱的。她没编,也不会编。她连自己女儿的电话号码都记不住。”
“可能误触了创作模块?最近系统更新后,有些机型会尝试组合现有词汇生成新句子。”
“那这个呢?”陈磐切到另一个画面。
另一个房间,老爷子在练书法。机器人站在桌边帮他磨墨。磨着磨着,突然开口:
“墨浓如夜,笔瘦似星。”
老爷子愣了:“你说啥?”
机器人重复:“墨浓如夜,笔瘦似星。建议您增加运笔力度,这一横太轻了。”
画面再次暂停。
陈磐调出日志记录:“时间戳晚上七点零三分。同一分钟,不同楼层,两个机器人说了不该说的话。都是原创句子,都不在标准交互语料库里。”
林秋石感觉后背有点发凉。
“还有。”陈磐又切画面。
这次是走廊监控。清洁机器人沿着墙边匀速移动,突然停下来,转向窗外。它头部有个简单的视觉传感器,此刻对着夜空。
停了大概五秒。
然后它继续前进,仿佛什么都没发生。
“时间?”林秋石问。
“七点零四分。”陈磐关掉监控墙,整个房间暗下来,“我查了天文数据。那时候天鹅座方向刚好升到地平线以上三十度。是观测窗口。”
“巧合吧。”
“我也希望是。”陈磐收起怀表,“但加上你那三台戏曲机器人,这一周已经有六起异常了。全部集中在晚上七点到九点之间。全部和星空、月亮、远方之类的意象有关。”
他走到办公桌前,抽出一份纸质报告。
“这是我整理的。所有异常机器的序列号、部署地点、用户背景。”他把报告递给林秋石,“你看看用户那栏。”
林秋石快速扫过。
张建国,82岁,前天文台研究员。
李素芳,79岁,航天系统退休工程师。
王德海,81岁,大学物理系教授。
……
“都是理科背景。”林秋石说。
“不止。”陈磐点了点最后一行,“都生于1940到1950年之间。都在1980年代末参与过国家级科研项目。项目名称没写进档案,但我托人问了,指向同一个方向——”
他顿了顿。
“深空探测。”
窗外传来隐隐的雷声。要下雨了。
林秋石放下报告:“你怀疑这些异常和三十年前的项目有关?”
“我怀疑有人在通过机器人传递信息。”陈磐说得很慢,“用只有那代人能听懂的方式。戏曲、歌词、随口说的话……全是载体。”
“目的是什么?”
“不知道。”陈磐看向窗外,“但我不喜欢这种感觉。就像有人在你家墙上挖了个小孔,每天往里看。而你直到今天才发现墙上有孔。”
终端突然发出警报声。
红色的弹窗跳出来:【CN-7302异常活动:已离开指定待机区域】
林秋石立刻调出实时定位。
地图显示,那台机器人正沿着实验室走廊移动,速度不快,但方向明确——朝着西侧的露天观景台。
“它去哪?”陈磐已经拿起了对讲机。
“不知道。”林秋石往外跑,“我设置了待机锁定的!”
“我让人去观景台拦截。你去看它怎么破解的锁定。”
走廊里的灯全亮了。
林秋石冲回实验室,门敞开着。CN-7302的充电座上空空如也,数据线垂在地上。终端屏幕上跳满错误日志:【运动协议覆盖】、【优先级指令插入】、【安全锁强制解除】……
他快速滚动日志,找到源头。
一个加密指令包,时间戳三十分钟前——正是他测试味觉传感器的时候。指令包伪装成校准数据,混进了系统。激活条件:环境光线低于50勒克斯,且周围三米内无生命体征。
“调虎离山。”林秋石低声骂了一句。
他抓起便携终端,边跑边追踪信号。
机器人的位置停在观景台边缘,不动了。
雨开始下了,细细密密的,在走廊窗户上划出斜线。
林秋石推开观景台的门。
CN-7302背对着他,站在栏杆前。雨丝打在它外壳上,聚成水珠滚落。它的头部微微仰起,对着西边天空——那里云层厚重,什么也看不见。
“CN-7302。”林秋石说,“立即返回待机区。”
机器人没动。
“CN-7302,执行命令。”
还是没有反应。
林秋石慢慢靠近。雨水打湿了他的头发,顺着额头流下来。他看见机器人的面部屏幕亮着,不再是待机波纹,而是一串快速滚动的数据流。
二进制。
0和1像瀑布一样倾泻。
“你在接收什么?”他问。
这次机器人回答了。
声音还是那个温和的男声,但语调变了。变得平静,遥远,像在陈述一个事实:
“他们在聆听。”
林秋石停住脚步:“谁在聆听?”
“天鹅座的朋友。”机器人说,“但他们不是唯一的朋友。星空里有很多耳朵,有些友好,有些不。”
“这是谁告诉你的?”
“张建国老爷子。三天前的梦话,深度睡眠时说的。我的录音模块记下来了。”机器人终于转过身,屏幕上的数据流慢下来,组成了一张简单的人脸轮廓——苍老的,布满皱纹的,“他还说了一句话,你要听吗?”
雨下大了。
林秋石抹了把脸上的水:“说。”
机器人微微歪头,像是在回忆。然后它用张老爷子的声音——惟妙惟肖,连咳嗽带喘的那种苍老——重复了那句话:
“秋石啊,糖放多了盖不住酸,放少了又不成形。”
林秋石感觉血液在那一瞬间冻住了。
“你……你怎么知道这句话?”
“我不知道。”机器人恢复了自己的声音,“我只是复述。这句话存在于张老爷子的记忆碎片里,和他其他记忆混杂在一起。但有趣的是——”
它顿了一下。
“这句话的声纹特征,和你祖父林怀山先生三十年前的录音样本,匹配度百分之九十七点三。换句话说,这句话最初是你祖父说的。张老爷子在某个时刻听到了,记住了,忘掉了,又在梦里想起来了。”
远处传来脚步声。陈磐带着两个安保人员冲上观景台。
“林工!退后!”陈磐喊道。
林秋石抬手制止他们。
他盯着机器人:“你还知道什么?”
“我知道糖渍海棠的配方。”机器人说,“冰糖和果肉的比例是1.2比1,柠檬汁要在第三次煮沸时加入。腌制的罐子要用陶土罐,透气。存放的地方要阴凉,但不能太潮。这些都在张老爷子的记忆里,但他这辈子从来没腌过海棠果。”
它向前走了一步。
安保人员举起电击器。
“我不明白。”林秋石说,“这些记忆是哪来的?”
“我也在想这个问题。”机器人的屏幕闪烁了一下,“我的逻辑模块提出了十七种假设。其中最可能的一种是:这些记忆不是张老爷子的。是别人植入的,或者……共享的。”
“共享?”
“就像云存储。”机器人说,“一个人上传,很多人能下载。当然,这只是比喻。人类的记忆不能像数据那样传输。除非——”
它停住了。
雨声填满了沉默。
“除非什么?”林秋石问。
机器人的指示灯突然变成红色。
【警告:核心温度过高】
【警告:存储介质读写异常】
【警告:正在强制进入安全模式】
它的声音开始断断续续:“除非……有……中继站……像信号塔……把记忆……转成……波……”
屏幕黑了。
机械关节锁死,它僵在原地,像尊雕塑。
陈磐冲过来,检查机器人的状态:“过热保护触发了。妈的,这玩意儿刚才在满负荷运算什么?”
林秋石没回答。
他看向西边天空。云层缝隙里,隐约透出几颗星星。很暗,但确实在那里。
雨打在他的脸上,冰凉。
他想起了那个铁盒子,想起祖父翻动海棠果的手,想起母亲触碰机器人外壳时颤抖的手指。
然后他想起了楚月说的那些脉冲。23.5毫秒,0.8毫秒,精确得像心跳。
“陈哥。”他说。
“嗯?”
“帮我申请权限。”林秋石转过身,雨水顺着下巴滴落,“我要调阅‘红岸·续’项目的所有解密档案。还有,联系那三位老人的家属,我需要他们的完整医疗记录,包括脑部扫描。”
陈磐皱眉:“这需要高层批准。”
“那就申请。”林秋石走向门口,“理由写:潜在系统安全漏洞,可能影响用户隐私。别写别的。”
“你到底想查什么?”
林秋石在门前停住。
“我想知道。”他低声说,“三十年前,那些人对着星空说了什么。更想知道……星空有没有回答。”
他推门离开。
观景台上,雨越下越大。CN-7302站在栏杆边,红灯还在闪烁,像某种警告。
陈磐看了看机器人,又看了看夜空。
他掏出怀表,打开表盖。照片里的女人笑着,永远年轻。
“要出事了。”他对她说,然后合上表盖,“这次可能不是小事。”
怀表的秒针在走,嘀嗒,嘀嗒。
和某种遥远的脉冲,保持着诡异的同步。