导读:携程数字人直播是携程市场直播研发团队联合市场BI团队设计开发的一种完全通过数字人进行商品讲解、用户互动、画面渲染等直播内容呈现的新直播模式的产品。第一版于25年7月上线,截至10月已经完成了数千场直播,直播时长近百万分钟,产生了上万个商品讲解切片。本文将主要介绍团队设计开发携程数字人直播产品的背景、方案调研、设计和研发过程中遇到的问题以及解决方案,同时也介绍了本产品的主要功能和未来的规划。
作者简介
ck,携程后端开发专家,关注技术架构、高并发、音视频开发、数字人技术等领域;
Andrew,携程算法专家,关注数字人直播算法、AIGC、智能营销算法等领域;
Martin,携程资深后端开发工程师,关注架构设计、服务调优、流媒体技术等领域。
一、研究背景
1.1 数字人直播的必要性
携程直播平台已开发了真人直播、循环直播及AI语音直播模式,每种直播模式都有各自的使用场景,也存在各自的局限性。
- 真人直播需真人主播全程实时录制、推流,人力依赖度高且难以规模化;
- 循环直播使用离线视频通过伪直播的方式进行直播,无需主播全程参与,但缺乏实时互动能力,无法解答用户疑问;
- AI语音直播使用AI模型生成商品讲解脚本通过音画分离的方式直播,可以无需人工干预实现实时互动,但会导致用户视听不一致,影响用户体验。
为了适应产品的发展亟需一种新的直播模式——既能实现真人出镜直播,提升实时交互与感染力,又能解除人工依赖,具备AI直播的全自动化能力。
针对此问题,我们探索了多种方案。经过深入研究和分析,结合文字转语音技术与数字人唇形同步技术,可有效实现数字人直播模式,从而解决上述问题。
1.2 数字人直播的核心目标
数字人直播的实现方式多样,其成本与适用场景各异,我们需结合携程直播业务的实际需求,具体分析所需功能和目标。经调研与分析,需实现以下核心目标:
- 高保真音色复刻,声音作为直播的基本要素,需支持对真人主播音色的高保真复刻,以保持与真人相同的感染力;
- 形象复刻,主播形象是数字人直播的关键,为实现与真人直播同等的效果,需对主播形象进行完美复刻;
- 实时互动,支持根据观众行为(如评论、下单、进入直播间)作出适当响应,包括解答疑问、欢迎新观众及讲解指定商品等互动行为;
- 氛围渲染,在商品讲解过程中,画面应动态呈现相关内容,例如贴片展示、背景更换及视频资料播放等;
- 成本控制,直播的使用与运营成本至关重要,需控制成本以满足大规模投产。
二、现状分析
2.1 行业现状
随着AI技术的飞速发展,数字人直播的核心技术链——包括高保真音色复刻、低延迟文字转语音、光影级形象建模及毫秒级唇形同步——已实现商业化的成熟度。这推动行业从实验探索迈入规模化应用阶段,市场应用覆盖旅游、电商、媒体、教育、金融等核心场景,但商用场景仍面临高拟真与低成本的矛盾——使用成本居高不下,中小商家难以普及。
在技术领域各种开源生态爆发式增长,如fishspeech、musetalk等项目,为数字人直播行业的技术开发提供了多种多样的选择,几乎在每个技术节点和各种使用场景都能找到合适的项目,大大降低了数字人技术的开发和使用成本,为行业提供了丰富多彩的解决方案。下面分析了几个主流的开源技术。
2.2 产品分析
目前数字人相关的开源项目比较多,这里介绍两个使用比较广泛的项目 OpenAudio 和 MuseTalk。
OpenAudio
OpenAudio是一个先进的文本转语音开源框架,它基于 VQGAN 与 Llama 等先进技术构建,能够生成高质量、自然流畅的多语言语音。该框架最新推出了OpenAudio-S1系列模型,在语音质量、性能和控制能力上实现了重大突破。OpenAudio-S1系列包含功能全面的旗舰模型OpenAudio-S1(4B参数)和具备核心能力的轻量版OpenAudio-S1-mini(0.5B参数)两款模型,均融合了在线人类反馈强化学习技术。OpenAudio具有顶尖性能、强大的语音控制能力、多语言与零样本克隆和部署友好的特点。
MuseTalk
MuseTalk是一款基于高质量音频驱动的人脸实时唇形同步模型,在ft-mse-vae潜空间中训练完成。它能够根据输入音频动态驱动未见过的人脸,实现自然、精准的口型同步和面部表情变化。
模型支持256×256分辨率的人脸区域生成,可实时修改人脸中心点位置,从而显著提升生成的自然度与细节表现。模型支持多语言音频输入,包括中文、英文和日文等,可广泛应用于虚拟主播、数字人、AI视频生成等场景。依托优化的推理架构,该模型在NVIDIA Tesla V100上可实现30帧以上的实时生成性能,满足直播、交互式内容创作等高实时性需求。
MuseTalk模型权重基于HDTF与私有高质量人脸数据集进行训练,具备良好的泛化与表现力。通过与语音识别、TTS、表情控制等模块结合,MuseTalk可构建出完整的AI数字人系统,实现从声音到表情的自然映射。
2.3 总结
综上所述,我们经过业务可扩展性和成本考虑决定利用已有的开源技术在我们的直播场景下做特定的优化和改造,依托于已有的直播平台开发携程数字人直播。
三、功能介绍
数字人直播主要依托于智能脚本、直播内容生成与流程控制、数字人视频生成和多维度的数据支撑等几个核心技术能力。

实时数字人直播流程主要包括创建直播间、上传商品、生成商品脚本、生成数字人视频、叠加视频背景、叠加商品贴片、生成直播视频、开始直播和直播互动,直播可以设置循环周期,在设定周期内循环直播。

由于篇幅有限,下面将介绍几个主要功能。
3.1 数字人直播内容
数字人直播的内容主要包括直播脚本、商品讲解视频等。
直播脚本包括商品讲解脚本和氛围渲染脚本,商品讲解脚本主要是对商品信息、商品卖点进行介绍,氛围渲染脚本是在讲解商品的具体信息时画面需要呈现的内容,包括呈现商品信息贴片、播放宣传视频等。脚本在商品上传货架后由AI模型统一生成,生成完成后用户可以在直播脚本编辑页查看,如果用户需要对脚本进行调整,则可以直接在编辑页面修改,但需要将商品讲解脚本和氛围渲染脚本对齐,用户修改的优先级大于AI生成。如下图所示:

为了在直播中能及时的回复用户评论,还能合理打断主播对商品的讲解,在脚本提交后需要对脚本进行拆分,根据我们对大量真人主播的观察和分析,每句话保持在15秒以内,既能保证商品讲解的顺畅进行,也保证回复的时效性。如下图所示:

商品讲解视频是在脚本编辑完成后生成,包括数字人视频和直播视频,数字人视频是数字人主播唇形同步画面和声音的合成,直播视频是按照时间线叠加数字人视频、背景和贴片后的最终视频。整场直播最终合成的视频是一个个15秒以内的视频片段,每个片段都关联了商品id和序号,直播时需要按照序号排序后进行循环播讲,待直播结束后也可以按照商品的维度进行合并,生成一个完整的商品讲解切片,在商品详情页和频道其他地方分发展示。
3.2 数字人音色与形象复刻
声音复刻模型不涉及漫长的“训练”过程,而是采用了一种称为“语音提示”或“零样本/少样本学习”的技术。这意味着用户只需要提供少量的目标音色音频作为参考,模型就能在推理时捕捉并模仿其核心特征。
为了获得最佳的音色复刻效果,需要用户提供几段高质量的音频样本。具体要求如下:
音频数量
通常建议提供 3 到 5 段 独立的音频。这个数量足以让模型捕捉到音色的独特性,同时又不会给数据准备带来过多负担。
音频内容
内容应清晰、纯净,最好是朗读书面语或日常对话的片段,建议包含多样化的文本,例如一些包含不同元音、辅音和音调变化的句子,这有助于模型更全面地学习音色的发音习惯和韵律特征,避免所有音频都在说非常相似的短句。
音频质量与时长
质量:尽可能使用高保真、无背景噪音、无回声、无失真的音频。纯净的音频能确保模型学习到的是纯净的音色,而不是噪音或混响。
时长:每段音频的理想时长在 20 到 30 秒之间。过短的音频可能信息不足,过长的音频则可能包含不必要的冗余信息,且处理起来更耗时。
发音人
确保所有音频都来自同一位说话人。如果音频中包含多人的声音,模型将无法学习到一致的音色特征。
数字人形象复刻模型需要用户提供一个3-5分钟的绿幕视频,提取视频中的人物面部特征和结构信息,然后根据输入的音频内容,实时生成与音频完全同步的口型动作,最终合成该人物自然说话的视频。
绿幕视频质量直接决定了最终生成视频的真实感、流畅度和口型准确性。要求如下:
“正面+清晰”是关键
正面朝向:人脸需正对镜头(偏转≤15°),侧脸会导致面部特征提取不完整。
特写构图:人脸占画面40%-60%为佳,类似自拍或证件照的构图方式。
高清画质:建议分辨率≥720P,避免模糊、噪点或过度压缩。
“静态+稳定”效果更佳
人物静止:推荐人物保持静止或微动(如自然呼吸),避免说话、转头等大幅度动作。
镜头固定:镜头需固定拍摄,避免晃动、推拉或运动镜头。
表情中性:建议微笑或自然放松的中性表情,避免夸张表情造成面部扭曲。
“嘴部区域”最关键
嘴部清晰可见:嘴部及周围区域必须完整清晰,这是口型合成的核心区域。
零遮挡:不能有口罩、麦克风、手、胡须等任何遮挡物。
无阴影:嘴部不能有明显阴影或高光。
光线要求
均匀打光:面部光线均匀,类似室内柔光或自然光环境。
避免极端光线:不要逆光、侧光或顶光造成面部明暗对比过强。
色温自然:避免偏色或过度美颜滤镜。
3.3 自动化氛围渲染
数字人直播的画面主要由数字人、背景、贴片构成,在一场直播中数字人形象一般不可变化,背景和贴片需要根据讲解的内容进行切换。

在脚本生成阶段需要按照语义对讲解的内容进行分段,使讲解的内容条理清晰,在获取每段脚本片段的语义后就可以匹配相应的图片、卖点、优惠等信息,把这些信息精炼后按照预定的模版生成贴片,然后与脚本片段进行编排,在直播视频合成的时候叠加到相应的时间段,就可以在直播过程中实现画面随讲解的内容进行呈现了。
背景的切换与上面的方式一样,一般情况下背景的变更不会像贴片一样频繁。
在实时数字人直播中还需要注意回复视频的画面变化,需要保证播放回复视频的时候背景和贴片不做变更,确保画面的连续。
脚本与画面编辑页面如下图所示:

直播间画面呈现效果是在讲解同一个商品不同内容时贴片和背景出现联动,如下图所示:

3.4 实时互动
直播间的互动主要是针对用户的行为作出响应,包括用户进入、提问、求讲解、下单等事件,针对每一种事件都有相应的响应策略,有些需要在评论区进行文字回复、有些则需要主播通过语音回复。
系统感知到用户事件后进行策略判断,对于需要响应的事件由AI模型生成回复内容和回复形式,文字回复可以直接在评论区输出,如果需要主播语音回复,先获取当前直播的进度,找到正在播放的片段,然后根据生成回复视频所需时间计算回复需要插入的点,找到插入点的前一个视频,获取到其最后一帧画面,用于生成回复视频,生成好后插入到播放点,待直播进度到回复视频时就会进行播讲。
直播间互动如下图所示:

四、技术方案
本章主要介绍数字人直播的方案设计和技术实现,以及在实践过程中遇到的问题和解决方案细节,将重点围绕以下几个问题展开:
- 数字人直播推流方案选择;
- 怎样实现实时视频回复;
- 怎样解决直播的画面连续问题;
- 怎样规模化生产数字人视频;
- 怎样控制数字人直播的使用成本;
4.1 数字人直播推流方案选择
传统的直播的推流是通过视频采集设备将主播的实时声音和画面连续不断的采集,再编码为特定的格式推流到直播平台。数字人直播则有所不同,它的视频流需要不断的合成,而合成视频是一个比较耗费资源的过程,通常商用平台和云厂商投入大量的计算资源用于实时合成实时推流,即脚本驱动直播的方式推流,这种方式可以达到真人直播推流的效果,但使用成本居高不下,普通用户难以承受,如某云厂商的收费高达6元/分钟。
在直播带货场景中,通常90%以上的时间都在介绍商品,而商品信息在开播前就已经确定,并且在直播结束前不会变化,这样我们可以在商品上传后就提前生成直播视频,开始直播时按照一定的机制来推送这些视频就可以保证视频流不中断了。
根据这个思路我们创新性的设计了一种全新的推流模式,即基于播单的直播推流,大大降低了对高性能服务器资源的依赖,可以使用空间换时间的方式逐步生成。
播单是一个视频队列,将需要直播的视频按照顺序添加到队列之中,然后从队列的开始进行推流,直至播放完成整个队列,如果直播还未结束则再从头推流,循环多次,直至直播结束。直播所需要的视频无需实时生成,在直播前可以预留一些时间用于直播准备,确保累计生成可以达到一定时长的视频后再开始推流直播,推流开始后推流与生成视频同时进行,每生成完一个视频片段追加到队列中,可以保证直播推流持续不断。如下图所示,

4.2 怎样实现实时视频回复
数字人直播模式的目标是实现和真人直播相同的与用户实时互动的效果,但是数字人直播的视频流并非实时生成,怎样才能实现与用户实时互动呢?
按照前面数字人直播流程的内容中可知,数字人视频的粒度是按照商品维度类划分的,通常一个商品的讲解需要3-7分钟,如果实时生成的回复视频插入到正在讲解商品视频的后面,很有可能几分钟之后才能播放,很难保证回复的及时性。根据我们对真人直播的分析,直播间用户提问后在10-40秒内回复比较合适。
依据对大量真人直播的观察与分析,我们可以按照真人主播说话频率将视频切分为15秒左右的片段,从而可以将视频片段粒度进一步细化,然后将这些片段按照顺序进行排列,加入播单,并且保证商品与这些片段进行关联,确保商品上下架时能精确删除和添加这些视频片段,在直播中回复视频插入到正在讲解的视频片段后面,就可以及时的视频回复用户了。
另外,由于商品讲解视频在后续的直播中还会循环使用,而回复视频只能对当前用户提问内容的回复,因此需要将临时插入的回复视频在播放完成后删除,确保后续直播中不会出现。如下图所示:

4.3 怎样解决回复视频画面连续性问题
可能您已经想到了上面实时回复方案存在致命的缺陷,直播场景下不仅仅是能够回复就行了,还要保证画面的连续,否则将大大降低直播的效果,让观众感觉一眼假。直播画面的连续主要是数字人主播在讲解商品片段的最后一帧画面需要与回复视频的第一帧画面相同,还要保证回复视频的最后一帧画面与下一个商品片段的第一帧相同,怎样解决这个问题是一个巨大的挑战。
我们设计并实现了一种基于镜像循环缓冲区的平滑过渡方案,完美的解决了回复视频与固定视频画面不连续的问题。该方案的核心流程如下:

1)预埋锚点帧:生成固定部分片段时记录其尾帧,称为锚点帧。
2)状态感知与定位:当生成完回复文字脚本后,根据以往生成视频耗时预测当前回复视频生成耗时A,再根据当前推流进度找到时间A的插入点,获取到插入点片段的锚点帧(记为第 N 帧)。
3)动态缓冲区计算:根据实时回复的预估时长T,计算出对应的视频帧数 X。随后从高速缓存(如Redis)中,读取以第N+1帧为起始的、连续 X/2 帧的图像序列。该序列被定义为过渡前缀序列,记为序列Y。
4)镜像序列生成:为保证过渡区域的时空连续性,算法将序列 Y 进行时序反转,生成一个名为镜像后缀序列的序列 Z。即Z是Y的倒序副本,其视觉效果表现为序列 Y 所包含动作的精确回放。
5)无缝循环拼接:将过渡前缀序列Y与镜像后缀序列Z进行拼接,形成Y+Z的完整序列。这个合成序列在时间线上构成了一个以 Y 开始、以 Y 的倒放结束的平滑动作循环。
6)精准插入:将最后拼接的数字人视频经过背景替换、贴片叠加后插入到第2步定位的插入点即完成回复流程。
4.4 怎样规模化生产数字人视频
数字人视频的生产对资源的要求比较高,为了实现同时生产固定视频和回复视频,本项目采用异步任务处理架构,但这两种任务需要同时运行,也存在资源竞争关系,怎样调度这两种任务成了项目投产后大规模应用的关键。
本项目设计了分任务分实例调度方案,首先是任务维度,分为两种,即离线任务与实时任务,建立两个任务池,当任务请求进来时根据类型分别加入到各自的任务池,并且按照加入时间排序,保证先进先处理。另外,对于同一场直播要求合成的视频画面是连续的,因此需要对任务进一步细分,按照liveId分桶,同一个liveId的任务放在一个桶内,按照先后顺序排序,保证任务执行生成的视频首尾帧相连。如下图所示:

然后是实例维度对资源进行拆分,比如5台GPU实例,其中一台专门处理实时任务,再用一台专门处理离线任务,最后三台两种任务都可以处理,每台实例都建立轮询机制,从远端任务池拉取任务,对于两种任务都能处理的实例,优先拉取实时任务,如果实时任务为空则再拉取离线任务。通过这种机制可以保证忙时优先处理实时任务,降低实时任务整体耗时,离线任务也可以保底执行;闲时两种任务能兼顾,充分压榨GPU资源,将其利用率提升了50%以上。如下图所示:

通过分任务分实例调度方案保证了在有限的计算资源下高效快速的规模化生产数字人视频,特别是在数字人直播的实时回复场景,能及时有效地实时生成,确保视频回复的及时。
4.5 怎样控制数字人直播的使用成本
数字人直播的主要成本在于音色复刻、数字人形象复刻和数字人视频的合成,音色复刻和数字人形象复刻属于一次性费用,需要用户提供符合要求的素材,通过我们自部署的模型进行训练就可以了。
由于使用播单的形式实现了数字人直播的推流,可以将GPU资源按照负载进行时间区分,忙时用于实时数字人直播的回复视频生成,闲时用于商品讲解视频生成,这样将GPU资源的利用率提升了50%以上,增加了数字人视频的产量,降低了使用成本,为大规模投产提供了前提。
直播视频是通过数字人视频叠加贴片和背景后合成,在实际开发中我们将数字人视频单独存储,在后续使用的过程中,如果需要替换贴片或者背景就不需要再次生成数字人视频,只需要将脚本中的贴片和背景调整,然后找出其对应的数字人视频,重新叠加贴片和背景就可以了,将数字人视频的利用率提升了30%,减少了重复生成对资源的消耗。
数字人直播合成的视频可以设置循环规则,在之后的一段时间内进行不断的直播,直播的次数越多,则均摊的成本越低,相比实时合成推流的方式大幅降低了成本。另外,还可以按照商品维度进行切片,将切片单独在商品详情页、列表页长时间使用,进一步发挥其价值。
经过上面的各种调度优化、资源利用和视频复用措施之后,相比云厂商或商用平台的脚本驱动直播方案,平均使用成本降低了90%以上。
五、规划与展望
目前携程数字人直播已经于25年7月上线,线上产生了比较好的效果,也为我们产品和技术发展的方向带来了一些灵感和启发。后续我们制定了规划,在开发中会不断地完善已有的功能和流程,希望在数字人直播领域能带来更多的新的方案和模式。
5.1 切片实时交互
商品讲解切片是直播最为重要的副产物,在直播结束后会将一个商品完整视频片段按照顺序合成为一个视频,可以在产品详情页、列表页为商品提供视频讲解。
实际上我们可以换一种思维,是不是可以在商品讲解切片中提供可以与用户交互的功能,让用户在看讲解的同时可以提出自己的问题,甚至是视频中没有讲解的信息,这样不仅让用户可以参与互动,还能提升其对产品的了解,最终提升产品的转换率。
5.2 站外推流模式
携程数字人直播目前只上线了站内直播,此外还有很多使用场景需要在其他平台直播,如在视频号、抖音等平台直播。目前为了节省成本采用的是供应商的播单功能,我们已验证了自研的服务端推流技术,可以通过rtmp推流地址向站外推流。后续也会增加站外推流模式,满足更多场景的使用。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。