内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~
3月14日,腾讯旗下知名手游《QQ炫舞》正式上线各大应用商店,并迅速登上App Store免费游戏总榜第一位。作为一代玩家的青春记忆,早在游戏发布前,《QQ炫舞》手游全渠道预约人数就已突破2000W,其火爆程度不亚于腾讯旗下两款吃鸡手游。
实时语音房间内高清音乐播放,腾讯音频技术解决业内难题
《QQ炫舞》手游由端游原班人马打造,产品的核心体验与端游版本一致。此外,《QQ炫舞》手游还推出了弹珠模式、游戏音乐房间内实时语音等多种独创玩法。然而在创新的同时也带来了一些音频技术上的难题:比如游戏房间内支持高清背景音乐播放,开启实时语音后如何确保播放音乐效果的高音质,同时做到说话声音清晰且避免回音等。
游戏语音多应用在实时语音、多人会话、发送语音消息等场景,而《QQ炫舞》手游的游戏音乐房间内实时语音玩法在音频处理上的复杂度上远远超出了正常范畴。正常情况下,玩家在实时语音房间中启用电话音量模式,由于手机系统的回声消除、降噪模块的影响,房间内播放音乐音质会明显降低。玩家在实时语音房间中使用媒体音量模式播放高清音乐的同时,需要确保实时语音清晰并且避免回声。
这些技术难题对于《QQ炫舞》手游来说,无疑是一项重量级挑战。腾讯音视频实验室提供的游戏多媒体引擎GME(Game Multimedia Engine)作为游戏音乐房间内多人实时语音的解决方案,使得《QQ炫舞》手游呈现出的效果超乎预期:
https://v.qq.com/x/page/s0709emc7lh.html
视频内容
从视频可以看到,玩家在游戏音乐房间内实时语音时,使用手机的媒体音量(而非电话音量),绕过了手机系统的音频处理模块,播放效果达到QQ音乐一样的高清播放体验。当玩家说话时,说话声 “彼此隔离”,使每个声源都可以清晰呈现,且在混合发声时也不存在嘈杂感和回声,极大程度地提升玩家在游戏房间内播放音乐时的实时语音聊天体验。
对此,腾讯音视频实验室的技术专家们解释说:“这得益于GME强大音乐播放器能力,将背景音乐与实时语音完美融合。我们充分考虑到使用手机媒体音量模式的高清音乐播放效果,与房间内多人实时交流时产生的回声、噪声的影响,通过自研的高音质回声消除、噪声抑制处理技术,在保证游戏房间内音乐高音质播放的同时,减少回声、噪声对交流的影响。”
基于自研、优秀的高音质回声抵消技术,GME能保证玩家在多人实时语音场景下听清每个人说话的声音,且不会发生人声被剪切的情况。更富创意的是,如果玩家在其他玩家说话时,还能切换成电台的duking效果,提升观众与发声者的声音体验。
除此之外,GME的一些“看不见”的能力也为玩家所称道,比如为玩家提供30ms级别的超低延时耳返;此外,由于游戏音乐房间内实时语音场景对网络传输要求更高,对弱网、抗抖动的要求也更加苛刻,GME也很好地满足了这些需求。
GME攻克音频难点,为游戏提供一站式游戏语音解决方案
GME产品有着成熟的音频处理经验,特别在基础性能方面,已为400多个产品提供了音频技术支持,技术在业内可谓遥遥领先。GME支持语音开黑、休闲游戏等不同场景,在不同场景下提供不同的音质体验和不同的抗网络损伤技术,力求给用户带来最佳的游戏体验。实时语音音质在网络无损的场景下的平均MOS分达到4.38(满分5分),平均延时低于200ms;通过先进的丢包恢复技术、丢包补偿算法以及优秀的网络抗性,即使在50%以上丢包、1000ms的网络抖动下,也能保持顺畅的沟通和很好的音质。
对于游戏玩家很关心的流量消耗和CPU占用问题,GME也做了相应优化,例如MOBA类游戏中,在保证正常的语音沟通和良好的性能前提下,移动网络模式每分钟流量消耗低于500KB,CPU占用率平均在10%以下等。
值得一提的是,GME自研的3D实时语音技术,利用HRTF 算法对双耳之间的时间差异和频谱差异建立人耳获取声音模型,将无方位感的声音处理成带有声源方位感的声音,从而虚拟出空间中任意位置的声源对人耳造成的感觉。这种技术可以应用在“吃鸡”和棋牌类游戏场景上,通过提供听声辨位的能力,让玩家获得更好的游戏体验。
凭借语音效果好、接入门槛低的方案特点,GME覆盖了休闲社交类、MOBA类、MMORPG等多种游戏类型,提供实时语音、语音消息、语音转文本等功能。如今,通过针对游戏类型、游戏场景的深度优化,GME积累了深厚的技术底蕴,同时通过覆盖超过400+游戏产品的技术支持,不断积累技术经验,为玩家打造畅爽的游戏语音体验,展示了领先业内的技术实力。
游戏多媒体引擎GME 已正式登陆腾讯云,为广大游戏厂商开发者提供服务,详细信息可浏览:https://cloud.tencent.com/product/tmg?idx=1
问答
相关阅读
此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1155113?fromSource=waitui
欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~
海量技术实践经验,尽在云加社区! https://cloud.tencent.com/developer?fromSource=waitui
内行看门道:看似“佛系”的《QQ炫舞手游》,背后的音频技术一点都不简单的更多相关文章
- 【转载】QQ炫舞手游自制谱子教程(星动模式)
		
第一步:计算ET和BPM: 抄送原作者部落链接:https://buluo.qq.com/p/detail.html?bid=368006&pid=981862-1529828677& ...
 - 微信游戏《全民炫舞》开发公司h3d2 engine和QQ炫舞2 布料系统技术介绍
		
H3D公司开发的<全民炫舞>上线了. 蝉联IOS榜首很多天. 整理了一下过去公司游戏引擎开发的历史.有兴趣可以去看看 公司游戏引擎开发历史介绍: http://www.h3d.com.cn ...
 - QQ炫舞官网选项卡效果
		
这篇博文里需要注意的是当点击事件发生的时候,需要用循环,重置标题的classname和标题底部都设置成隐藏,当点击的时候在加上标题的active属性和显示属性 代码地址:https://github. ...
 - Java 炫舞按键功能 DancingPlay (整理)
		
/** * Java 炫舞按键功能 DancingPlay (整理) * 2016-1-2 深圳 南山平山村 曾剑锋 * * 设计声明: * 1.本次设计是模仿QQ炫舞类游戏,当图标到红色的检测区域时 ...
 - nyoj 740 “炫舞家“ST
		
“炫舞家“ST 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 ST是一个酷爱炫舞的玩家.TA很喜欢玩QQ炫舞,因此TA也爱屋及乌的喜欢玩跳舞机(Dance Dance ...
 - 不融资、不上市、不快马圈地…“佛系”ZOHO的中国生意经
		
来源:钛媒体 作者:秦聪慧 "技术比肩SAP.直追微软的这家25岁"非典型"国际大厂会继续佛系下去吗? ZOHO研发中心大楼 在中国,有家相对低调的"舶来&qu ...
 - 开源工具 | 手游自动化框架GAutomator,新增iOS系统和UE4引擎支
		
WeTest 导读 GAutomator是腾讯WeTest推出的手游自动化测试框架,已用于腾讯多个手游项目组的自动化测试. 1.GAutomator诞生背后 研究过手游自动化测试的同学都知道,虽然市场 ...
 - 佛系结对编程---四则运算(Core 第四组)
		
----by core 第四组 ( 邹卫其 范力 ) 一. 项目介绍 1. 能自动生成小学四则运算题目并给出答案,生成题目时可以选择下列参数: 1)生成题目数量 2)每道题目中运算数数量 ...
 - 七个要素帮你打造现象级手游!优化程度堪比《QQ飞车》
		
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由WeTest质量开放平台团队发表于云+社区专栏 作者:申江涛,腾讯互娱客户端工程师 商业转载请联系腾讯WeTest获得授权,非商业转载 ...
 
随机推荐
- rsync 备份服务搭建(完成)
			
rsync服务守护进程 服务器端配置过程: 1. 检查rsync是否安装: rpm -qa rsync 2.添加rsync服务的用户,管理本地目录 useradd-s /sbin/nologin -M ...
 - 小规模kvm宿主机管理-webvirtmgr安装
			
1.前言WebVirtMgr是近两年来发展较快,比较活跃,非常清新的一个KVM管理平台,提供对宿主机和虚机的统一管理,它有别于kvm自带的图形管理工具(virtual machine manager) ...
 - CentOS7 搭建 python pypi 私有源
			
(1)寻找可用的同步源,我选择的是中科大的源:http://rsync.mirrors.ustc.edu.cn (2)创建数据同步目录:/root/pypi(如果想存放到其他目录,可以通过软链接的方式 ...
 - javascript正则表达式——元字符
			
元字符(Metacharacter)是拥有特殊含义的字符: 元字符 描述 (1) . 查找单个字符,除了换行和行结束符. 例子: <!DOCTYPE h ...
 - loj #2255. 「SNOI2017」炸弹
			
#2255. 「SNOI2017」炸弹 题目描述 在一条直线上有 NNN 个炸弹,每个炸弹的坐标是 XiX_iXi,爆炸半径是 RiR_iRi,当一个炸弹爆炸时,如果另一个炸弹所在位置 X ...
 - 【spring源码】bean的实例化(转载)
			
首先来看一段代码,看过上一节的朋友肯定对这段代码并不陌生.这一段代码诠释了Spring加载bean的完整过程,包括读取配置文件,扫描包,加载类,实例化bean,注入bean属性依赖. 上一节介绍了Sp ...
 - HTTP上下文表单内容转为实体对象
			
using ServiceStack.Web; using System; using System.Collections.Generic; using System.Linq; using Sys ...
 - npm i -S -D -g 区别
			
npm install 本身就有一个别名 npm i npm i module_name -S 即 npm install module_name --save 写入depende ...
 - composer 创建自己包
			
服务器环境下创建自己的项目文件 初始化composer 打开cmd 窗口,cd 到 backrestore 执行 composer init 命令 D:\phpStudy\WWW\backrestor ...
 - Tomcat(一)Tomcat常用配置
			
操作系统:win8 Jdk版本:1.7.0_51 Jdk目录:C:\Program Files\Java\jdk1.7.0_51 Tomcat版本:8.0.3 Tomcat目录:D:\Program ...