1、熟悉C/C++、GO、Python,熟悉BOOST库以及常用数据结构和算法,熟悉面向过程,面向对象
2、熟悉 SIP、RTP 、UDP/TCP、Websocket、HTTP协议等,熟悉网络编程,epoll 等 IO 复用模型,熟悉WebRTC、ffmpeg,熟悉Nginx、Redis等缓存负载中间件
3、有大型项目开发合作经验以及独立完成模块的能力,熟悉docker和gRPC等常用分布式框架,擅长工程化和常用学习推理框架
4、擅长问题定位与处理,以及有高并发下的内核网络调优经验和弱网环境下语音传输
5、熟悉操作系统,熟悉多核并发,多进程通信,线程同步以及内存管理;熟悉 Makefile, GCC, GDB 等编译调试
6、编码有浓厚兴趣,热衷开源软件的研发
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以内
客户在呼叫中心场景(IVR、外呼、质检等)接入火山引擎等ASR和TTS原子能力,于是采用开源框架UniMRCP,支持编码、集群部署、负载均衡、热扩容,单实例至少支持200路 在单实例200路识别的情况下平均CPU占用在200%左右,内存占用在300MB左右,超过1.5s以上响应
对电话客服人员的服务监督,项目通过将语音流(SIP+媒体)镜像并实时转发至识别组件,并将识别结果推送至Kafka由后续消费组件智能检测
对电话客服人员的服务监督,项目通过将语音流(SIP+媒体)镜像并实时转发至识别组件,并将识别结果推送至Kafka由后续消费组件智能检测