Как я ослабляю файл WAV данным значением децибела?

Сценарии оболочки выполняются в подоболочке, и каждая подоболочка имеет свое собственное понятие того, каков текущий каталог. Эти cd успешно выполняется, но как только подоболочка выходит, Вы вернулись в интерактивной оболочке, и ничто никогда не изменялось там.

Один способ обойти это состоит в том, чтобы использовать псевдоним вместо этого:

alias proj="cd /home/tree/projects/java"
9
задан MusiGenesis 19 July 2009 в 02:53
поделиться

3 ответа

Я думаю, вы хотите преобразовать децибел в усиление.

Уравнения для звука:

децибел для усиления:

  gain = 10 ^ (attenuation in db / 20)

или в C:

  gain = powf(10, attenuation / 20.0f);

Уравнения для convert from gain to db:

  attenuation_in_db = 20 * log10 (gain)
12
ответ дан 4 December 2019 в 13:49
поделиться

Если вы просто хотите настроить звук, у меня были хорошие результаты с пакетом normalize с nongnu.org . Если вы хотите изучить, как это делается, исходный код находится в свободном доступе. Я также использовал wavnorm , домашняя страница которого, похоже, в данный момент недоступна.

1
ответ дан 4 December 2019 в 13:49
поделиться

Следует учесть одно: файлы .WAV имеют МНОГО разных форматов. Приведенный выше код работает только для WAVE_FORMAT_FLOAT. Если вы имеете дело с файлами PCM, то ваши образцы будут 8-, 16-, 24- или 32-битными целыми числами (8-битный PCM использует беззнаковые целые числа от 0..255, 24-битный PCM может быть упакован или распакован (упакован == 3-байтовые значения, упакованные рядом друг с другом, распакованные == 3-байтовые значения в 4-байтовом пакете).

И еще есть проблема альтернативных кодировок - например, в Win7 все звуки Windows на самом деле являются файлами MP3 в WAV контейнер.

К сожалению, это не так просто, как кажется: (.

1
ответ дан 4 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: