傍晚六点四十分,基地一楼。
工作人员陆续从大门走出去,脚步声在门厅的大理石地面上敲出密集的回响。最后离开的是灯光组的老周,他关了走廊的总闸,只留了每层楼梯口的应急照明灯。
整栋基地在三分钟之内从白天的嘈杂切换成了夜晚的安静。
练习室的灯灭了。走廊的灯灭了。只有三楼楼梯口的应急灯还亮着,昏黄的光照出两平方米左右的范围,再往外就是黑暗。
刘耀文从二楼的器材间门口经过的时候,脚步顿了一下。
器材间的门虚掩着,里面没有灯。
他推开门走了进去。
门在身后合上的时候,发出了一声很轻的"咔"。器材间的隔音效果很好,门一关,外面走廊里应急灯的电流声都被隔绝了。
黑暗里,有一个人已经在了。
手机屏幕的亮光照亮了严浩翔的下半张脸——他的下巴和嘴唇被屏幕的白光映得发青,其余部分都沉在暗处。
他在看手机。
"你来了。"严浩翔的声音很低,像是怕被门外的人听见,尽管器材间的隔音效果足以挡住任何正常音量的说话声。
"嗯。"刘耀文靠在门板上,没有走过去。
"你看这个。"严浩翔把手机屏幕转向他。
屏幕上是一张截图——来自那个已经被锁掉的豆瓣帖子。截图的内容不是帖子正文,而是帖主在回复区里回复另一个用户时提到的一句话:
"我用的是OpenFace2的学术授权版,面部68个关键点的坐标精度可以到亚像素级别,误差在0.05个像素以内。"
"OpenFace2。"刘耀文念出了这个软件名。"学术授权版。"
"嗯。"严浩翔说。"我刚才搜了一下,这个软件的商用授权价格是每年一万两千美元,学术授权是免费的,但需要以大学或者研究机构的名义申请。"
"所以那个帖主,要么是大学里的研究人员,要么是挂了大学名义的外部人员。"
"对。"
"能查到她申请学术授权时挂靠的机构吗?"
严浩翔摇了摇头。
"学术授权的申请记录不公开。但如果她是某个大学的在读研究生,她的论文或者课题组页面上可能会有她的名字。"
刘耀文走到他旁边,低头看手机屏幕。
两个人之间的距离大约二十厘米,肩膀几乎挨着,但没有任何肢体接触。他们同时看着同一块屏幕,屏幕的白光同时照在两张脸上。
"OpenFace2的使用日志,"刘耀文说,"保存在哪里?"
"本地。"严浩翔说。"这个软件不联网,所有分析数据都保存在本地硬盘上。除非她自己上传,否则没有人能看到她的分析过程。"
"她上传了截图。"
"截图是静态的。截图里没有软件的界面信息,只有最终的分析结果。"严浩翔停顿了一下。"但从截图里的标注精度来看,她用的参数设置非常专业——68个关键点全部启用,置信度阈值设在0.95以上,亚像素精度的插值算法用的是双三次插值而不是默认的双线性插值。"
"这意味着什么?"
"意味着她不是随便下载了一个软件点了几下。"严浩翔说。"她知道怎么调参数才能得到最高精度。这种操作水平,至少是计算机视觉方向的硕士研究生。"
刘耀文沉默了几秒。
"计算机视觉方向的硕士,"他说,"全国有多少个在读的?"
"大概几千人。"
"几千人里面,同时是饭圈用户的有多少?"
严浩翔没有回答。
这个问题没有答案。
器材间里安静了一会儿。
手机屏幕的光在两个人脸上投下浅蓝色的阴影。屏幕上那张截图里,"OpenFace2"几个英文字母在暗处发着微弱的白光。
"苏麦那边有消息吗?"刘耀文问。
"帖子锁了。"严浩翔说。"但截图已经传出去了。我刚才在三个不同的平台上都看到了同样的截图——微博、知乎、小红书。"
"她能拦几个平台?"
"微博能拦。知乎需要走投诉流程,大概两到三天。小红书——"严浩翔顿了一下。"小红书的审核机制和微博不一样,图文笔记一旦被推荐算法收录,删除的难度比微博大得多。"
"所以那个帖子虽然被锁了,但它的截图已经在三个平台上扩散了。"
"对。"
"扩散速度呢?"
"从帖子被锁到现在,五个小时。截图在微博上的传播量大概在两千到三千条之间。知乎上少一些,几百条。小红书上——我刚才刷到的时候,有三条笔记的点赞数已经超过了一千。"
"一千点赞的笔记,按照小红书的推荐逻辑,会被推给多少人?"
"至少五万到十万的曝光量。"
刘耀文靠在门板上,闭了一下眼睛。
"五万到十万。"他重复了一遍。"三个平台加起来,至少有十五万到二十万的不确定曝光。"
"嗯。"
"这还只是截图。如果有人在小红书上发视频——"
"视频传播量会比图文高五到十倍。"严浩翔说。"但目前还没有视频出现。"
"还没有。"刘耀文睁开眼睛。"但迟早会有。"
器材间里又安静了。
严浩翔把手机锁了屏。屏幕暗下去的瞬间,两个人脸上的蓝光消失了,只剩下应急灯从门缝里透进来的一丝昏黄。
"明天团体舞台的彩排,"严浩翔在黑暗里说,"你对视的时候,看我的左肩。"
"什么?"
"看我的左肩。不要看我的眼睛。"严浩翔的声音在黑暗里显得格外清晰。"眼睛是瞳孔朝向最容易暴露的器官。如果你看我的左肩,从镜头角度看,你的视线方向和看我的眼睛几乎一致,但瞳孔朝向会微微偏下——偏下的瞳孔不会被判定为'视线偏移'。"
刘耀文在黑暗里沉默了几秒。
"你算过角度?"
"算过。"严浩翔说。"看左肩和看眼睛的视线偏转角差值在3度以内,镜头特写分辨不出来。"
"你什么时候算的?"
"刚才。"严浩翔说。"你进来之前。"
他在黑暗里独自坐了多少分钟?刘耀文不知道。但他知道严浩翔在他进来之前就已经把明天彩排时两个人对视的角度算好了——精确到3度以内的误差。
"好。"刘耀文说。"我看你的左肩。"
"嗯。"
"你呢?"
"我看你右耳后面的头发。"严浩翔说。"从镜头角度看,视线方向和看你眼睛几乎一致。但瞳孔朝向会微微偏右——偏右的瞳孔在侧脸特写里不会被注意到。"
两个人在黑暗里把明天彩排时的每一个对视角度都算好了。
精确到度。
三楼走廊尽头的休息区。
灯没开。唯一的光源是走廊窗户透进来的月光——九月末的月亮还没升到最高点,光线从窗户斜射进来,在地板上投下一个倾斜的长方形光斑。
宋亚轩坐在光斑边缘,膝盖上放着他的手机。
贺峻霖坐在光斑外面,背靠沙发,双腿伸直,脚搭在茶几边缘。
两个人之间隔了大约一米的距离。
"我刚才在想一件事。"宋亚轩开口了。他的声音在安静的休息区里显得格外清楚。
"什么?"
"从明天开始,我们在镜头前的互动距离,再拉远十厘米。"
贺峻霖的脚从茶几上放了下来。
"拉远?"
"嗯。十厘米。"
"为什么要拉远?"贺峻霖的语气不是质疑,是真的不理解。"现在不是应该尽量保持正常距离吗?突然拉远,反而更可疑。"
"不会。"宋亚轩说。"你听我说完。"
他打开手机,翻到一张图——是今天直播回放的截图,画面上是他和刘耀文并肩站立的全身照。
"你看这张图。"他把手机递向贺峻霖的方向,但没有递到他手里。"这是今天开场自我介绍的时候,我和刘耀文的站位。我们之间的距离——"
他用手指在屏幕上比了一下。
"大约四十厘米。"
"四十厘米怎么了?"
"四十厘米是'亲密距离'的下限。"宋亚轩说。"人际交往学里,人与人之间距离分四种——公共距离、社交距离、个人距离、亲密距离。四十厘米刚好卡在个人距离和亲密距离的分界线上。"
"所以?"
"所以如果我们在镜头前的距离保持在四十厘米,观众会下意识地感受到'亲密感'——因为四十厘米已经是亲密距离了。但如果我们拉到五十厘米——"
"五十厘米就是个人距离了。"贺峻霖接上了他的话。
"对。个人距离的观感是'关系好但不过分亲近'。这恰恰是'标准队友'应该有的距离。"
贺峻霖沉默了几秒。
"但问题是,"他说,"我们之前的物料里,文轩的距离一直维持在四十厘米左右。如果突然拉到五十厘米,粉丝会觉得'他们疏远了'。"
"不会突然拉。"宋亚轩说。"分三步。第一步,明天的团体彩排,距离拉到四十五厘米。第二步,后天的物料拍摄,维持在四十五厘米。第三步,下周的综艺录制,拉到五十厘米。每一步之间间隔两到三天,粉丝不会注意到十厘米的变化。"
"你在算十厘米的事。"
"嗯。"
"十厘米。"贺峻霖重复了一遍。他的语气里有一种很复杂的东西——不完全是佩服,也不完全是无奈,更像是"我早就知道你会算这种东西"。
"还有。"宋亚轩把手机翻到另一张截图。"这是今天翔霖对视环节的特写。你看严浩翔的左手。"
贺峻霖凑近看了一眼。
截图里,严浩翔的左手自然下垂,手指微微弯曲。
"他的手怎么了?"
"你看他的食指。"宋亚轩用指尖点了点屏幕上严浩翔的食指。"食指和中指之间的距离——大约是两厘米。"
"两厘米怎么了?"
"正常放松状态下,五指自然并拢,指缝间距在0到0.5厘米之间。两厘米的指缝间距说明手指处于轻微紧张状态——手指在用力分开。"
"他在紧张?"
"他在克制。"宋亚轩说。"手指用力分开是一种无意识的克制动作——大脑在发出'不要动'的指令时,手指会不自觉地用力撑开,以对抗'想要伸手'的冲动。"
贺峻霖看着屏幕上严浩翔的手指。
两厘米。
"你连这个都注意到了?"
"我看了四十遍回放。"宋亚轩的语气很平。"从凌晨两点看到早上六点。"
"你一夜没睡?"
"睡了两个小时。"
贺峻霖看着他。
月光从窗户斜射进来,照在宋亚轩的侧脸上。他的眼下有明显的青黑色——不是化妆画出来的,是真的熬了一夜。
"你看了四十遍回放,"贺峻霖的声音放轻了,"就为了找这些细节?"
"不是为了找细节。"宋亚轩说。"是为了知道哪些细节已经被别人找到了,哪些还没有。"
"有什么区别?"
"已经被找到的,我们改不了。"宋亚轩把手机放在膝盖上。"31.2度的瞳孔偏转、0.5毫米的嘴角弧度变化、3分贝的衣领摩擦声——这些已经被量化了,写成了帖子,截了图,传遍了三个平台。我们改不了。"
"那没被找到的呢?"
"没被找到的,我们可以提前消除。"宋亚轩说。"比如严浩翔手指的紧张状态——目前没有人注意到。但如果后续有人逐帧分析他的手部动作,就会发现。所以从明天开始,他在镜头前的手必须保持自然并拢,指缝不超过0.5厘米。"
"你连他的手都要管。"
"我不管,他自己注意不到。"宋亚轩说。"他在对视环节的全部注意力都集中在'不要看错方向'上,根本没有余力控制手指。"
贺峻霖沉默了很久。
月光在地板上慢慢移动——月亮在升高,光斑的角度在变。
"宋亚轩。"
"嗯。"
"你看了四十遍回放,算出了十厘米的距离和两厘米的指缝。"贺峻霖的声音很轻。"你什么时候睡的?"
"早上六点。"
"六点睡,九点起。三个小时。"
"够了。"
"不够。"
宋亚轩没有接话。
贺峻霖从沙发上站起来,走到宋亚轩旁边,在他身侧坐了下来。
两个人之间的距离从一米变成了大约三十厘米。
他没有靠在宋亚轩肩上。
他只是坐在那里。
"明天开始,"贺峻霖说,"你晚上不要看回放了。"
"我需要知道还有哪些细节——"
"你三个小时的睡眠,比任何细节都重要。"贺峻霖的声音很平,但语气不容商量。"如果你熬垮了,谁来做这些分析?"
宋亚轩转头看他。
月光照在贺峻霖的侧脸上,他的表情在暗处看不太清楚,但声音是稳的。
"我来做。"贺峻霖说。"你告诉我看什么,我来找。"
"你不懂面部识别的参数设置。"
"你教我。"
宋亚轩看着他。
安静了几秒。
"好。"宋亚轩说。"明天开始,我教你怎么用OpenFace2。"
"嗯。"
"但今晚你先回去睡觉。"
"你也是。"
"我看完最后十遍就睡。"
"十遍太多了。五遍。"
"七遍。"
"六遍。"
"成交。"
四楼练习室。
灯亮着。
苏新皓站在镜面墙前,穿着黑色练功服,脚上是一双白色帆布鞋。鞋底在木地板上发出轻微的摩擦声——他在反复练习solo舞蹈的结尾动作。
结尾动作是一个跳跃旋转接落地定格——起跳、空中转体五百四十度、落地、右腿前伸、左腿后撑、上身前倾十五度、定格三秒。
他已经练了八遍。
每一遍的问题都出在落地上。
落地的一瞬间,他的重心会不自觉地偏左大约两厘米。这个偏移在快速旋转中几乎看不出来,但在定格的那三秒里,身体的中轴线会微微向左倾斜——如果从正面镜头拍,倾斜角度大约一到两度。
一到两度的倾斜,肉眼看过去就是"站不太稳"。
第九遍。
起跳。旋转。落地——
重心还是偏左了两厘米。
他直起身,皱着眉看镜子里的自己。
"还是偏。"
声音从练习室的角落传来。
张峻豪坐在地板上,背靠墙角,双腿伸直,手里拿着一瓶水。瓶盖是拧开的,但他没有喝。
他从苏新皓第一遍开始练的时候就坐在这里了。
"偏多少?"苏新皓问。
"两厘米。"张峻豪说。"重心落在左脚掌外侧三分之一的位置,应该在正中间。"
"你看得这么准?"
"你每次落地的时候,左脚的帆布鞋鞋面会多一道褶皱。"张峻豪说。"重心偏左的时候,鞋面受力不均匀,外侧的褶皱比内侧深。我看了九遍,九次都是外侧褶皱更深。"
苏新皓低头看了一眼自己的左脚。
鞋面上确实有一道褶皱——外侧的,比内侧深。
"你从鞋面的褶皱就能判断出重心偏移?"
"嗯。"
"你什么时候开始看我的鞋了?"
张峻豪想了一下。
"上次你说落地重心不稳的时候。"他说。"你说你找不到原因。我就开始看你的脚。"
"你看了多久?"
"从上次到现在,大概一周。"张峻豪说。"你每天练结尾动作大概二十到三十遍,我看了七天,大约看了一千五百到两千遍。"
一千五百到两千遍。
他看了苏新皓的脚一千五百到两千遍。
不是看他的脸,不是看他的身体线条,不是看他旋转时的姿态。
是看他的脚。
看他落地时帆布鞋鞋面上的褶皱。
"所以结论是什么?"苏新皓问。
"你的重心偏左,不是因为腿部力量不均匀。"张峻豪说。"是因为你起跳的时候,右脚的蹬地方向偏了。"
"右脚?"
"嗯。你起跳的时候,右脚蹬地的方向不是正前方,而是偏右了大约五度。这个五度的偏差在起跳阶段看不出来,但经过五百四十度的旋转放大之后,落地时重心就会偏左大约两厘米。"
"五度。"苏新皓重复了一遍。
"五度。"张峻豪说。"你只需要在起跳的时候,把右脚的蹬地方向从偏右五度修正到正前方。落地重心就会回到中间。"
苏新皓站在镜面墙前,低头看着自己的右脚。
右脚帆布鞋的鞋尖朝向——确实微微偏右。
他调整了右脚的角度,让鞋尖正对前方。
然后他退回到起跳位置。
第十遍。
起跳。右脚蹬地,方向正前方。旋转。落地——
重心落在正中间。
左脚的鞋面上,内外两侧的褶皱深度完全一致。
定格三秒。
他直起身,看着镜子里的自己。
身体的中轴线完全垂直。没有倾斜。
"稳了。"他说。
张峻豪在角落里点了一下头。
他把那瓶水的瓶盖拧上了。
"第十遍就稳了。"他说。
"因为你告诉我是右脚蹬地方向的问题。"苏新皓转过身,看着他。"如果不是你,我可能还要再练一百遍才能自己找到原因。"
"你迟早也能找到。"
"迟早是多久?"
张峻豪想了一下。
"可能一个月。"他说。
"一个月。"苏新皓走到角落,在他旁边坐了下来。两个人之间隔了大约三十厘米。"一个月的时间,我每天都要带着两厘米的偏差上台。"
"现在不用了。"
"嗯。"
苏新皓把帆布鞋脱了下来,光脚踩在木地板上。
地板的温度是凉的——练习室的空调开了一整天,地板表面温度大约二十二度。
他低头看了一眼自己的左脚。
鞋面上那道外侧褶皱还在——帆布鞋的褶皱不会因为脚离开就消失。
"这道褶皱,"他说,"你看了七天。"
"嗯。"
"七天里,你有没有想过告诉我?"
张峻豪沉默了两秒。
"想过。"他说。"但我想让你自己找到答案。"
"为什么?"
"因为如果你自己找到了,你会记得更久。"张峻豪说。"但如果我直接告诉你,你下次遇到类似问题,还是会来问我。"
苏新皓看着他。
"所以你看了七天。"
"嗯。"
"一千五百遍。"
"嗯。"
"看我脚上的褶皱。"
张峻豪没有说话。
苏新皓把那双帆布鞋并排放在地板上。
鞋面上的褶皱在灯光下清清楚楚——外侧深,内侧浅。
两厘米的重心偏差,被一道褶皱记录了下来。
而那道褶皱,被一个人看了七天。
四楼走廊尽头的窗边。
左航靠在窗框上,嘴里在哼一段旋律。
不是完整的歌,只是副歌的第一句——"3 5 6 1——"
唱到"1"的时候,他的声音往上爬了大约四分之一音,停在了一个钢琴上不存在的位置。
然后他停了下来。
皱了皱眉。
张泽禹站在窗边两米远的位置,手里拿着那张歌词纸。
"高了。"张泽禹说。
"我知道。"
"你往上飘了。四分之一音的偏差变成了半个音。"
"我知道。"左航甩了甩头。"每次到那个位置,声带就不受控制地往上走。"
"因为你的肌肉记忆只覆盖了标准音高。"张泽禹说。"到了非标准音高的位置,肌肉不知道该停在哪里,就会惯性滑到最近的标准音高上——也就是升1。"
"怎么解决?"
"在'1'和'升1'之间建立一个锚点。"张泽禹说。"先用钢琴弹'1',记住那个位置。再弹'升1',记住那个位置。然后——"
"在两个位置之间找一个中间点。"
"对。但不是物理意义上的中间点。"张泽禹说。"四分之一音不是二分之一半音。它比'1'和'升1'的正中间还要偏低一点点——大约在'1'上方四十五音分的位置。"
"四十五音分。"
"嗯。一个半音是一百音分。四十五音分就是半音的百分之四十五。"
左航闭上眼睛。
他在脑子里想象着钢琴键盘——"1"和"升1"之间的距离。
一百音分。
四十五音分的位置——比正中间稍微偏下。
他深吸了一口气。
"3 5 6 1——"
唱到"1"的时候,他的声音往上爬。
这一次,他没有让声音滑到"升1"。他在四十五音分的位置踩了一脚刹车——声音停住了,像一辆在坡道上被手刹拉住的汽车,微微颤抖,但没有滑动。
那个音持续了大约两秒。
然后他停了下来,睁开眼睛,看着张泽禹。
张泽禹的表情没有变化。
"怎么样?"左航问。
"低了。"
"多少?"
"大约三个音分。你停在了四十二音分的位置,不是四十五。"
"三个音分你都能听出来?"
"嗯。"
左航看着他。
"你的耳朵到底是怎么长的。"
"练的。"
"你练了多久?"
"从你上次唱给我听的那天开始。"张泽禹说。"我每天花一个小时,用调音器校准自己的音感。调音器的精度是正负一音分。我用了一个星期,把音感校准到了正负二音分。"
"一个星期。"
"嗯。"
"所以你现在的音感精度是正负二音分?"
"差不多。"
左航沉默了几秒。
一个星期,每天一个小时,用调音器校准音感,精度到正负二音分。
为的是能听出他唱的那个四分之一音到底准不准。
"再唱一遍。"张泽禹说。
左航深吸了一口气。
"3 5 6 1——"
这一次,他在四十五音分的位置停住了。
声音没有往上飘,也没有往下掉。它悬浮在"1"和"升1"之间,微微颤抖,但位置稳定。
持续了三秒。
"这次呢?"他问。
张泽禹的表情终于有了一点变化——嘴角微微上扬了一个很小的弧度。
"四十四音分。"他说。"差一个音分。"
"一个音分。"
"嗯。一个音分。人耳的分辨极限大约是五音分。一个音分的偏差,任何听众都听不出来。"
"所以——"
"所以可以了。"张泽禹说。"明天录的时候,就唱这个位置。"
左航靠在窗框上,长长地吐了一口气。
窗外的夜色很深。远处的城市灯光在天际线上铺开一层模糊的橙色光晕。
"四十五音分。"他自言自语地说。"比'1'高四十五音分,比'升1'低五十五音分。不在任何一个琴键上。"
"嗯。"
"但你能听到。"
"嗯。"
"因为你知道它应该在哪里。"
"因为你在找它。"张泽禹说。"你找了,它就存在。"
四楼,练习室A。
朱志鑫独自站在镜面墙前。
音箱里放着solo舞台的伴奏,音量不大,刚好够他踩拍。
他跳完一遍,停下来,走到角落拿起手机。
手机屏幕上有一条推送——来自微博:"#翔霖对视眼神方向#话题阅读量突破两亿。"
他看了一眼。
然后他按住了推送通知,向左滑动。
"清除。"
通知消失了。
他把手机翻了过去,屏幕朝下,放在地板上。
然后他走回镜面墙前,按下音箱的重播键。
伴奏从头响起。
他开始跳第二遍。
镜面墙里,只有一个人的身影。
走廊尽头的窗边,左航还在唱那段旋律——"3 5 6 1——"那个悬浮在琴键之间的音,从走廊飘进练习室的门缝里,混在伴奏的节拍之间,像一抹不属于任何琴键的颜色。
朱志鑫听到了。
他的动作没有停。
但他的耳朵,在那半秒里,捕捉到了那个音。
四十五音分。
比"1"高一点,比"升1"低一点。
不在任何一个琴键上。
但它存在。