问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

单声道转换为虚拟立体声音效的算法详解

创作时间:
作者:
@小白创作中心

单声道转换为虚拟立体声音效的算法详解

引用
CSDN
1.
https://blog.csdn.net/myangel13141/article/details/114983793

虚拟立体声技术是一种通过算法将单声道音频转换为具有空间感和立体感的音频的技术。这种技术在音乐制作、电影后期制作以及日常音频播放设备中都有广泛的应用。本文将详细介绍一种基于滤波器的虚拟立体声实现方法,包括左右声道滤波器的设计原理、参数设置以及中心聚焦滤波器的作用。

一般单声道的音频播放都是将音频拷贝至左右两个声道然后再进行播放,这样播放出来的音频并不是立体声,没有立体声的“空间”和“立体”感。如果要实现立体声,则需要在左右两个声道实现强大的去相关性,从而在听觉上引入空间宽度的感觉。

左右声道滤波器

虚拟立体声的基本思想就是使用不同的两个滤波器$H_L$和$H_R$分别对左右两个声道进行滤波,这两个滤波器应该具有截然不同的特性,以在左右两个声道间实现去相关性。

首先在频域中设计左声道的滤波器,传递函数如下:
$$
H_L(k)= \left(\frac {1}{2}+\frac {1}{\pi}\arctan(\omega^2 \cdot R(k))\right)e^{-j\frac {2\pi kD}{N}}
$$
其中$R(k)$为离散的高斯分布噪声序列,标准差为$\sigma=25$,均值为0,$\omega=1$为立体声宽度。

右声道滤波器根据左声道滤波器得出:
$$
H_R(k)=1-H_L(k)
$$

低音和高音(例如吉他和鼓)在滤波后可能会让人感觉“厌烦”,因此可以设置一个要处理的通带:
$$
|H_{L/R}(k)|=0.5, \quad k<k_{lo} \vee k>k_{hi}
$$
这里$k_{lo/hi}$是定义要实际处理的通带的截止频率,$k_{lo}=300$。

中心聚焦滤波器

考虑到立体声一般在立体声混音中心的信号源具有最大的频谱能量,可以通过一个中心聚焦滤波器来将主导源保持在立体声全景的中心。中心聚焦滤波器定义如下:
$$
H_{CF}(b,k)=(1-\alpha)H_{CF}(b-1,k)+\alpha X_n^2(b,k)
$$
其中
$$
X_n^2(b,k)=\frac {|X(b,k)|}{\max\limits_{k}|X(b,k)|}
$$

然后按如下方式对左右声道滤波器进行加权:
$$
\hat H_{L/R}(b,k)=H_{L/R}(b,k)H_{CF}(b,k)-\frac {1}{2}(1-H_{CF}(b,k))
$$

结果对比

  • 单声道音频:mono.mp3
  • 虚拟立体声音频:stereo.mp3
  • 中心聚焦虚拟立体声音频:stereo_focused.mp3

相位对比

单声道相位:

虚拟立体声相位:

中心聚焦虚拟立体声相位:

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号