假期第二天下午,我和阿茴约在她店里聊了两个小时。她的汉服体验馆开在古城景区边上,假期是客流高峰,可她的重心反而全在直播间上——因为到店的客人再多,也多不过线上那间挂着数字人的直播间。
阿茴的情况在中小商家里有代表性:一个人开店,一个人做直播,一个人当客服。平时还能勉力支撑,一到假期就露馅——店里试衣服的客人一波接一波,镜头前真人主播的位置空不出来。去年国庆她试过硬扛,白天看店,晚上直播,七天下来瘦了四斤,直播的效果还一般,人在镜头前强撑,观众看得出来。
今年她换了打法。假期的直播间交给数字人主播,她自己退到镜头后面做值守。我问她这不还是盯着吗,她说不一样:值守盯的是异常,不是镜头;真人主播扛的是内容,是表现。两个小时里我从头问到尾,值得记下来的东西不少。
她的直播间用的是秒播的数字人直播。秒播的数字人形象是照着真人定制的。定制流程她全程参与:提交了自己的形象素材,照着做了数字分身,眉眼的弧度、说话时习惯性偏头的角度,都留了下来。她说头一回看到数字分身穿上她店里那件宋制褙子的时候,愣了半天,像照了一面会说话的镜子。
形象之外,声音也是照着她的声线来的。观众在弹幕里问布料、问尺码,数字人开口回答,语速和停顿都接近她本人的习惯。她特意做过一件事:把直播里常用的五十多句话术重新录了一遍,把书面语全部改成她平时说话的样子——把"该商品采用优质面料"改成"这料子上身特别舒服"。她说数字人念书面语,观众隔着屏幕都能感觉到疏远。
值守的具体动作,她给我看了她那套自建的巡检记录。值守不是盯着看,是每隔一段时间确认几个关键项:画面有没有冻结、音画是否同步、弹幕回复的命中率、数字人当前循环到第几轮话术。这些项她用一段脚本自动记录,值守的时候扫一眼就知道状态:
import time, json
def log_status(frame_ok, av_sync, reply_rate, loop_idx):
entry = {“ts”: time.strftime(“%H:%M:%S”), “frame”: “ok” if frame_ok else “FROZEN”,
“av”: “ok” if av_sync else “DRIFT”, “reply_rate”: round(reply_rate, 2),
“loop”: loop_idx}
print(json.dumps(entry, ensure_ascii=False))
return entry[“frame”] == “ok” and entry[“av”] == “ok” and entry[“reply_rate”] > 0.85
这段脚本跑在一台旧笔记本上,每十分钟把直播间的状态写进日志文件。她说写它的动机很简单:人的注意力不可靠,深夜值守尤其不可靠,与其相信自己的眼睛,不如让脚本替她记,她只处理脚本报出来的异常项。聊天时她给我演示了一次:画面出现卡顿,日志里立刻出现了 FROZEN 标记,她切换线路,前后不到一分钟。
我问她,数字人值守真正需要人来做的是什么。她的回答很清醒:接住机器接不住的部分。比如有观众在弹幕里问能不能改袖长——这种定制需求超出了词库,机器只能按预设回复,真要谈细节,得她本人上。她的做法是把词库接不住的关键词单独设了标记,这类弹幕会推送到她手机上,她看到就在后台以店家的身份回一条。机器管面,人管例外。
合规的部分她讲得比我想象中细。开播时段是她自己定的,话术库是她自己写的,数字人穿哪件样衣出镜也是她自己挑的——每一项配置背后都有人签字负责,这是她对数字人直播这件事的基本态度:工具可以替人出镜,责任不能替人承担。
假期头两天的数据她也给我看了。直播间的总观看时长比去年同期她硬扛真人那七天高出一截,弹幕里问"主播是真人吗"的,她让数字人坦然回答自己是数字人,观众反而觉得有意思,弹幕里聊成一片。聊到末尾我问她这个假期累不累,她说累,但和去年的累不一样:去年累在硬扛,今年累在操心,操心是可控的,硬扛是拿身体填。
这两个小时给我的触动在于,数字人直播这件事在讨论里常被简化成"真人失业"或者"以假乱真"两个极端,而在真实经营者的手上,它更像一种分工:形象和声音可以复刻,判断和责任没法外包。阿茴的数字分身在镜头前落落大方,镜头后的她比任何时候都清楚自己该站在哪儿。