我正在通过我知道具有非平坦频率响应的扬声器播放音频,在低 ( ) 范围内响应特别差。我解决这个问题的计划是编写一个脚本,在将每个音频文件传递给扬声器之前对其进行处理,以便在扬声器响应不佳的范围内提高能量。
我知道可以创建一个过滤器来执行此操作(例如,使用firwin2
Scipy 中的函数),但我不禁觉得这种方法过于幼稚,而且我最终会不小心将不需要的伪影引入信号当我真正通过扬声器播放它时。
- 那么,这种方法注定要失败吗?
- 如果没有,那为什么不是所有扬声器制造商都已经这样做了?
我正在通过我知道具有非平坦频率响应的扬声器播放音频,在低 ( ) 范围内响应特别差。我解决这个问题的计划是编写一个脚本,在将每个音频文件传递给扬声器之前对其进行处理,以便在扬声器响应不佳的范围内提高能量。
我知道可以创建一个过滤器来执行此操作(例如,使用firwin2
Scipy 中的函数),但我不禁觉得这种方法过于幼稚,而且我最终会不小心将不需要的伪影引入信号当我真正通过扬声器播放它时。
虽然我不精通 Scipy,或者您引用的 firwin2 函数的工作原理,但这是您提出的一个非常复杂的问题,还有很多比您可能意识到的要考虑的问题。
扬声器如何辐射声音的一个非常重要的组成部分经常被忽视(尤其是在扬声器的营销规范中)。方向性。您说您的扬声器在 1 kHz 以下的响应特别差。我认为这意味着轴上的“非线性”响应。离轴呢?这种离轴能量与您的房间相互作用,即反射,并且这些离轴方向上的频率响应很可能与您完美的轴上响应不同。如果您仅校正同轴扬声器响应,那么该反向滤波对其他离轴位置做了什么?你会一直用一只耳朵在扬声器同轴方向的交叉点听吗?
一些扬声器制造商确实使用尝试应用“校正”(Genelec、Bose 等)的技术来克服房间异常和扬声器放置中的位置错误。虽然采用的方法非常聪明,但我们必须记住,这些只是最好的近似值。使用某种形式的线性相位 FIR 滤波器来校正中高频扬声器响应中的最小相位异常也很常见,并且可以为低频应用替代方法。通过阅读文本可以更好地理解其中一些技术,例如:沉浸式音频信号处理
其他需要考虑的事项:在创建校正过滤器时,您需要多少时间数据?你应该在哪里进行测量?你会一直在那个位置听吗?我在这里强调的是声场的时间和空间变化也需要考虑。
因此,您尝试做的事情并不完全是“注定要失败”,它只是非常复杂,归根结底,理想的结果将是适合您主观口味的结果。我希望我提出的一些问题对您有所帮助,我提出这些问题只是为了提醒您,这并不像在房间的某个位置反转扬声器的单个全向测量那么简单……否则,是的,每个扬声器制造商已经这样做了。祝你工作顺利!
我将随机选择一些与此主题空间中的研究相关的技术文献的参考资料,您可能会发现这些参考资料对您有所帮助:
它并不完全注定要失败,但它并不能完全解决问题。适当的逆滤波器可能有效地纠正说话者响应的某些方面。这种方法的有效性将受到扬声器特性的限制。
如果扬声器是一个完美的线性系统,那么您所描述的逆滤波器将有助于平坦的幅度响应。现实情况是,扬声器通常是复杂的非线性系统,线性校正不太可能足够。