现在世界疫情严重,大家都居家自我隔离,社区、公司、政府部门等需要收集大家疫情相关信息,如是否异地返回、是否经过高风险地区、身体是否发烧等等。

交警行业、客服行业、外卖行业、快递行业等,均出现了风口。

这就催生了很多自动外呼的需求。

你会接到如公安局派出所的调查疫情电话,甜美可爱的疫情机器人小姐姐、小哥哥等。

那么我们如何自己实现自动外呼系统?

整体的方案流程如下:运营商线路支撑--->软交换服务--> 对话服务系统-->asr、tts服务

目前最为流行的是基于freeswitch的软交换的电话系统,freeswitch这里就不多介绍,大家可以自己百度、谷歌。

一:对接运营商

电话要能呼出去,除了有freeswitch平台外,还需要能够连接到运营商中继。两种方式,1:freeswitch 平台sip对接第三方。 2:freeswitch 平台与E1等设备进行互通

sip对接非常简单,在freeswitch profile internal.xml 里将你们合作的第三方,sip对接的账号、密码、IP 端口等配置成功即可。 例如:

 <gateway name="sip__test"><param name="username" value="1021"/><param name="password" value="你的密码2020"/><param name="realm" value="ip:端口"/><param name="register" value="true"/></gateway>

freeswitch会自动检查,并5-20秒检查是否注册网关成功。 如果你的第三方sip对接不需要注册式, 删除掉<param name="register" value="true"/>即可。 这里你可以测试多个freeswitch直接的互相对接,互为gateway就更好理解所谓的gateway对接方式。

E1对接:一般采用讯时E1设备, E1的对接需要公司自己拉线路,运营商为你拉好电话线路后,并和E1连通, 在E1的管理页面,使用路由route方式将sip消息传输到freeswitch sip端口。fs默认端口5060(为了安全最好做修改)。双方设置ip白名单,从E1进入的sip不进行鉴权。 fs想外呼出去,需要在E1上注册fs分机,在freeswitch上配置dialplan,通过已经注册分机进行外呼出去。

2 软交换服务

软交换的代表为freeswitch,良好的性能和对各类音频和视频协议的支持,我们使用freeswitch来进行外呼命令触发,呼叫任务触发,同时基于freeswitch对接用户的接听,支持实时音频语音转写asr,并根据NLU模型,输出tts播报。

批量外呼系统

可以使用消息队列rabbitmq等,使用ESL连接到freeswitch,然后根据前端任务需求,将手机号等消息push进队列。 一端消费者消费消息,并根据一定的策略进行外呼。

freeswitch originate 呼叫命令

originate {ignore_early_media=true}sofia/gateway/sip__test/{phone} 机器人路由号码

这里强调一下, 如果不带ignore_early_media=true, 那么会在对方响铃时即为ack,将过早执行bridge,导致机器人语音话术不完整。

整个最终通过esl执行的是上述呼叫命令,因此我们需要前端进行任务解析(这里的前端指的是业务解析系统),然后接收消息方,批量执行fs命令即可。

我们可以选择java esl模块、或者golang的 esl等均可。按照一定的执行频率进行呼叫,这里请注意避免骚扰别人,收到大量投诉会被运营商封号等。

为了实现并发,可将originate替换成 bgapi originate ,实现呼叫的异步进行。

这里要注意细节,像普通的电话模拟线路,插上普通网关后,也可以进行对接freeswitch,但是有时候无法检测用户接听等操作,需要开启反极性信号。

3对话系统服务

基于自然语言处理的NLU对话系统多轮次问答,通过意图识别,命名实体识别,我们将用户的话语进行意图分析,并根据设定的流程图进行场景触发。

4 asr、tts服务

我们将asr,和tts服务对接到电话系统中,根据NLU的意图理解推荐用户话术,在这之前我们需要做的就是识别用户的语音,转化成系统需要的文本,并根据对话系统推荐的话术使用tts给用户进行语音播报。

此专栏将完整介绍如何实现,自研究智能外呼的全过程,包括开源ASR训练到可用,到NLU意图识别、命名实体提取,到可配置流程话术,到asr和tts如何与freeswitch对接。

我将持续更新

基于freeswitch的智能外呼1-自动外呼系统构建相关推荐

  1. 基于JAVA城市道路智能停车管理系统计算机毕业设计源码+系统+lw文档+部署

    基于JAVA城市道路智能停车管理系统计算机毕业设计源码+系统+lw文档+部署 基于JAVA城市道路智能停车管理系统计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: 项目架构:B/S架构 开发语 ...

  2. php简单排课_基于PHP-WEB网络云环境下的自动排课系统

    基于 PHP-WEB 网络云环境下的自动排课系统 陈佳硕 ; 孙穆赫 ; 付兴建 ; [期刊名称] <信息与电脑:理论版> [年 ( 卷 ), 期] 2013(000)010 [摘要] 随 ...

  3. 基于单片机的智能台灯 灯光控制系统人体感应楼梯灯系统的设计与实现

    功能介绍 以STM32单片机作为主控系统: 主通过光敏采集当前光线强度: 通过PMW灯光调节电路,我们可以根据不同的光线亮度,进行3挡调节: 通过人体红外检测当前是否有人: 通过不同光线情况下使用PW ...

  4. 粒子群课设_GitHub - LIYAJUN2018/tscss: 基于粒子群算法的中职自动排课系统

    kvf-admin kvf-admin是一套快速开发框架.脚手架.后台管理系统.权限系统,上手简单,拿来即用.为广大开发者去除大部分重复繁锁的代码工作,让开发者拥有更多的时间陪恋人.家人和朋友. 后端 ...

  5. 基于WT2003H语音芯片在GPS公交车自动报站系统的应用设计方案

    基于WT2003H语音芯片在GPS公交车自动报站系统的应用设计方案 一.方案概述 随着城市化进程的加快,公共交通作为城市的基础设施之一,仍然是绝大多数出行者的首选交通方式.为使得人们特别是为外来旅游. ...

  6. 基于Java毕业设计智能推荐二手车交易网站源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计智能推荐二手车交易网站源码+系统+mysql+lw文档+部署软件 基于Java毕业设计智能推荐二手车交易网站源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B ...

  7. 基于STM32的智能篮球测温记分记时系统

    1.项目概述(20分) 1.1项目简介(5分) 进入21世纪,伴随着电子信息通信技术的应用与普及开发,人们对电子技术的要也越来越高.篮球作为一种体育运动进入了人们的生活.为对比赛进行规范化管理,研究一 ...

  8. freeswitch实现监听_基于freeswitch的智能外呼2-自定义freeswitch模块

    // mini 版本 myrobot,可进行学习, 自定义freeswitch application// 通过media bug 来对channel进行监听,实时获取音频流 20ms, 160 sa ...

  9. 【避碰】基于人工势场法的船舶自动避碰系统附matlab代码

    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信.

最新文章

  1. 解决Latex图片或者表格浮动
  2. Cloudera Manager集群官方默认的各个组件开启默认顺序(图文详解)
  3. 09-LearnTheArchitecture-MemoryManagement
  4. 机器学习的练功心法(三)——特征工程
  5. C++——有关chrono库的duration
  6. java8与hibernate_如何在JPA和Hibernate中使用Java 8 LocalDateTime
  7. 合沟微服务怎么添加_微服务架构:动态配置中心搭建
  8. 收银机打印数据截取_自助收银机大大节约了人力成本
  9. 产品读书《极简工作法则》
  10. 计算机图形人机交互实验报告,用户界面设计-人机交互实验报告
  11. 高数篇:05柯西定理和泰勒公式
  12. Java学习笔记(17)
  13. 游戏开发设计模式:单例模式
  14. 游戏服务端(MMORPG)的基础算法二、寻路
  15. 【舆情监测平台】舆情危机处置的四大原则。
  16. WI-FI模块ESP8266(针对初学者)
  17. s7填表指令att_这些PLC指令你会用吗?plc编程入门
  18. Maven与Gradle项目构建工具
  19. 怎么把html图片改成jpg格式吗,怎样把照片变成JPG格式?
  20. reduce函数详解以及自己实现一个reduce函数

热门文章

  1. 阿里云服务器性能测试方法(一条命令搞定)
  2. KL Divergence
  3. AutoCAD学习笔记——基本操作4
  4. “春节十二响”C语言代码开源了,命名是亮点
  5. vue js根据生日计算年龄(包含阳历和农历)
  6. 更新Windows11后无法使用Windows安全中心的解决方案
  7. 【正点原子Linux连载】第六十章 Linux RTC驱动实验 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  8. 如何在远程桌面网关服务器上安装SSL证书
  9. SQL SERER系统概述
  10. spark3和hbase交互,hbase-connectors