使用Sox / FFMPEG使声音听起来很高或听不到声音

时间:2016-10-28 13:14:36

标签: audio ffmpeg sox

我想制造一个太高而无法通过人耳检测到的声音。根据我的理解,人类可以听到20hz到44000hz之间的声音。

对于sox,我发出的声音是50000hz。问题是我仍然可以听到它。我正在使用的命令是:

sox -n -r 50000 output.wav rate -L -s 50050 synth 3 sine 

我要么听得太好,要么我做错了。如何使用FFMPEG的SOX无法检测到这种声音?

1 个答案:

答案 0 :(得分:4)

人类听觉通常被认为在20Hz到20kHz之间,尽管大多数人听不到16kHz以上的声音。数字信号只能表示高达其采样率一半的频率,称为奈奎斯特频率,因此,为了准确地再现人耳的音频,需要至少40kHz的采样率。实际上,几乎总是使用44.1kHz或48kHz的采样率,在20-22kHz范围内的某处留有足够的空间来发出无声的声音。

例如,此命令生成一个采样率为48kHz的WAV文件,其中包含22kHz的正弦波,对我来说完全听不见:

sox -n -r 48000 output.wav synth 3 sine 22000

我认为您的部分问题是您使用了错误的语法来指定sox的音高。 This question有一些关于使用SoX生成简单音调的好信息。