1、项目背景:为方便客户在呼叫中心场景(IVR、外呼、质检等)接入ASR和TTS原子能力,采用开源框架UniMRCP,支持编码、集群部署、负载均衡、热扩容,单实例至少支持200路
2、架构设计:
1)接入侧使用OpenSIPS(开源SIP代理栈)实现MRCP-Server的负载均衡,通过检测SIP包里的Call-ID做哈希分流,来实现会话保持,让一条通话的所有信令送到同一个服务,以及替代方案Nginx实现分流
2)采用单条语音识别通道维护一个session,创建一个APR任务队列,所有IO操作放到任务队列里,全异步处理,提高并发性能。
3)开发VAD模块功能,检测语前后端点进行切割,保留有效音频段识别,并支持转码重采样
4)并支持根据不同场景动态加载缓存语法文件以及声学模型语言模型等
5)录音、日志模块,记录单条交互所有的状态变换事件,本地录音完毕做上报迁移处理
3、平台:docker实例部署以及物理部署。鲲鹏920+麒麟V10操作系统等ARM环境,也支持跨平台到E5等x86架构上编译部署(GCC4、7版本都支持)
4、性能指标:开发了一套自动化测试流程,能够实现压力长稳测试,以及检测请求的平均响应时延,在单实例200路识别的情况下平均CPU占用在200%左右,内存占用在300MB左右,超过1.5s以上响应的请求在0.3%以内,平均识别响应在200ms以内