双耳空间音效

一、实验目的

下载一个HRTF数据库,阅读其说明文档,学习如何运用其中数据,完成双耳空间音效的实现。推荐基于真人的CIPIC,以及基于人工头的THK。素材不能只有一种,要创建一个声景。利用HRTF实现声景中各个声源的不同方位的双耳空间音效。

二、实验原理

HRTF(Head Related Transfer Function):头相关变换函数,是一种音效定位算法,对应时域的HRIR(Head Related Inpulse Response),头相关脉冲响应。由于声音会从耳廓、或肩膀反射到人耳内部,当模拟声音定位时,可以利用HD ITD的运算方式,来计算不同方向或位置声音所产生的大小和音调等,进而制造出立体空间声音定位的效果。

CIPIC HRTF 数据库是一个高空间分辨率头相关传递函数的公共领域数据库,包括45名受试者在25个不同方位角和50个不同仰角(1250个方向)的头相关脉冲响应测量值,角度增量约5/spl deg/。此外,该数据库还包含每个受试者的人体测量数据,具有大小耳廓的KEMAR人体模型。

该数据库有四个目录:

1. Standard_hrir_database目录包含所有主题的HRIR数据。子目录show_data包含一个MATLAB的同名程序,在这个子目录下运行show_data可以显示和分析每个受试者的HRIRs和HRTFs,另一个名为hor_show_data的MATLAB程序可以方便地检查水平面的数据。

2. special_kemar_hrir目录包括两个非标准的KEMAR数据集,用于在水平面和正面测量的HRIRs。

3.anthropometry目录包括人体测量数据和关于数据格式的简要说明文件。

4. doc目录包括:

* UCD HRIR文件包括对几何学和坐标系的描述。

* show_data程序的用户手册。

* 数据库中人体测量参数的描述。

三、实验步骤

代码见网盘:链接:https://pan.baidu.com/s/1jdj6wl2MxgpUKJtPEO_CuQ?pwd=e4ry 
提取码:e4ry

1、surroundDemo.m 水平环绕双耳信号

  1. 指定subject,azimuth和elevation的路径;
  2. 由 azimuth,elevation转化得到azimuth_index 和elevation_index;
  3. 调用readCipicHrtf得到环绕路径中某个空间方位的hrir 左右耳数据;
  4. 读入单声道音频文件,分帧;
  5. 利用每帧wav_data 与对应的hrir数据作卷积,得到该帧wav数据产生的双耳信号;
  6.  一次连接每帧wav数据产生的双耳信号,得到最终输出wav文件。

2、pointDemo.m定点双耳信号

  1. 指定subject,azimuth,elevation;
  2. 由 azimuth,elevation转化得到azimuth_index 和elevation_index ;
  3. 调用readCipicHrtf(subject,azimuth_index,elevation_index,’l’) 和readCipicHrtf(subject,azimuth_index,elevation_index,’r’)得到左右耳hrir数据;
  4. 读入单声道音频文件得到 wav_data;
  5. 利用wav_data 与hrir数据作卷积,binarual_l=filter(hrtf_l,1,wav_data) ,binarual_r=filter(hrtf_r,1,wav_data); 得到双耳信号。

3、phantomDemo.m双声源生成双耳信号

  1. 根据虚拟声源角度,利用正切定律,得到左右扬声器信号的增益因子gl,gr;
  2. 读入单声道音频文件,获得wav_data,分帧;
  3. 由dataL=gl*wav_data ,dataR=gr*wav_data得到左右扬声器的输出信号dataL,dataR;
  4. 根据左右扬声器位置,获取该位置对应的左右耳hrir数据(hrir_data_ll, hrir_data_lr, hrir_data_rl, hrir_data_rr)
  5.  dataL 分别与hrir_data_ll,hrir_data_lr作卷积,得到左扬声器产生的左、右耳信号outLL,outLR;dataR 分别与hrir_data_rl,hrir_data_rr作卷积,得到右扬声器产生的左、右耳信号outRL,outRR;
  6. 对左右扬声器产生的左(右)耳信号 outLL,outRL;(outLR, outRR)经fft变换到频域进行叠加,再经ifft反变换到时域,得到合成的双耳信号并输出。

4、add.m将以上双耳信号叠加

四、实验结果

最终双耳空间音效见文件‘.\心理声学作业6-双耳空间音效-陈静-202120081001050\Binaural_spatial_sound\output\add2.wav’

评语:给出了环绕、定位等空间声像的实现。但是,按照作业要求,得设计一个声景,而不是把各种空间效果的代码拿来跑一遍给出结果。另外,phantomDemo.m里面已经用正切定律实现了水平方位角,无需要用左右耳的HRIR再滤波。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cucjing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值