Android应用app实现AI电话机器人接打电话

Android应用app实现AI电话机器人接打电话

--安卓AI电话机器人

  • 一、前言

【Dialer3.0智能拨号器】Android版手机app,由于采用蓝牙电话的方式来调用手机SIM卡发起呼叫、接听来电,并接收和处理通话的声音,通常我们以“蓝牙电话方案”来称呼它。

蓝牙电话使用的链路呼叫方式类似于“蓝牙耳机、汽车车机”通过手机拨打电话的方式,并在此基础之上扩充了“双卡同时在线,自由选择任意SIM卡呼出”、“手机app识别对方按下的DTMF按键”等辅助功能。

原有规划和产品演进中,蓝牙电话方案主要有两个演进方向:

  1. 手机app中操控通话行为并提取电话通话的语音,进行扩展功能和处理。常见的应用如来电IVR语音引导、来电AI接听并按业务常见应答,以及电话外呼时插入一段语音开场白+人工接听、AI外呼进行无效号码过滤等。此部分手机业务通常不涉及坐席的强插/强拆/监听等多用户协同操作方式。【AI电话机器人】就是此演进方向的一种具体应用。
  2. 对接呼叫中心或CRM,将SIM卡电话转换为中继线路或落地线路,接入局域网的SIP平台,电话呼叫操作不再通过实体手机的方式做外呼,而是利用呼叫中心原有的功能做多用户协同的对外呼叫。此部分操作通常采用SIP协议来进行线路的对接和融合。

功能拓扑图上,大致为下述图示的结构:

前期中,由于具体付费用户的需求,蓝牙电话方案投入了大量的精力和维护工作量在SIP中继和坐席的方向,即前述的第二类演进方向。对呼叫的稳定性、呼叫中心/CRM等SIP平台的适配等功能扩展提供了很大力度的支持,也取得了不错的商用成果(主要是并发量大,容易上量^V^)。

从这篇文章内容开始,本篇以及后续的功能开拓,将从已成熟稳定的SIP对接中脱身,专注于手机IVR语音引导和AI电话机器人领域的演进。通过提供通话底层SDK的方式,把针对手机本身的“号码清洗”“AI外呼”等功能给细化和完善起来。

本篇章主要从【智能拨号器SDK】的角度,梳理一下手机app的架构,看看如何赋能更多的个性化服务的用户app,使其不用局限于某一个品牌甚至型号的手机,就能实现比“小爱通话”等AI电话专有的应用更灵活更强大的实现基础。

  • 二、手机AI电话机器人通常有哪些需求

AI接电话、语音留言等功能基本算是伪需求,NND,钱在哪里?应用做得再好,会有人愿意为你这个功能付费?

从正常使用的角度,AI电话机器人想要获取足够的收益,就应该一开始就寻找到足够刚需的场景,而且是商用场景,才能有足够多的样例数据对后续的发展提供正向反馈。

由于SIM卡通话的费用相较于小号、固话等线路要贵。目前在语音通信领域,手机中做AI机器人,要么就面对大批量的小规模用户,提供AI外呼、AI接听等增值业务。要么就利用SIM卡分散入网的特性,用来做有效号码过滤等号码清洗的功能。

手机上的AI电话机器人要做的不是完全替代掉原来使用人力来拨打的方式(这样搞,步子迈的太大容易扯蛋),而应该是用来辅助现有的人,减少他的工作量,在他日常的使用基础上,提供细微又刚需的改动,使得他使用和工作的更加便捷。

比如原先客服或者推销人员拨打电话出去,会使用音箱来播出一些引导问候语,在通话过程中可以插入一些祝福语等等,这种类似于“半自动化AI”的方式,在吸收和转化率比较高的场景也会经常用到,而且能够大幅提高呼出人员的工作效率。

当然,把手机引到SIP平台坐席,做手机异地呼叫或跨地区拨打这种功能也有,但会在别的篇章中论述,本篇章不再赘述。

  • 三、AI电话机器人对接和扩展方式

【Dialer3.0智能拨号器】Android版app为手机用户专门定制了内置的SDK,上层App开发者可以参照SDK-Demo的代码逻辑,将电话语音的提取能力轻松整合到应用当中。

在使用时,只要应用开启了【悬浮窗】的权限,无论手机用户使用何种方式来操作手机上的电话通话,通话时的语音都会拦截后,转到内置的SDK和上层App进行处理。

用户可以自由的选择使用手机按键拨打、别的App下发电话任务自动拨打、使用电脑adb连接手机触发拨打等等任意操作,只要手机拨通了SIM卡电话,蓝牙电话方案都会自动拦截通话的声音,并通过应用App的事件回调或本机网络端口,将通话语音数据进行传递和加工。

这样不管上层应用做IVR语音导航,或是进行AI识别和TTS语音应答,都可以在一个应用APP中完整的实现。而且,这个接入对接方式,完全不会干扰和影响到手机用户原有的使用方式。

SDK-Demo的功能界面如下图所示,仅供参考。需要实现“长按电源键3秒即唤醒AI电话机器人”等功能的,可以自行在这个基础上做扩展。

  • 四、拨号器SDK对本机IVR引导和AI提供哪些支持

如前述内容所描述的样子,【Dialer3.0智能拨号器】Android版提供的“拨号器SDK”提供拦截电话通话事件和通话的语音数据的能力,并且提供了“双卡同时在线,自由选择任意SIM卡呼出”、“手机app识别对方按下的DTMF按键”等辅助功能。

在示例Demo中,我们展示了

来电自动接听

接通后自动播放IVR引导提示语

播放完毕转手机接听

等示例的功能,并且提供了一大批的辅助接口供上层App的开发人员来调用,可以参考着在这个基础之上自由的定制和开发。

AI功能可以在接收电话通话的上行语音基础上,挂载ASR语音识别和相关的NLP语义及大模型等支持,搭配TTS语音生成做下行通话数据注入即可。

IVR语音的播放和电话注入可以参考下述界面的接口来进行数据构造和注入,仅供参考:

  • 五、IVR语音导航+人工同时接听

在一个手机当中,我们无法做到“又拦截电话通话语音、又使用手机的听筒/扬声器来播放声音”。(真的试过了,Android声音调度策略确实不允许)

在使用过程中,若存在需要又对语音进行处理、又需要人工实时关注介入的“多路声音处理”的场景,需要另外引入电脑坐席或者另一个其它手机。使用局域网或互联网坐席的方式,进行播放和通话介入。

拨号器SDK针对这样的场景,提供了配对和坐席绑定的支持。用户可以使用专用的App来做为远程声音播放设备,来跟目标电话的用户进行实时的语音沟通。

  • 六、总结

我们在手机厂商的AI通话的功能之外,拓展了一种不受手机厂商和定制安卓限制的方式,为社会上公共的开发人员提供了一种基于普通Android应用app级别的AI电话机器人的应用能力。

上层app可以使用底层内置SDK,很容易的就可以对手机电话外呼和来电过程的通话声音进行提取和加工处理。上层app在这个基础之上可以自由的定制更多的电话的IVR语音导航和AI通话的相关功能,自由的接入DeepSeek等各种AI和大模型平台,为最终服务的用户,提供更加精细的个性化的能力。


上一篇:手机打电话时如何识别对方按下的DTMF按键的字符-安卓AI电话机器人

下一篇:编写中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25305.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker简介-学习与参考

docker Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是完全使用沙箱…

【leetcode hot 100 42】接雨水

错误解法&#xff1a;若height[left]>height[right]则代表有坑 class Solution {public int trap(int[] height) {int left 0;int area 0;while(left<height.length-1){// 找坑int right left1;while(right<height.length-1 && height[left]>height[ri…

Octave3D 关卡设计插件

课程参考链接 这位大佬有在视频合集中有详细的讲解&#xff0c;个人体验过&#xff0c;感觉功能很强大 https://www.bilibili.com/video/BV1Kq4y1C72P/?share_sourcecopy_web&vd_source0a41d8122353e3e841ae0a39908c2181 Prefab资源管理 第一步 在场景中创建一个空物体…

llama.cpp 一键运行本地大模型 - Windows

文章目录 llama.cpp 一键运行本地大模型 - Windows嘿&#xff0c;咱来唠唠 llama.cpp 这玩意儿&#xff01;gguf 格式是啥&#xff1f;咱得好好说道说道基座模型咋选&#xff1f;所需物料&#xff0c;咱得准备齐全咯核心命令&#xff0c;得记牢啦运行方式咋选&#xff1f;测试应…

SQLark 数据迁移|断点续迁已上线(Oracle-达梦)

数据迁移是 SQLark 最受企业和个人用户欢迎的功能之一&#xff0c;截止目前已帮助政府、金融、能源、通信等 50 家单位完成从 Oracle、MySQL 到达梦的全量迁移&#xff0c;自动化迁移成功率达 96% 以上。 在 Oracle 到达梦数据库迁移过程中&#xff0c;SQLark V3.3 新增 断点续…

sklearn中的决策树-分类树:剪枝参数

剪枝参数 在不加限制的情况下&#xff0c;一棵决策树会生长到衡量不纯度的指标最优&#xff0c;或者没有更多的特征可用为止。这样的决策树 往往会过拟合。为了让决策树有更好的泛化性&#xff0c;我们要对决策树进行剪枝。剪枝策略对决策树的影响巨大&#xff0c;正确的剪枝策…

基于SSM实现的bbs论坛系统功能实现四

一、前言介绍&#xff1a; 1.1 项目摘要 随着互联网技术的不断进步和普及&#xff0c;网络社区已成为人们获取信息、交流意见、分享经验的重要场所。BBS&#xff08;Bulletin Board System&#xff0c;电子公告板系统&#xff09;论坛系统作为网络社区的一种重要形式&#xf…

git - study

文章目录 git - study概述可以用 git gui工具来添加快捷命令工具如果要在提交日志中搜索&#xff0c;可以用gitk的view编辑功能实验环境直接用git自带环境进行git操作的好处查看git所有配置配置全局数据配置项目专用的数据查询配置数据的原始值配置git使用的文本编辑器获取某个…

事故02分析报告:慢查询+逻辑耦合导致订单无法生成

一、事故背景与现象 时间范围 2022年2月3日 18:11~18:43&#xff08;历时32分钟&#xff09; 受影响系统 系统名称角色影响范围dc3订单数据库主库订单生成、事务回滚dc4订单数据库从库数据同步、容灾切换 业务影响 核心业务&#xff1a;手机点餐、C扫B支付订单无法推送至…

ONES 功能上新|ONES Copilot、ONES Project 新功能一览

ONES Copilot 智能 AI 助手模型可配置多种类型模型&#xff0c;服务提供方 Dashscope 的模型列表中新增 DeepSeek V3 与 DeepSeek R1&#xff1b;选择自定义模型配置时&#xff0c;填写私有部署的 DeepSeek 模型相关参数即可。 应用场景&#xff1a; 企业内部自部署或在模型服务…

docker镜像和容器(二)

在开始这篇文章之前&#xff0c;有几个需要了解的概念 docker镜像是什么 docker镜像是什么(有兴趣可以参考一下这篇知乎的回答) 文章这里引用一个回答 电脑装系统的时候&#xff0c;需要一张盘&#xff0c;我们称其为镜像&#xff0c;镜像是一个固定的文件&#xff0c;这次读…

51c嵌入式~电路~合集12

我自己的原文哦~ https://blog.51cto.com/whaosoft/12318429 一、单端、推挽、桥式拓扑结构变压器对比 单端正激式 单端&#xff1a;通过一只开关器件单向驱动脉冲变压器。 正激&#xff1a;脉冲变压器的原/付边相位关系&#xff0c;确保在开关管导通&#xff0c;驱动脉冲…

DNS的解析流程

引言 在互联网世界中&#xff0c;域名系统&#xff08;DNS&#xff0c;Domain Name System&#xff09;扮演着至关重要的角色。它就像是一个巨大的电话簿&#xff0c;将人类可读的域名&#xff08;如www.example.com&#xff09;转换为机器可读的IP地址&#xff08;如192.0.2.…

基于云函数的自习室预约微信小程序+LW示例参考

全阶段全种类学习资源&#xff0c;内涵少儿、小学、初中、高中、大学、专升本、考研、四六级、建造师、法考、网赚技巧、毕业设计等&#xff0c;持续更新~ 文章目录 [TOC](文章目录) 1.项目介绍2.项目部署3.项目部分截图4.获取方式 1.项目介绍 技术栈工具&#xff1a;云数据库…

算法仿真平台搭建1-FFMPEG+RtspSever快速搭建一个RTSP服务器

一、前言 本文相关的全部源码和RtspSever库&#xff0c;我已打包上传&#xff0c;欢迎大家免费下载&#xff0c;testRTSPSever。 每一个嵌入式视觉算法工程师&#xff0c;都应该有一套属于自己的算法仿真和测试环境。可以方便地进行视频、图像等素材进行在线导入&#xff0c;可…

LabVIEW 中 codeGenEngine.llb 工具库

codeGenEngine.llb 是 LabVIEW 2019 安装目录下C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\路径下的工具库&#xff0c;主要用于代码生成相关的操作&#xff0c;帮助开发者在 LabVIEW 项目中便捷地实现自动化代码生成任务&#xff0c;提高开发…

开发工具和库的一些介绍

一.开发工具 1.在Linux中安装软件&#xff0c;一般有三种途径&#xff1a;源码安装&#xff08;不推荐&#xff09;&#xff1b;软件包安装&#xff08;rpm)(不推荐&#xff0c;易出现缺失和版本兼容问题&#xff09;&#xff1b;包管理器&#xff08;yum/apt)(Centos:yum;Ubu…

12字符函数

一、函数strchr与strrchr 注意&#xff1a; 这两个函数的功能&#xff0c;都是在指定的字符串 s 中&#xff0c;试图找到字符 c。strchr() 从左往右找&#xff0c;strrchr() 从右往左找。字符串结束标记 ‘\0’ 被认为是字符串的一部分。 图解&#xff1a; 示例代码&#xff…

【数据挖掘】NumPy

NumPy 是 Python 中一个用于进行科学计算的基础库&#xff0c;它提供了高效的数组操作和数学运算功能。在数据挖掘中&#xff0c;NumPy 被广泛应用于数据预处理、特征工程、算法实现等方面&#xff0c;尤其是在处理大规模数据时&#xff0c;因其提供的高效运算和矩阵操作的能力…

.gitignore 文件中添加忽略 .pdb 文件

我在项目的根目录下创建.gitignore文件。打开.gitignore文件并添加忽略.pdb文件的规则。如下&#xff1a; 已经在 .gitignore 文件中添加了忽略 .pdb 文件的规则&#xff0c;但是提交到 Git 仓库时仍然看到了 .pdb 文件&#xff0c;这通常意味着 .pdb 文件在 .gitignore 文件被…