Как я могу определить, как громкий файл WAV будет звучать?

Программирование на интерфейсах дает несколько преимуществ:

  1. Требуется для шаблонов типов GoF, таких как шаблон посетителей

  2. Позволяет для альтернативных реализаций. Например, множественные реализации объекта доступа к данным могут существовать для одного интерфейса, который абстрагирует используемое ядро ​​базы данных (AccountDaoMySQL и AccountDaoOracle могут оба реализовывать AccountDao)

  3. Класс может реализовывать несколько интерфейсов. Java не позволяет множественное наследование конкретных классов.

  4. Абстрагирует подробности реализации. Интерфейсы могут включать только общедоступные методы API, скрывая детали реализации. Преимущества включают четко документированный публичный API и хорошо документированные контракты.

  5. В значительной степени используется современными структурами внедрения зависимостей, такими как http://www.springframework.org/ .

  6. В Java интерфейсы могут использоваться для создания динамических прокси - http://java.sun.com/j2se/1.5.0/docs/api/java/lang/reflect/Proxy.html . Это может быть очень эффективно использовано в таких средах, как Spring, для выполнения аспектно-ориентированного программирования. Аспекты могут добавить очень полезную функциональность в классы без непосредственного добавления кода Java в эти классы. Примеры этой функциональности включают ведение журнала, аудит, мониторинг производительности, разграничение транзакций и т. Д. http://static.springframework.org/spring/docs/2.5.x/reference/aop.html .

  7. Макетные реализации, модульное тестирование. Когда зависимые классы являются реализациями интерфейсов, могут быть написаны фиктивные классы, которые также реализуют эти интерфейсы. Ложные классы могут быть использованы для облегчения модульного тестирования.

12
задан MusiGenesis 12 June 2009 в 02:24
поделиться

5 ответов

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

Аудио-фанаты из Hydrogen Audio знают толк в этом ... ознакомьтесь с их бесплатным Replay Gain программным обеспечением. Возможно, вам вообще не придется программировать.

РЕДАКТИРОВАТЬ: Включены комментарии по зависимости мощности от амплитуды.

11
ответ дан 2 December 2019 в 20:19
поделиться

Ну, не будучи экспертом в аудио и добавляя к предыдущему комментарию, вам следует выяснить, что вы определяете как «кратчайшее время для максимальной мощности», а затем просто преобразовать волну в необработанную с плавающей запятой и использовать RMS в течение определенного периода времени и непрерывно брать куски этого промежутка времени, найти MAX, и вы получите максимальную пиковую мощность.

3
ответ дан 2 December 2019 в 20:19
поделиться

Я мог бы быть далеко здесь, но, если у вас есть wavepad, вы можете загрузить несколько файлов и немного поработать с томами, чтобы все они были одинаковыми. Кроме того, если у вас есть определенные разделы файла, которые громче, вы можете выбрать этот раздел и уменьшить громкость для этого раздела.

РЕДАКТИРОВАТЬ: И извините, это не совсем «метод» для измерения громкости, но если вам просто нужно сделать их одинаковыми, все должно работать нормально.

-1
ответ дан 2 December 2019 в 20:19
поделиться

Чтобы добавить к ответу PeterAllenWebb:

Перед вычислением среднеквадратичного значения вы должны сначала «центрировать» образец (подумайте о 5-минутном .wav, где каждый образец имеет максимальную + амплитуду ). Лучший способ сделать это - использовать фильтр верхних частот на дозвуковой частоте.

Это все равно не учитывает частоты, к которым люди чувствительны. Для этого вы можете использовать A-взвешивание. Есть страница, где вы можете рассчитать это онлайн: http://www.diracdelta.co.uk/science/source/a/w/aweighting/source.html

Код, похоже, находится здесь: http://www.diracdelta.co.uk/science/source/a/w/aweighting/multicalc.js

2
ответ дан 2 December 2019 в 20:19
поделиться

Чтобы повторить то, что говорили некоторые другие люди, используйте значение RMS для оценки «громкости» отрывка звука.

Но если вы имеете дело с импульсивными звуками, такими как щелканье или удары по барабанам, вам следует использовать скользящее среднеквадратичное значение и выбирать только пиковое среднеквадратичное значение. Измерьте 100 мс звука, сдвиньте окно, снова выполните измерение и т. Д., А затем выполните нормализацию в соответствии с наибольшим найденным значением.

Обязательно удалите любое значение DC перед выполнением RMS, и взвешивание по шкале А сделает его более похожим на то, как мы слышим. Вот код для A-взвешивания в MATLAB / Octave и Python .

1
ответ дан 2 December 2019 в 20:19
поделиться
Другие вопросы по тегам:

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