2016-01-27 1 views
0

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

Я намерен выпустить программу на GitHub после ее работы.

В настоящее время программа записывает или открывает wav-файл. Вы говорите программе имя исполнителя и альбома, и он выглядит на MusicBrainz, чтобы получить названия и длины треков.

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

Наконец, он разбивает запись на отдельный mp3 или wma-файл для каждой дорожки в папке, названной для альбома, внутри папки, названной для исполнителя, назвав каждый трек и установив свойства, такие как Album Artist, Artist, Название, номер дорожки, издатель и т. Д.

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

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

Когда я слушаю трек, я могу легко сказать, когда музыка начинается и заканчивается. Есть ли какие-либо известные алгоритмы, которые я могу изучить, которые могут распознать разницу?

Дополнительный вопрос - есть ли способ выработать удары в минуту звукового файла?

+0

Если у вас есть интерес, я загрузил законченную программу в GitHub https://github.com/nikkilocke/AlbumRecorder –

ответ

0

Одна из возможностей - использовать частотный анализ для определения шума. В общем, вы должны найти, что музыка будет иметь более четкие пики частоты, а не шипение и попку «плоского» винила. Я ожидал бы, что деградировавший винил входов и межтрековых разломов будет иметь гораздо более равномерное распределение частот - например, белый шум, хотя вы можете найти смещение к более высокой частоте.

Вы можете начать с профилирования шума в Audacity или аналогичном, просто чтобы увидеть, как выглядит профиль частоты. Если вы можете видеть явное различие в спектре между вашим шумом и вашей музыкой, то вы можете использовать Fast Fourier Transform в качестве основы для вашего обнаружения.

Я только немного поработал с БПФ, но this answer может помочь вам указать направление в правильном направлении.

+0

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