RTC 科普视频丨聊聊空间音频的原理与其背后的声学原理

在现在很多的线上实时互动场景中,我们重视的不仅仅是互动体验,还要提升沉浸感。而在很多场景中,仅凭空间音频技术,就可以带来如临其境的体验。空间音频技术的原理是怎样的呢?
看过我们新一期的 RTC 科普视频,你就知道了。

空间音频技术是以算法的方式将现实中的听感,在数字世界中重建了出来。既然是重建,那么要理解这个过程,就需要先了解,现实中,我们是如何通过耳朵、大脑来要感知到一个声音在空间中的位置的。
要解决这个问题,我们可以将判断声音位置的过程拆解一下,即:
● 如何判断声源与你水平方位
● 如何判断声源与你的垂直方位
● 如何判断声源与你的距离
事实上,我们是依靠双耳间的音量差、时间差和音色差来判别声音的方位。由于双耳位于头部两侧,如果声音是来自右侧,那么它到达右耳的时间相对更短,这就行程了双耳时间差;声音在传播过程中,频率会衰减,那么双耳之间听到的音色也会不同。
在室内环境中,耳朵听到的声音包括直达声、早期反射声、后期混响声。直达声就是字面意思,从声源直接传到耳朵的声音;早期反射,则是经过室内墙面反射后传到耳朵的,相比直达声晚 50 - 80ms;在早期反射之后到达的声音则是后期混响。就像刚刚所说,声音传播中会有衰减,所以声源与耳朵的距离是能够被听出来的。通常来讲,声源与耳朵的距离增加一倍,直达声的声压就会减小 50%,而早期反射与后期混响的声压则不会受到这么明显的影响。我们的大脑就会基于直达声与早期反射+后期混响的声压比来判断声源的距离。
在这期的科普视频中,我们对以上原理都做了讲解。为了让更多人能有画面感,便于想象声音传播的过程,我们用“水”作为类比。不过,要再次提醒各位,水波的传播与声波在空气中的传播过程有很大差别,大家不要等同视之。
另外,我们在视频里简要地讲解了如何在虚拟现实(VR)中重建空间音频。其中提到的算法,我们并没有深入讲解,如果你感兴趣,可以查看我们往期的文章。
最后,如果大家还希望了解哪些技术原理,欢迎给我们留言。
RTC 科普视频丨聊聊空间音频的原理与其背后的声学原理的更多相关文章
- AR空间音频能力,打造沉浸式声音体验
随着元宇宙的兴起,3D虚拟现实广泛引用,让数字化信息和现实世界融合,目前大家的目光主要聚焦于视觉交互层面,为了在虚拟环境中更好的再现真实世界的三维空间体验,引入听觉层面必不可少,空间音频孕育而生. 空 ...
- HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界
从单声道.立体声.环绕声发展到三维声,音频回放技术的迭代演进是为了还原真实世界的声音.其中,三维声技术使用信号处理的方法对到达两耳的声音信号进行模拟,将声场还原为三维空间,更接近真实世界.凭借这个技术 ...
- 聊聊并发(一)深入分析Volatile的实现原理
本文属于作者原创,原文发表于InfoQ:http://www.infoq.com/cn/articles/ftf-java-volatile 引言 在多线程并发编程中synchronized和Vola ...
- 【科普】MySQL中DDL操作背后的并发原理
一. 简介 DQL:指数据库中的查询(select)操作. DML:指数据库中的插入(insert).更新(update).删除(delete)等行数据变更操作. DDL:指数据库中加列(add co ...
- [SimplePlayer] 4. 从视频文件中提取音频
提取音频,具体点来说就是提取音频帧.提取方法与从视频文件中提取图像的方法基本一样,这里仅列出其中的不同点: 1. 由于目的提取音频,因此在demux的时候需要指定的是提取audio stream Au ...
- Android音视频之AudioTrack播放音频(二)
前一篇讲了如何录制wav音频文件,本篇就来讲讲如何播放wav文件,这里就是使用AudioTrack来播放音频,确切的说是播放pcm格式数据,使用AudioTrack播放也没什么难度,主要就是将数据写入 ...
- 技术应用丨DWS 空间释放(vacuum full) 最佳实践
摘要:本文主要介绍如何进行正常的VACUUM FULL 维护,及时释放磁盘存储. 1.背景 目前根据某项目情况,其DWS的磁盘IO性能低.库内数据量大.对象多.数据膨胀严重.若毫无目的性的进行空间释放 ...
- Web RTC录视频
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 空间金字塔池化(Spatial Pyramid Pooling, SPP)原理和代码实现(Pytorch)
想直接看公式的可跳至第三节 3.公式修正 一.为什么需要SPP 首先需要知道为什么会需要SPP. 我们都知道卷积神经网络(CNN)由卷积层和全连接层组成,其中卷积层对于输入数据的大小并没有要求,唯一对 ...
- 聊聊Cookie、Session、Token 背后的故事
摘要:Cookie.Session.Token 这三者是不同发展阶段的产物 本文分享自华为云社区<Cookie.Session.Token 背后的故事>,作者: 龙哥手记. 1. 网站交互 ...
随机推荐
- 20191317 Exp2-后门原理与实践
20191317 Exp2-后门原理与实践 实验基础 本次实验需要我们掌握后门的基础知识,学习使用nc实现Windows,Linux之间的后门连接,学习使用Metaspolit的msfvenom指令生 ...
- CVPixelBufferRef
在iOS里,我们经常能看到 CVPixelBufferRef 这个类型,在Camera 采集返回的数据里得到一个CMSampleBufferRef,而每个CMSampleBufferRef里则包含一个 ...
- js中的call()、apply()、bind()方法
var a= { name:"李四", age: "五岁", text: function() { return this.name+ " " ...
- 第一个程序,Hello,World!
Hello World 创建一个文件夹,存放代码 新建一个java文件 后缀名为.java 编写代码 public class Hello{ public static void main(st ...
- 如何在Windows 10上使用VS2019 编译C
一.安装VS 2019 首先VS官网上下载免费的VS2019 community.我们的目的是在Windows上使用该软件编译C,如下图所示,把使用C++的桌面开发打上勾 二.创建.C 项目 1.打开 ...
- selenium+鼠标操作+键盘操作+下拉框+弹出框+滚动条+三种等待--代码
鼠标操作 键盘操作 下拉框 弹出框 滚动条 1 from time import sleep 2 from selenium import webdriver 3 4 driver = webdriv ...
- 2020.4.2关于java.pta的总结
0.前言 本文是有关pta2020.3至2020.4所有面向对象程序课程(java)共三次作业的阶段性总结,是java学习最开始起步时期的成果. 1.作业过程总结 这三次作业,是从c++过渡到java ...
- 修改word文档中已有的批注者名称
前言 https://blog.csdn.net/hyh19962008/article/details/89430548 word中可以通过修改用户的信息实现新建的批注者显示不同的名称,但是对于文档 ...
- SAP B1如何找回被误删的许可证号
SAP B1的许可证分配记录,保存在安装目录下的B1Upf.xml文件下,如果你发现许可证用户不小心误删了, 但又不知道是哪个用户名了,打开此文件,便可发现该用户名.接下来,你只要再建立一个和误删除的 ...
- SQL Network Interfaces, error: 50 - 发生了 Local Database Runtime 错误。无法创建自动实例
1. sqllocaldb delete MSSQLLocalDB 2. sqllocaldb create