Как сделать звук настолько высоким, чтобы его можно было услышать, или сделать его незаметным с помощью Sox/FFMPEG

Я хочу, чтобы звук был слишком высоким, чтобы его могло уловить человеческое ухо. Насколько я понимаю, люди могут слышать звуки в диапазоне от 20 Гц до 44000 Гц.

С помощью sox я делаю звук частотой 50000 Гц. Проблема в том, что я все еще слышу его. Команда, которую я использую, такова:

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

Либо у меня супер хороший слух, либо я что-то не так делаю. Как я могу сделать этот звук незаметным с помощью SOX FFMPEG?


person Devin Dixon    schedule 28.10.2016    source источник
comment
У них тоже нет, мне просто нужно иметь возможность создавать аудиофайлы, которые невозможно обнаружить. Вы знаете способ?   -  person Devin Dixon    schedule 28.10.2016
comment
Грег, да, но, пожалуйста, поймите, дело не в том, что динамик может играть, это не важно для нашего варианта использования, просто звук может быть создан.   -  person Devin Dixon    schedule 28.10.2016


Ответы (1)


Обычно считается, что человеческий слух находится в диапазоне от 20 Гц до 20 кГц, хотя большинство людей не слышат намного выше 16 кГц. Цифровые сигналы могут представлять частоты только до половины их частоты дискретизации, известной как частота Найквиста, поэтому для точного воспроизведения звука для человеческого уха необходима частота дискретизации не менее 40 кГц. На практике почти всегда используется частота дискретизации 44,1 кГц или 48 кГц, оставляя достаточно места для неслышного звука где-то в диапазоне 20-22 кГц.

Например, эта команда генерирует файл WAV с частотой дискретизации 48 кГц, содержащий синусоиду на частоте 22 кГц, которую я совершенно не слышу:

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

Я думаю, что часть вашей проблемы заключалась в том, что вы использовали неправильный синтаксис для указания высоты тона на sox. Этот вопрос содержит полезную информацию об использовании SoX для генерации простых тонов.

person Linuxios    schedule 28.10.2016