【Android】虚拟环绕声

工程源代码下载:http://download.csdn.net/detail/jsgaobiao/9489669

Ø  【实验目的】

本次实验的目的是在安卓系统上开发一个虚拟声音应用,能够根据原始音频和

用户选择的音源角度产生虚拟的立体声音效果。

 

Ø  【实验器材】

Android Studio 1.5.1

Xiaomi Pad (7.9’’): Android 4.4.4 , 1536*2048 xhdpi

 

Ø  【实验原理】

一、算法思路

采用简介的界面设计,顶部有两个按钮,供用户选择虚拟声音的播放和停止。当用户按下播放键时,会自动播放从正前方按顺时针方向旋转的立体环绕音乐。

自由场情况下,声波从声源到双耳鼓膜处的传输函数称为头相关传输函数(HRTF),对应的时域冲激响应称为头相关冲激响应(HRIR),通过事先测得的 HRIR数据和原始音频数据做卷积,即可得到预计的虚拟声音信号。

【Android】虚拟环绕声_第1张图片

 

二、程序结构

【Android】虚拟环绕声_第2张图片

         静止虚拟声音的合成,根据声源方位通过数据库读取该点的左右耳HRIR数据,用单通道声音文件分别卷积两耳HRIR数据,合成双通道的声音。

         对于环绕的动态虚拟声音的合成,我是将待播放的音频等份为360/5份,每分对应着一个5度的环绕音。用对应角度的HRIR数据和该小段的音频进行卷积,0-360都处理完后,进行自动播放,就形成了环绕一圈的立体虚拟音的效果。

         主要实现代码如下:

【Android】虚拟环绕声_第3张图片

Ø  【小结】

我通过本次实验,了解了环绕声的实现方式、HRIR数据的获取和使用。在实验中,我发现每次做卷积都会花费很多时间,因此我在实现的时候,默认在后台自动处理卷积的过程,并将结果保存下来,这样用户在使用时点击播放按钮后就免去了等待的时间,提升了用户体验。

你可能感兴趣的:(Android)