如何使用sox

问题描述

已向我展示了如何使用Audacity过滤嘈杂的音频轨道。 Audacity forum link here

Audacity接受python脚本命令,但不适用于关键的降噪功能。 我一直在寻找可以执行此过程的命令行工具,因此SoX似乎很合适。

Audacity的第一步是应用以下内容效果>过滤器曲线>管理>出厂预设>电话过滤器

阅读SoX手册-SoX不提供过滤曲线。 但是SoX确实提供了这一点。

均衡器频率[k]宽度[q | o | h | k]增益 应用两极峰均化(EQ)滤波器。使用此滤波器,可以在 选定的频率可以增加或减少,同时(与带通和带阻滤波器不同) 在所有其他频率上保持不变。 频率给出滤波器的中心频率,单位为Hz,宽度,带宽,并获得所需的 增益或衰减(dB)。当使用正增益时要当心削波。 为了产生复杂的均衡曲线,可以多次给出这种效果,每次都有一个 不同的中心频率。

这是使用正确的SoX函数吗? 如何使用此功能获得EQ曲线?

解决方法

我想您现在肯定已经在其他地方找到了答案,但这是我的方法:

for file in *.flac; do sox "$file" "rha_$file" -S norm -7.3 equalizer 28 0.91q +6.7 equalizer 4585 1.17q -9.4 equalizer 5356 3.33q +8.4 equalizer 6627 1.58q +7.5 equalizer 11297 1.62q +6.2; done

规范是将文件规范化为-7.3dB。

sox也接受效果文件,因此您也可以编写

for file in *.flac; do sox "$file" "rha_$file" -S blabla.txt; done

包含blabla.txt

norm -7.3 equalizer 28 0.91q +6.7 equalizer 4585 1.17q -9.4 equalizer 5356 3.33q +8.4 equalizer 6627 1.58q +7.5 equalizer 11297 1.62q +6.2

或要以这种格式使用的效果。而且,据我所知,效果文件应以换行符结尾;否则它什么都不做。