Есть ли библиотека, которая делает то же, что и Levelator для .Net? - PullRequest
1 голос
/ 06 января 2010

Levelator - это программа, в которую вы загружаете аудиофайл, и она генерирует другую с более постоянной громкостью, гарантирующую, что все проблемы с записью (например, человек, который звучит слишком громко или едва слышен), исправлены .

Знаете ли вы какие-либо библиотеки, которые я мог бы использовать .Net в Windows для выполнения той же задачи? Или программа командной строки тоже подойдет.

Ответы [ 4 ]

3 голосов
/ 19 июня 2010

Фактически, Levelator не является ни компрессором, ни нормализатором. Да, он нормализуется, но он делает намного больше и имеет гораздо больше умов, чем то, что вы можете делать с sox и т. Д. Думайте об этом как о руке на фейдере, который заранее знает, что произойдет, и даже будет знать, когда уйти хорошо. достаточно одного. Проверьте обсуждение алгоритма здесь: http://www.conversationsnetwork.org/levelatorAlgorithm

... doug (создатель Levelator)

2 голосов
/ 18 января 2010

Программа командной строки, которая делает это: sox .

Общая идея алгоритма состоит в том, чтобы найти выборку с максимальным абсолютным значением (аудио должно быть отцентрировано независимо от измерения выборочных данных).

Вы делите максимально возможное значение на это число (которое гарантированно будет равно или меньше), а затем умножаете его на желаемый пиковый уровень (т. Е. Хотите ли вы, чтобы оно достигло 0,95 от максимального? Полного 1,0? ). Если результат не один, он становится вашим значением шкалы. Затем вы перебираете свой файл и умножаете каждый образец на это число.

Например, для аудио с качеством CD максимально возможное абсолютное значение для сэмпла составляет 32767 (если придумать, чтобы упростить пример, реальный диапазон составляет от -32768 до 32767, но трактовка 32767 как вашего максимума значительно упрощает ситуацию), так что если вы отсканировали и самое высокое абсолютное значение, которое вы нашли, было 18000, то ваш коэффициент усиления будет 1,8203888 ..., и если вы хотите, чтобы ваш максимальный объем был 0,9887997070223 * максимально доступный максимальный, то вы получите новый масштабный коэффициент 1,8 , Таким образом, вы перебираете массив, содержащий аудиофайл, и заменяете предыдущее значение для каждого семпла значением * 1.8.

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

0 голосов
/ 06 января 2010

Существует два основных способа решения этой проблемы:

  1. Нормализация это просто включает в себя поиск самой громкой части звука, затем усиление всего файла так, чтобы самая громкая часть достигла максимальной громкости. Этот метод полезен, только если самая громкая часть составляет 50% объема или меньше. Если во входном файле где-то есть один пик, который достигает максимальной громкости, то нормализация ничего не сделает для вас.

  2. Сжатие / ограничение этот подход немного отличается и широко используется при записи музыки. Основная идея заключается в том, что любой звук на определенной громкости (называемый «порогом») становится тише (или в случае ограничителя звук не пропускается на определенной громкости). Это приводит к выравниванию громкости всей записи (тихие биты остаются прежними, а громкие - тише). Затем вы можете усилить весь сигнал, не искажая его (это называется усилением макияжа). См. Эту статью о сжатии динамического диапазона для получения дополнительной информации.

Что касается реализации этого в .NET, NAudio позволит вам просматривать образцы во входном WAV-файле, что позволит вам создать свой собственный эффект нормализации. В Skype Voice Recorder я также продемонстрировал, как можно реализовать компрессор в .NET.

Последнее, что вам следует знать, это то, что эти алгоритмы работают, только если у вас есть доступ к выборочным значениям. Поэтому, если, например, ваш файл имеет формат MP3, вам необходимо сначала преобразовать в PCM, затем применить нормализацию / сжатие и, наконец, преобразовать обратно в MP3.

0 голосов
/ 06 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...