本地AI电话机器人-将手机电话通话声音通过udp传输到局域网的Python脚本

本地AI电话机器人-将手机电话通话声音通过udp传输到局域网的Python脚本

将手机电话通话声音通过udp传输到局域网的Python脚本

--本地AI电话机器人

  • 一、前言

上一篇:手机转SIP-手机做中继网关-落地线路对接软交换呼叫中心下一篇:刷抖音/看电子书-如何让手机自动上下翻页和左右翻页


前面我们通过两个篇章《手机SIM卡通话中随时插入录音语音片段(Android方案)》《手机SIM卡通话中随时插入录音语音片段(Windows方案)》,阐述了【手机打电话过程中,随机插播预录语音片段】的功能和根据对方手机按下DTMF按键,播放不同IVR应答语音片段给对方手机的能力。

在AI电话沟通时,由于手机性能和算力的局限性,通常AI交互的模型和算法无法部署到手机上。这样的话就需要将拦截到的手机通话的声音数据,通过网络(局域网或互联网)将语音包传输给AI算力服务器。由其对语音进行ASR识别和语义理解,并生成最终的应答TTS语音,反馈回手机注入到电话通话中。

当前市面上主流的实时语音流的传输方式主要有两种:

1)SIP/WebRTC协议及配套的RTP/RTCP语音数据传输。

2)直接将语音数据以udp广播或组播的方式分发给局域网内多个设备。

前面我们花了很多的篇章和研发力量在SIP协议,对接开源的FreeSwitch和VOS与呼叫中心上,(详情可参考文章《蓝牙电话与FreeSwitch服务器和UA坐席的通话》)。

事实上手机电话通话做AI呼叫,本质上跟SIP协议没有太大的依赖关系。手机APP提取到通话声音后,完全可以把这个声音数据直接传给局域网内的AI服务器,或者让手机自己的AI模型来消费和应答这个声音会话。(众所周知,SIP协议无法处理“通话号码带逗号-实现拨通后自动拨出分机号”这样的能力,但你直接传的话就没有这种问题)

本文就是基于这样的场景,使局域网内部署的一台AI服务器,就可以通过udp数据包,同时处理多台Android手机发来的AI呼叫请求,并生成对应TTS语音应答。

由于数据交互全在局域网内进行,因此其【端到端】通话的时延可以得到最大程度的保证(TTL只有1跳或2跳,路由的路径非常短)。这样既能利用AI算力服务器的堆叠密度,又能同时处理和响应多路手机SIM卡的电话通话。实现高效的AI呼叫和成本的压缩。

体验和下载地址:

智能拨号器App:http://120.78.211.195:8060/Dialer.apk

拨号器声音(Python源码):http://120.78.211.195:8060/sdk/dialer_audio_py.zip

当前商用方案是蓝牙电话的方案,需要依赖一个外置的USB蓝牙的配件,插入到手机上,才能拦截到电话通话的声音数据。因此需要额外购买一个USB蓝牙配件。

USB蓝牙配件购买路径(参考):https://item.jd.com/100049950520.html

  • 二、方案的依赖配件

关注过我们博客的朋友都知道:目前拦截手机通话声音的蓝牙电话方案,需要将USB蓝牙的配件插入到手机上,才能在手机APP拦截到电话通话的事件和声音数据。

这个方案最大的好处是:不限制手机,市面上任何品牌型号的Android手机,拿来装上app,插上USB配件后,就能拦截到电话通话语音。普适性非常的广。市面上任何新的手机和二手的手机都支持这样用。依赖的手机配件如下图所示:

买来的USB蓝牙配件,可以直接插在手机上使用。但是因为是公共的标准配件,需要有一个USB转typec的转接头才能插到Android手机上,没有的话可以去京东淘宝拼多多买一个即可,非常的便宜。

  • 三、方案的依赖界面

蓝牙电话方案使用Android手机APP,通过插入手机的USB蓝牙来直接拦截电话通话的声音。因此为了能让它将语音数据和通话事件公开到手机所在的局域网中,需要对【智能拨号器app】进行一个基础的默认设置,如下图所示:

【智能拨号器app】的设置选项卡中,点击右上角齿轮图标,打开【APP应用设置】界面后,将原先默认的“SIP协议栈:连接SIP平台”关闭为“协议栈:手机IVR-AI语音处理”。

APP应用设置中,做了这个默认设置切换了之后,APP拦截到的电话通话声音将不再进行SIP协议的转发,而是在手机APP自身和局域网内,广播寻址找到【远程声音设备】进行电话通话声音数据的播放和输出。

  • 四、Python客户端的命令行菜单

本文的Python脚本的源代码,即为拨号器的远程声音设备的标准输入输出的源文件,它支持Windows/Linux/MacOS三大平台(用DeepSeek帮我写的,MacOS暂时没有这个电脑来调试,不知道是否能运行和有声音,^V^,但Windows11和Ubuntu18.04肯定能用)。

详细的Windows和Ubuntu操作系统的安装和配置步骤,已在附件下载路径《dialer_audio_py.zip》压缩包中的README.md文件内容中描述的很清楚了。

此处简要的列举一下,执行了【

pip install sounddevice numpy colorama

python main.py

】命令之后,随便输入help或直接按下Enter键,打印的命令行提示内容,如下所示:

# 进去后输入help 按提示逐个输入discover / bind 21ea5105736c3285 绑定后手机app上会弹框出来提示是否接受远程声音设备的绑定-需要手机APP上允许。

# 至此,即可使用 call 10086 / hangup / dtmf 2 等指令,正常在windows11中使用python连接局域网内的智能拨号器app来实时通话啦。

用户可以简单的使用如下指令,来完成一个外呼的手机通话,对手机进行远程操控:

  如常用的拨打10086等待接通后说话   call 10086

  通话中发送DTMF数字               dtmf 2

  拨打完毕后挂断电话                 hangup

  • 五、拨号器声音程序架构

其实有Python脚本的源代码之后,什么架构啊、交互时序和指令内容啊,都是多余的。有啥不懂的直接跳转去看代码即可,反正就六七个py文件而已,非常的简洁易懂。

但这里为了便于理解,还是画蛇添足一次:Python脚本作为【远程声音设备】的程序,主要使用udp+tcp结合的方式来进行工作的。

UDP协议负责进行广播找人、寻址和绑定双方的目标设备,以及电话通话时直接传输上行和下行的全双工的语音数据。UDP占用42700-42703的udp端口。

TCP协议负责建立稳定的连接,保证通话的事件和状态能够准时、完整的在局域网双方设备之间进行数据交换。TCP占用电脑的随机端口和手机的42700端口。

它们之间的逻辑架构,如下图所示:

  • 六、Python程序的传输端口和交互指令

Python脚本做为拨号器的远程声音设备,交互指令和状态机总体还是比较简单的,交互指令的时序图如下:(它主要分为三个阶段:UDP发现、TCP连接、电话通话

交互执行的详细json格式内容如下:

指令描述

指令json格式内容

UDP设备发现

{ "type": "REQUEST_AUDIO", "sn": "设备GUID或空字符串" }

声音源响应

{ "type": "RESPONSE_AUDIO", "sn": "f87cca772abcf96f", "company": "设备厂商", "ip": "192.168.31.241", "port": 42700 }

Call消息

{ "type": "Call", "number": "13800138000", "call_type": "normal" }

Answer消息

{ "type": "Answer" }

Hangup消息

{ "type": "Hangup" }

DTMF消息

{ "type": "DTMF", "digit": "1", "duration": 100 }

外呼响应

{ "type": "OnCallDialing", "number": "13800138000" }

呼叫振铃事件

{ "type": "OnCallProgress", "number": "13800138000" }

电话被接通

{ "type": "OnCallConnected", "number": "13800138000" }

被拒接

{ "type": "OnCallReject", "reason": "用户拒接" }

主动取消

{ "type": "OnCallCancel", "reason": "用户取消" }

接通后挂断

{ "type": "OnCallHangup", "reason": "正常结束" }

详细的交互指令内容,见上述附件下载路径《dialer_audio_py.zip》压缩包中的README.md文件内容所述,需要的可自行下载后查阅。

  • 七、总结

经本篇章这么一顿操作,我们也算是部分的代码开源了。从文中各个章节的描述上看,其实局域网内的数据交互,是非常的简洁的。事实上也本就该如此,如果不考虑目前AI算力和芯片差异,真正的【端到端】AI通话,就应该是【手机-手机】通话,跟网络(局域网或互联网)没有半毛钱关系。

只是因为当前手机算力不足,没法跑AI的大模型,才引出了将手机通话的语音传递到AI算力服务器上。AI响应完毕后转成TTS语音数据再返回手机做注入而已。

这样就引出了【1个AI算力服务器+多个Android手机】这样复用的高效率组合,这样的场景下,很明显,直接使用UDP或RTP,将语音数据通过一个udp端口发到AI服务器,使AI服务器能够同时处理多路语音的呼叫,是正常的标准做法。

我们通过这种方式,在【拦截手机打电话的声音】基础之上,很容易就能扩充出:通话中【随机插播预录语音片段】、AI外呼、AI来电接听等高级功能。

本文的UDP寻址和电话语音数据的交互方式,对同方向的语音和视频类应用,也具有一定的参考意义。

Read more

政策x技术x市场:三位一体推动机器人产业爆发

政策x技术x市场:三位一体推动机器人产业爆发

当产业竞争进入“生态协同”深水区,政策引导、技术突破与市场需求的三位一体共振,成为机器人产业从“技术迭代”迈向“规模爆发”的核心驱动力。定于2026年6月10日-12日在北京举办的CES Asia 2026,精准锚定这一产业逻辑,以亚洲顶级科技展会的资源整合能力,构建政策、技术、市场的深度对接生态,为企业战略决策提供全局视野与落地支撑。 一、宏观格局:三大维度构筑产业爆发基石 1. 政策支持:全球协同的战略赋能 中国将具身智能纳入“十五五”重点发展的未来产业,通过《智能硬件产业创新发展行动计划》等政策,从核心技术攻关补贴、场景示范项目申报到国产化率提升扶持,形成全链条支持体系,2026年人形机器人量产相关配套政策将密集落地。亚洲各国同步加码:韩国推出“智能机器人产业振兴计划”,重点支持服务机器人研发与出口;日本通过“机器人新战略2025”,聚焦医疗护理、工业制造等场景的机器人应用普及;新加坡则以“智慧国”战略为牵引,为机器人在城市治理中的应用提供政策试点便利,形成区域政策协同效应。 2. 技术成熟:

我是搞量化AI的,但我为什么劝你一定要关掉“自动交易机器人”?

我是搞量化AI的,但我为什么劝你一定要关掉“自动交易机器人”?

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:很多市面上充斥着“睡后收入”、“AI自动炒股”的广告,听着很诱人吧?但作为一个在量化圈摸爬滚打多年的人,我要告诉你一个反常识的真相:这些机器人不仅不能帮你赚钱,反而是你亏损的罪魁祸首。今天不聊代码,聊聊为什么在AI时代,你的人脑依然不可替代。 最近朋友圈全是卖“AI炒股机器人”的广告:号称年化100%,解放双手,让你躺着把钱赚了。看得我尴尬症都犯了。 作为一个靠写代码和算法吃饭的人,我今天必须说句得罪同行的话:对于99%的普通投资者来说,全自动交易机器人(Trading Bots)就是一条通往破产的高速公路。 这就好比你还没学会开车,就买了一辆号称能“全自动驾驶”但实际上连红绿灯都分不清的汽车,然后就在高速上睡着了。 真正的交易不是代码的堆砌,而是对市场的洞察 01 机器人的死穴:它看不懂“空气” 你有没有过这种经历:走进一个房间,大家虽然没说话,但你立刻感觉到气氛不对:可能刚吵完架,可能有人在哭。 这就是“

AI绘画辅助新思路:M2FP提取人体结构用于姿势参考生成

AI绘画辅助新思路:M2FP提取人体结构用于姿势参考生成 在AI绘画领域,精准的人体姿态与结构参考是提升创作效率和质量的关键。然而,传统方法依赖手动绘制线稿或使用OpenPose等骨架检测工具,往往难以捕捉细节丰富的身体部位语义信息,如衣物轮廓、发型、肢体遮挡关系等。为此,M2FP(Mask2Former-Parsing)多人人体解析服务应运而生——它不仅能够实现像素级的身体部位分割,还能为数字艺术创作提供高保真的结构参考图,成为AI绘画流程中的“智能解剖助手”。 🧩 M2FP 多人人体解析服务:从语义分割到可视化拼图 核心能力概述 M2FP 是基于 ModelScope 平台开发的先进语义分割模型,专精于多人复杂场景下的人体解析任务。与仅输出关键点或骨架的OpenPose不同,M2FP 能对图像中每个人物的 20+ 个身体部位进行精细分类与像素级标注,包括: * 面部、头发、左/右眼、左/右耳 * 上衣、内衣、外套、裤子、裙子、鞋子 * 左/右手臂、左/右腿、手部、

小白必看:Qwen-Image-2512极速创作室入门指南,轻松玩转AI绘画

小白必看:Qwen-Image-2512极速创作室入门指南,轻松玩转AI绘画 你是不是也这样? 刚下载好一个AI绘画工具,兴致勃勃打开界面,输入“一只橘猫坐在窗台晒太阳,阳光透过纱帘,暖色调,胶片质感”,结果等了半分钟——画面出来了,但猫是灰的、窗台歪的、阳光像打了马赛克……再点一次生成,又不一样。 不是模型不行,是操作太绕:参数一堆、步数要调、采样器要选、CFG值看不懂……灵感早被卡在加载条里了。 别折腾了。 今天带你用上真正为“想画就画”而生的工具——Qwen-Image-2512 极速文生图创作室。 它不搞复杂配置,不堆技术名词,不让你查文档猜参数。 你只管说,它立刻画。 3秒出图,中文理解稳得一批,显存不爆、服务不崩、连笔记本GPU都能跑起来。 这篇指南,专为零基础用户写。 不用懂扩散原理,不用装依赖,不用改config文件。 从点击启动到生成第一张满意作品,全程不超过2分钟。 咱们这就开始。 1.