如何自己开发一个电销机器人(源码部署过程)

随着人工智能的普及,ai已经渗透到各行各业,本文就为大家介绍了利用最前沿的ai技术实现电话机器人的原理。智能电话机器人就是 充分的利用了人工智能语音识别技术和大数据的精准分析定位,完全是对传统模式是一次颠覆性的变化,是智能化的人海战术还是时代化的“人工+智能语音”的一种方式,智能电话机器人是企业的福音!帮企业降低成本,提高工作效率,提升公司业绩!
电话机器人比人工坐席厉害的是,电话号码直接在后台一键导入,省时又省力,自动拨打。智能轮流对话,根据系统设定可以对客户进行筛选统计,依据客户的回答智能分类意向程度,把意向最高的甲类客户交给人工进行着重跟进,这样就能使整个电销过程的工作效率大大提高。
作为“人工智能”的产物,正在逐渐的给电销行业带来大改变大革命,把繁琐、枯燥、耗时的工作交给智能电话机器人完成,后台分类管理,加以精英销售跟进,不仅大大提高工作效率,而且能更好的把人力资源进行再分配再分组,减少企业运营成本!应该是每位老板都在想的问题。
对于电销公司来讲如何精准地识别真实客户一直是很难攻克的难点所在。对于智能电话机器人来说,可以通过真人语音式专家级的沟通,模拟电销人员和客户进行多轮互动的有效沟通,通过用户画像和大数据模型精准找到用户,实现精准营销,并快速完成abcd类意向客户的筛选和分类。
智能电话机器人是将网络电话、语音知识、自然语音理解、多轮对话、知识图谱等多个门类的前沿技术集成在一个智能产品中,已经成为行业的领头羊,为外呼行业带来了可喜的变化,短短几个月被很多企业证明,这是真正实现开源节流的ai好项目了。
智能电话机器人作为当今的一款智能化产品,在实际应用中能准确的以人类的声音、思维和语气智能应对客户提出的各种问题。同时,它的筛选能力也极强,可以把应答用户按意向程度自动分类,帮助人工坐席快速剥离意向客户。
员工坐席每天拨打200个-300个电话已经算是极限了,但是智能电话机器人每天可以拨打800-1200通有效电话,让效率提高几倍,提高效率就意味着业绩的提高。
什么是电话机器人
通过asr(语音识别)和tts(文本转语音)模拟真人和用户的通话,可用于企业总机,自动催缴,外呼营销,问卷调查等业务,同时支持百度,科大,阿里云等asr系统,可以真人预先录音,用户是完全察觉不到是机器人。
如何开发一个电话机器人
freeswitch/asterisk是一个软交换系统,可以利用开源的软交换系统,开发一个vad录音模块,用户说话后开始录音,停止说话后,把录音提交到语音识别接口转换成文本,利用语义解析接口(npl)或者简单的关键字匹配,返回系统预先设计的话术,通过tts转换成声音(也可以真人预先录音)播放给用户听。实现人机语音对话。
技术难点
· 机器人说话时,用户开始说话,机器人要及时处理,就是所谓的打断,这个通过vad算法和关键词打断可以解决。
· 机器人怎么理解用户说话含义,这个是目前难点,目前主要的做法,还是通过关键词匹配来设计话术。
演示
贵州诚企创思网络科技有限公司专注营销软件开发与大数据分析应用,擅长并精通各种推广引流的秘诀,行业公认的业界专家。需要演示的朋友可以联系本公司(百度搜索诚企创思)
支持那些asr接口
可以支持科大讯飞,百度语音识别,阿里云语音识别,腾讯语音识别,捷通华声灵云等sdk/api/mrcp接口。
怎么使用
可以和现有的呼叫中心,ippbx,freeswitch,asterisk 等系统通过sip分机和sip中继方式对接。
smart ivr 接口说明
smartivr 是一个基于freeswitch的电话机器人二次开发接口(restful),支持和asterisk对接
使用指南
用户自己实现 httpapi,机器人程序去调用这个接口,不是 机器人提供httpapi给用户调用。
1.
外呼程序呼叫电话接通后,或者客户主动呼入接通后 机器人程序 向 webserver post 发送
2.
smartivr –>web
3.
calleeid: 8888abc, //被叫号码
callerid: abc, //主叫号码
callid: 1fe74812-e376-4319-b335-3de1b494325c, //每个通话的唯一id
errorcode: 0, //错误代码
flowdata: null, //流程数据
flowid: abc, //流程id
notify: enter //通知类型
4.
webserver根据业务逻辑 返回 json数据 比如 下面的命令就是 启动后台asr,并且播放一个声音
5.
smartivrweb
asrelapse: 391, //asr识别服务器消耗的时间,单位毫秒。
asrtextall: 1.识别结果;, //包含之前停顿的识别结果的组合。 格式是 录音序号.识别结果;这样组合多个识别结果。
asrtype: aiui, //本次使用那个asr识别
calleeid: 8888abc,
callerid: abc,
callid: 1aec14af-d6a8-49e4-96fc-fb5f7cfdb893,
errorcode: 0, //asr返回错误,0无错误。
flowdata: 流程选择,
flowid: abc,
message: 识别结果,
notify: asrprogress_notify,
recordindex: 1, //录音序号
recordfile: , //录音文件
recordms: 931, //录音时间,单位毫秒。
volumegain: 5.95330699999 //音量标准化放大或者缩小的倍数。
webserver根据业务逻辑返回是否需要暂停放音
smartivrweb
calleeid: 8888abc,
callerid: abc,
callid: ea6d1235-aaab-4251-b03b-3b53ca32e00d,
errorcode: 0,
flowdata: 流程选择,
flowid: abc,
message: 1.你好;2.什么事;,
notify: asrmessage_notify,
speakms: 1162 //整句话的说话时间,包含暂停时间
webserver根据业务流程,执行话说逻辑,播放声音。
smartivrweb
calleeid: 8888abc,
callerid: abc,
callid: 35bca774-5b3e-4129-a5e7-1c3c86605071,
errorcode: 0,
flowdata: ,
flowid: abc,
message: file played,
notify: playback_result
webserver根据业务流程发送 继续放音,提示用户回答问题。
smartivr<– web
action: playback,
flowdata: 提示选择流程,
params: {
prompt: 请问你要进入哪个测试流程,比如,房产,
wait: 3000,
retry: 2
playback_result 什么时候有这个通知
执行 playback后,播放完成并且等待超时,就会发送playback_result 通知。
· 如果识别到用户说话,在 asrmessage_notify 事件中返回命令playback,播放了一个新的声音,那么上个playback会给强制终止(上次的playback_result就不会发送了。),新的播放完成时,才会发送playback_result。
· 如果识别到用户说话,在 asrmessage_notify 事件中返回命令noop,或者console_playback(resume),没去播放新的声音,那么还会发送playback_result 通知的。
· 。
接口说明
注意:请求和返回都采用json格式,编码为utf8,所有参数区分大小写,数字和字符串类型注意区分,参数未说明数字类型就是字符串类型。
自动放音暂停(打断)
start_asr 有一个参数 pause_play_ms,demo是200, 就是检测到声音持续时间时间超过pause_play_ms,就自动暂停放音。如果你不需要这个功能设置为0, 如果你启用了这个功能,asrmessage_notify通知你没播放一个新的声音就必须要恢复放音console_playback(resume)。否则会一直暂停。
怎么实现关键词打断
· asrprogress_notify 的识别结果如果是关键词 返回 console_playback(pause),如果不是关键词 返回 console_playback(resume)
· asrmessage_notify 的整句话识别结果如果匹配,直接播放新的声音文件,执行新的业务流程,如果不匹配,返回console_playback(resume)。
playback_result 收到这个通知,说明声音播放完成,等待用户说话超时,必须播放一个声音,提示用户说话
action 描述
start_asr
start_asr 是一个异步函数,只需要执行一次,启动后会一直进行vad和asr,直到调用sotp_asr
· min_speak_ms 最小说话时间,默认值100,单位毫秒,说话时间小于这个值,会被认为是无效声音。
· max_speak_ms 最大说话时间,默认值10000,单位毫秒,说话时间超过这个值,就停止录音,直接提交asr服务器识别。
· min_pause_ms 最小停顿时间,默认值300,单位毫秒,默认值用户停顿时间超过这个值,会提交到asr识别。识别完成后发送asrprogress事件。 完成后的意思是 asr服务器可能 300-800ms才返回识别接口。
· max_pause_ms 最大停顿时间,默认值600,单位毫秒,用户停顿时间超过这个值,认为一句话说完,所有识别完成后发送asrmessage事件。所有识别完成后的意思是,所有提交到asr服务器的识别结果都返回了。 注意 min_pause_ms 必须大于min_pause_ms。
· pause_play_ms 触发暂停放音时间,默认值0,就是禁用自动暂停,单位毫秒,建议设置200-1000,用户说话时间超过这个值,就暂停放音。 �...