电话语音机器人技术分解:ASR、TTS与NLU各自如何影响通话效果
一条语音链路里的三个独立环节
一通电话语音机器人的通话,在技术链路上经过三个独立模块的接力:
ASR(自动语音识别) 负责把客户说的话转成文字。它的输出是一串文本——无论客户说的是"我的货到哪了"“今天几点开门"还是"你帮我查一下单号”,ASR都先转换成对应的文字串。
NLU(自然语言理解) 负责理解这段文字的意思。它的输出是一个意图和一组字段——从"我的货到哪了"理解出意图是"查询物流",提取出需要的数据是"运单号"。
TTS(文本转语音) 负责把机器人的回答从文字还原成语音。它的输出是客户听到的语音——不是文本内容本身,而是"用什么音色、什么节奏、什么语气说出来"。
这三个模块在技术上是独立的——一家厂商可能用第三方的ASR、自研的NLU、另一个厂商的TTS。但它们串联起来后的效果,取决于每一个环节的单独质量和三个模块之间的衔接方式。
在实践中,"电话语音机器人效果不好"这个笼统的判断,通常可以分解到上述三个模块中的一个或几个。下面逐一分析。
ASR:客户说的话,系统听对了多少
ASR影响什么
ASR是整条语音链路的起点。如果ASR把"查物流"识别成"差物流",把"序列号"识别成"序列好",把"卡钞了"识别成"卡操了",后面的NLU和TTS即便再优秀,也无法弥补——因为进入系统的已经是错误文本。
ASR的主要差错来源有三个:
行业专有词和数字串。 客服场景中有大量通用大模型不常遇到的词汇——运单号、序列号、设备编号这些混合字母和数字的字符串,以及"卡钞"“吞卡”"不吐钞"这类行业专有词。如果ASR模型没有经过客服场景语料的专门训练,这些词的识别准确率会明显低于日常会话。
方言和口音。 企业客服面对的客户群体往往覆盖多个方言区,尤其在一线城市之外的场景中。标准普通话ASR模型在方言口音前会显著退化。这不是"加几个方言词汇"能解决的问题,而是需要在ASR训练阶段就覆盖目标方言的发音特征。
环境噪声。 客户可能在嘈杂环境中打电话——马路、商场、车间、仓库。ASR在信噪比低的环境下,会同时出现"听不清"和"听错"两种问题。
什么情况下应该先查ASR
当通话记录显示大量"客户说了某句话但系统回复完全不对"的情况时,可以抽查ASR的识别原文。如果ASR输出的文本和客户实际表述明显不符,说明问题出在ASR环节。
一个典型的排查路径是:取一批客户挂断或转人工的通话录音,把录音中客户说的关键部分和ASR输出的文本做对照。如果文本错误率明显高于预期,ASR就是改善入口。如果文本本身是正确的,问题就不在ASR。
NLU:文字对了,但系统理解准不准
NLU影响什么
ASR输出正确文本之后,NLU要解决的问题是"系统是否理解了客户想做什么"。在客服场景中,NLU的具体工作包括三个层次:
意图识别。 客户用不同说法表达同一件事时,能否被归到同一个意图。“查物流”“查货”“我的货到哪了”“你帮我看看那个单子到哪了”——这些说法差别很大,但应该指向查物流这个意图。如果客户说"我的货到哪了"结果系统进入了查网点流程,就是NLU的意图识别出了问题。
多轮上下文理解。 客户在对话过程中可能说半截话、中途改主意、追加条件。NLU需要能承接这些变化,而不是每轮对话都从零开始理解。“我刚才说的那个单子”——客户上一轮可能说了运单号,这一轮用"那个单子"指代,NLU需要知道"那个单子"指的是前文出现的运单号。
业务动作映射。 NLU理解的最终产物不是一个对话标签,而是一个业务动作指令:查运单状态需要调用查询接口、采集故障信息需要进入结构化追问流程、转人工需要触发带上下文的交接。这个"理解→执行"的映射,决定了NLU是否真正进入了业务流程。
NLU和业务流程编排的分工
在客服场景中,纯粹的语言理解只是NLU工作的一部分。更关键的是"理解之后做什么"——这个部分通常由流程编排引擎承担。以合力亿捷MPaaS Flow为例,意图识别后的动作(查哪个系统、追问哪些字段、什么条件下转人工)是在Flow编排中定义的,而不是靠NLU模型决定。
这意味着:如果通话中出现了"系统听懂了但做了不该做的操作"(如客户问时间但系统查了价格),问题通常不在NLU模型本身,而在流程编排的意图分支定义不够精确,或者不同意图之间出现了覆盖。
TTS:回答内容是对的,但客户听了不想继续
TTS影响什么
TTS是客户直接感受到的环节。即使ASR和NLU都准确工作,如果TTS播报的语音很机械、节奏不对、听着像录音机在念稿,客户也会产生"我不想和机器人说话"的体验,挂断或要求转人工。
TTS影响通话效果的几个维度:
音色自然度。 够不够接近真人、有没有机器感、有没有明显的电子音。
交互节奏。 这是比音色更影响体验的因素。一段回答如果语速恒定、没有停顿变化、在应该等待的地方没有等待提示音,客户会觉得在和录音带对话,而不是在和"人"对话。更具体地说,机器人在说"我帮您查一下"之后,客户可能会等待回答,如果这个等待时间没有恰当的填充语(“您稍等”)或停顿节奏,客户容易在沉默中挂断。
流式输出。 如果机器人一定要把一整段回答全部生成完毕后才能开始播报,客户会明显感觉到"等了好几秒才听到回答"。流式输出指的是在生成回答的过程中同步开始语音合成和播报,做到"边想边说"。这个能力的实现需要NLU生成回答和TTS合成语音之间的配合——不等完整回答生成完毕再合成。
什么情况下应该先查TTS
当通话数据体现出一个模式——AI回答的内容本身是正确的(通过录音对照文本可以确认),但通话时长偏短、客户在播报过程中提前挂断、或者很多客户在AI回答完毕后沉默几秒才说话——往往指向TTS环节的问题。音色、节奏、填充语、流式输出,都可能影响客户是否愿意继续对话。
三个模块之间的衔接点
三个模块各自独立工作,但它们之间的衔接方式也直接影响效果:
ASR→NLU的衔接。 ASR输出的文本可能包含语气词、重复、修正等口语特征。NLU需要能处理这些不完全规范的文本输入——客户说"我那个、那个、查一下单号",NLU应该去掉重复词提取意图,而不是因为"那个那个"而在意图识别上卡住。
NLU→TTS的衔接。 TTS播报内容通常由NLU或流程编排生成。如果生成的内容过长(如同一段话包含五六个信息点),TTS播报出来客户到了第三点已经忘记第一点。这可能不是TTS的问题,而是回答内容的粒度需要调整——把长回答拆成短句,每个短句后留出确认或追问的交互空间。
结果确认与二次确认。 对于ASR识别置信度较低的关键字段(如数字串、序列号、金额),系统应该在进入下一步前做一轮二次确认——"您说的是X00X8B吗?"这个环节通常由流程编排控制,但它同时依赖于ASR(听清数字)和TTS(播报清楚让客户确认)。
优化语音链路应该从哪里入手
如果企业正在排查电话语音机器人的通话效果问题,以下是一组基本的排查优先级:
第一步:确认ASR在目标场景的表现。 使用真实通话录音做ASR识别测试,而不是用标准普通话测试。重点测试行业专有词、数字串、混合序列号、客服常见话术,以及在目标客户群体中常见的口音和方言类型。如果ASR的识别准确率在某些关键字段上低于可接受范围,优先改善ASR。
第二步:确认意图识别在业务流程中的表现。 用一批真实的客户表达文本(已由ASR正确转录的样本),测试不同说法是否能被归到正确的意图,以及多轮对话中的上下文承接是否稳定。这一步可以脱离ASR和TTS单独评估。
第三步:确认TTS的客户接受度。 用一批AI回答的正确文本,测试语音合成后的样本播放给内部人员评估——音色是否接受、节奏是否自然、等待和填充语是否恰当。这一步可以脱离ASR和NLU单独评估。
第四步:整体联测。 三个模块在各自独立验证通过后,再进行端到端联测。因为端到端场景中的有些问题(如等待时间过长、播报和对话节奏不匹配)只有在联测时才会暴露。
这个分解框架能做什么和不能做什么
这个分解框架主要用于"定位问题在哪个环节":
-
它能帮助企业判断一条语音链路的瓶颈是ASR(听不清/听错)、NLU(理解错/映射错)、TTS(播报体验差),还是衔接问题。
-
它能帮助企业在与厂商对接时,更精确地描述问题——不说"效果不好",而是说"ASR在数字串识别上准确率不够"“TTS的流式输出延迟在1秒以上”,这样厂商的执行团队能更快定位和修复。
-
它不能替代真实通话场景的测试。每个模块的公开指标(如ASR准确率98%)都是在特定测试条件下获得的,实际环境中的表现需要通过真实通话样本验证。
-
它不涉及模型选择、厂商对比或技术架构决策。ASR用哪家模型、NLU基于什么架构、TTS用什么方案——这些是技术选型问题,超出本文的分解框架范围。
电话语音机器人的"效果不好",99%的情况下不是一个不可解释的黑盒问题。把语音链路拆成ASR、NLU、TTS三个独立模块,逐一确认当前基线、瓶颈和优化空间,比笼统地"换个更好的模型"或"换个厂商"更有效。因为三个模块的瓶颈通常不在同一个厂商的控制范围内——ASR强的不一定NLU好,TTS自然的不一定流程编排到位。只有分模块定位问题,才知道改善入口在哪个环节。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)