深夜的街角有一家“星火食堂”。你想请一位虚拟店员小星站在门口迎客。客人说“好冷,想来碗热汤”,小星不能只发呆或傻笑;她必须先听清声音里的词,再结合上次记忆接上话,还要看出客人裹紧大衣的动作,给出安慰的语气,同时让嘴唇和声音对得整整齐齐。这一连串动作在数字人领域,就是从“语音识别”走到“对话管理”,再经过“情感计算”“唇形同步”和“实时渲染”的一条完整流水线。本文用这家食堂的一晚,带你认识每位“员工”——也就是交互式数字人的核心技术栈,以及它在直播与客服中的落地方式。

岗位关联

掌握这条全栈链路,你才能把数字人从“会动的海报”做成“有温度的对话者”,这也是直播、客服等数字人产品落地的核心基本功。

目录
  1. 可视化演示
  2. 数字人总览:深夜食堂的完整岗位表
  3. 语音识别:先听清每一句
  4. 对话管理:有记忆的大堂经理
  5. 情感计算:会读心的小星
  6. 口型同步:让嘴和声音同拍
  7. 实时渲染:把虚拟形象端上舞台
  8. 落地方案:把小星送上直播和客服岗
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示交互式数字人的核心机制,通过基础/核心/应用/扩展四种模式展示关键概念与交互流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

交互式数字人:交互式数 交互式数字人系统架构 多轮对话管理与上下文理解 核心机制可视化 交互式数字人整体架构与关键组件

数字人总览:深夜食堂的完整岗位表

开食堂不能只立一个漂亮模特。小星是一支分布在麦克风、服务器和屏幕后面的团队:耳朵负责听清客人说话,大脑负责接住话题,心负责共情,脸和嘴负责表达,灯光舞台负责让一切被看见。这五个岗位合在一起,就是数字人产品的“技术栈全景”。你一旦理解了团队分工,后面所有技术名词都能对上号。

从技术上看,小星不是单体程序,而是一条多模态流水线。用户的语音、表情和环境变化作为“多模态输入”进入系统;系统先完成语音转写,再做对话管理,同时计算情感,最后通过渲染表达出来。这条链路的输出是一段带表情、带动作、口型同步的视频流。不同产品形态——直播、客服、教育——只是给这条链路换了不同的“营业柜台”。

Output=R渲染(D对话(S识别(Input)))\displaystyle \text{Output} = \mathcal{R}_{\text{渲染}}\Big( \mathcal{D}_{\text{对话}}\big( \mathcal{S}_{\text{识别}}(\text{Input}) \big) \Big)

1. 感知输入 \mathcal{S}:句子里的 \mathcal{S} 代表语音识别模块,负责把客人的声音变成可推理的文本。

2. 理解对话 \mathcal{D}:\mathcal{D} 是对话管理模块,读取文本和记忆状态,决定小星要回答什么。

3. 渲染表达 \mathcal{R}:\mathcal{R} 是实时渲染模块,把回复变成声音、表情、口型和动作。

明白了岗位分工,你就知道“数字人”不是一个算法而是一个系统。每一个岗位掉链子,客人都能立刻感觉到:要么小星听不见,要么她答非所问,要么她一脸冷漠,要么嘴型对不上。后续每一节,我们都会走进这家深夜食堂的后厨,逐个岗位参观。

Sasr(音频)=文本\mathcal{S}_{\text{asr}}(\text{音频}) = \text{文本}
Ddia(文本+状态)=回复\mathcal{D}_{\text{dia}}(\text{文本} + \text{状态}) = \text{回复}
Rrender(回复+情感)=视频帧\mathcal{R}_{\text{render}}(\text{回复} + \text{情感}) = \text{视频帧}

语音识别:先听清每一句

深夜食堂最怕客人说“打包”,店员听成“大包”。小星的第一关,是耳朵。客人说话时,麦克风采集到的原始音频像一锅咕嘟冒泡的汤,里面混着背景音乐、空调声和沉默。语音活动检测(VAD)先捞出没有内容的沉默,只把真正说话的音段送给后厨;流式处理则让音频一边进来一边转写,不必等客人说完一整句才动手。

技术上的核心模块叫 ASR(Automatic Speech Recognition,自动语音识别)。它把连续的声波切成小帧,提取声学特征,再在候选句子中找概率最高的那串词。声学模型负责判断“这段声音像哪个音”,语言模型负责判断“哪些词连起来更像人话”。两者结合,小星才不至于把“热汤”听成“热糖”。

W^=arg⁡max⁡WP(W∣X)=arg⁡max⁡WP(X∣W) P(W)\displaystyle \hat{W} = \arg\max_W P(W \mid X) = \arg\max_W P(X \mid W)\,P(W)

1. 最佳句子 \hat{W}:带小帽子的 W 表示最终选出的那句最可能文本,是 ASR 的输出。

2. 遍历所有候选 \arg\max_W:\arg\max 表示在全部候选句子 W 中找一个得分最高的。

3. 条件概率 P(W|X):给定声音 X 时,文本 W 出现的概率;这是 ASR 的优化目标。

4. 声学与语言模型:P(X|W) 是声学模型,P(W) 是语言模型,分母 P(X) 对同一段声音是常数,所以不比。

如果耳朵听不清,后面的对话管理、情感计算都会跟着跑偏。这就像厨房接到了错误点单,再好的厨师也做不出客人想要的那碗汤。所以数字人项目里,ASR 准确率与流式延迟,往往决定用户的第一印象。

W^=最可能的句子\hat{W} = \text{最可能的句子}
arg⁡max⁡WP(W∣X)\arg\max_W P(W \mid X)
P(W∣X)=P(X∣W)P(W)P(X)P(W \mid X) = \frac{P(X \mid W)P(W)}{P(X)}
W^=arg⁡max⁡WP(X∣W) P(W)\hat{W} = \arg\max_W P(X \mid W)\,P(W)

对话管理:有记忆的大堂经理

客人第二次推开食堂的门,只说一句“还是老样子”。小星不能一脸茫然,她要记得上次客人点的是“少盐的番茄牛腩饭”。这个“记得”属于对话管理的职责。对话管理像一位大堂经理:先判断客人这句话的意图——是点单、问路还是投诉?再补齐缺少的信息——“老样子”具体指哪道菜?最后生成一句自然回复。

对话管理内部有四个关键动作:状态跟踪维护“客人目前想要什么”的信念;意图识别判断“这句话想让我做什么”;多轮上下文把当前这句话和前面几轮粘在一起;回复生成决定该用什么句式回答。为了让小星在不确定时也不慌,系统会对“客人目标”维护一个概率分布,而不是只记住一个死答案。

b′(s)=η⋅P(o∣s,a)∑s′P(s′∣s,a) b(s′)\displaystyle b'(s) = \eta \cdot P(o \mid s, a) \sum_{s'} P(s' \mid s, a)\,b(s')

1. 旧信念 b(s'):b(s') 表示上一轮小星对“客人目标 s'”的信心大小。

2. 系统动作 a 与观测 o:a 是小星上一轮说的话,o 是客人刚刚给出的新回应。

3. 状态转移与观测更新:P(s'|s,a) 预测客人目标怎么变化,P(o|s,a) 表示新观察和目标的匹配程度。

4. 归一化系数 \eta:\eta 让更新后的所有概率加起来等于 1,保证它是一个合法分布。

大堂经理的核心价值是“不让对话失忆”。没有状态跟踪的数字人,每说一句话都像第一次见客人;有了状态跟踪,小星才能说出“这次还和上次一样少盐吗”这样有人情味的句子。

b(s′)=P(目标是 s′)b(s') = P(\text{目标是 } s')
a=小星的上一句a = \text{小星的上一句}
P(s′∣s,a)×P(o∣s,a)P(s' \mid s, a)\times P(o \mid s, a)
b′(s)=P(o∣s,a)∑s′P(s′∣s,a)b(s′)∑sP(o∣s,a)∑s′P(s′∣s,a)b(s′)b'(s) = \frac{P(o \mid s, a)\sum_{s'}P(s' \mid s, a)b(s')}{\sum_{s}P(o \mid s, a)\sum_{s'}P(s' \mid s, a)b(s')}

情感计算:会读心的小星

好的服务员不只记菜单,还会看脸色。客人抱着手臂、说话带叹气,小星会放低声音问一句“今天辛苦了吧?”这种能力叫情感计算。它分两步:第一步是情感识别,从客人说了什么、语气如何、表情怎样判断当前情绪;第二步是情感表达,决定小星自己用什么样的语气、表情和用词来回应。

情感计算最常用的思路是多模态融合。只靠文本容易漏掉语气,只靠表情又会忽略语义。于是系统把文本情绪、语音韵律情绪、面部表情情绪分别打分,再按权重相加。权重来自每一路信号的可信度:信号噪声大时,权重会自动调低。融合后的情感值不仅用于说话内容,还会驱动小星的眉毛、嘴角和语速,形成“共情反馈”。

e=α⋅e文本+β⋅e语音+γ⋅e表情,α+β+γ=1\displaystyle e = \alpha \cdot e_{\text{文本}} + \beta \cdot e_{\text{语音}} + \gamma \cdot e_{\text{表情}},\qquad \alpha+\beta+\gamma=1

1. 三路情绪信号:e_文本 来自语言语义,e_语音 来自音调和语速,e_表情 来自视觉画面。

2. 融合权重 \alpha,\beta,\gamma:三个希腊字母表示每路信号的重要性,数值越大越相信这一路。

3. 归一化约束:三者之和等于 1,保证融合结果稳定,不会因为叠加而爆炸。

有了情感计算,小星就不再是冷冰冰的点单机器。她能识别出客人着急、疲惫或开心,并主动调节自己的情绪表达——这就是“有温度的数字人”和“问答机器人”之间最本质的区别。

e文本+e语音+e表情e_{\text{文本}} + e_{\text{语音}} + e_{\text{表情}}
α≈文本可信度,β≈语音可信度,γ≈表情可信度\alpha \approx \text{文本可信度},\quad \beta \approx \text{语音可信度},\quad \gamma \approx \text{表情可信度}
α+β+γ=1\alpha + \beta + \gamma = 1

口型同步:让嘴和声音同拍

看译制片时,如果声音和嘴型对不上,观众会浑身难受。小星也一样,她说“热汤”时,嘴唇就要在发"tang"的瞬间做出对应的口型。口型同步的第一步是音素提取:把 TTS 合成的音频拆成 a、o、e、i、u 这样的最小发音单元,并标出每个音素的起止时间。

第二步是口型驱动:把音素映射成“视素”,也就是嘴巴在视觉上的基本形状。发“a“时嘴张大,发”u“时嘴嘟起,发”m“时双唇闭合。为了让画面更自然,还要在基础口型上叠加表情合成:比如”苦笑“和”微笑“的嘴型可以接近,但眼角和眉毛完全不同。音素到视素的映射加上时间对齐,才能让小星不变成”译制片腔”。

V(t)=Φ(P(t−τ))\displaystyle V(t) = \Phi\big( P(t - \tau) \big)

1. 音素序列 P:P 是音频里按时间排列的音素,比如 "t-a-ng"。

2. 映射函数 \Phi:\Phi 是一张音素到视素的映射表,把发音变成嘴巴形状。

3. 时间偏移 \tau:\tau 表示口型相对音频的微调量,用来消除感知层面的“对不上”。

口型同步不是逐帧硬描,而是让声音、口型和表情在同一根时间轴上起舞。深夜食堂里,客人也许说不清哪里不对,但只要对不上口型,他们就会觉得小星“像个假人”。

P(t)={p0,p1,p2,… }P(t) = \{p_0, p_1, p_2, \dots\}
Φ(音素)=视素\Phi(\text{音素}) = \text{视素}
V(t)=Φ(P(t−τ))V(t) = \Phi(P(t-\tau))

实时渲染:把虚拟形象端上舞台

哪怕小星的耳朵和大脑都完美,屏幕上的她如果一卡一顿,客人仍然会出戏。实时渲染是最后登场的舞台灯光师,负责把小星的 3D 模型、动作和表情变成流畅的视频帧。一个常见的指标是 30FPS,也就是每秒更新 30 帧画面。对观众来说,这已经是连续的运动;对渲染系统来说,每帧只有约 33 毫秒的预算。

这 33 毫秒要分给三件事:CPU 计算动画骨骼、GPU 绘制材质和光照、以及成像后与音频的同步。为了让预算不超支,工程上会做性能优化:远处看不清的细节用低精度模型,不重要的皮肤光泽提前烘焙,开口时只更新嘴部附近的贴图。3D建模和动作驱动决定“小星长什么样、会不会眨眼摆手”,渲染管线则决定“她能不能活在屏幕上”。

Tframe≤1000FPS,Tframe=TCPU+TGPU+T同步\displaystyle T_{\text{frame}} \le \frac{1000}{\text{FPS}},\qquad T_{\text{frame}} = T_{\text{CPU}} + T_{\text{GPU}} + T_{\text{同步}}

1. 帧预算上限:FPS 越高,留给每一帧的时间越短。

2. 总耗时构成:一帧时间由 CPU、GPU 和同步三部分相加得到。

3. 预算约束:总耗时必须小于等于帧预算,否则画面就会掉帧。

舞台灯光师的铁律是“宁可减特效,不可掉帧数”。当一个模块超时,系统通常会降低渲染精度或跳过次要动作,保留下小星说话的流畅感。毕竟客人来食堂是来吃饭的,不是来看幻灯片。

100030≈33.3 ms\frac{1000}{30} \approx 33.3\,\text{ms}
Tframe=TCPU+TGPU+T同步T_{\text{frame}} = T_{\text{CPU}} + T_{\text{GPU}} + T_{\text{同步}}
TCPU+TGPU+T同步≤33.3 msT_{\text{CPU}} + T_{\text{GPU}} + T_{\text{同步}} \le 33.3\,\text{ms}

落地方案:把小星送上直播和客服岗

后厨排练结束,小星终于要正式营业。最常见的两个岗位是直播虚拟主播和客服数字人。在直播间,小星一边读评论,一边根据观众情绪调整话术;在客服通道,她需要记住用户前面说过的每一句话,并准确回答业务问题。两个场景共享同一条技术链路,但对延迟和容错的要求不同。

一对一实时对话时,用户能明显感觉到“机器停顿”。工程上把端到端延迟拆成四段:ASR 转写、对话管理、TTS 合成、渲染上屏。语音识别和语音合成优先采用流式方案,让结果像自来水一样边来边用,而不是等整桶水接满。评估指标也不只看某一项:首字响应延迟、意图准确率、情感自然度、口型同步误差和渲染帧率,共同决定用户是否愿意留下来。

L=LASR+L对话+LTTS+L渲染≤300 ms\displaystyle L = L_{\text{ASR}} + L_{\text{对话}} + L_{\text{TTS}} + L_{\text{渲染}} \le 300\,\text{ms}

1. 四段延迟:L_ASR 是听清需要的时间,L_对话 是想好需要的时间,L_TTS 是说话需要的时间,L_渲染 是演出来需要的时间。

2. 交互预算:300 毫秒是业界常见的对话体验门槛,超过后用户会觉得“它反应真慢”。

3. 流式优化方向:要压预算,不是只压缩一个模块,而是让每个模块都流式并行。

落地方案的本质,是把技术栈装进具体的营业时间。直播让小星被更多人看见,客服让小星解决真实问题。只要评估指标盯得紧,这家深夜食堂就能从小小的门面,慢慢开成一条街的金字招牌。

L=LASR+L对话+LTTS+L渲染L = L_{\text{ASR}} + L_{\text{对话}} + L_{\text{TTS}} + L_{\text{渲染}}
L≤300 msL \le 300\,\text{ms}
L=max⁡(LASR,L对话,LTTS,L渲染)L = \max(L_{\text{ASR}}, L_{\text{对话}}, L_{\text{TTS}}, L_{\text{渲染}})

AI 应用场景

直播带货虚拟主播

阶段:多模态交互与内容生成

解决的问题:真人主播容易疲劳、情绪不稳定,深夜时段无人值班。传统直播用录播又无法和观众实时互动。数字人小星可以在直播间 24 小时在线,听评论、看弹幕、感知观众情绪并实时调整话术,再通过口型同步和实时渲染输出自然画面。

具体案例:一家美妆品牌在凌晨场启用虚拟主播小星。观众反复刷“太贵了”,情感计算识别出价格敏感情绪,对话管理调用促销话术,小星随即推荐小规格试用装,并配合“划算”的口型和表情完成讲解。整场直播首字响应延迟约 280ms,用户停留时长提升了 35%。

银行客服数字人

阶段:对话管理与情感计算

解决的问题:传统客服机器人只能单轮问答,用户说“刚才那个流量包再给我看一下”时,机器人往往忘记上下文。数字人通过状态跟踪和多轮上下文,在服务过程中始终记住用户正在咨询的业务对象;遇到用户语气烦躁时,自动放缓语速并转接人工。

具体案例:某手机营业厅部署小星作为大厅导引。用户先问“宽带套餐”,又补充“太贵了”,小星判定意图是比价,结合情感标签推荐了折扣方案,同时在屏幕上用微笑表情和同步口型完成讲解。最终业务办理成功率提高 22%。

Python 演示

python69 行
# -*- coding: utf-8 -*-"""简易交互式数字人:识别输入 -> 对话状态 -> 情绪 -> 口型"""  class SimpleDigitalHuman:    def __init__(self):        self.state_count = 0        self.order_map = {}        self.mood = "neutral"        self.lexicon = {            "开心": ["哈哈", "太棒了", "开心"],            "难过": ["难过", "累", "伤心", "低落"],            "生气": ["生气", "烦", "讨厌"]        }        self.viseme_pool = {            "a": "张",            "i": "咧",            "u": "嘟",            "n": "抿",            "default": "自然"        }     def hear(self, text):        mood = self._detect_emotion(text)        self.mood = mood        reply = self._reply_for(text)        visemes = self._visemes_for(reply)        self.state_count += 1        return {"reply": reply, "mood": mood, "visemes": visemes}     def _detect_emotion(self, text):        for label, words in self.lexicon.items():            for word in words:                if word in text:                    return label        return "neutral"     def _reply_for(self, text):        if "你好" in text:            return "你好,我是小星,很高兴见到你"        if "推荐" in text:            return "你上次点过少盐的菜,这次试试微辣招牌菜吧"        if self.mood != "neutral":            return "我听到你有些" + self.mood + ",先喝杯温水好吗"        return "我在听,你继续说"     def _visemes_for(self, text):        visemes = []        for char in text:            if char in "啊呀":                visemes.append(self.viseme_pool["a"])            elif char in "一你起":                visemes.append(self.viseme_pool["i"])            elif char in "无不":                visemes.append(self.viseme_pool["u"])            elif char in "嗯那":                visemes.append(self.viseme_pool["n"])            else:                visemes.append(self.viseme_pool["default"])        return visemes[:8]  if __name__ == "__main__":    bot = SimpleDigitalHuman()    line = input("你对小星说:")    result = bot.hear(line)    print("小星回复:", result["reply"])    print("小星情绪:", result["mood"])    print("小星口型:", "->".join(result["visemes"]))
目的:模拟一个极简数字人后端,把“听词—理解—共情—出话—对口型”的流程跑通,方便你理解真实系统的模块边界。
  1. self.lexicon = {...}这是小星的“情绪词典”,每个词都对应一种心情标签。
  2. mood = self._detect_emotion(text)读心师先扫一遍文本,判断客人当前情绪。
  3. if "推荐" in text:对话管理识别出“求推荐”意图,并调用记忆里的历史偏好。
  4. self.state_count += 1每完成一次交互,状态计数加一,模拟多轮对话的记忆累积。
  5. visemes = self._visemes_for(reply)回复文本被切成音素,再映射给嘴型模块。
  6. print("小星口型:", "->".join(result["visemes"]))输出前 8 个口型,演示唇形同步的基本思路。

常见误区

误区我觉得数字人就是美术和渲染的事,做一个好看的 3D 角色,再让嘴动起来就是虚拟主播了。反正我资源多,模型精美就行。

正解模型只是“小星的皮”,真正让她像人的是语音识别、对话管理和情感计算。就像深夜食堂不会因为门口立着漂亮模特就说饭菜好吃。用户第一句问“你叫什么名字”,如果模型不会回答,再精美的画面也留不住人。

为何常见:因为大家最先看到的是视觉形象,而背后的对话与情感逻辑藏在代码里,不容易被感知。

误区我认为只要把语音识别准确率做到 98%,数字人体验就一定好。剩下的问题都是网络不好。

正解准确率只是耳朵的听力,真正影响体验的还有流式延迟和上下文。哪怕听对了,如果一定要等客人说完整句才开始处理,用户会觉得小星反应迟钝。深夜食堂里,后厨反应速度和听懂点单同样重要。

为何常见:评测报告最喜欢展示准确率,容易让人忽视端到端链路里更隐蔽的延迟。

误区我理解多轮对话就是把用户之前说过的话全部存下来,问答时直接拼接历史。只要内存够大,就不会失忆。

正解单纯保存历史会产生大量噪音。真正需要的是状态跟踪和意图识别,把“客人上次点了少盐的菜”提炼成结构化记忆,而不是把一句话原封不动背上。对话管理更像大堂经理随身带一张干净的便签,不是带一箱录音带。

为何常见:从工程直觉看,“记住”很容易让人联想到存储,忘了理解与抽取才是关键。

误区我觉得情感计算就是接一个摄像头,识别客人是不是在笑。只要画面里检测到笑容,就让小星也笑。

正解情感计算要融合文本、语音和表情三路信号,还要负责表达和调节。客人嘴上说“没事”但语气低沉,单看表情会误判。真正的小星会综合所有信号,选择“轻声安慰”而不是“跟着傻笑”。

为何常见:视觉表情是最容易被看到的一路信号,所以人们常把它当成全部。

误区我认为数字人上线后,把每个模块都用最快的模型,拼命降到几十毫秒,用户就会满意。

正解延迟不是越低越好,而是要在 300ms 预算内取得整体平衡。如果为了快而砍掉情感计算或口型细节,用户会觉得“快但假”。深夜食堂追求的是整桌菜一起上齐,不是牺牲味道地催菜。

为何常见:优化单点比优化全链路简单,所以大家总爱抓住一个指标死磕。

面试题

Q1. 交互式数字人完整链路中,“耳朵”对应的模块是?

单选题 · easy

  • A.唇形同步
  • B.语音识别← 正确答案
  • C.情感计算
  • D.实时渲染

答案:B。数字人的“耳朵”负责把声音变成文本,即语音识别。唇形同步负责嘴型,情感计算负责情绪,实时渲染负责画面输出。就像深夜食堂里先有人听清点单,后厨才能开始做菜。

Q2. ASR 模块的主要输出是什么?

单选题 · easy

  • A.音频波形
  • B.文本序列← 正确答案
  • C.情感标签
  • D.3D 网格

答案:B。ASR 的职责是自动语音识别,输出最可能的文本序列。音频波形是输入,情感标签属于情感计算,3D 网格属于渲染建模。

Q3. 数字人的“口型同步”主要依据什么驱动嘴唇?

单选题 · easy

  • A.音素时序← 正确答案
  • B.随机动画
  • C.环境光照
  • D.观众热度

答案:A。口型同步需要从音频中提取音素和对应时间,再映射成视素驱动嘴唇。随机动画无法对齐声音,光照和观众热度与嘴型无关。

Q4. 对话管理中的“状态跟踪”最主要解决什么问题?

单选题 · mid

  • A.记住谁在说话
  • B.保持上下文一致← 正确答案
  • C.降低渲染帧率
  • D.压缩音频码率

答案:B。状态跟踪维护关于用户目标的概率分布,让“还是老样子”能接上“上次少盐的菜”,从而保持上下文一致。渲染和音频压缩属于另外模块。

Q5. 情感计算中多模态融合的主要目的是?

单选题 · mid

  • A.融合文本语音与表情信号← 正确答案
  • B.降低直播视频流的码率
  • C.替代对话管理模块的功能
  • D.直接生成虚拟主播的形象

答案:A。情感计算需要同时参考语义、语气和面部表情,才能避免“笑着说难过”这样的误判。它不等于码率优化、对话管理或形象生成。

Q6. 实时渲染中 30FPS 意味着单帧预算约为?

单选题 · mid

  • A.33 毫秒← 正确答案
  • B.100 毫秒
  • C.300 毫秒
  • D.1000 毫秒

答案:A。1000 毫秒除以 30 帧约等于 33 毫秒。如果 CPU、GPU 和同步的总耗时要超过这个值,画面就会掉帧。300 毫秒更常用来描述对话端到端延迟。

Q7. 数字人直播中,降低端到端延迟的关键策略是?

单选题 · hard

  • A.模块逐个整包顺序处理
  • B.流式流水线并行降首字延迟← 正确答案
  • C.彻底关闭情感计算模块
  • D.只加大网络带宽不优化

答案:B。整包处理会让延迟累加,正确做法是让 ASR、对话和 TTS 边处理边输出,流水线式并行。关闭情感计算会让体验变假,只加带宽解决不了算法耗时。

Q8. 以下哪些属于数字人交互链路中的“感知”环节?

多选题 · mid

  • A.语音识别← 正确答案
  • B.唇形同步
  • C.情感识别← 正确答案
  • D.3D 渲染

答案:AC。感知是从外部信号中获取信息,语音识别把声音变成文本,情感识别从语气与表情中判断情绪。唇形同步和 3D 渲染属于“表达”环节。

Q9. 以下哪些方法可以降低数字人的对话响应延迟?

多选题 · hard

  • A.流式语音识别← 正确答案
  • B.流水线并行处理← 正确答案
  • C.提升渲染分辨率
  • D.预生成常用回复← 正确答案

答案:ABD。流式识别让文本边来边出,流水线让模块并行,预生成常用回复能跳过部分 TTS 时间。提升渲染分辨率会增加 GPU 耗时,反而拖慢帧率。

Q10. 从“音素”生成自然口型时,需要哪些信息共同参与?

多选题 · extreme

  • A.音素序列← 正确答案
  • B.时间对齐信息← 正确答案
  • C.表情与情绪融合← 正确答案
  • D.用户网络带宽

答案:ABC。口型同步先要有音素序列,再知道每个音素的时间范围,最后叠加情绪表情才能自然。网络带宽影响传输,但不直接参与音素到口型的映射。