使用 Sox/FFMPEG 使声音高到可以听到或无法检测

Making Sound To High To Hear Or Undetecable with Sox/FFMPEG

我想发出高到人耳无法察觉的声音。据我了解,人类可以听到 20hz 到 44000hz 之间的声音。

使用 sox,我发出的声音是 50000hz。问题是我还能听到。我使用的命令是这样的:

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

要么是我听力超好,要么是我做错了什么。如何使用 FFMPEG 的 SOX 检测不到此声音?

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

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

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

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