📖目录
- [1. 前言](#1. 前言)
- [1. 整体架构概览](#1. 整体架构概览)
- [2. 核心子系统详解](#2. 核心子系统详解)
-
- [2.1 名单系统(List Management System)](#2.1 名单系统(List Management System))
- [2.2 对话管理系统(Dialogue Management System, DMS)](#2.2 对话管理系统(Dialogue Management System, DMS))
-
- [2.2.1 意图识别与流程跳转](#2.2.1 意图识别与流程跳转)
- [2.2.2 人工干预策略](#2.2.2 人工干预策略)
- [2.2.3 通话结束状态管理](#2.2.3 通话结束状态管理)
- [2.2.4 实时语音识别与对话管理的必要性](#2.2.4 实时语音识别与对话管理的必要性)
-
- [2.2.4.1 ASR模型 vs 大模型](#2.2.4.1 ASR模型 vs 大模型)
- [2.2.4.2 对话管理系统 vs 大模型](#2.2.4.2 对话管理系统 vs 大模型)
- [2.2.4.3 小结](#2.2.4.3 小结)
- [2.3 呼叫组件(基于 FreeSWITCH)](#2.3 呼叫组件(基于 FreeSWITCH))
-
- [2.3.1 ASR/TTS 集成方式](#2.3.1 ASR/TTS 集成方式)
- [2.3.2 SIP 协议与运营商对接](#2.3.2 SIP 协议与运营商对接)
- [2.3.3 语音播报策略](#2.3.3 语音播报策略)
- 三、关键交互流程图
-
- [3.1 整体系统调用流程](#3.1 整体系统调用流程)
- [3.2 SIP 信令交互流程(简化版)](#3.2 SIP 信令交互流程(简化版))
- [4. 技术选型与优势](#4. 技术选型与优势)
- [5. 总结](#5. 总结)
1. 前言
在智能客服、营销回访、催收通知等场景中,AI外呼系统 已成为企业降本增效的重要工具。笔者曾主导多个AI外呼平台的架构设计与落地,涵盖金融、电商、物流等多个行业。本文将结合实战经验,详细拆解一个高可用、可扩展的 AI外呼系统架构 ,重点介绍其三大核心模块:名单系统 、对话管理系统 和 呼叫组件(基于 FreeSWITCH),并辅以流程图与技术细节说明。
1. 整体架构概览
整个AI外呼系统采用分层解耦设计,各模块职责清晰、松耦合、可独立演进:
+------------------+ +---------------------+ +------------------+
| 业务系统 | ----> | 名单系统 | <---- | 运营商/SBC |
+------------------+ +----------+----------+ +--------+---------+
| ^
v |
+--------------+--------------+ |
| 对话管理系统 (DMS) | |
+--------------+--------------+ |
| |
v |
+--------------+--------------+ |
| FreeSWITCH 呼叫引擎 |<-----------+
+-------------------------------+
|
+------------------+------------------+
| | |
[ASR] [TTS] [SIP Stack]
✅ 核心特点:
- 业务系统只关心"打给谁、说什么",不感知底层通信细节;
- 名单系统统一调度并发、线路、外显号资源;
- DMS 实现动态对话流控制;
- FreeSWITCH 作为稳定可靠的底层通信引擎。
2. 核心子系统详解
2.1 名单系统(List Management System)
名单系统是外呼任务的入口与调度中心,主要功能包括:
-
接收业务系统推送的外呼任务
格式示例:
json{ "taskId": "TASK_20251125_001", "customerPhone": "138****1234", "variables": { "name": "张三", "orderAmount": "299.00", "lastCallTime": "2025-11-20" }, "campaignId": "CAMPAIGN_PROMO_2025", "priority": 1 } -
管理外显号码(Caller ID)池
支持按地区、运营商、时间段分配不同外显号,避免被标记为骚扰电话。
-
控制并发与线路负载
每条中继线路有最大并发限制(如 30 路),系统动态分配空闲线路,防止过载。
-
回调结果上报
通话结束后,接收 FreeSWITCH 返回的最终状态(成功/忙线/拒接/异常等),更新任务状态并通知业务系统。
2.2 对话管理系统(Dialogue Management System, DMS)
DMS 是 AI 外呼的"大脑",负责动态生成对话流程,支持灵活配置与实时决策。
2.2.1 意图识别与流程跳转
-
初始化环节
系统根据业务变量(如客户姓名、订单金额)生成首句播报内容:
"您好,张三先生,您有一笔299元的订单即将到期..."
-
实时 ASR → 意图识别
客户语音经 ASR 转为文本后,请求ASR模型(如阿里云ASR服务)进行意图分类:
pythonintent = llm.infer( prompt=f"客户说:'{asr_text}',请判断意图:[确认还款|拒绝还款|转人工|挂断]", options=["CONFIRM", "REFUSE", "TRANSFER_HUMAN", "HANGUP"] ) -
配置化跳转逻辑
通过可视化流程图或 JSON 配置定义跳转规则:
json{ "current_node": "NODE_ASK_PAYMENT", "intents": { "CONFIRM": { "next_node": "NODE_THANKS", "action": "play(recording/thanks.wav)" }, "REFUSE": { "next_node": "NODE_OFFER_DISCOUNT", "retry": 2 }, "TRANSFER_HUMAN": { "action": "transfer_to_agent(queue_sales)" } } }
2.2.2 人工干预策略
- 实时转人工:当客户说出"转人工"或连续两次负面反馈时,立即桥接至坐席队列。
- 挂断后转人工:通话结束后,若最终意图为"有意向但未确认",自动创建工单并分配销售跟进。
- 支持多种挂断类型 :
- 主动挂断:AI 主动结束(如完成通知)
- 正常挂断:客户听完后挂机
- 异常挂断:网络中断、静音超时等
2.2.3 通话结束状态管理
通话结束后,DMS 生成结构化结果,包含:
- 最终意图(如
INTENT_CONFIRMED) - 关键信息抽取(如客户承诺还款日期)
- 通话时长、ASR准确率等指标
该结果同步至名单系统,用于后续分析与再营销。
2.2.4 实时语音识别与对话管理的必要性
在AI外呼系统的设计中,我们强调了使用专门的ASR(自动语音识别)模型和独立的对话管理系统的重要性。虽然大模型(如Qwen、ChatGLM等)在自然语言处理领域取得了显著成就,但在实时语音识别和对话管理方面,它们并不是最佳选择。
2.2.4.1 ASR模型 vs 大模型
为什么不能用大模型进行语音识别?
-
实时性要求高:在外呼场景中,对客户的每一句话都需要快速响应,以保持流畅的对话体验。大模型由于其庞大的参数量和复杂的计算过程,在实时处理方面表现不佳。相比之下,ASR模型专为语音识别设计,优化了计算流程,能够在保证准确率的同时提供低延迟的响应。
-
资源消耗大:运行大模型需要更多的计算资源和时间,这将导致成本增加,并可能影响系统的稳定性。而ASR模型相对轻量,更易于部署和维护。
因此,在我们的架构中,选择了专业的ASR服务来实现语音到文本的转换,确保了对话的即时性和准确性。
2.2.4.2 对话管理系统 vs 大模型
为什么需要专门的对话管理系统?
-
合规性考量:在特定业务场景下(如催收、营销、通知),对话内容必须严格遵守相关法律法规及公司政策。大模型生成的对话文本难以控制,可能会产生不符合预期甚至违规的内容。而通过配置化的对话管理系统,可以预先设定好各种情况下的回复策略,确保每一条信息都符合规定。
-
精准引导客户需求:针对不同的业务目标(如销售转化、还款提醒、服务通知等),需要根据客户的反馈做出相应的回应。大模型虽然能够理解上下文并生成合理的回答,但无法精确地按照业务逻辑进行对话引导。对话管理系统允许开发者基于业务需求定义详细的对话流程,从而有效地引导客户完成特定行为。
2.2.4.3 小结
尽管大模型在很多领域展现了强大的能力,但在实时语音识别和对话管理方面,我们依然需要依赖专门的ASR模型和对话管理系统。这不仅是为了满足实时性的要求,也是为了更好地适应业务需求,保障合规性以及提高用户体验。
2.3 呼叫组件(基于 FreeSWITCH)
我们选用 FreeSWITCH 作为底层通信引擎,因其开源、高性能、插件丰富,且支持 MRCP、SIP、WebRTC 等多种协议。
2.3.1 ASR/TTS 集成方式
| 方式 | 技术栈 | 说明 |
|---|---|---|
| Socket + Protobuf | C++/Lua + TCP | 自研 ASR/TTS 服务,通过 protobuf 定义语音包格式,低延迟,适合私有化部署 |
| MRCP 协议 | mod_unimrcp | 标准协议,只需配置即可对接科大讯飞、阿里云等厂商服务 |
| HTTP API | Lua + curl | TTS 请求云端服务(如 阿里云 TTS),返回音频 URL 或 音频文件信息(base64) |
✅ 推荐:混合模式 ------ 内网用 Socket,公有云用 HTTP/MRCP。
2.3.2 SIP 协议与运营商对接
FreeSWITCH 通过 SIP Trunk 连接运营商,中间通常经过 SBC(Session Border Controller) 进行安全与 NAT 穿透。
SIP 信令交互流程如下:
FreeSWITCH SBC 运营商 INVITE (SDP: G.711) INVITE 183 Session Progress 183 Session Progress 200 OK (SDP) 200 OK ACK ACK 通话建立,RTP 流直通 BYE BYE 200 OK 200 OK FreeSWITCH SBC 运营商
🔍 关键点:
- 外显号(From Header)由名单系统指定;
- SDP 协商音频编码(通常 G.711/PCMA);
- SBC 负责防攻击、拓扑隐藏、媒体代理。
2.3.3 语音播报策略
- 预合成录音 :高频语句(如"您好")提前生成
.wav文件,本地播放,零延迟。 - 实时 TTS 合成:个性化内容(如订单金额)调用 TTS 服务,缓存结果供复用。
- 混合播报 : "您好,{name}先生,您的订单{amount}元即将到期。"
→ 拼接
[pre_hello.wav] + [具体名字] + [pre_order.wav] + [具体金额]
三、关键交互流程图
3.1 整体系统调用流程
推送任务 分配线路/外显号 INVITE 振铃/接通 语音 ASR 文本 意图识别 跳转指令 TTS 请求 音频 播放 通话结束 最终意图 业务系统 名单系统 FreeSWITCH 运营商 客户 DMS对话管理 ASR模型 TTS 服务
3.2 SIP 信令交互流程(简化版)
见上文 sequenceDiagram。
4. 技术选型与优势
| 组件 | 选型 | 优势 |
|---|---|---|
| 通信引擎 | FreeSWITCH | 开源、高并发、插件生态完善 |
| ASR/TTS | 自研 + 阿里云 | 成本可控,兜底保障 |
| 意图识别 | Qwen/Qwen-Audio | 支持多轮对话理解 |
| 配置管理 | JSON + 可视化编辑器 | 非技术人员可维护流程 |
| 并发控制 | Redis + 分布式锁 | 精确控制每条中继并发 |
💡 核心价值 :
业务规则与通信逻辑完全解耦,市场人员可通过配置调整话术,无需开发介入。
5. 总结
本文详细阐述了一个生产级 AI外呼系统 的架构设计,涵盖名单调度、智能对话、底层通信三大核心模块。通过 FreeSWITCH + ASR模型 + 配置化流程引擎 的组合,实现了高灵活性、高稳定性与低成本运维。
📌 后续优化方向:
- 引入 情感分析,动态调整话术语气;
- 支持 多语言混合播报;
- 对接 CRM 系统,实现闭环营销。
完整代码因涉及商业逻辑暂不公开,但核心思路已在文中体现。欢迎留言交流!
觉得有帮助?一键三连支持原创!
👉 [点赞] 👉 [收藏] 👉 [关注]
相关阅读: