VR音频高保真系统的HRTF平行滤波建模
2020-06-18刘华平赵曼琳
陶 浩,方 勇,刘华平,赵曼琳
(上海大学 上海先进通信与数据科学研究院 特种光纤与光接入网重点实验室特种光纤与先进通信国际合作联合实验室,上海 200444)
1 引言
VR音频是虚拟现实技术(VR)中的重要组成部分,主要基于头相关函数(HRTF)的双声道音频信息来进行实现,但不同于传统的数字音频仅包含了基本的音频信息,VR音频还需要满足听者视角一致和高保真(HiFi)音质这两方面的要求;为此,VR音频需要在实现高精度HRTF插值的同时重放高保真音质,这就涉及两个研究重点——HRTF的插值方法和扬声器高保真技术。
在HRTF的众多插值方法中,建模插值方法有着良好的应用前景,比较有代表性的是基于级联[1]与并联[2]参数滤波器建模的两种HRTF建模插值技术;扬声器高保真技术方面,数字均衡技术是一种经济实用的处理方式,近些年比较有代表性的包括平行图示均衡器[3-4](PGE)和级联图示均衡器[5](ACE)。
可以说这两方面各自都已经有一定的研究,并能满足不同程度的技术要求。但因为VR音频处理对系统的较高要求,实际场景下难以同时兼顾音频高保真的精确性与高效性。为了在VR音频场景下高效地实现扬声器的高保真重放,本文提出一种VR音频高保真系统设计方法,并基于HRTF建模插值技术中的建模算法设计实现了对该系统的平行滤波建模,为VR音频场景中的高保真技术应用提出了一种新的解决思路。
2 VR音频高保真系统设计
如图1所示是文献[1]中提出的HRTF参数建模结构,该结构主要可以分为两部分:第一部分是纯延时ITD,代表人耳的双耳时间差;第二部分是二阶滤波器链,这一部分由一个低频雪夫滤波器和多个IIR峰谷滤波器(peak filter)构成,用来完成HRTF数据在频域方面的建模。总结来说,HRTF插值建模中的建模算法设计是将HRTF的数据分为一个最小相位系统和ITD延时来依次建模,扬声器系统也可以做出类似的分解。
实验证明,扬声器系统H(z)实际是一个混合相位系统,可以通过数学建模的方法分解为最小相位系统和全通系统,并由此分别对扬声器系统进行幅度均衡和相位均衡。由此可以针对扬声器分解系统与HRTF的建模结构进行重构整合。
针对全通系统,可以将扬声器残留相位均衡器与HRTF延时进行整合,如式(1)所示:
ejω(τ1+τ2-σ)
(1)
其中τ1是为了确保相位均衡器因果特性而引入的纯延时,τ2为HRTF数据中的ITD延时。由于ITD延时存在的特性,一般情况下不能忽略τ1的数据,仅使用τ2来确保全通系统的因果特性。
针对最小相位系统,可以在建模过程中将扬声器的最小相位系统Hmin(z)作为起始系统响应,HRTF的最小相位模型Hhrtf(z)作为目标的系统响应来进行滤波器设计,如式(2)所示:
Hhrtf(z)=Hmin(z)×Hs(z)
(2)
因此,实际建模的目标即为Hs(z)=Hhrtf(z)/Hmin(z),实现了最小相位系统的整合。
综上,本文提出的VR音频高保真系统模型可以如图2(a)所示,该系统针对了扬声器系统为混合相位系统的实际情况进行了分解重构。而实际上,大部分的应用场景更倾向于将扬声器系统作为最小相位系统来看待,本文的具体建模实验主要也是针对扬声器的最小相位系统。
3 基于迭代误差分析的平行滤波建模
根据图2表示的VR音频高保真系统,该系统最小相位建模的传递函数可表示如式(3)所示:
(3)
其中K代表滤波器阶数,d0为直接增益。整个建模的过程就是计算出Hs(z),将原先的扬声器幅度曲线拟合为HRTF的幅度响应曲线。此外,模型的平行结构确保了系统可以在GPU等多核心设备上运行,进而降低整个系统的运行负荷,因为建模使用的滤波器个数远小于主流GPU设备的核心数。
3.1 基于定极点方法的平行滤波器设计
本实验的建模设计采用了基于定极点的滤波设计[3]方法,该方法通过提前设定极点,将设定的极点频率作为滤波器的中心频率,由此进行相关参数的计算。具体滤波器的设计是将式3中传递函数分为分子和分母两个部分,依次进行求解。
首先是分母部分,根据提前设定的极点位置信息,可以通过式(4)计算得到第k个极点的圆周频率θk与极点半径pk:
(4)
其中fk为预设极点频率,fs为采样频率,Δθk相邻极点圆周频率的差值,由此可以计算得到分母参数,如式(5)所示:
ak,1=-2|pk|cosθk,ak,2=|pk|2
(5)
之后就是计算分子的相关参数,这里首先将式(2)表示成式(6)的形式:
Hhrtf=Hmin×Mp
(6)
其中,Hmin表示扬声器的频率响应采样;Hhrtf作为目标响应,是HRTF的频域响应采样;p=[b1,0,b1,1,…,bK,0,bK,1,d0]T,包含了Hs(z)中的未知系数;M矩阵首先包含了二阶滤波器分母部分的频域响应形式以及直接增益d0。
由式(6),设计滤波器即可得到最优Popt,这里可以通过LS最小二乘法(least squares method)来进行求解,其结果如式(7)所示:
Popt=Mo+Hhrtf
Mo+=(MoHMo)-1MoH
(7)
其中Mo=Hmin×M,Mo+为Mo的广义逆矩阵,MoH为Mo的共轭转置。考虑到传统LS算法计算的线性误差可能在dB刻度被放大,本文采用了式(8)的加权函数W:
(8)
通过式(9)对LS算法的代价函数重新进行计算,最终得到实际应得到最优的结果Popt如式(9)所示:
(9)
由上述计算过程可知,只要设定好相应的极点就可以得到理论上最优的实验结果Popt。因此,实际建模的结果就只与极点设置的位置与数目相关,下面介绍本文提出的最优极点规划方案。
3.2 基于迭代误差分析的最优极点规划
为了针对不同角度的HRTF频率响应进行灵活建模,本文针对滤波器定极点的特性提出了基于迭代误差分析的极点规划方法,具体的实验步骤如下。
步骤Ⅰ:针对扬声器与HRTF的频响曲线进行离散交点检测,计算所有采样点两者幅度响应的差值,将每一个采样点差值进行前后比较检测是否异号,异号则粗判断当前点为交点;
步骤Ⅱ:将每两个相邻交点[fl,fr]区间的数据作为一个待拟合峰谷,按照公式(10)计算每个待拟合峰谷的误差,由此确定建模优先权。
(10)
步骤Ⅲ:为了保证建模贯穿整个区域,在建模区域起始和终点区域选择两点;其次,选择k个优先级的区域计算区域在对数刻度中点p1,p2,…,pk,将这两点和k个区域中点作为第一次建模的极点,建模结果为新的起始幅度响应Hmin′。
步骤Ⅳ:重复步骤Ⅰ和步骤Ⅱ,得到Hmin′与Hhrtf的迭代最优先区域e′,进行新一轮的极点添加,最优极点的选择方法主要有两种:
(1)在区域e的频率范围内进行采样比较选择最优极点,采样的方法是在[fl′,fr′]范围的对数刻度上均匀选择一定数目的点,选出最优极点作为新添极点;
(2)使用GA遗传算法或者Nelder-Mead单纯形法进行该值的局部寻优,最终确定使全局误差达到最低的极点位置。
以上两种方法都能在优先区域e′内获得较为理想的实验结果,相比较,方法1的建模速度较快,方法2的结果更为精确。
步骤Ⅴ:重复步骤Ⅳ,直到添加极点的数目达到指定数,或已经实现理想的建模结果。
根据文献[6]中对心理声学模型的描述,当扬声器频响曲线的峰、谷波动仅在1~2 dB以内时,人耳是无法感知到其中的细微差别。因此,实际实验中可以将HRTF幅度响应±2 dB的响应范围作为HRTF建模目标来进行计算,下面将对具体实验结果进行比较分析。
4 实验结果与分析
本实验的结果中使用“误差和”作为建模结果优劣的判断依据,其计算方式是根据式10从整个建模频域段均匀采样1000点计算得到的误差和。
首先根据步骤Ⅰ与步骤Ⅱ进行离散交点检测与建模优先分析,本实验采用CIPIC数据库中的标准头相关数据作为HRTF目标响应进行建模,初始幅度响应为文献[4]中提供的扬声器室内响应。根据步骤Ⅰ的过程计算所有的误差交点,选出8个误差峰谷e1~e8作为起始的优先建模,其结果如图3(a) 所示,此时整个建模区域的误差和为3 354.04 dB;
根据步骤Ⅲ,计算e1~e8的区域对数刻度的频率中点,并选择20 Hz与15 000 Hz作为贯穿建模区域的两点,将这10个极点根据3.1的方法进行第一次建模,得到的结果如图3(b) 所示,此时的建模结果已经有了明显的改善,误差和为647.00 dB;
根据步骤Ⅳ进行极点优化添加,实验中选择10个极点进行添加优化,即进行10次迭代,本实验分别采用了采样优化和GA极点优化的方法,其结果如图4 所示,此时,建模的幅度响应曲线基本上与HRTF目标响应曲线拟合,两种方法的误差和分别为8.72 dB以及10.41 dB。
除了本文提出的方法,实验中还比较了文献[5]与文献[6]提出的极点规划方法,其结果如图5所示,两种方法都设定了20个极点,图5(a)中采用20~20 000 Hz对数域上均匀分布的20个极点进行建模;图5(b) 采用弯折系数为0.94,HRTF响应作为目标响应,通过弯折滤波器的设计方法求得20个极点来进行建模;结果显示两种方法的误差和分别为231.79 dB以及318.79 dB,远高于图4中的误差结果。
除了精确度的优势,本文提出的方法还具有很高的灵活性,极点数目的变化只需要减少或增加迭代的优化次数即可实现,也可以通过缩小误差范围获得更加精确的结果。
5 结语
本文研究了VR音频高保真系统的HRTF平行滤波建模,首先提出了一种VR音频高保真系统的设计方法,并针对重构系统的最小相位组合建模,提出了基于迭代误差分析的平行建模方法,该方法以定极点平行滤波器设计的方法为基础,通过迭代误差分析实现极点规划,实验比较说明,本文提出的方法在满足低阶、高精度的同时具有极高的灵活性。
致谢:本文得到上海市科委重点支撑项目(16010500100)资助。