声网 MetaKTV 技术揭秘之“声临其境”:3D 空间音效+空气衰减+人声模糊
声网近期发布了“MetaChat 元语聊”、“MetaKTV”解决方案,致力于提供一种全新的元宇宙互动社交、K 歌方式,其中都提到了“3D 空间音频”这项核心技术,对提升玩家沉浸感与听觉体验发挥了关键作用。我们也收到了很多开发者的咨询,今天将为大家带来声网 3D 空间音频的技术揭秘,揭晓这项技术的核心功能点以及背后的技术原理。
在现实生活中,由于双耳效应的原理,我们听到来自上下、左右等不同方位声音的感觉是不同的,并且可以快速辨别对方的位置。而在元宇宙虚拟空间中,如何通过听觉增加沉浸感是很多厂商迫切解决的关键要素,想象一下,在 3D 的虚拟聊天室中,你操控着虚拟形象与网友们聊天,耳朵里还传来正前方主持人的声音以及房间各个角落的聊天声,优雅的 BGM 在你的上方环绕,仿佛置身在线下真实的 Party 中。这其中一些关键细节的拟真度是构建临场感、沉浸感的关键要素,关键细节的缺乏会造成用户的感知度很低,而声网的音频技术团队通过对技术的持续钻研,力求对每一个细节完美处理,最大程度为用户带来更逼真的听觉体验。
3D 空间音效、空气衰减模拟、人声模糊 三大黑科技完美模拟现实听觉
声网 3D 空间音频通过纯软件算法方案,模拟头部球面区域立体声场,使用户在音频听感上具有空间感。当用户操作虚拟人物在虚拟场景里移动,可以实现根据虚拟人物的面部朝向、音源朝向、远近距离与上下高度,呈现不同声音效果,完美模拟现实听觉感受,这其中“3D 空间音效”、空气衰减模拟、人声模糊三大黑科技发挥了关键作用。
01 3D 空间音效:模拟音源的位置与朝向 实现音色差异
文章开头有说过,我们在现实生活可以感知到声音是从不同的方向传来的。我们先来大致介绍下这里的“方向感”是怎么产生的。
■图1:耳廓收音示意图
我们可以通过图1 看到人耳的耳廓在接收不同方向的音源时,会让声波以不同的路径传导至内耳。这样,不同方向的声波传输到内耳的时候,音色就会由于耳廓的形状而产生各向异性。除此之外,由于我们有两个耳朵,所以音源在不同方向时声波到达耳朵的时间也会不同,这一点我们可以结合图2 来理解一下。
■图2:双耳效应示意图
结合图2 我们可以发现,如果音源在你的右侧,右耳会先接收到声波,相反如果音源在左侧,左耳会先收到声音,同时由于人的头部也会对声音的传播产生影响,如果音源在右侧,那么声波需要越过头部这个“障碍”才能传递到左耳,那么相对于右耳,左耳听到的音色和频率会有所衰减。最终我们依靠双耳间的音量差、时间差和音色差来判别声音的方位。
介绍完双耳效应的原理,再来看声网是如何在虚拟空间中模拟真实的“双耳效应”,在虚拟世界中,我们需要把音频根据声源+用户的相对位置以及声源+用户的朝向来渲染一个双声道的音频,这样就可以带上耳机来体验不同空间位置的声音实现“听音辨位”,目前一些传统的解决方案是通过调节左右耳音量的方法来实现左右方向的渲染,但这种方法只能渲染左右的方向。对更复杂的前后、上下这些方向的渲染还需要细致调节左右耳音色、延迟等细节差异才能准确模拟音源的位置。
在空间听觉的研究和实现中,头部相关联的传递函数(HRTF)(Head Related Transfer Functions)与头部相关联的冲激响应(HRIR)占有十分重要的地位。而声网基于 HRTF 头相关传递函数、心理感知声学、声源指向模拟等算法自研了一整套 3D 声场渲染引擎。可以动态模拟空间中任意角度、朝向的声音在传递到左右耳时声音发生的变化从而实现了高精度的声音方位渲染。并且为了追求极致的听感与极致的可用性,渲染引擎以极小的算力要求,支持 48kHz 全频带、多路音频渲染,让你在移动端不多费流量、不用担心算力也能畅享多人高清音质互动。
在 HRIR 的采集中,声网通过在全消实验室针对每个角度都有一对采集的 HRIR,最终形成了一个球形的数据集,以实现角度的精准模拟。下方图3 就是一个球形 HRIR 的坐标示意图。我们可以看到图3 中央是人头部所在的位置,周围的红点就是 HRIR 采集时音源的方位。
■图3:HRIR 采集点的空间分布
音源的朝向对我们的听觉也会有直接的影响,例如一个人背对着你说话相比正对着你说话声音会显得比较“闷”,因为背对着你说话时声音需要绕过身体这个障碍,不同频率的声波绕过障碍物时的能量衰减程度不同。声网 3D 空间音效还提供音源朝向功能,通过声学建模的方式可以模拟任意角度的音源方向带来的音色差异,最终通过模拟不同音源的位置与朝向,实现音量、音色的差异,从而完美模拟现实听觉的感受。
此外,人在真实环境中对上下、前后这两个方向的感知是比较模糊。这是因为人的耳朵基本上是对称的,相比水平方向,在垂直方向上左右耳声音的音量、延迟基本相同就不足以用来区分方向了。所以在虚拟空间中,声网还对这些方向的听感区分做了增强,让用户在“虚拟空间”中可以拥有超越现实的听音辨位能力。
02 空气衰减模拟:模拟实现声学现象 让声音更逼真
模拟不同音源位置与朝向进行“听音辨位”只是声网 3D 空间音频模拟现实听觉感受的第一步,我们还实现了对空气衰减的模拟。在现实中由于空气的存在,声波在空气传播中会产生衰减,其中高频的声音衰减快,低频的衰减慢,那么同一个音量的声音,如果高频多一些,我们就会觉得它离你更近。
由于声波在空气传播中会产生衰减。而其中高频的声音衰减快,如蚊子的嗡嗡声、鸟叫声,低频的衰减慢,如男生粗犷的声音,风声、水泵声。那么同一个音量的声音,如果高频比较多,我们会觉得它离你更近一些。空气衰减功能就是模拟这种现实环境中的声学现象让声音听起来更逼真。我们用 2 张图来更直观的展示,如下方图4 频谱图所示,低频的声音可以传播更远,而 8Khz 以上的声音如果超过 1千米 以上就很难听到。
■图4:不同频率的声波空气衰减曲线
图5 的时频图所示,上方为空气衰减的模拟,下方是只有音量的衰减,对比可以看出在空气衰减的情况下,在距离逐渐增加后,8KHz 以上的音频声音衰减更为迅速。
■图5:空气衰减效果频谱对比
在生活中很多人对“空气衰减”的存在感知并不明显,但在虚拟空间中,通过 3D 空间音效与空气衰减模拟的强强结合,可以进一步还原现实听觉感受,在元宇宙中创造更逼真的“声临其境”感。
03 人声模糊:热闹的氛围与“安静”的聊天也可兼得
我们在嘈杂的酒吧、LiveHouse 中经常会遇到这种情况,你只想听到朋友的声音,但其他人嘈杂的声音不想完全消除,因为这样就没有了酒吧的氛围。在线下,你可能没法实现,但在虚拟空间中完全可以做到。声网 3D 空间音频的人声模糊功能就能将虚拟空间中你不想听到的声音进行模糊化处理,这样你能听到空间中周围的人声,但听不清他们在说什么,从而既保持了环境氛围,又不会干扰你与朋友的互动。
除了以上三个核心功能外,声网 3D 空间音频还支持本地音源文件播放,可以自定义场景中的背景音、伴奏、音效等。对于开发者而言,也支持灵活、多模式接入使用:
API 模式:直接集成Agora SDK,调用 API 即可自定义空间音频 (客户(需要center server)根据自己虚拟世界的音源、听音者位置,朝向信息等,输入参数,即可实现)。
Server 模式:Agora Server 实现坐标同步与空间音频所需的参数计算,并在客户端进行音频渲染。
本地渲染模式:客户端可以把上传的音频进行空间音频的渲染,从而可以实现背景音乐、环境音效渲染等功能。
介绍完声网 3D 空间音频的核心功能点与技术原理,我们再来看看它的应用场景,被视为下一个互联网新形态的元宇宙已经融入各个行业的多个场景,如游戏、语聊房、在线 K 歌、虚拟演唱会、VR、AR等,但对于语聊房、在线会议、虚拟活动、在线教育等场景而言,3D 空间音频可以有效的增强用户在线上的互动、听觉体验。而对于 Metaverse、VR、AR、虚拟演唱会、在线游戏而言,3D 空间音频则有望重构用户在虚拟世界的沉浸感与听觉体验。
■图6:3D 空间音频部分应用场景
我们将通过几个应用场景的案例来更直观的展示 3D 空间音频所带来的效果。
1、语音聊天室:在语音聊天室中,通过 3D 空间音频你可以听到来自房间前后、左右各处的 360° 音频,当你感受到来自周围的笑声时,感觉就像在参加一场真实的线下聚会,对于听众与发言者来说都不会感到平淡。再结合人声模糊功能,语音聊天室中还能激发“鸡尾酒会效应”,在多种声音混杂的环境中,你注意倾听某一种声音,并仍然能够听清他在说什么,这就是“鸡尾酒会效应”,而用户可以减少疲劳感,更加沉浸在聊天的环境中,并大幅提升聊天时长。
2、在线游戏:游戏语音是很多在线游戏的标配功能,通过在游戏内加入实时的语音功能,可以方便玩家之间沟通、协作,更好的取得游戏胜利。但单纯的游戏语音方案更多是构建玩家之间沟通的桥梁,对于提升游戏体验没有实质的作用,而通过将实时互动与 3D 空间音频结合,将重构游戏中玩家之间并肩作战的全新体验。例如在 FPS 游戏中,当队友通过具备 3D 空间音频的游戏语音与你实时沟通作战情况时,你能感觉到他就站在你的右边向你发出进攻指令,仿佛真的在线下一起参加真人 CS,这样的游戏体验几乎颠覆了传统的游戏语音沟通体验,将原本单纯的游戏语音互动功能变成了增强游戏沉浸感与协同感的核心功能。
3、虚拟演唱会:虚拟演唱会/音乐会是当下新兴的一种线上演唱会形式,演唱者可通过动作捕捉技术化身虚拟的形象投影到虚拟舞台中,用户也会变身虚拟人在虚拟舞台下喝彩,在加入 3D空间音频后,有望颠覆虚拟演唱会的听觉体验。当观众化身虚拟人坐在舞台下观看演唱者表演,他能“声临其境”的听到来自各个角落的声音,从舞台的左右两侧到中央的歌唱者再到周围观众的各个位置,犹如置身在真实的演唱会环境中,对于演唱者而言同样如此。
相比语音聊天室、在线会议,虚拟演唱会是否成功的关键在于演唱者的歌声与听众听到的歌声是否好听,3D 空间音频则从本质上改变了歌声传递到听众耳朵中的听觉体验,并弥补了虚拟演唱会一直缺失的“现场氛围感”,未来观众在虚拟演唱会的沉浸感与听觉体验有望不输线下演唱会。
不论是当下的各类线上活动还是未来的元宇宙虚拟世界,玩家之间的交流、互动都离不开 RTE 实时互动,因此 RTE 也被视为元宇宙底层基础设施之一。而插入 3D 空间音频,新的空间信息被引入到虚拟体验中,使观众能够完全独立于他们的眼睛感知自己身后或虚拟环境中其他地方发生的事情,在建立用户之间实时互动的同时,RTE 也将成为帮助元宇宙场景增加临场感与沉浸感的基础设施,构建更逼真、更前沿的音频元宇宙。
声网 MetaKTV 技术揭秘之“声临其境”:3D 空间音效+空气衰减+人声模糊的更多相关文章
- 【征文活动】为自己发“声” —— 声网RTC征文大赛在园子里征稿
2020年8月20日,声网Agora入驻园子的新楼盘--博客园品牌专区.9月,我们与声网Agora再度合作,「为自己发"声"- RTC 征文大赛」在园子里征稿. RTC(Real- ...
- AI加持的阿里云飞天大数据平台技术揭秘
摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...
- 【直播】APP全量混淆和瘦身技术揭秘
[直播]APP全量混淆和瘦身技术揭秘 近些年来移动APP数量呈现爆炸式的增长,黑产也从原来的PC端转移到了移动端,通过逆向手段造成数据泄漏.源码被盗.APP被山寨.破解后注入病毒或广告现象让用户苦不堪 ...
- (转) 技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道
技术揭秘:海康威视PASCAL VOC2012目标检测权威评测夺冠之道 原创 2016-09-21 钟巧勇 深度学习大讲堂 点击上方“深度学习大讲堂”可订阅哦!深度学习大讲堂是高质量原创内容平台,邀请 ...
- 技术揭秘12306改造(一):尖峰日PV值297亿下可每秒出票1032张
[编者按]12306网站曾被认为是"全球最忙碌的网站",在应对高并发访问处理方面,曾备受网民诟病. 2015年铁路客票春运购票高峰期已过,并且12306网站今年没"瘫痪& ...
- 阅读《Oracle内核技术揭秘》的读书笔记
阅读<Oracle内核技术揭秘>,对oracle的内存结构.锁.共享池.undo.redo等整理成了如下的思维导图:
- C++反汇编与逆向分析技术揭秘
C++反汇编-继承和多重继承 学无止尽,积土成山,积水成渊-<C++反汇编与逆向分析技术揭秘> 读书笔记 一.单类继承 在父类中声明为私有的成员,子类对象无法直接访问,但是在子类对象的 ...
- PalletOne调色板Token PTN跨链转网的技术原理
之前一直在忙于通用跨链公链PalletOne的研发,没有怎么做技术分享的博客,最近PalletOne主网上线也有几个月的时间了,即将进行PTN(PalletOne上面的主Token)从ERC20到主网 ...
- [转帖]新iPhone的黑科技:UWB技术揭秘
新iPhone的黑科技:UWB技术揭秘 http://blog.nsfocus.net/iphone-black-technology-uwb-technology-revealed/ 阅读: ...
- 《C++反汇编与逆向分析技术揭秘》--算术运算和赋值
一.加法 1.Debug下: 14: int nVarOne0 = 1 + 5 - 3 * 6;//编译时计算得到结果 00C0550E C7 45 F8 F4 FF FF FF mov dword ...
随机推荐
- 记——flask实现全文搜索
参考: flask入门和进阶十(实现全文搜索)已解决:https://blog.csdn.net/chengmo123/article/details/100552287 一.首先安装flask-wh ...
- pg的json类型
以下举例说明: postgres=# select '{"b":1,"a":2}'::json; json --------------- {"b&q ...
- SQL-增删改
-- 删除表drop table -- 建表create table -- 表注释comment on table ... is ...-- 字段注释comment on column ... is ...
- c++ 保存txt文件
#include <iostream> #include <stdio.h> #include <fstream> #include <queue> # ...
- vue 打包后可放置在任意名称的文件夹下
1. build->utils.js: 2. build->webpack.prod.conf.js: 3. config->index.js:
- SpingBoot面试大汇总
1.什么是SpringBoot? 1)用来优化Spring应用的初始搭建以及开发过程,使用特定的方式来配置(properties和yml文件) 2)嵌入式的内置服务器tomcat无需部署war文件简化 ...
- git cherry-pick适用场景详解
前提条件:有2个分支,分别是master,hotfix,其中master是用于生产环境的发布分支. 场景1:生产环境hotfix. T1时刻,使用master分支发布生产.当时的HEAD的commit ...
- 洛谷 P2330 [SCOI2005]繁忙的都市 题解
START: 2021-08-05 15:30:20 题目链接: https://www.luogu.com.cn/problem/P2330 题目详情: 城市C是一个非常繁忙的大都市,城市中的道路十 ...
- 容器数据库(CDB)和传统的非容器数据库的区别
传统的非容器数据库在系统元数据和实例资源没有进行任何共享.容器数据库把 Oracle 提供的元数据.后台进程以及内存结构进行共享,把每个部门数据库的存储结构以 PDB 的形式独立出来,从而实现了系统资 ...
- MacOS 使用UnblockNeteaseMusic解锁网易云灰色歌曲(主要是想听杰伦)
最近想听杰伦的音乐 但是网易云木有版权 于是在github上找到了UnblockNeteaseMusic这个项目 不多废话 直接上教程! 第一步 找到该项目的地址 并使用git克隆到本地: https ...