游戏语音的处理有特定的门槛,除了采集、处理、编码、传输、解码、渲染等各个环节本身需要的技术能力和经验之外,还需要很强的工程实力,解决几千种机型的适配和音频兼容性问题,以及海量高并发的处理能力。面对这些问题,腾讯多媒体实验室在服务数个亿万用户量级产品的过程中已经积累了很多经验。基于腾讯多媒体实验室技术能力开发的游戏多媒体引擎(Game Multimedia Engine),相比于市面上同类产品,有显著的优势:
1. 功能全面完善,提供全方位语音体验
- 支持平台涵盖主流游戏平台win,ios,android,mac 主机端,三大主流游戏引擎Unity
- 3D、Unreal、Cocos等通用游戏框架全覆盖,四行代码极速接入;
- 与WWise合作,GME和Wwise总线交互音频流,可以使游戏玩家的语音处理和实际游戏场景集合起来,使聊天更加沉浸。同时,完美解决了手机游戏开启语音后,音质下降的问题。
- 支撑游戏产品特性功能:小队语音,语义消息,3d语音、语音鉴黄、录制、多国离线语音转文本等
- 支持大房间10W 用户在同一房间
2. 游戏场景深度优化,关键技术指标业内领先
GME基于多媒体实验室自研的静音检测、自动增益控制、回声抵消、噪声抑制以及智能流控算法。针对游戏场景的音频编解码器进行深度优化在码率、延时、系统资源消耗等关键技术指标达到业界领先。
(1)GME体验为先,保证低延迟、高抗性、低消耗:
GME在不同场景下提供不同的音质体验和不同的抗网络损伤技术,力求给用户带来最佳的游戏体验,主要体现在:
- 低延迟:实时语音音质在网络无损的场景下的平均MOS分达到4.38(满分5分),平均延时低于200ms。
- 高抗性:通过先进的丢包恢复技术,丢包补偿算法以及优秀的网络抗性,即使在50%以上丢包、100ms的网络抖动下,也能保持顺畅的沟通和很好的音质。
- 资源消耗低:例如MOBA类游戏中,在保证正常的语音沟通和良好的性能前提下,移动网络模式每分钟流量消耗低于500KB,CPU占用率平均在10% 以下等。
(2)GME 音频处理流及SDK技术实现
a) GME中音频数据流处理流程,如下图所示:
A. 采集端的数据流: Cap负责采集音频数据 —-> EC节点负责回声消除和降噪 —-> 到Prep模块做AGC与VAD —-> Aux In模块混入伴奏 —-> Enc模块编码 —-> 包头和FEC 编码 —-> NetSink发送数据。
B. 接收端的数据流: NetSrc收到TRAE层的数据包 —-> DMX按UIN解析为多路不同的数据 —-> 每路数据都有解码链来处理(包含FEC解码、包头解码、Jitter缓存区中缓存)。
C. 播放端的数据流: Rnd负责拉取PCM数据播放 —-> 通过TEE节点把播放数据同步EC 的参考信号 —-> 通过mix混音拉取各路Jitter缓存的数据并解码 —-> 然后获取PCM数据进行混音。
D. 伴奏的数据流: 通过Aux Src从外部传入, 可以给到播放的Mix作为耳返播放, 也可以给到Aux In作为伴奏数据混音发送给远端其他用户。
b) GME 客户端SDK架构
GME为了支持多平台多引擎,故架构设计上考虑了跨平台通用业务逻辑以及平台相关处理逻辑以及针对不同平台和不同游戏引擎进行了针对性的接口封装,在提供了对多平台可支持性的同时增强了GME SDK本身的易用性。
- 硬件及编解码层,主要针对不同设备平台进行封装适配,并提供平台相关的编码器供上层使用。
- 业务逻辑层,使用C 跨平台实现,对业务逻辑进行封装,包括网络与协议。
- 适配层,提供了针对不同平台、不同程序语言和游戏引擎的适配封装,方便开发者调用。
3. 腾讯云顶级基础设施,为语音服务保驾护航
(1)稳定的云支撑环境
GME基于腾讯云自建万兆云机房,全球覆盖,配备20线BGP顶级网络,800 节点让玩家畅享稳定而极速的体验。
(2)灵活多层次的调度系统
GME后台调度支持系统,能支持:
- 亿级用户在线,亿级群数规模;实时监控,异地容灾,智能调度,保证服务安全可靠
- 专业网络接入:复用 QQ 接入部署和调度策略,有效解决弱网络环境下的连通问题,连通率高达 99.995% ;
- 超强服务承载:承载 QQ 服务支撑能力,支持亿级用户在线,亿级群数规模;实时监控,异地容灾,智能调度,保证服务安全可靠;