介绍
FreeSWITCH 电话机器人模块,包含脚本解析引擎和话术编辑器2部分。
话术编辑器
话术编辑器是一个图形化的应用程序,通过图形化编辑话术流程,生成JSON文件。支持ASR流接口,支持多种打断方案,支持TTS,支持变量,支持真人录音,支持TTS和录音文件混合放音,支持正则表达式匹配,支持NLP接口,支持知识库,支持限制流程重复执行。
ASR支持
采用ASR流接口,可以实时得到识别结果进行匹配,可实现抢话,快速打断等高级功能。
TTS支持
支持变量,支持TTS和真人录音混合放音,支持TTS音量、语速、语调、发音人等参数设置,支持不同通话使用不同发音人等高级功能。
NLP支持
支持NLP接口,用户只需要专注于NLP接口实现,就可以实现高级的话术流程。
知识库支持
知识库和话术逻辑分离,让话术逻辑条理清晰,可以在话术节点触发知识库放音,知识库放音话可以返回节点播放一个返回音。知识库放音的时候同样可以进行ASR识别。
限制流程重复次数
可以防止机器人重复播放一个声音,或者流程进入死循环。
脚本解析引擎
脚本解析引擎是FreeSWTICH的内嵌模块,用来解析和执行话术编辑器生产的JSON文件。它非常高效和功能强大,没ESL接口或者RESTAPI接口的额外开销,不需要查询数据库。
标准化
JSON脚本,可以手动编辑,也可以第三方工具生成,使用标准格式,方便第三方编写话术编辑器。
高效
直接使用FreeSWITCH模块方式,没有协议对接开销,使用通道变量设置TTS变量,不需要查询数据库。
分布式
通过消息队列推送对话流程,方便大规模群集。
ASRPROXY
ASR和TTS接口程序程序实现阿里云和科大的ASR流接口对接。
使用指南
全局配置
配置TTS,ASR和NLP
TTS配置
机器人引擎程序会根据配置生成 http://127.0.0.1:9989/tts?config=&voice=&volume=0&speechrate=0&pitchrate=0&engine=&text=%E4%BD%A0%E5%A5%BD%E8%BF%99%E9%87%8C%E6%98%AF%E9%A1%B6%E9%A1%B6%E9%80%9A%E8%BD%AF%E4%BB%B6 这样的路径去播放声音,voice和text使用utf8字符编码,然后进行url编码。用户可以直接实现TTS服务,也可以使用ASRPROXY提供的tts服务。
-
发音人列表:可以配置多个发音人,每个电话循环使用发音人,避免每个电话都是同样的声音。
-
默认发音人:如果配置了默认发音人,就不会使用循环使用发音人列表里面的发音人。
-
TTS接口:如果使用ASRPROXY,配置 http://127…0.0.1:0089/tts 这个地址
-
TTS配置:ASRPROXY可以配置多个不同的TTS服务和KEY,通过这个配置来控制使用具体的TTS服务。
-
录音路径: 不是TTS文件的缓存录音路径,是真人录音文件的存放目录。
ASR配置
设置默认ASR参数,如果流程节点单独设置了ASR参数,就会覆盖全局设置。
-
模式:【mode】0:不启动ASR识别 1:放音的同时开启ASR识别; 2:放音完成之后才开启ASR识别。
-
打断:【interrupt】0:不打断; 1:检测到声音打断; 2:有识别结果打断; 3:识别到一句话打断。
-
地址:【asrproxy_addr】asr代理地址。
-
开始:【vad_min_active_time_ms】说话时间大于这个值才开始提交ASR。
-
停止:【vad_max_end_silence_time_ms】静音时间大于这个值认为说话停止。
-
等待:【wait_speech_timeout_ms】放音完成后等待用户说话的等待时间。
-
最大:【max_speech_time_ms】最大说话时间,说话时间超过这个值就停止ASR。
-
热词:【hot_word】ASR热词。
-
参数:【asr_params】ASR参数。
NLP配置
配置NLP接口地址和同义词组。
-
接口地址:NLP接口地址。
-
同义词组:把相同一样的词可以放到一个组里,配置流程的时候,可以直接选择关键词组。
知识库
把常见问题的回复预先定义好,可以通过关键词或者NLP触发知识库放音
]
-
分类:可以设置很多不同的分类方便和流程结点关联
-
关键词:支持正则表达式,识别到关键词,就触发机器人放音
-
放音:支持TTS和文件放音支持变量。
-
重复:可以防止多次重复触发。
流程编辑
通过拖拉方式配置话术流程。
节点属性
-
NLPID:NLP ID,配置了这个值才会把输入事件提交给NLP接口处理
-
等待:等待时间,单位毫秒,支持一个时间范围内的随机值比如1-10,动作执行完成后,等待时间内没输入,就触发等待超时(timeout)
-
重复:动作最大重复执行次数,可防止流程进入死循环
-
知识库:设置关联的知识库
-
返回音:播放完知识库回答后面播放的声音
-
文本滤:不接收哪些类型的识别结果【F,E,S(前缀F:识别完成,前缀E:ASR错误,前缀S:识别中)】,如果过滤条件第一个字母是’!’,就是只接收匹配的识别结果
-
放音:机器人播放的声音文件
-
重放:重复进入(知识库返回,或者其他流程返回)机器人播放的声音文件,如果不设置,会使用“放音”设置的参数
-
模式:【mode】0:不启动ASR识别 1:放音的同时开启ASR识别; 2:放音完成之后才开启ASR识别。
-
ASR参数可以覆盖全局配置的默认ASR设置
箭头属性
-
优先级:匹配的顺序,从高到低匹配。
-
文本:填写匹配的关键词
-
完成:填写匹配的完成原因
-
按键:填写匹配的按键值