观镜公司被查封的消息是傍晚时分传遍全网的。
网信办的官方通报措辞简洁,不带任何感情色彩:“经查,观镜文化传播有限公司涉嫌非法使用AI换脸技术侵犯公民肖像权、制作并传播违法信息,现依法予以查封,相关责任人已被控制。”通报末尾附了监督举报电话,电话号码末尾四位数是四个八,看起来像是刻意选的。通报发出后不到半小时,相关话题就冲上了热搜前三,词条后面跟着一个橙红色的“爆”字,热度后面跟着的数字每秒都在往上跳。
林瀚是在食堂吃晚饭的时候看到这条消息的。他坐在靠窗的位置,面前是一盘刚出锅的饺子,韭菜鸡蛋馅的,皮薄得能看见里面绿色的馅料轮廓。他夹起一只,咬了一口,烫得在嘴里倒了两下,咽下去之后才拿起手机看了一眼屏幕。食堂里人不多,靠墙那排桌子坐了几个后期组的年轻人,正对着手机屏幕小声议论着什么。陆晨曦坐在角落的位置,面前是一碗馄饨,代码蹲在她旁边的椅子上,前爪搭在桌沿,尾巴从椅面垂下来,末端的黑毛尖轻轻摆动。
林瀚放下手机,继续吃饺子。第二只他蘸了醋,第三只蘸了辣椒油,第四只什么也没蘸,只是尝了尝原味。吃到第五只的时候,手机屏幕亮了。
来电显示是一个陌生号码。他接起来,对面是一个男人的声音,语速不快,每个字之间的间隔比正常说话长一点点,像是每个字都在脑子里过了一遍才出口。
“林瀚先生吗。我是沈知远。”
林瀚把筷子放下。食堂的嘈杂声在他耳朵里忽然变得很远,像隔了一层水。
“你说。”
“我没有偷拍赵晓月。”
电话那头停了一拍。背景里有风声,有汽车驶过的声音,还有某种金属摩擦的声响——可能是他在一个开放的空间里,比如天桥或停车场。
“那张照片不是你拍的。我知道。”
“是周远航让我找机会接近她。他给我看了赵晓月的活动日程表,让我在踩点那天去老屋附近蹲着,拍一张她站立的照片回来。我去了。但我没有拍。”
“为什么。”
电话那头沉默的时间比之前长。林瀚能听到他的呼吸声,频率比正常说话时快了一些,但节奏还算稳。
“我在深镜科技做了三年数据标注。最后一个月,他们让我标一组儿童照片。一组被换过脸的儿童照片。我标到第七张的时候,认出了其中一个孩子的校服。是我小学的校服。照片里的脸被换成了另一个孩子的脸,但校服上的校徽没换。那个孩子可能是任何人,也可能是当年坐在我隔壁桌的人。我把那组照片退回给组长,说我不标。第二天我就离职了。”
他的声音在说到“校服”两个字的时候压低了半度,像是嗓子被什么东西卡了一下。
“周远航找到我的时候,说他在做正经的舆情监测,需要懂AI技术的人。我去了观镜,做了两个月,直到他让我用深镜的模型测试人脸数据。我看到输入框里那些脸,有赵晓月的,有苏雨晴的,还有其他我不认识的人。我认出那套模型的架构了,是深镜内部版本的架构。我知道那些脸被处理之后会被用在哪里,但我不敢拒绝。周远航手里有我在深镜的离职记录,他说如果我不干,他就把那份记录发给所有正在招聘的科技公司,说我因为操作不当导致数据泄露被开除。”
他又停了一拍。风声更大了,有车辆驶过的声音从近到远。
“那张照片,我真的没有拍。是另一个人拍的。我认识那个人的构图习惯,看照片的角度和焦距就能看出来。他以前在王天霸的辉煌娱乐做摄影师,拍过很多艺人的活动照。他拍人的时候喜欢从四十五度角切入,人物放在画面偏右的位置,留出左侧的背景。那张赵晓月的照片就是那个角度。周远航找他拍了照片,让我拿着照片去寄。我寄了。但我没有拍。”
林瀚把面前那盘饺子推到一边。盘底在桌面上划出一道很轻的摩擦声。
“你现在在哪里。”
“城北立交桥下面的停车场。我开了一辆灰色的捷达,停在最里面那排。周远航不知道我来找你。观镜被查封的时候我在外面跑腿,回来看到门口停了警车,我就没有进去。”
“你在那里等着。我让人去接你。”
“不用接。我自己开车过去。你告诉我地址。”
林瀚说了星途影城的地址,然后挂了电话。他坐在椅子里没有立刻站起来,把手机放在桌面上,屏幕朝上。食堂里那排后期组的年轻人还在小声议论,陆晨曦的馄饨碗已经空了,她正拿着勺子舀最后一口汤。代码的尾巴从椅面上垂下来,末端的黑毛尖轻轻扫过椅子的金属腿。
他站起来,把饺子盘端到回收窗口,然后走出食堂。初冬的傍晚天色暗得很快,路灯已经亮了,院子里的银杏树只剩一道深色的轮廓。他穿过院子,往星途影城那间小型放映厅的方向走。
放映厅在影城地下一层,平时用来做内部看片和试映。林瀚到的时候,里面灯还亮着,银幕上循环播放着《星途影城二期工程航拍纪实》,一架无人机在工地上空绕着圈飞,镜头里是光秃秃的土地和几台闲置的挖掘机。他把放映机关了,银幕暗下去,放映厅里只剩下墙脚一圈地灯的光。他拉过一把折叠椅,坐在银幕正前方,然后把另一把椅子拉开,放在自己对面,间隔大约一臂的距离。
沈知远到的时候,天已经完全黑了。他是从影城的侧门进来的,穿了一件洗旧的灰色卫衣,卫衣的领口松垮地翻着,露出里面一件深蓝色t恤的圆领,领口处有一道细长的磨损线头,线头末端分叉成两根,像是被反复揉搓过。他的头发很短,眉毛很浓,眉眼间距很宽,和监控截图里的轮廓一致,但真人比照片瘦了一圈,颧骨下面的皮肤微微凹陷,下颌线上有一小片青色的胡茬。他进门的时候在门口停了一步,目光快速扫过放映厅的每一个角落,确认只有林瀚一个人之后才走进来。他走路的时候步子迈得很小,鞋底是薄底的帆布鞋,踩在地面上几乎没有声音。
他在林瀚对面那把椅子上坐下来,坐姿很直,双手放在膝盖上,手指不停地捏着卫衣的下摆,指节微微泛白。他的手指修长,指节分明,指甲修剪得很短,甲床边缘有一圈被咬出来的毛边。
林瀚坐在他对面,没有站起来。
“那张照片不是你拍的。”
沈知远点头。他的目光从林瀚脸上移开,落在自己捏着卫衣下摆的手指上。
“是周远航让我找机会接近她。他没说拍照片,只说让我去老屋看看,说赵晓月可能会在那里出现,让我记下她站的位置和光线角度。我去了。我看到她了。她站在门槛上,左脚踩在门槛内侧,右脚微微外撇,重心落在后脚掌。我在巷子对面的泡桐树后面站了十分钟,看着她站了十分钟。然后我走了。我没有拍。”
他抬起头。放映厅地灯的光从侧面打过来,把他眼窝的阴影拉得很深。他的眼眶是红的,不是哭过的那种红,而是熬夜熬出来的那种,眼球上布着细密的血丝,虹膜的颜色被灯光冲淡了大半。
“我在深镜科技的时候,标注过那些脸的数据。我知道那些数据是从哪里来的。第一批是影视剧的截图,第二批是公开活动的照片,第三批开始就是偷拍和监控画面了。我标到第三批的时候开始失眠,每天晚上躺在床上,脑子里全是那些被换了脸的照片。有时候我分不清哪张脸是真的,哪张脸是假的。离职之后我以为我能忘掉,但周远航找到我的时候,他说了一句让我没办法拒绝的话。”
“什么话。”
“他说‘你标过的那些数据还在服务器上,如果你不帮我做,我就把它们打包发给所有招聘AI岗位的公司,包括你的下一家’。”
林瀚把面前那杯水推到他手边。水杯是放映厅里常备的纸杯,杯壁很薄,水是温的。沈知远看了一眼纸杯,没有拿,但他的手从卫衣下摆上松开了,搭在膝盖上,指节上的泛白慢慢消退。
“你现在能做什么。”
沈知远没有立刻回答。他低下头,盯着纸杯里的水面看了一会儿,像是在确认水里有没有倒影。然后他抬起头,目光和林瀚对上。
“我能把王天霸旧部所有还在用换脸技术的人列出来。一共十一个,分布在上海、杭州、深圳、成都。其中三个在影视后期公司任职,两个在广告公司,两个在游戏公司,一个在直播平台做审核,剩下三个是自由职业者。他们都在过去两年内接触过深镜科技的换脸模型。他们的技术特征、上线习惯、常用的Ip段,我都知道。周远航让我用模型测试那些人,我测过。每一次测试我都有记录。”
林瀚站起来。
“那你写下来。”
他从放映厅角落的抽屉里拿出一沓A4纸和一支黑色签字笔,放在沈知远面前的椅子上。沈知远接过纸笔,把A4纸在膝盖上铺平,笔帽拔开,笔尖在纸面上停了一瞬,然后开始写。他的字迹细而锐利,横画收笔的时候有一个向左回钩的小动作,笔尖在纸面上移动的速度很快,每一行字都排得很整齐。
林瀚走到放映厅门口,背靠着门框站着。地灯的光从墙脚打上来,把他的影子投在银幕下方的白墙上,轮廓清晰而安静。他回头看了一眼沈知远,那个人正低着头写字,灰色卫衣的后背被肩胛骨的动作撑出两道浅浅的棱线,笔尖在纸面上划出细密的“沙沙”声。放映厅里很安静,只有笔尖和纸面摩擦的声音,以及墙脚那圈地灯发出的极低的电流嗡嗡声。
大约过了二十分钟,沈知远写完了三张纸。他把纸和笔放在椅子上,站起来,活动了一下手腕。他的手指上沾了一点笔油,他用卫衣的下摆擦了擦,留下三道灰色的痕迹。
“名单上有十一个人。前四个我已经在纸上标了星号。他们最近一次上线是在三天前,用的还是深镜的模型。剩下的七个暂时没有动静,但他们的技术特征和上线习惯我都写清楚了。”
林瀚走过去把三张纸拿起来。纸面上的字迹密集而整齐,每个名字后面附着一行技术特征、一行上线习惯、一行常用的Ip段。星号标在名字左侧,画得很小,四角星,笔画利落。他把纸折好放进大衣内袋,和手机并排放着。
沈知远站在椅子旁边,双手垂在身侧。他没有立刻走,像是在等什么。林瀚看着他。
“你接下来打算做什么。”
“不知道。观镜被封了,周远航被控制了。我没有别的地方可以去。”
“你之前在深镜做标注的时候,除了那组儿童照片,还拒绝过什么。”
沈知远想了一会儿。
“还有一组。是某个女演员的。她被换脸到了色情视频里。我标到一半认出了她的脸,就退回了。后来周远航让我测的那批数据里,又有她的脸。她的名字在名单第一页的星号里。”
林瀚把大衣内袋里的纸抽出来,翻开第一页。星号第一个名字后面写着赵晓月的名字,技术特征栏写着“站立姿态数据,重心偏后,步幅偏窄,核心稳定”。第二个名字是苏雨晴,技术特征栏写着“行走步态数据,步幅中等,重心过渡流畅,肩线平稳”。第三个名字他不认识。第四个名字是叶诗涵。第五个名字是刘仙仙。
他把纸折好放回内袋。
“你先回去。这几天不要离开北京,手机保持开机。观镜的后续调查可能需要你配合。”
沈知远点了一下头,转身走向侧门。他走到门口的时候停了一步,侧过头。
“林先生,那组儿童照片里的校服,是城南三小的。如果你以后查到了那些孩子的身份,告诉我一声。”
他推开门走了。脚步声在走廊里渐渐远去,薄底帆布鞋踩在地砖上几乎没有声音,像是走路的人在刻意收敛自己的存在。
林瀚站在放映厅门口,等他的脚步声彻底消失之后才离开。他穿过影城地下一层的走廊,坐电梯到一楼,从侧门走到院子里。初冬的夜风从北边灌过来,把他大衣的衣摆吹得往一侧偏。他站在院子中间,抬头看了一眼办公楼三层的窗户。技术部的灯还亮着,陆晨曦可能还在机房里写代码。旁边赵晓月的办公室灯已经关了。再往右,叶诗涵的窑房方向有一盏小灯亮着,可能是窑炉的余温指示灯。
他把大衣内袋里的三张纸拿出来,在路灯下又看了一遍。第一页星号第一个名字旁边,沈知远用极小的字加了一行备注,笔迹比正文轻一些,像是犹豫了一会儿才写上去的——“她的站姿数据被调用过五次,每一次调用之后,模型输出的换脸视频都删除了。周远航可能只是用来测试模型稳定性,没有往外发。但我不确定。”
林瀚把纸折好,放回内袋。他站在路灯下,大衣的扣子系到最下面一颗,高领毛衣的领口贴住脖颈。院子里很安静,只有风穿过银杏枝丫的声音,枝头光秃秃的,连最后一片叶子都落干净了。树根旁边那片泥土上,赵晓月下午种的嫩芽被夜风吹得轻轻晃动,叶片上的锯齿纹路在路灯下泛着微弱的绿。
他站了一会儿,然后转身往办公楼走。走到门口的时候,手机响了。屏幕上跳出苏小暖的消息:“观镜查封的通报你看到了吧。沈知远那边有消息吗。”
他打字:“见过了。他写了一份名单,十一个人。前四个还在活跃,我已经标了星号。明天把名单发给陆晨曦,让她启动后门监控。”
苏小暖回复:“好。另外,赵晓月刚才打电话来问,饺子热好了要不要给你送过去。”
林瀚看着屏幕上的字,嘴角微微动了一下。他打字:“让她送吧。我在办公室。”
苏小暖发了一个句号,对话结束。
林瀚推门走进办公楼,走廊里的声控灯一盏一盏亮起来。他走向电梯,准备回办公室。电梯门打开的时候,他低头看了一眼大衣内袋的位置,三张纸的厚度隔着羊毛料子传来一点微弱的触感,和手机并排放着,边缘对齐。
电梯门合上了。
福利回放:苏小暖(接电话时)
她坐在办公室的转椅上,面前的平板电脑亮着,屏幕上是观镜公司查封通报的全文。她左手拿着手机贴在耳边,右手搭在平板屏幕边缘,指尖轻轻敲着屏幕边框,每敲一下,指甲盖的边缘就在屏幕上留下一个极浅的印记。雾霾蓝真丝衬衫的温莎结还卡在锁骨正中间,丝巾尾端垂在胸前,随着呼吸微微起伏。西装外套搭在椅背上,她只穿着衬衫,袖口从手腕上滑下来,露出一整截前臂,线条细而直,皮肤是常年在室内工作养出来的冷白。肘关节内侧那块颜色略深的茧在灯光下看得很清楚,是常年托着平板电脑看文件磨出来的。
她打电话的时候,身子往椅背一侧微微倾斜,重心落在左半边,右手肘撑在扶手上,手指松松地握着手机。丝巾的尾端从胸前滑到一侧,露出锁骨下方一小片皮肤,被台灯的光照得近乎透明,能看到皮肤下面淡青色的血管走向。她的头发盘在脑后,黑檀木发簪尾端那颗米粒大小的珍珠在灯光下泛着温润的亮。耳垂上没有耳洞,耳廓的线条被发丝遮住了大半,只露出最外侧的一小段弧线。
她挂断电话之后,把手机放在桌面上,屏幕朝上。然后她靠在椅背上,抬手按了按自己的后颈,手指插进发髻边缘,指腹在颈椎两侧的肌肉上按了两下。发髻被手指压出一个浅浅的凹陷,几根碎发从发髻里逃出来,贴在耳后的皮肤上。她按了大约十秒,然后把手收回来,坐直身子,重新拿起平板电脑,继续翻看通报下面的评论。
福利回放:赵晓月(热饺子时)
她站在食堂后厨的灶台前面,浅驼色羊绒开衫的袖口卷到小臂中段,露出一截被灶火烘得泛暖白的手腕。锅里的水已经开了,饺子在沸水里翻滚,白色的面皮在蒸汽里若隐若现。她用漏勺轻轻推了一下水面,饺子在水里转了两圈,边角浮起来又沉下去。灶台上的抽油烟机嗡嗡作响,蒸汽从锅口升起来,在她面颊周围形成一层薄薄的水雾,把她的眉睫打湿了一些,睫毛上挂着极细的水珠。
她穿了一条深灰色的阔腿裤,裤脚盖住鞋面,只在走动的时候露出一小截脚踝。牛仔裤的腰线被围裙带子束住,围裙是食堂里公用的那条,蓝白格子的,系绳在腰后打了一个蝴蝶结,结扣的位置刚好卡在后腰的正中间,把开衫的下摆压住了一小截。她弯腰用漏勺捞饺子的时候,开衫的前襟垂下来,露出一小截白色打底衫的领口,颈部的线条从下颌延伸到锁骨,皮肤在灶火的光里泛着温暖的白。
饺子捞出来之后,她拿了一只白瓷碗,把饺子码进碗里,十二只,码成一个规整的圆。然后她从调料架上拿下醋瓶和辣椒油罐,往小碟里各倒了一些。她把碗和碟子放在托盘上,托盘边缘放了一双竹筷,筷子头朝左,和碗的边缘平行。她端着托盘走出食堂的时候,脚上那双浅棕色的短靴踩在走廊地砖上,鞋底和地面之间的摩擦声很轻,步幅不大,重心落在左脚,右脚微微外撇。