构建一个能打真实电话的AI代理(包含等待音乐、IVR、愤怒的人类)——截至目前我学到的经验
摘要
作者构建了callitdone.today,一个能拨打真实电话、导航IVR菜单、等待通话并与人交谈的AI语音代理,分享了关键的技术挑战和经验教训。
我构建了callitdone.today。它是一个为你拨打电话的工具,不是发短信,也不是语音留言,而是真实的语音通话——能够导航菜单、等待通话,并代表你与人交谈。动机很简单:我讨厌打客服电话。我讨厌听着同一段两小节的背景音乐等上二十分钟。同时,我的一些小企业客户需要预约和解决账单纠纷,但他们宁愿做其他任何事情。所以我构建了一个代理,它拨号、解析IVR提示、等待音乐(它会监听静音与等待音乐的区别),然后要么与人通话,要么留言。如果遇到无法处理的障碍,比如我没有预设的菜单选项,或者说话快、口音影响语音识别的人类,它会诚实地承认:“我是AI助手,遇到了问题,我会转接给人工或重新安排通话。”它不会虚张声势。这是为谁准备的?讨厌打电话和等待的人,或者希望由代理处理常规电话(预约、账户问题、订单状态)的小企业主。目前仅支持美国电话号码,短期内不会改变——国际电话涉及不同的信令、法规和语言覆盖,我还没准备好应对。架构方面,它由以下组成:一个网页前端用于描述通话目标(纯英文),一个后端调用Twilio语音API拨号,一个语音转文字+文字转语音管道,以及一个小型LLM微调模型,用于保持脚本但处理常见变化。最难的部分不是AI,而是处理不可预测的等待时间、“按1选择英语”菜单未按预期路径执行的情况,以及偶尔发现自己在和机器人通话而愤怒的人类。我经历过代理成功预约牙医的电话,也经历过它卡在“按3重复此菜单”的循环中。诚实的经验教训:1)如果让LLM生成下一句回答,幻觉是一个真正的问题 —— 我改用基于模板 + 插槽填充的方法来处理核心交互。2)等待音乐检测比听起来更难 —— 有些公司使用静音,有些在曲目之间插入广播广告。3)用户非常希望代理听起来像他们自己,但这需要语音克隆,涉及法律和伦理雷区,我暂时不会碰。非常希望听到你们在构建真实电话语音代理时遇到的其他问题,特别是IVR映射部分,感觉像是一个未解决的混乱。我会按子版块规则在评论中放链接。
相似文章
构建像人类一样轮流说话的语音AI代理——没人提醒你的陷阱
本文分享了构建实时语音AI代理的宝贵经验,强调了正确的轮流发言、VAD处理、计费意识以及避免回声循环的重要性。
我构建了一个全天候预约工作并调度任务的AI接待员——以下是我的经验分享
作者分享了他们构建一个AI驱动的接待员的经验,该接待员能够自主管理预约并全天候调度任务。
AgenticCalling AI
AgenticCalling AI 让您的AI具备拨打电话的能力,实现基于语音的自动化与交互。
我每天开车45分钟去上班,却无法与我的AI代理对话,所以我开发了一款iOS应用,可以在免提情况下与AI代理交谈——内置完整的TTS和STT功能
一位开发者构建了ClawVibe,一款用于免提语音交互的iOS应用,配备设备端语音识别和TTS,实现低延迟。
我为一家眼科诊所构建了一个语音助手,它处理所有事项,唯独不负责预约。这是故意留给人类去做的,原因如下。
一位开发者为一家眼科诊所构建了一个语音助手,除了预约外它能处理所有任务,而预约故意留给人类以保持人情味和信任。