自动打电话机器人

您所在的位置:网站首页 python给手机打电话 自动打电话机器人

自动打电话机器人

2024-07-06 09:27| 来源: 网络整理| 查看: 265

需求描述:

用机器替代人打电话,语音内容是固定的MP3,类似银行的电话机器人。

解决方案一:

标准答案,淘宝去买一个设备,全套解决方案都有。省时、省力、省钱。

解决方案二:

阿里云上买服务,阿里有全套解决方案,打通了所有电信运营商,用户体验绝对最好。

但是,费钱!!!还得公司法人注册,这样个人就没办法玩了。商业公司的不二选择。

解决方案三:

贫穷多数时候限制了我很多想象力,但是在这个项目上,还是激发了一下想象力。

打电话座机不会用,基本淘汰了。

手机都是智能机,苹果买不起pass,闲置安卓手机有,开启调试模式,adb指令控制一下能做什么?

百度 “adb 打电话”,有很多帖子将怎么拨号和发短信的,可以参考。我参考网上帖子也很快给自己拨通电话了。

问题1:

网上有很多教怎么用adb指令控制android手机拨号的帖子,但是拨通号码之后要怎么跟电话另一头说话呢?

猜想:

如果是做安卓原生开发的专家,应该可以通过系统调用播放语音(我这么猜想,因为我不懂)。但是我不会。

我试过用adb指令播放一段mp3,但是声音无法传给电话另一头。

理论可行:

我的另一个方案是用树莓派播放语音,如果插在音箱上,手机麦克风收到声音,肯定可以。不过音箱太浪费,而且是噪音污染。

实际方案:

优化方案就是树莓派(或者电脑)通过adb指令控制拨号,拨通之后树莓派自己播放一段语音,从树莓派3.5mm音频口出来的信号,直接给手机3.5mm音频口做麦克风输入。

问题又来了,音频输出电压很大,麦克风输入电压很小(手机有放大电路去做放大)。而且直插的话无法识别成有麦克风的耳机。

答案需要研究,结果是华为、锤子的手机要检测到音频口的地线和麦克风信号线之间电阻10K左右,才认为插入的是带麦克的耳机,把音频输入从手机自己的麦克风改成3.5mm音频口的输入。所以要对数据线做改造,做一个分压电路。从初中到大学学的都还给老师了,不过买了电阻和音频口,最后弄好了。

电路示意图如下:

树莓派 GND -------------------------手机音频口GND

|

10K电阻

|

树莓派左(或者右)耳输出 --------50K电阻-------手机音频麦克输入

成品照片如下:黄色是信号线,橘黄色是地线(强迫症患者请原谅我随便找的线),没电阻的部分插在树莓派上,有电阻那头插在手机音频口上。

 

注意:3.5mm音频口线序有两种,搞清楚你自己手机的线序,错了可能烧掉。当然我的测试机都很坚挺,折腾半天都还能用。具体线序定义请自行百度,关键词 OMTP标准,CTIA标准

最终连接图:

 

问题2:

可以说话之后,整个项目的可行性已经ok。但是树莓派怎么知道手机拨号什么时候对方接通呢?

我参考了老外的方案android - Checking the status of a phone call remotely - Stack Overflow

答案:

锤子手机判断通过adb判断 mForegroundCall

指令adb shell dumpsys telecom | grep mForegroundCall

具体怎么做自己研究吧。

最终

拨通之后去播放mp3就行了,mp3怎么来再研究吧。一会儿就该去研究人工智能语音交互了,没完没了。

总结

网上没找到我想要的结果。自己研究了好几天。所以为了不浪费,写个文档记录一下。分享给有需要的人。

PS:非常感谢看到这里的人。我唯一的请求就是如果你用这些知识去做违法的事情被抓了,请不要把我供出来,谢谢。

另外最先发布在语雀上,连接如下:

https://www.yuque.com/docs/share/55b3a33b-7467-45e7-a323-51b523e4e101?# 《自动打电话机器人》



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3