晋江文学城
下一章 上一章  目录  设置

5、第 5 章 ...

  •   薛弥声在凌晨两点五十九分醒来。

      不是自然醒,是被某种莫名的警觉唤醒。她躺在床上,眼睛盯着天花板,心脏在胸腔里跳得有些不规律。手机就在枕头边,屏幕朝下,但她能感觉到它的沉默——付聆雪没有回复那条消息。

      这很正常。她对自己说。那条消息本就突兀,本就模糊,本就带着试探的意味。付聆雪选择不回应,是成年人的得体,是对界线的尊重。

      但为什么胸腔里会有这种空落落的失望?

      薛弥声坐起身,赤脚踩在地板上。木质的凉意从脚底升起,她打了个寒颤。窗外是深秋凌晨特有的那种黑,浓稠得化不开,只有远处高架桥上的车灯划过一道道流动的光带。

      她走到工作台前,电脑还开着,停留在加密文件夹的界面。那份“声学智能”的愿景文档像个无声的诱惑,在昏暗的屏幕光里静静等待。

      薛弥声的手指悬在触控板上。点开,还是不点开?让付聆雪看到这个,意味着什么?

      意味着暴露她最深的野心,也暴露她最深的恐惧。意味着告诉付聆雪,这三年来她不是简单地做一家声纹识别公司,而是在构建一个庞大到可能吞噬她的蓝图。意味着把自己的软肋,亲手交到曾经最亲密、如今最复杂的人手里。

      她关上文件夹,打开代码编辑器。屏幕上还是那个未解决的多说话人分离算法。今晚和付聆雪讨论的时频域联合分析,似乎提供了一条新路径。

      薛弥声开始敲代码。手指在键盘上飞舞的声音,在寂静的公寓里显得格外清晰。她写了一个简单的原型,用付聆雪提到的图神经网络思路,加上自己下午想的预分类模块。

      编译,运行。

      错误提示弹出来:内存溢出。

      她皱眉,检查代码。发现是图结构的邻接矩阵太大,吃光了内存。需要稀疏化处理,或者换一种更高效的表示方法。

      薛弥声靠在椅背上,闭上眼睛。脑子里自动开始搜索解决方案——傅里叶图神经网络?图注意力机制?还是直接用传统的谱聚类?

      “如果是付聆雪,会怎么选?”

      这个念头冒出来时,她自己都愣了一下。然后她意识到,这几乎就是付聆雪在草稿纸上写的那句话的回响。

      如果她在,会怎么做?

      薛弥声睁开眼,重新看向屏幕。她突然很想,很想现在就问问付聆雪。不是明天,不是下次会议,就是现在,在这个凌晨三点十七分的时刻。

      她拿起手机,解锁,点开和付聆雪的聊天窗口。最后一条消息还是她发的:“草稿纸角落的那句话,我看见了。”

      下面空空如也。

      薛弥声打字:“图神经网络做特征提取,邻接矩阵太大导致内存溢出。你有什么思路?”

      发送。

      消息变成“已送达”的瞬间,她就开始后悔。太急了,太不专业了,太像从前那个一遇到技术难题就想立刻找付聆雪的薛弥声了。

      但撤回已经来不及。

      她盯着屏幕,想象付聆雪可能的状态:睡了?看到了但不想回?觉得她太冒失?

      手机震动了。

      不是消息,是来电。付聆雪直接打来了。

      薛弥声看着屏幕上跳动的名字,心脏突然加速。她深吸一口气,接起来:“喂?”

      “用图卷积的频域方法。”付聆雪的声音从听筒传来,带着刚睡醒的微哑,但思路异常清晰,“把图拉普拉斯矩阵做特征值分解,在谱域做卷积,再把空域的节点特征映射过去。这样邻接矩阵就不用显式存储了。”

      薛弥声的大脑飞速运转,消化这个思路:“但计算特征值分解的复杂度是O(n^3)。”

      “用切比雪夫多项式逼近,降到O(K|E|),K是多项式阶数,|E|是边数。”付聆雪说,背景传来纸张翻动的声音,“我刚在草稿纸上推了一遍,可行性很高。你等一下,我拍照发你。”

      电话没挂,薛弥声能听见付聆雪那边细微的动静——笔尖划过纸张的沙沙声,大概是她在画计算图。然后是手机拍照的咔嚓声。

      几秒钟后,照片传过来了。一张新的草稿纸,上面是干净利落的推导过程,从图拉普拉斯矩阵的定义,到特征值分解,到切比雪夫逼近,最后是转换后的计算流程。

      每一行公式都写得清清楚楚,关键步骤用箭头标出,边缘处还有几个小字注释:“注意特征值归一化”、“这里可以并行计算”。

      专业得无可挑剔,但也亲密得让她心悸——只有对彼此思维方式极度熟悉的人,才能在三更半夜,用一张草稿纸就把复杂思路传达得这么清晰。

      “看明白了吗?”付聆雪问。

      “看明白了。”薛弥声说,手指无意识地摩挲着屏幕上的公式照片,“但是为什么是切比雪夫多项式?用兰科斯迭代会不会更稳定?”

      “兰科斯对稀疏矩阵效果好,但你的图结构是动态的,每次输入都要重新计算。”付聆雪耐心解释,“切比雪夫多项式可以用递推公式快速计算,适合实时性要求高的场景。稳定性问题可以在预处理阶段解决,比如给拉普拉斯矩阵加个正则项。”

      有道理。薛弥声在脑子里快速模拟了一遍,确实如此。付聆雪总是这样,能一眼看到问题的本质,然后给出最优雅的解决方案。

      “你那边现在几点?”她突然问。

      电话那头沉默了一瞬:“三点二十一。你呢?”

      “一样。”薛弥声说,“你也没睡?”

      “睡了,又醒了。”付聆雪的声音很轻,“看到你的消息,就起来了。”

      “抱歉,吵醒你了。”

      “没事。”付聆雪停顿,“我也正好在想这个问题。睡前看了你的多说话人分离架构,总觉得特征提取那里有优化空间。”

      薛弥声的心脏又紧了一下。付聆雪睡前在看她的算法架构。这个认知让她喉咙发干。

      “所以那张草稿纸上的问题,”她听见自己问,“是真的在问,还是只是写写?”

      这次沉默更久了。久到薛弥声能听见自己血液流动的声音,能听见窗外远处隐约的警笛声,能听见付聆雪那边极轻的呼吸声。

      “是真的在问。”付聆雪最终说,声音轻得像怕惊动什么,“这三年,每次遇到复杂的技术问题,我都会下意识想:如果是弥声,会怎么解?”

      薛弥声的手指收紧,指甲陷进掌心。疼痛让她保持清醒。

      “那你得出答案了吗?”她问,声音有些颤。

      “有时候能,有时候不能。”付聆雪说,“能的时候,我会想‘嗯,她大概也会这么做’;不能的时候,我会想‘如果她在,一定能有更好的办法’。”

      “然后呢?”

      “然后我就继续工作,直到解出来,或者放弃。”付聆雪顿了顿,“但从来没有真正放弃过。因为总觉得,如果是你,一定不会放弃。”

      薛弥声闭上眼睛。泪水毫无预兆地涌上来,她仰起头,努力不让它们掉下来。

      “付聆雪。”她叫她的全名,声音沙哑,“你这是在干什么?”

      “我在回答问题。”付聆雪说,“你问我草稿纸上的话是不是真的,我告诉你,是真的。每一句都是真的。”

      “包括‘如果她在’?”

      “尤其包括‘如果她在’。”

      薛弥声咬住下唇。三年了,她筑起的高墙,她建立的防线,她告诉自己已经放下的过去,在这一刻土崩瓦解。原来不是只有她在深夜想起对方,原来不是只有她保留着那些习惯,原来不是只有她还困在那段感情里。

      “你知道我为什么创了声觉吗?”她突然说。

      “为什么?”

      “因为我想证明,没有你我也能行。因为我想有一天,能站在你面前,让你看见我做到了。”薛弥声的眼泪终于滑下来,滴在键盘上,“但现在我发现,我做的每一件事,都好像是为了给你看。选声纹识别方向,是因为那是我们一起研究过的;坚持高精度标准,是因为你总说‘要么不做,要么做到最好’;甚至公司的名字,‘声觉’,都是你曾经开玩笑说‘以后我们的实验室就叫这个’。”

      她一口气说完,喘着气,像是跑完了很长一段路。

      电话那头安静极了。然后,付聆雪说:“我知道。”

      “你知道?”

      “声觉注册那天,我查了工商信息。”付聆雪的声音很平静,平静得可怕,“看到名字的时候,我就知道了。但我假装不知道,假装这只是一个巧合,假装你没有在用这种方式,纪念或者报复我们的过去。”

      “不是报复。”薛弥声说,“是......延续。延续我们曾经想做的事,延续我们没完成的梦。”

      “那现在呢?”付聆雪问,“现在你做到了。你站在我面前了,你的技术让我刮目相看了,你证明了没有我你也能行。然后呢?”

      然后呢?

      薛弥声被问住了。这三年来,“然后呢”这个问题一直被她刻意忽略。她只顾着往前冲,往高爬,却从没想过爬到山顶之后要做什么。

      “我不知道。”她诚实地说,“我没想过那么远。”

      “我想过。”付聆雪说,“我想过很多次。我想过如果有一天你成功了,我要不要祝贺你;想过如果你失败了,我要不要帮你;想过如果我们在某个场合重逢,我该说什么;想过如果你恨我,我该怎么面对。”

      “你想出了答案吗?”

      “没有。”付聆雪苦笑,“每个场景我都推演过,但真到了那一刻,所有的预案都失效了。就像在谈判桌上看见你,我准备好的那些商业话术一句都用不上,只能看着你,想‘她瘦了’,‘她眼神更锐利了’,‘她真的做到了’。”

      薛弥声的眼泪流得更凶了。她用手背擦掉,但新的泪水又涌出来。

      “那你现在在想什么?”她问,声音哽咽。

      “我在想,”付聆雪的声音也有些不稳,“如果我当时跟你去加州,现在会怎样。如果我们没有分开,这三年会怎样。如果我们现在重新开始,未来会怎样。”

      “重新开始?”薛弥声重复这个词,像是第一次听见。

      “不是回到过去,是重新开始。”付聆雪说,“以现在的我们,以付聆雪和薛弥声的身份,以付氏投资人和声觉创始人的关系,重新认识,重新合作,重新......看看能不能走到一起。”

      这个提议太疯狂,疯狂到薛弥声一时说不出话。

      “你知道这有多难吗?”她最终说,“我们之间隔着太多东西——付氏和声觉的利益关系,过去三年的隔阂,还有那些没说开的伤害。”

      “我知道。”付聆雪说,“所以我说‘看看能不能’,没说‘一定能’。我只是想,既然命运让我们又碰上了,既然我们都还放不下,既然我们都还在深夜为对方的技术问题失眠,那为什么不试一试?”

      “如果不成功呢?”

      “那至少试过了。”付聆雪的声音坚定起来,“至少不会在十年后后悔,说‘如果当年我们再勇敢一点’。”

      窗外的天色开始变化。深黑渐渐褪成藏青,远处天际线泛起一丝极淡的灰白。凌晨三点四十七分,夜晚最深沉的时候即将过去。

      薛弥声看着那道微光,突然想起很多年前,她们在实验室通宵后,一起看日出的场景。付聆雪指着天边说:“你看,黑暗再长,天总会亮的。”

      当时她笑付聆雪矫情,现在想来,那可能是付聆雪说过的最真诚的话。

      “我需要时间。”薛弥声说,“我需要想想。”

      “当然。”付聆雪立刻说,“你不用现在就回答。我们可以慢慢来,从工作开始,从技术合作开始。其他的,顺其自然。”

      “但如果最后我发现,我还是不能原谅你呢?”薛弥声问出了最尖锐的问题,“如果最后我发现,那些伤害太深,我们回不去了呢?”

      电话那头沉默了。许久,付聆雪说:“那至少我们试过了。至少我知道,我尽力了。至少你不会在十年后想‘如果当年我给她一个机会’。”

      公平。这个答案很公平,没有强求,没有道德绑架,只是陈述一个事实:我给你选择,你也要承担选择的后果。

      薛弥声深吸一口气:“好。我们从工作开始。”

      “好。”付聆雪的声音里有一丝如释重负,“那现在,我们先解决你那个内存溢出的问题。用切比雪夫多项式逼近,你还有什么疑问?”

      她们回到了技术话题。但这次不同了,那些没说破的,那些坦白的,那些在深夜流过的泪,都成了这个对话的底色。

      薛弥声重新打开代码编辑器,按照付聆雪的思路修改算法。付聆雪在电话那头实时指导,遇到复杂的推导就直接在草稿纸上写,拍照发过来。

      凌晨四点零三分,新算法编译通过。

      凌晨四点十七分,第一次测试运行,内存占用降到了原来的三分之一。

      凌晨四点三十五分,识别率测试结果出来:99.63%,比之前提升了0.41个百分点。

      薛弥声盯着屏幕上的数字,不敢相信自己的眼睛。困扰团队数周的问题,在这个凌晨,被她们两人联手解决了。

      “成功了。”她说,声音里带着难以置信的喜悦。

      “恭喜。”付聆雪说,声音里也有笑意,“你的实现很干净,比我想象的还好。”

      “是你思路好。”

      “是你实现得好。”

      她们像从前那样互相恭维,然后同时笑了起来。笑声透过电话线传来,有些失真,但那种默契还在——那种解决了难题后,纯粹的、孩子气的喜悦。

      “天快亮了。”付聆雪说。

      薛弥声看向窗外,确实,天际线已经从灰白变成淡蓝,城市的轮廓在晨曦中渐渐清晰。

      “你该休息了。”她说,“今天还要上班。”

      “你也是。”付聆雪顿了顿,“那......周三晚上十点?”

      “嗯,周三晚上十点。视频会议,讨论时频域联合分析的详细方案。”

      “好。”

      “付聆雪。”

      “嗯?”

      “谢谢你。”薛弥声说,很认真,“谢谢你的思路,也谢谢你的......坦诚。”

      “不客气。”付聆雪的声音温柔下来,“晚安,弥声。或者说,早安。”

      电话挂断了。

      薛弥声放下手机,靠在椅背上。电脑屏幕上的识别率数字还在闪烁,99.63%,像一个小小的奇迹。

      她站起来,走到窗边。晨曦一点一点染亮天空,城市的灯火在晨光中渐渐黯淡。新的一天要开始了,带着昨晚的坦白,带着凌晨的突破,带着一个疯狂但诱人的可能性。

      远处创业园区的轮廓逐渐清晰,她能看见声觉办公室所在的楼。再过几个小时,她就要去那里,继续扮演那个坚定果断的薛总。

      但有些东西已经不一样了。

      她知道,在城市的另一头,付聆雪大概也站在窗前,看着同样的日出。

  • 昵称:
  • 评分: 2分|鲜花一捧 1分|一朵小花 0分|交流灌水 0分|别字捉虫 -1分|一块小砖 -2分|砖头一堆
  • 内容:
  •             注:1.评论时输入br/即可换行分段。
  •                 2.发布负分评论消耗的月石并不会给作者。
  •             查看评论规则>>