30 分钟快速构建语音 AI Agent
个人实践分享快速开发并部署语音交互 Agent 的全流程,展示了现代 AI 开发的极速迭代能力。
个人实践分享快速开发并部署语音交互 Agent 的全流程,展示了现代 AI 开发的极速迭代能力。
我一直在试验 AI 智能体,但这次我想构建一个语音 AI 智能体。老实说,这确实令人望而却步(如果你从未构建过的话)。
语音 AI 智能体如今变得越来越普遍,所以我抓住机会学习其核心组件和原理,理解一切如何协同工作。
本文涵盖了我学到的所有内容:语音 AI 智能体的构成模块、分步构建指南、测试和部署,还列举了当今流行的平台和一些真实应用案例。
如果你一直对语音智能体的工作原理感到好奇(或想构建自己的),这可能会帮助你快速入门。我仅用 30 分钟就将智能体部署到了我的作品集中。
总结来说,我们将详细介绍以下主题:
什么是语音 AI 智能体?
构建语音智能体的流行工具和平台。
从零开始构建第一个语音智能体的分步指南。
实际应用案例及示例。
你可能已经熟悉 AI 智能体,它们是能够理解任务、自主思考和独立采取行动的计算机程序。
语音 AI 智能体进一步结合了语音和推理能力。
它们是自主系统,能够听懂你的语音,理解你说的内容(使用语音转文本),通过大语言模型(如 GPT-4)生成响应,并使用合成语音(文本转语音)将答案回复给你。
主要分为两种类型:
入站智能体:接听电话并在有人拨入时进行应答。
出站智能体:主动拨出电话以传递信息、提醒或执行任务。
与传统虚拟助手(如 Siri)不同,语音 AI 智能体能够执行多步骤的复杂任务,范围包括:
答接客户来电
发起出站活动
通过网站上的语音小组件提供支持
支持英语、阿拉伯语或任何其他支持的语言
如果你对这些智能体背后的技术感到好奇,这里有两篇很好的阅读资源:
Deepgram 的《什么究竟是 AI 语音智能体?》
Picovoice 的《语音 AI 智能体如何工作?》
最棒的是,你不需要成为专家就能构建一个。有许多工具如 DataQueue 的 VoiceHub 和 Retell AI,可以让你在短短几分钟内轻松创建和测试一个可工作的语音智能体。
接下来让我们了解其中的一些平台。
如果你想构建自己的语音 AI 智能体,有多个框架和工具可供使用。选择正确的平台取决于:
语言和地区支持。例如,许多平台不能很好地处理阿拉伯语(中东北非地区)或印度英语。
你是否习惯编写代码,或更喜欢无代码平台。
你是否想要自定义设置(更多控制,耗时更长)或更快的解决方案。
你的重点是移动端智能体还是网页体验。
我认为选择正确的平台不在于什么是"最好的",而在于什么适合你的使用场景。
以下是最流行的平台:
VoiceHub by DataQueue - 无需编写代码即可构建语音智能体的最简单方式。它将 LLM 连接到电话呼叫,让你定义工作流并快速部署。额外优势:中东北非地区支持非常完善(与许多其他平台不同)。我将在下一部分使用这个。
Rime - 让你用语音和文本构建对话式 AI 应用。适合更高级的语音流,支持集成并拥有精心设计的 UI。
Vapi - 使用 LLM 构建基于电话的语音智能体,并将其连接到真实号码。为呼叫流提供简单的 API 和 UI,用于日程安排、问答机器人和热线。
Retell AI - 专门从事电话呼叫自动化。让你创建可以通过电话线进行实时对话的语音智能体。
LiveKit - 用于实时音频/视频开发的开源平台。虽然它本身不包含 AI,但它为你提供实时语音基础设施。
Twilio Voice + OpenAI + ElevenLabs - 更灵活的设置,使用 Twilio 处理电话/音频输入,使用 GPT-4 生成响应,使用 ElevenLabs 进行语音合成。需要编码但为你提供完全的控制权。
还有针对特定功能的专用平台,如 Deepgram 因其高度准确的语音转文本(STT)而受欢迎,ElevenLabs 因其逼真的文本转语音(TTS)而流行,可生成自然流畅的语音。你可以通过 Twilio 等服务为你的智能体启用拨打和接听电话的功能。
这完全取决于你的使用场景,但我选择使用 VoiceHub 来创建语音智能体。它将在后台使用 ElevenLabs 语音和 OpenAI GPT-4o 作为模型。
现在终于到了构建真实智能体的时候。我选择使用 VoiceHub 是因为它的快速设置、轻松的第三方集成和对中东北非地区的坚实支持。
我通过了官方文档,手动测试了所有内容,并记录了关键步骤,这样你就不必陷入行业术语。
步骤 1:注册仪表板
你可以在 voicehub.dataqueue.ai/ 注册并访问仪表板。
这是仪表板的样子。我们将在进行过程中逐步讲解各个部分。
点击"+ New Agent"按钮开始。你可以创建一个空白智能体或使用现有的模板。我使用现有的模板,这样更容易跟进。
创建后,你将进入智能体的工作区。
这里有多个有用的选项卡,包括"Call logs"(呼叫日志)、"Phonebook"(电话簿)、"Analytics"(分析)、"Provider keys"(提供商密钥)等。
最有用的是"knowledge base"(知识库)(RAG),它帮助在对话中智能检索信息以提供准确的响应。
如果你切换到侧边栏中的"configuration"选项,你将看到你可以调整的所有内容。你应该将语言更改为英语(默认是阿拉伯语)。以下是对选项卡的简要说明:
Models - 选择你的 STT 和 LLM 提供商
Voices - 选择你的智能体的声音。你可以通过输入内容并听其发音来测试语音
Pathway - 用可视化方式或全局提示构建你的智能体逻辑
VoIP - 为你的智能体分配电话号码以接听或拨打电话
Analysis - 决定如何标记呼叫、跟踪其进行情况并检查情绪。
Widget - 在你的网站上添加语音聊天界面并自定义其外观。
White Labeling - 为你的团队设置你自己的品牌、徽标和自定义域名
如你在右上角所看到的,你可以在两种模式之间切换:
a) DataQueue Mode(针对中东北非地区优化的堆栈)
创建新智能体时的默认模式
使用 DataQueue 为语音识别(STT)、对话逻辑(LLM)、语音合成(TTS)完全优化的模型。
专为准确性、延迟、情绪检测至关重要的中东北非地区使用场景而设计。
语音设置和调整通过 DQ Configs 选项卡处理。
注意:在此模式下,你无法手动覆盖模型提供商。在第二部分中可能会提及。
b) Custom Mode(提供商灵活性)
Custom Mode 为你提供模型选择和配置的完全灵活性。以下是支持的提供商:
STT 提供商:Google、Deepgram、Gladia、Speechmatics、Azure
TTS 提供商:ElevenLabs、Deepgram、LMNT、Cartesia、Rime AI、Azure、OpenAI、Google
LLM 提供商:OpenAI、Groq、Claude (Anthropic)、Cohere、DeepSeek、Ollama、Grok
确保在 Models 选项卡的 STT 设置中将语言从默认值改为 en-US。
你也可以执行并排基准测试,比较不同的设置以识别任何特定使用场景的最优配置。
有数千种语音可供选择,涵盖不同的口音和音调。第三方集成(TTS 提供商)的设置也很简单。
它们提供了两种方法来定义智能体的行为方式:
a) 单个提示词
单个提示词来指导智能体的整体行为(类似于传统 LLM 应用中的系统提示词)。当智能体只需要回答常见问题或以被动方式运作时,请使用此方法。
b) 对话路径
这是一个可视化拖放构建器,用于使用连接的节点定义复杂的流程、变量和决策逻辑。这就是我将使用的方法(似乎更简单)。
我建议在以下情况下使用此方法:
可以,可以将它们结合起来。你可以先从全局提示词开始,然后稍后添加对话流,或者先构建流程,再使用全局提示词作为备份。
你可以在路径中添加不同的节点。以下是节点列表及各节点的用途:
例如,默认节点会说一条消息并等待回复。而"结束通话"节点只是结束对话。
点击节点打开自定义选项。你可以定义特定行为、条件或插入知识库查询。
你可以使用"开始测试通话"或"开始测试聊天"来测试智能体。你只需在网站上提供必要的麦克风权限,助手就会根据你的流程做出响应。
此示例只有两个节点,因此智能体回复一次后就结束通话。
你还可以进行 QA 测试来模拟对话场景,并评估智能体的实际行为表现。它会为每个测试场景产生通过/失败结果,让你在部署到生产环境前识别弱点。
示例测试用例:嗨,我想在下周一下午 3 点安排一个新的约会。
✅ 通过:智能体以适当的语气确认正确的日期/时间 ❌ 失败:智能体忽略时间或响应模糊
你还可以获得完整的通话日志来分析过去的对话。
我认为我们都同意本地测试更容易。只需构建工作流,测试一下就可以了。但如果我们不能将其交付给真实用户,那有什么意义呢?
VoiceHub 使这变得超级简单。导航到"配置 > Widget",你将获得网站的唯一嵌入代码。你将可以选择自定义外观、位置和欢迎消息。
它看起来大致如下。
<dq-voice agent-id="your-agent-id" env="https://voicehub.dataqueue.ai/"> </dq-voice>
<script src="https://voicehub.dataqueue.ai/DqVoiceWidget.js"></script>
我在 Next.js 投资组合网站上试过,它能正常工作。如果你直接将其放在关闭的 </body> 标签之前,你可能会收到一个错误,说"Property 'dq-voice' does not exist on type 'JSX.IntrinsicElements'"。
要修复此问题,请按以下步骤操作:
a) 有一个 <dq-voice> 标签,因此为了让 TS/React 将其视为有效的 JSX 标签,我们需要将其添加到新的声明文件(src/types/custom-elements.d.ts)中。
declare namespace JSX {
interface IntrinsicElements {
'dq-voice': React.DetailedHTMLProps<
React.HTMLAttributes<HTMLElement>,
HTMLElement
>
}
}
b) 在项目的根 tsconfig.json 中,添加 types 文件夹,这样 TS 就会加载该文件,不再对未知标签进行投诉。
"include": [
"src/types/custom-elements.d.ts",
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
],
c) 现在只需将 widget 插入到你的 Next.js layout.tsx 中。
dq-voice 挂载自定义 widget 元素。
Script 确保在页面可交互后加载 widget 脚本(安全且高效)。
<dq-voice agent-id="id"></dq-voice>
<Script
src="https://voicehub.dataqueue.ai/DqVoiceWidget.js"
strategy="afterInteractive"
/>
运行服务器后,它会立即上线,并弹出一个窗口要求麦克风的必要权限。
你可以根据你的工作流进行常常的对话,它会相应地进行监听/响应。
就这样,我构建并部署了我的第一个语音 AI 智能体!🎉
你还可以使用他们的云服务部署,配置你自己的私有基础设施,或使用混合部署(优化基础设施,将服务器和 GPU 成本降低高达 90%)。
我也尝试过一些更高级的流程,但涵盖它们会使事情有点令人困惑,所以我决定把它留出来。
我无法涵盖所有内容,所以我建议查看官方文档并自己尝试。如果你仍然想了解真实世界的用例,请查看下一部分。
一旦你熟悉了语音 AI 智能体,就很容易看出它们有多强大(尤其是在用于自动化工作流时)。
以下是一些真实世界的用例,展示了可能的情景:
✅ 在国际机场部署的 AI 智能体,为残障乘客提供支持
这是一个会让你印象深刻的用例。DataQueue 团队正式在约旦安曼的阿利娅皇后国际机场部署了 VoiceHub AI 智能体。
该智能体旨在支持残障乘客,确保他们在 5 分钟内获得所需的帮助。
这是演示视频!
他们正在中东北非和欧洲的机场推出类似项目,通过处理客户支持、无障碍访问和实时响应在机场产生积极影响。
✅ 内部状态检查的自动通话智能体(工程和运维团队)
初创公司通常是快节奏环境(基础设施团队、DevOps、物流运维),团队经常需要了解最新的进展问题、服务状态甚至部署日志。
与其使用 Slack 提醒或等待某人检查仪表板,语音智能体可以主动拨打团队成员,总结当前情况并记录任何更新或确认。
流程可能如下所示:
Cron 作业每 2 小时触发一次。
智能体拨打值班工程师进行状态更新:嗨,只是检查一下。最新的部署以 2 个轻微警告完成。你想让我通知 QA 还是先等等?
工程师回复"等等直到我们修补" → 智能体通过 API 将响应记录到 Jira 或内部仪表板。
如果没有回复 → 它会回退到 SMS 或通话升级。
✅ 语音智能体让冷邮件更个性化(通过通话)
这是一个非常令人兴奋的工作流,适合销售团队在发送推介前想要"加温"冷邮件。
与其发送通用邮件群发,智能体拨打潜在客户,确认他们是否愿意接收信息,并获得一些轻量级符合条件的数据,无需人类 SDR 参与。
流程可能如下所示:
潜在客户数据从 CRM 中提取。
语音智能体拨打:"嗨,我正在帮助 xyz 公司了解更多关于 fintech 领域的创始人。只需快速的 1 分钟通话,你还在从事 xyz 工作吗?"
使用变量提取捕获 2-3 个数据点(兴趣度、行业适配度、团队规模)。
如果响应是积极的 → 将潜在客户标记为"热"→ 生成定制的介绍邮件并通过营销工具发送。
结果是一封更个性化、更有上下文意识的邮件,更有可能转化。
我曾经认为构建语音 AI 智能体需要大量的定制工程,但有了正确的工具集,它是可以访问的。
这只是一个基础版本,所以还有很多需要探索。
如果你有任何问题、反馈或最终构建了一些很酷的东西,请在评论中分享。
祝你有美好的一天!下次见 :)
某些评论可能仅对已登录的访客可见。登录以查看所有评论。
对于进一步行动,你可以考虑阻止该人和/或举报滥用