Как посмотреть спектрограмму аудиофайла: Как проверить качество аудио с помощью Spek?

redacted Interview Prep — Спектральный анализ

Спектральный анализ

Спектральный анализ это наглядный способ отображения данных, которые содержатся в музыкальном файле. Каждой музыкальной ноте соответствует определенная частота: низким нотам соответствуют низкие частоты, а высоким нотам – высокие частоты. Все частоты отображаются на спектральной диаграмме (спектрограмме), которая представляет собой графическое отображение всех частот в соотношении с длительностью музыкального файла. Частоты измеряются в герцах (Гц) и килогерцах (1000 Гц). Диапазон звуковой чувствительности человека составляет от 20 герц до 20 килогерц (20000 герц).

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

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

CD / Lossless форматы

Песни на CD и в форматах без потерь качества имеют частоты до 22 кГц. Так как транскодирование из lossless в lossless сохраняет все данные музыкального файла, спектрограммы песни без потерь качества будут выглядеть одинаково в FLAC, WAV (PCM), ALAC и других lossless форматах.

Однако, композиции различных музыкальных жанров будут иметь разные спектрограммы. Выше был приведен пример спектрограммы поп музыки, на которой были представлены большинство частот. Давайте посмотрим на спектрограммы трека классической фортепианной музыки.

Выглядит совершенно по-другому, не так ли? Но это тоже спектрограмма lossless -файла. Заметьте, что “белый шум” (светло-фиолетовые полосы) также достигает 22 кГц, несмотря на то, что эти частоты не используются.

MP3

Различные типы MP3 файлов имеют различные частотные срезы. У MP3 также можно заметить так называемую “полку” (“shelf”) на 16 кГц (Вы увидите ее на спектрограммах).

MP3 320kbps (CBR) имеет частотный срез на 20.5 кГц.

MP3 256kbps (CBR) имеет частотный срез на 20 кГц.

MP3 V0 имеет частотный срез на 19.5 кГц.

MP3 192kbps (CBR) имеет частотный срез на 19 кГц.

MP3 V2 имеет частотный срез на 18.5 кГц.

MP3 128kbps (CBR) имеет частотный срез на 16 кГц.

Транскоды

Как спектрограммы могут помочь при выявлении транскодов? Допустим, вы скачали песню в формате FLAC с какого-либо блога. Существует единственный способ выяснить, действительно ли это песня является lossless файлом, а не транскодом из lossy – проверить спектрограмму этого файла. (AudioIdentifier и другие схожие программы не в состоянии качественно выявлять транскоды.)

Например, спектрограмма, представленная ниже – спектрограмма файла в формате FLAC: расширение файла .flac, размер файла 21.8 Мб, достойное звучание при воспроизведении.

Подождите, так ли должна выглядеть спектрограмма lossless файла? Нет! Этот файл был транскодирован из MP3 192kbps (CBR) во FLAC. Это транскод из lossy в lossless, и это плохо.

Программы

Для проведения спектрального анализа аудиофайлов мы рекомендуем использовать Adobe Audition ((для Windows или Mac OS), Audacity (Windows, Mac OS, Linux), или SoX (Windows, Mac OS, Linux, но только из командной строки). Все спектрограммы в этом разделе были просмотрены с помощью Adobe Audition CS 6.

Хотя Вы должны использовать спектральный анализ чтобы узнать, является файл транскодом или нет, Вам придется использовать еще одну программу для выяснения битрейта или пресета кодирования файла. Для этих целей мы рекомендуем использовать Audio Identifier или dbPowerAmp для Windows, и dnuos или MediaInfo для Mac OS.

MP3-аудио и определение его реального качества

http://forum.kinozal.tv/showthread.php?t=39993
Основой музыкальной индустрии на современном этапе ее развития является компакт диск, который по сути представляет набор файлов формата WAV PCM 44100 Гц, 16 бит стерео (от англ. waveform, т.е. «в форме волны»), записанных на диске методом CD-DA (Compact Disc — Digital Audio). Но реалии таковы, что далеко не все любители музыки имеют возможность формировать свою фонотеку из CD-Audio, а качественное звучание любят все. Поэтому большинство из нас коллекционирует музыку в кодированном виде. 
Не будем говорить в этой теме о достоинствах и недостатках методов кодирования с потерями (lossy) и без потерь (lossless) и о выборе того или иного кодека для получения максимально качественного звучания. Просто признаем, что формат МР3 (кодек третьего уровня MPEG Layer 3) со времен своей стандартизации в 1991-м году прошел путь от малоизвестной части видео файла до такой степени распространенности, о которой большинство аудио-форматов могут только мечтать. МР3 стал де-факто стандартом хранения музыки во всемирной сети и за ее пределами, успешно используясь во многих аудиоустройствах.
Этот формат при хорошей степени сжатия, доступности декодеров, низких системных требованиях к оборудованию и поддержке всеми современными моделями аудиоплееров, музыкальных центров и DVD-плееров, обеспечивает качество звучание, которое сегодня в определенной степени устраивает большинство любителей музыки. Основа успеха формата MР3 — малый объем файла при высоком качестве звука.Достигаются эти преимущества применением сложных алгоритмов сжатия и системой адаптивного кодирования в ходе которого отбрасывается много «излишней» звуковой информации исходного файла.

  1. Качество МP3
  2. Создание МP3 файла, апконверт и спектральный анализ
  3. Создаем МP3 для экспериментов
  4. Определяем реальный битрейт МP3 файла
  5. Частотный анализ
  6. Выявление апконверта

1. Качество МP3


Формат MР3 является достаточно гибким и позволяет варьировать степень сжатия и качество звучания файла, которые определяются шириной звукового потока — битрейтом (bitrate) — количеством бит выделенных для кодирования секунды звукового потока (kilobits per second — килобит в секунду, обозначается как kbps или кбит/с соответственно). Понятно, что чем битрейт файла выше, тем качество звука лучше. Ведь именно битрейт определяет насколько сильно при кодировании файла в МР3 срезаются верхние частоты (чем выше битрейт, тем граница среза выше).
Само по себе несжатое аудио формата CD-Audio имеет битрейт 1411,2 кбит/с. Значение битрейта для MP3 файла технически может находиться в пределах от минимальных 8 кбит/с до максимальных 320 кбит/с. Наиболее распространенными битрейтами закодированного в МР3 звука являются128160192224256 и 320 кбит/с. 
Но от значения битрейта напрямую зависит и размер полученного МР3-файла. Например, одна секунда звучания МР3 с битрейтом 320 кбит/с будет «весить» 320 кбит, или 40 кбайт. Таким образом, объем пятиминутной композиции в МР3 320 кбит/с будет равен 5*60*320/8=12000 кбайт, или примерно 11.7 Мбайт. Тогда как объем этой же композиции, но в МР3 128 кбит/с составит 4800 кбайт или около 4.7 Мбайт.
Показатели качества МР3 файлов с различными битрейтами приведены в таблице:
Примечание: Все картинки кликабельны.

Таким образом, пользователь имеет возможность выбора: пожертвовать качеством для достижения минимального объема или получить больший файл с более высоким качеством
Естественно, что в погоне за качеством звука (учитывая, что объемы жестких дисков сегодня измеряются терабайтами), мы отбираем в свою фонотеку файлы с максимальным битрейтом.

2. Создание МP3 файла, апконверт и спектральный анализ


«Правильные» МР3 файлы с максимальным битрейтом 320 кбит/с можно создать только двумя способами:

1. Путем прямого кодирования CD-DA в МР3 файлы с помощью специальных программ — CD-рипперов;
2. Путем конвертирования любого Lossless формата в МР3.

(Перекодирование качественных файлов других lossy форматов, таких как AAC, OGG или MPC, в MP3 320 кбит/с случай особый и пока не рассматривается).
МР3 с меньшим (чем максимальный) битрейтом можно получить также путем перекодирования МР3 файла с более высоким битрейтом.
Но к сожалению, в теории кодирования звуковых файлов существует и такое понятие, как апконвертАпконвертом является любое преобразование файла с повышением битрейта. Например, перекодирование MP3 128 кбит/с в 320 кбит/с. 
И это явление, как в торговой, так и во всемирной сети встречается сплошь и рядом. Мы увидев на обложке диска или на музыкальном сайте заветные 320 кбит/с, покупаем диск или скачиваем с сайта файлы с любимой музыкой. Но при ее прослушивании нас зачастую постигает разочарование — звук оказывается хуже ожидаемого, на частотах среднего диапазона композиция звучит смазанно, на высоких частотах — приглушенно и ненатурально…. При этом все программы для работы с тегами (такие как МР3 Tag) и все плееры показывают нам битрейт файла 320 кбит/с, хотя оценивая звуковой файл на слух, мы понимаем что это не так…
А все дело в том, что если мы переконвертируем, например, файл МР3 128 кбит/с в МР3 320 кбит/с, то получим файл, напоминающий МР3 320 кбит/с только внешне, а реально это будет тот же МР3 128 кбит/с, но «раздутый» по объему в 2,5 раза. Мало того, что при этом качество не улучшится(ведь потерянные при предыдущем кодировании в 128 кбит/с данные уже не вернуть и звуковой волне с уже «обрезанной» верхушкой просто неоткуда взять недостающие фрагменты), оно даже ухудшится из-за повторного вмешательства программы-кодировщика в исходный «материал».
Как же оценить качество кодирования и определить, соответствует ли содержимое МР3-файла текущему своему виду, т.е. был ли источником кодирования для МР3 320 кбит/сек lossless сигнал (или использовался ли для получения МР3 с меньшим битрейтом исходный файл с более высоким битрейтом)?
Поскольку основной характеристикой сигнала является его спектр (двумерный график, отображающий степень присутствия в сигнале всех возможных частот), то уровень качества кодирования прямо пропорционален степени приближения спектра конечного звукового потока к исходному. Т.е., чем меньше разница в амплитудах частотных несущих, тем выше качество кодирования.
Поэтому в оценке качества МР3 файла поможет нам спектральный анализ. Его использование позволит наглядно увидеть сигнал, сформированный при кодировании МР3 и сделать кое-какие выводы.Переходим от теории к практике. Для экспериментов возьмем CD-DA с японским изданием 2012 года альбома группы Scorpions «Comeblack» (RCA — SICP 3373) (Лицензия)
Для начала проверим подлинность компакт-диска в соответствии с рекомендациями в теме «Качество аудио-CD и Lossless аудиофайлов»
Результаты анализа (Скриншот 1), показывают, что диск подлинный CD-DA.

Скриншот 1

А спектрограмма будущего подопытного трека под №8 «Tainted Love» сияет оранжевым цветом практически во всем диапазоне частот от 0 до 22 кГц, как и должно быть на оригинальном диске (Скриншот 2), что дополнительно подтверждается графиком распределения частот.

Скриншот 2

Воспользовавшись рекомендациями приведенными в теме «Как конвертировать аудио-CD в форматы Lossy», с помощью «Easy CD-DA Extractor» копируем, а по сути конвертируем, выбранный нами 8-й трек (больше для опытов нам не понадобится) из формата WAV в формат МР3. Причем делаем это неоднократно, копируя трек в наиболее часто встречающиеся постоянные битрейты (CBR). В результате получаем из одного трека четыре МР3 файла с битрейтами 128, 192, 256 и 320 кбит/с.

4. Определяем реальный битрейт МP3 файла


Для анализа созданных МР3 файлов воспользуемся программой «Adobe Audition 3» (Cкачать программу+лекарство)
Инсталируем и запускаем (Скриншот 3). На вкладке файлы нажимаем кнопку «Импорт файла» [Ctrl+O] (Шаг 1) и в открывшемся окне находим (Шаг 2) и выбираем требуемый файл или (через удержание клавиши «Ctrl»), несколько файлов (Шаг 3). После нажатия кнопки «Открыть» (Шаг 4)программа несколько секунд считывает файл(ы) и открывает его (их).

Скриншот 3

(Скриншот 4) Двойным щелчком выделяем требуемый файл (Шаг 1) и нажимем на кнопку «Экран частоты спектра» [Shift+F] (Шаг 2).

Скриншот 4

Далее детально изучив спектр, с помощью таблицы пиковых частот для МР3 с постоянным битрейтом можно определить реальный битрейт аудиофайла.

Таблица пиковых частот МР3

CBR 096 kbps: 14000 — 15000 Hz;
CBR 112 kbps: 15000 — 15600 Hz;
CBR 128 kbps: 16000 — 16500 Hz;
CBR 160 kbps: 16500 — 17500 Hz;
CBR 192 kbps: 18000 — 18700 Hz;
CBR 224 kbps: 19000 — 19400 Hz;
CBR 256 kbps: 19500 — 19700 Hz;
CBR 320 kbps: 20000 — 21000 Hz.

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

Вот какие результаты выдал анализатор спектра в «Adobe Audition» (Скриншот 5) для подопытных треков (для наглядности и удобства восприятия на картинке приведены только фрагменты спектрограмм треков с различными битрейтами):

Скриншот 5

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

5. Частотный анализ


Как показывает практика, не всегда спектр МР3 файла бывает таким четким и однозначным. Зачастую он имеет расплывчатую границу, изобилующую прерываниями и провалами. В этом случае для определения границы среза частот в «Adobe Audition» необходимо воспользоваться инструментом «частотный анализ» (Скриншот 6). Для вызова окна частотной диаграммы в основном меню нажимем кнопку «Окно» (Шаг 1) и из выпадающего списка выбираем пункт «Частотный анализ» [Alt+Z] (Шаг 2). Затем с помощью мыши выделяем исследуемую часть спектра (Shift+Left-Right) (Шаг 3) и нажимаем в окне частотного анализа кнопку «Сканер выборки» (Шаг 4).

Скриншот 6

После сканирования спектра «Adobe Audition» выдаст результат в виде линейного графика спектра, на котором граница среза частот видна более четко, чем на спектрограмме. При этом, чем больше выделенный участок спектра, тем больше длительность сканирования программой, но и достоверность информации о реальном битрейте МР3 файла повышается. Поэтому, в особо трудных случаях рекомендуется для сканирования выделять весь спектр целиком.

6. Выявление апконверта


А теперь проведем эксперимент: с помощью «Easy CD-DA Extractor» переконвертируем файл МР3 128 кбит/с в МР3 320 кбит/с, т.е. сделаемапконверт.
Далее откроем файлы — МР3 128 кбит/с (наш источник для апконверта) , мнимый МР3 320 кбит/с (полученный путем апконверта трека с битрейтом 128 кбит/с в МР3 320 кбит/с) и настоящий МР3 320 кбит/с — в программе «МР3 Tag и сделаем инфо-файл (Скриншот 7).

Скриншот 7

Как видим, «МР3 Tag» восприняла и настоящий, и мнимый треки МР3 320 кбит/с одинаково и выдала по ним идентичные результаты. Т.е., файл после апконверта увеличился в объеме в 2,5 раза и удачно замаскировался под МР3 320 кбит/с, но звучать от этого качественнее не стал.
Теперь проверим, как справится с задачей обнаружения фальшивки «Adobe Audition». Загружаем все три файла и производим для каждого трека «»частотный анализ» (Скриншот 8). Результаты показаны на рисунке.

Скриншот 8

«Adobe Audition» с помощью «частотного анализа» безошибочно определила реальный битрейт каждого трека. Мнимому МР3 320кбит/с, полученному путем апконверта, обмануть программу не удалось.
Делались неоднократные попытки обмануть эту программу различными способами, в том числе и путем конвертирования МР3 128 кбит/с в lossless форматы с последующим кодированием поддельных FLAC и WAV файлов в МР3 320 кбит/с. Но «Adobe Audition» во всех случаях безошибочно определила реальный битрейт полученных треков как 128 кбит/с.

алгоритм — Как сравнить два аудиофайла?

Очевидно, если вы нашли примеры распознавания речи, то пример распознавания нейросетью изображения вам найти не составит труда.

Есть немножко туповатый, но вполне работающий способ распознавания звуков по их графическому «изображению» при котором требуется лишь базовое знание нейросетей на уровне 2-3 курса ВУЗа. Для этого нужно:

Подготовка:

1) Записать сэмплы эталонных команд, которые вы собираетесь распознавать.
(Количество распознаваемых команд зависит от каскадности используемой нейросети и способа её обучения)

2) Сформировать для каждого сэмпла графики зависимости амплитуды(громкости) от времени и сохранить их в виде Bitmap.

3) Нормализовать полученные изображение по размеру (все изображения должны быть одинаковы по размеру)

4) Обучить нейросеть на полученные эталонные изображения.

Работа:

1) Получить потоковый звук с микрофона

2) Определить границы распознаваемого фрагмента по околонулевым значениям амплитуды (тишина)

3) Сформировать для записанного сэмпла график зависимости амплитуды(громкости) и получить Bitmap

4) Масштабировать Bitmap до тех же размеров, что и эталонные

5) Распознать полученное изображение, подав на вход нейросети.

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

Данный метод — это редкостный изврат, но он работает (проверял еще в 2003 году)и требует от программиста лишь базовых навыков по созданию нейросетей (а с появлением Vuforia и OpenCV и их не нужно) и околонулевых знаний в МатАне.

В чем то вам может помочь вот эта статья на Habrahabr

P.S. Если же все же решитесь делать «по-человечески» — вот статья, с которой стоит начать: Простыми словами о преобразовании Фурье

построение спектрограммы в аудио анализ

Я работаю над распознаванием речи с помощью нейронной сети. Для этого мне нужно получить спектрограммы этих обучающих аудиофайлов (. wav) . Как получить эти спектрограммы в python ?

python

audio

tensorflow

neural-network

spectrogram

Поделиться

Источник


kks

23 декабря 2017 в 16:16

3 ответа


  • BASS.net C#: что представляет собой изображение спектрограммы, полученное методом CreateSpectrum3DVoicePrint?

    Я разделил аудиофайл на три части сегмента, а затем создал изображение спектрограммы bitmap из каждой части, используя библиотеку BASS.net. BASS.net имеет метод CreateSpectrum3DVoicePrint для этого. public bool CreateSpectrum3DVoicePrint( int channel, Graphics g, Rectangle clipRectangle, Color…

  • Построение спектрограммы

    Примечание: этот вопрос не касается использования функции spectrogram , он имеет дело с представлением данных. Я разработал свою собственную функцию для вычисления спектрограммы, потому что мне нужно индивидуальное решение для типа входных данных и параметров. Он работает просто отлично, но я…



9

Существует множество способов сделать это. Проще всего проверить методы, предложенные в ядрах Kaggle competition TensorFlow Speech Recognition Challenge (просто отсортируйте по большинству голосов). Это особенно ясно и просто и содержит следующую функцию. Входными данными являются числовой вектор отсчетов, извлеченных из wav-файла, частота дискретизации, размер кадра в миллисекундах, размер шага (шага или пропуска) в миллисекундах и небольшое смещение.

from scipy.io import wavfile
from scipy import signal
import numpy as np

sample_rate, audio = wavfile.read(path_to_wav_file)

def log_specgram(audio, sample_rate, window_size=20,
                 step_size=10, eps=1e-10):
    nperseg = int(round(window_size * sample_rate / 1e3))
    noverlap = int(round(step_size * sample_rate / 1e3))
    freqs, times, spec = signal.spectrogram(audio,
                                    fs=sample_rate,
                                    window='hann',
                                    nperseg=nperseg,
                                    noverlap=noverlap,
                                    detrend=False)
    return freqs, times, np.log(spec.T.astype(np.float32) + eps)

Выходные данные определены в руководстве SciPy, за исключением того, что спектрограмма масштабируется с помощью монотонной функции (Log()), которая подавляет большие значения гораздо больше, чем меньшие, оставляя при этом большие значения еще больше, чем меньшие. Таким образом, никакое экстремальное значение в спецификации не будет доминировать в вычислении. В качестве альтернативы можно ограничить значения некоторым квантилем, но предпочтительнее логарифм (или даже квадратный корень). Существует много других способов нормализации высот спектрограммы, т. е. чтобы предотвратить экстремальные значения от «bullying», выход 🙂

freq (f) : ndarray, Array of sample frequencies.
times (t) : ndarray, Array of segment times.
spec (Sxx) : ndarray, Spectrogram of x. By default, the last axis of Sxx corresponds to the segment times.

Кроме того, вы можете проверить код train.py и models.py в репо github из примера Tensorflow по распознаванию звука .

Вот еще один поток , который объясняет и дает код для построения спектрограмм в Python.

Поделиться


Oleg Melnikov

23 декабря 2017 в 17:13



3

Scipy служат этой цели.

import scipy
# Read the .wav file
sample_rate, data = scipy.io.wavfile.read('directory_path/file_name.wav')

# Spectrogram of .wav file
sample_freq, segment_time, spec_data = signal.spectrogram(data, sample_rate)  
# Note sample_rate and sampling frequency values are same but theoretically they are different measures

Используйте библиотеку matplot для визуализации спектрограммы

import matplotlib.pyplot as plt
plt.pcolormesh(segment_time, sample_freq, spec_data )
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()  

Поделиться


sarannns

23 декабря 2017 в 17:24


Поделиться


Lasith Niroshan

23 декабря 2017 в 17:14


  • Анализ Спектрограммы Matlab

    Мне нужна помощь в моих экспериментах на MATLAB. Я пытаюсь получить частотный диапазон песни за интервал времени. Например, если человек поет, то каков его частотный диапазон от времени 0 до 0.5seconds? Я пробовал использовать функцию спектрограммы MATLAB, но не могу понять, как извлечь нужные мне…

  • преобразование спектрограммы в аудио с помощью функций librosa

    Я работаю над синтезом речи и построил спектрограммы с использованием librosa. Когда я хочу преобразовать спектрограмму в аудио для сохранения в виде wav-файла, это создает проблему. Я искал помощи и обнаружил, что у liborsa есть функция mel_to_audio, но она не работает. Я использовал эту функцию,…


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

Построение спектрограммы чистого синуса с matplotlib

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

Как я могу использовать полное разрешение спектрограммы при работе с речевым вводом в Web Audio API?

Я разрабатываю онлайн-визуальный китайский тональный помощник kind-of-thing. Это включает в себя Определение высоты тона с помощью алгоритма HPS . Но производительность этого алгоритма ограничена…

Нарисовать график спектрограммы звукового файла в android

Я разрабатываю приложение Android, в котором мне нужно создать график спектрограммы (который представляет собой визуальное представление спектра частот в звуке, поскольку они изменяются со…

BASS.net C#: что представляет собой изображение спектрограммы, полученное методом CreateSpectrum3DVoicePrint?

Я разделил аудиофайл на три части сегмента, а затем создал изображение спектрограммы bitmap из каждой части, используя библиотеку BASS.net. BASS.net имеет метод CreateSpectrum3DVoicePrint для этого….

Построение спектрограммы

Примечание: этот вопрос не касается использования функции spectrogram , он имеет дело с представлением данных. Я разработал свою собственную функцию для вычисления спектрограммы, потому что мне…

Анализ Спектрограммы Matlab

Мне нужна помощь в моих экспериментах на MATLAB. Я пытаюсь получить частотный диапазон песни за интервал времени. Например, если человек поет, то каков его частотный диапазон от времени 0 до…

преобразование спектрограммы в аудио с помощью функций librosa

Я работаю над синтезом речи и построил спектрограммы с использованием librosa. Когда я хочу преобразовать спектрограмму в аудио для сохранения в виде wav-файла, это создает проблему. Я искал помощи…

От аудио к тензору, обратно к аудио в tensorflow

Есть ли способ, чтобы напрямую загрузить аудио-файл (WAV) для тензора в tensorflow? А потом снова преобразовать тензор в аудиофайл? Я видел, как некоторые люди преобразовывали звук в спектрограммы,…

Как превратить мел спектрограммы для входа-масштабируется мел спектрограммы

Я читал эту статью о дискриминации шума окружающей среды с помощью сверточных нейронных сетей и хотел воспроизвести их результаты. Они преобразуют файлы WAV в логарифмические спектрограммы mel. Как…

Могу ли я конвертировать спектрограммы, сгенерированные с помощью librosa, обратно в аудио?

Я преобразовал некоторые аудиофайлы в спектрограммы и сохранил их в файлы, используя следующий код: import os from matplotlib import pyplot as plt import librosa import librosa.display import…

Определяем поддельный lossless | Блог Дмитрия Александрова

Как проверить качество lossless-файлов с музыкой, полученных из сети? В данном посте я постараюсь ответить на этот вопрос. Новичкам в области аудиоформатов рекомендую предварительно ознакомиться с базовыми понятиями. Зачем вообще проверять lossless, что с ним может быть не так? Дело в том, что в интернете нередко встречаются файлы FLAC, APE, WavPack, перекодированные из MP3 или другого формата сжатия с потерями — подобный псевдоlossless называют «апконвертом». Такое творение сочетает в себе все минусы lossless-форматов (большой размер файлов, ограниченная поддержка ПО/оборудованием) с главным минусом lossy-форматов (безвозвратные потери в аудиоданных). Всю драматичность этой ситуации передал Высоцкий в своей песне: «Если FLAC оказался вдруг и не MPEG, и не FLAC, а — так…»

Откуда берется подобный фальшивый lossless? Варианта тут два:

  1. Некто осознанно делает апконверт из lossy-контента, преследуя свои корыстные цели — например, желая привлечь трафик на сайт путём выкладывания редких записей в lossless, но при этом не имея их нормального исходника.
  2. Некто из благих побуждений делает lossless с CD и выкладывает его в сеть без проверки. Проблема возникает, если этот CD оказывается пираткой, сделанной из lossy.

Вывод из вышесказанного очевиден — следует проверять lossless-материал на то, не является ли он подделкой. Сразу скажу, что определить апконверт со стопроцентной точностью не всегда возможно. Однако, отбраковать бо́льшую часть мусора вполне реально при помощи соответствующего программного обеспечения, о котором я и расскажу ниже. Все программы, о которых пойдет речь, являются «портативными», то есть запускаются сразу после распаковки из архива, не требуя инсталляции. К сожалению, самые популярные из них давно не обновляются, поэтому нет гарантий, что данное ПО будет корректно работать с последними версиями Windows.

auCDtect

Скачать auCDtect можно тут. Эта консольная программа работает только с WAV-файлами, поэтому проверяемый материал необходимо предварительно вручную декодировать в этот формат при помощи соответствующего кодека. Те, кого в принципе смущает интерфейс командной строки, могут сразу перейти к следующему пункту, для остальных приведу пример работы с программой. Проверим FLAC-файл, который находится в папке D:\Test. Положим в эту папку файлы flac.exe (кодек FLAC) и aucdtect.exe, которые и будем запускать. Процедура проходит в два шага: сначала командой flac -d filename.flac декодируем FLAC-файл в WAV, затем командой aucdtect filename.wav запускаем проверку полученного WAV-файла в auCDtect:

Результатом проверки является заключение утилиты «This track looks like CDDA with probability 100%» («Этот трек похож на CDDA с вероятностью 100%»), из чего можно сделать вывод, что наш FLAC-файл почти наверняка содержит полноценный lossless-контент и не является фейком. В противном случае утилита выдала бы сообщение «This track looks like MPEG…»

auCDtect Task Manager

Представляет собой работающий как единое целое комплект из auCDtect, графической оболочки к ней, редактора SoX и набора аудиокодеков. В отличие от «голой» auCDtect не требует от пользователя никаких особых навыков, анализ делается в несколько кликов без дополнительных телодвижений. К сожалению, автор прекратил разработку новых версий, оригинальный сайт недоступен. Скачать архив с программой можно только со сторонних ресурсов — например, отсюда. Судя по документации из комплекта, корректная работа программы гарантируется под версиями Windows до 8 включительно, а дальше — как повезёт. Запустив auCDtect Task Manager, мы видим привычный графический интерфейс: нужно выбрать файлы/папки, которые требуется проанализировать, после чего нажать кнопку «Старт»:

Результат по каждому треку выводится в столбце «Резюме»: «CDDA» — честный lossless, «MPEG» — апконверт. По умолчанию программа также формирует отчёты в директории с проверяемыми аудиофайлами, эту функцию можно отключить в настройках. В процессе анализа auCDtect Task Manager создает спектрограммы треков, которые впоследствии можно использовать для визуального анализа (подробнее об этом я расскажу ниже).

Audiochecker

Скачать Audiochecker и языковые пакеты к нему можно здесь. Увы, поддержка программы автором тоже давно отсутствует. В плане использования Audiochecker похож на auCDtect Task Manager — всё делается через графический интерфейс, результаты анализа выводятся в аналогичном формате:

Lossless Audio Checker

Название данной программы похоже на название предыдущей, но не нужно их путать — это совершенно разные продукты. Lossless Audio Checker доступен для скачивания на оригинальном сайте, имеются графическая и консольная версии. Интерфейс программы минималистичен, какие-либо настройки отсутствуют. По результатам проверки полноценный lossless отмечается как «Clean», фейковый — «Upsampled»:

Надо отметить, что надёжность распознавания апконверта у Lossless Audio Checker’а оставляет желать лучшего, пользоваться этой программой если и стоит, то только в качестве дополнения к другому ПО.

Визуальный анализ спектрограмм

Давайте посмотрим, как изменяется спектр сигнала при перекодировании музыки из одного формата в другой. Для этого сделаем следующее:

  1. Возьмём CDDA с электронной музыкой, выберем на нём трек с максимально широким спектром, сохраним этот трек в WAV.
  2. Создадим ещё три копии полученного на предыдущем этапе WAV-файла, каждую из которых сожмём в MP3 при помощи кодера LAME с различными настройками. Тем же LAME’ом декодируем все MP3 обратно в WAV. Одну из копий после декодирования обработаем энхансером в аудиоредакторе.
  3. Полученные WAV-файлы сожмём во FLAC (технической необходимости в этом нет, можно анализировать и сразу WAV, но для наглядности пусть всё будет выглядеть так, как будто бы мы скачали музыку в формате FLAC из сети). Конечным результатом всех описанных манипуляций будут четыре варианта тестового трека, один из которых — полноценный lossless, а три другие — псевдоlossless, сделанный из MP3 разной степени урезанности.
  4. При помощи auCDtect Task Manager получим спектрограммы наших тестовых файлов, которые и рассмотрим. Рекомендую читателю сохранить нижеприведённые картинки в папку и посравнивать их самостоятельно в любой программе просмотра изображений, быстро переключаясь между ними — так различия будут видны максимально отчётливо.

Итак, вот спектрограмма исходного CDDA-трека:

А это наш трек после конвертации в MP3 при помощи LAME с пресетом extreme (один из наиболее качественных вариантов MP3-сжатия):

Отличия от исходного образца минимальны, но они есть. В целом спектр всё так же простирается до самой верхней границы (ФНЧ у LAME в этом режиме отключен), однако, на некоторых участках слабые высокочастотные составляющие всё равно подавлены, что видно по обрезке голубовато-фиолетовых составляющих спектрограммы.

А вот так выглядит спектрограмма трека, сжатого в MP3 LAME’ом с настройками по умолчанию (постоянный битрейт 128 kbps, используется фильтр нижних частот):

Тут мы видим работу ФНЧ во всей красе, частотные компоненты выше ~17 кГц почти полностью обрезаны.

Теперь посмотрим на спектрограмму этого же варианта трека, дополнительно обработанного энхансером (энхансер — ПО, добавляющее в высокочастотную область сигнала гармоники, субъективно делающие звук более ярким, насыщенным. Лет 15-20 назад многие пиратские CD, изготовленные из MP3, обрабатывались подобным образом). Видим, что энхансер добавил в верхнюю часть спектрограммы немного голубого цвета, что предсказуемо. Впрочем, всё это как мёртвому припарки, отрезанные на этапе MP3-сжатия высокие частоты уже не восстановишь:

Какие выводы можно сделать из увиденного?

  1. Современные lossy-кодеры в высококачественных режимах выдают материал, отличить который от оригинала по спектрограмме весьма сложно или вовсе невозможно. Однако, при переключении этих кодеров в режим «эконом», отличия от оригинала становятся очевидными.
  2. При анализе спектрограммы с целью вычисления апконверта смотреть нужно в первую очередь на наличие явного среза ВЧ. Если таковой присутствует на частотах ниже ~20 кГц — перед вами с высокой вероятностью псевдоlossless. Однако, подобные срезы иногда встречаются и на нормальных CDDA-записях.
  3. Высокочастотные составляющие, вырезаемые при сжатии с потерями, обычно имеют очень низкий уровень. Удаление этих компонентов приводит к уменьшению гладкости линий в верхней части спектрограммы — эти линии становятся более прерывистыми, контрастными, фиолетово-синие цвета в них замещаются чёрным. Следовательно, выраженная дискретность картинки в ВЧ-области также может быть признаком того, что перед вами апконверт.

Заключение

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

Метки: работа с аудиозаписями

Поделиться ссылкой:

Смотрите также:

§1.7. Звук и спектр · Стеганография — ИТиИБ

Прятать информацию можно не только в тексте и изображениях. Давайте рассмотрим ещё один способ передать информацию — через аудио. На первый взгляд, сокрытие информации в изображениях и в звуке не сильно отличается: можно прятать данные как в метаданных аудиозаписи, так и в деталях звука — так, чтобы на слух разница была незаметна.

Как и изображения, аудио можно хранить и передавать с потерями и без. Аналог BMP в аудио называется WAV — он так же хранит звуковую дорожку без сжатия. Для сжатия звука без потерь применяются форматы FLAC, ALAC и другие — они используются редко. Чаще применяют форматы с потерями. Самый популярный из них — MP3, но есть и другие — например, Ogg Vorbis и Opus.

В форматах без сжатия мы можем немного изменять байты для добавления скрытой информации — в точности так, как в изображениях. Точно так же стеганография возможна и в метаданных, только вместо модели камеры и координат съемки в аудио есть такие поля, как «исполнитель» и «жанр». Однако информацию можно скрывать и иными способами — в частности, выдерживающими сжатие с потерями.

Спектры, шум и музыка

Диаграмма частот звука называется спектрограммой.

Известный пример передачи данных через звук — это старые аналоговые модемы, которые применяли ещё с 1960-х годов. Такие устройства передают информацию через так называемый частотный спектр. Проще говоря, мы используем в качестве сигналов громкость низкого басового звука и высокого писка в сообщениях модемов. На диаграмме частот звука модема можно увидеть сразу много частотных «линий передачи». Этот способ передачи информации неплохо переносит любое сжатие и даже сильные помехи в телефонных линиях.

Бывает и наоборот: изображения подбирают так, чтобы музыка звучала красиво. Как, например, этот единорог из нот.

Передавать так информацию можно и скрытно, в музыке и записях голоса. Некоторые исполнители оставляют секретные изображения в своих треках, которые видно на спектрограммах. Например, британский музыкант Афекс Твин написал целую композицию, построенную вокруг красивой спектрограммы. Вот её название:

В конце записи можно увидеть лицо музыканта.

Мы тоже можем сделать звук с изображением в спектрограмме. Попробуйте загрузить разные картинки в генератор такого звука снизу и послушать трёхсекундное аудио. Звук не особо приятный, правда?

Кстати, сейчас вы видите в нём известную картинку, которую уже много лет исследователи используют для экспериментов с изображениями. Взята она была в 1970-х годах с разворота журнала Playboy.

Скрываем секреты

Давайте посмотрим на спектр результата из этого генератора. Для этого воспользуемся аудиоредактором Audacity. Откроем его и загрузим туда полученный файл.

Для просмотра спектра нужно нажать на название дорожки и в меню выбрать Spectrogram.

Чуть уменьшим масштаб, сделаем дорожку пошире — и вот она, наша картинка.

Наша картинка внутри звука.

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

Установите браузер.

Оригинал: П. Уотерман, М. Сток, М. Эйткен. Broadcast Music Inc.

Кстати, частотный спектр и другие аудиопараметры лежат в основе визуализации музыки.

Давайте откроем этот файл в Audacity и посмотрим на его спектрограмму. Чтобы увидеть сообщение целиком, откроем Spectrogram Settings из того же меню и установим минимальную частоту (Min Frequency) на 4000 Гц, а максимальную — на 14000 Гц. Тем самым мы отбросили достаточно много частот — но, что удивительно, не сильно повлияли на звучание. Попробуйте поиграть с настройками эквалайзера вашего плеера и посмотреть, как изменятся композиции, которые вы слушаете. Эквалайзер делает то же, что и мы сейчас: усиливает или ослабляет частоты в звуковой дорожке.

Сообщение, набранное в редакторе Microsoft Word.

Продвинутые варианты такой техники используются, чтобы оставлять внутри звуковой дорожки информацию об её источнике и отслеживать таким образом утечки — появление новых альбомов в интернете до их официального релиза. В таком случае почти невозможно обнаружить маркировку, если не знать точно алгоритм скрытия.

Кино

В видео информацию прятать даже проще, чем в звуке или картинках по-отдельности. В реальной жизни это тоже используется для защиты от пиратства. Метки, встраиваемые в фильмы, используются для отслеживания кинотеатров, из которых лента попала в открытый доступ. Изначально на физических кинолентах оставляли маленькие точки. Расположение этих точек различалось для каждой копии, что и позволяло находить нарушителей.

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

Подобными метками пользуются и авторы популярных онлайн-видео, чтобы обезопасить себя от воровства контента. Например, можно наложить почти полностью прозрачный логотип автора на каждый кадр. Даже если желающий воспользоваться роликом без спроса обнаружит такой логотип, удалить его из видео будет весьма непросто.

Выводы

  1. Для аудиофайлов применимы те же способы стеганографии, что и для изображений: передавать сообщения можно в метаданных и в младших битах несжатого звука.

  2. Чтобы не потерять данные при сжатии, можно использовать частотный спектр звука. Используя лишь часть спектра, данные можно скрыть. При прослушивании это почти незаметно, однако прочитать сообщение можно на спектрограмме.

  3. В видео способов ещё больше, включая комбинированные: информация передаётся и через картинку, и через аудио. Стеганография в видео применяется для отслеживания копирования.

SoX Spectrum — удобная утилита для создания графических спектров аудио-файлов / Хабр

В связи с подготовкой полной раритетной дискографии одного известного в узких кругах музыкального коллектива, эксклюзивной не то что для русского, но и вообще для мирового интернета, появилась необходимость создания качественных частотных спектров аудио-файлов. Было перепробовано несколько известных инструментов для подобных целей, но они были либо неоправданно громоздкими для такой процедуры, либо не имели необходимых для этого настроек.
В результате совершенно неожиданно мне на глаза попалась известная в узких кругах утилита для работы с аудиофайлами SoX (http://sox.sourceforge.net/).

Она была мною давно забыта, но, как оказалось, неоправданно. Это консольная утилита, имеющая огромные возможности для работы со звуком и позволяющая выполнять с ним практически любые операции. Эдакий швейцарский армейский нож для аудиофилов. На официальном сайте имеется весьма внушительный список ее возможностей. Как уже было сказано — утилита консольная, а значит поддерживаемая практически любыми устройствами. Даже в репозиториях моей гиковской никсовой Nokia N900 я нашел пакет для работы с ней (!). Некоторые сподвижки есть и на Андройде. Это уже очень интересно! Но самое главное то, что в ней был обнаружен отличный инструмент spectrogram, основное предназначение которого — именно создание графических спектров аудиофайлов в формате PNG. Несмотря на весьма спартанский интерфейс, а точнее его полное отсутствие, он имеет и некоторое количество настроек, которые можно указать как ключи при выполнении данного действия. Отлично! Теперь единственное, что остается — это написать для него небольшой bat-файл, который бы выполнял процедуру создания аудио-спектров с легкостью для пользователя. Данный процесс особых проблем не вызвал, но неожиданно возникла трудность: по умолчанию инструмент работает только с WAV. Вот это поворот! Придется собрать SoX с библиотеками libmad (для FLAC) и libmp3lame (для mp3). Компилирование происходит относительно несложно, однако его описание выходит за рамки данной статьи. Возможно в дальнейшем я опишу этот процесс. Все готово! Ветку создал на Гитхабе от работы. Все изменения и новые версии будут появляться только там. Пока утилита поддерживает только mp3 и FLAC, в дальнейшем может мартышку (APE) добавлю…

Примеры получаемых спектров:

FLAC:

mp3:

Небольшая инструкция по установке:

1) Скачиваем актуальную версию пакета SoX тут: http://sourceforge.net/projects/sox/files/latest/download и устанавливаем.

2) Скачиваем актуальную версию SoX Spectrum тут: https://github.com/ointeractive-russia/sox-spectrum и распаковываем в папку с установленным SoX (по умолчанию C:\Program Files\sox-14-4-1).

Установка завершена!

Теперь просто перемещаем нужный музыкальный файл на ярлык «SoX Spectrum» на рабочем столе. Утилита сама запустится в командной строке и выполнит необходимые действия. Картинка со спектром в формате PNG появится в папке с этим аудиофайлом.

P. S. По умолчанию утилита создает спектры в режиме обычной цветопередачи, но также имеется возможность включения режима повышенной цветопередачи, что позволит получить более четкие и наглядные спектры. Чтобы сделать это — откройте файл sox-spectrum.bat любым текстовым редактором и в разделе «Настройки» исправьте значение переменной HIGHT_COLOR на 1.

Анализатор спектра

| Academo.org — Бесплатное интерактивное обучение.


Загрузите свой

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

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

Приведенная выше демонстрация позволяет вам выбрать ряд предустановленных аудиофайлов, таких как щелчки китов / дельфинов, полицейские сирены, песни птиц, свист, музыкальные инструменты и даже старый коммутируемый модем 56k.У каждого из них есть уникальные и интересные закономерности, которые вы можете наблюдать. Кроме того, вы можете загружать свои собственные аудиофайлы. Чтобы просмотреть спектрограмму, выберите звуковой вход, затем нажмите кнопку воспроизведения, и на экране появится график, перемещающийся справа налево. Вы можете остановить движение, нажав кнопку паузы на аудиоплеере.

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

Вот несколько ссылок на сайты, на которых есть интересные звуковые файлы, с помощью которых вы можете создавать свои собственные спектрограммы.

Обратите внимание: нам известно о проблеме с браузером Safari, из-за которой спектрограмма не отображается. В дополнение к этому Internet Explorer не
еще есть функции для поддержки демонстрации.Поэтому для достижения наилучших результатов используйте Chrome или Firefox. Спасибо.


Кредиты

Пожалуйста, включите JavaScript, чтобы просматривать комментарии от Disqus.

Анализатор спектра

— Спектрограмма — Спектральный анализ аудиофайлов онлайн

Поиск инструмента

Спектральный анализ

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

Результаты

Спектральный анализ — dCode

Тег (ы): Стеганография

Поделиться

dCode и другие

dCode является бесплатным, а его инструменты являются ценным подспорьем в играх, математике, геокешинге, головоломках и задачах, которые нужно решать каждый день!
Предложение? обратная связь? Жук ? идея ? Запись в dCode !

Спектральный анализатор сигналов

Выберите аудиофайл

Загрузка …
(если это сообщение не исчезает, попробуйте обновить эту страницу)

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

Ответы на вопросы (FAQ)

Как найти текст в аудиофайле?

Иногда в звуковом спектре скрывается текст (несколько букв) или изображение (скорее, силуэт).

dCode позволяет воспроизводить аудиофайлы (WAV, MP3 и т. Д.) И анализировать звуковые частоты, чтобы отображать их в разных цветах и ​​позиционировать на оси звуковых частот.

Список бесплатных инструментов для получения спектрального анализа или звукового спектра:

Пример: Audacity: здесь (ссылка) (меню «Анализ», затем «Спектр»).

Пример: AVS Audio Editor: здесь (ссылка) (кнопка Spectral на панели инструментов).

Инструменты предлагают другие опции, такие как представление частот сигнала или звука.

Как скрыть текст в аудиофайле?

dCode предлагает следующие инструменты (бесплатные):

Пример: Coagula Light: здесь (ссылка) (нарисуйте кистью в левом окне (черный), затем нажмите «Звук»> «Визуализировать изображение», затем «Файл»> «Сохранить звук как»).

Задайте новый вопрос

Исходный код

dCode сохраняет за собой право собственности на исходный код онлайн-инструмента «Спектральный анализ». За исключением явной лицензии с открытым исходным кодом (обозначенной CC / Creative Commons / free), любой алгоритм, апплет или фрагмент (преобразователь, решатель, шифрование / дешифрование, кодирование / декодирование, шифрование / дешифрование, переводчик) или любая функция (преобразование, решение, дешифрование / encrypt, decipher / cipher, decode / encode, translate), написанные на любом информатическом языке (PHP, Java, C #, Python, Javascript, Matlab и т. д.)) никакие данные, скрипты, копипаст или доступ к API не будут бесплатными, то же самое для загрузки Spectral Analysis для автономного использования на ПК, планшете, iPhone или Android!

Нужна помощь?

Пожалуйста, заходите в наше сообщество в Discord, если вам нужна помощь!

Вопросы / комментарии

Сводка

Инструменты аналогичные

Поддержка

Форум / Справка

Ключевые слова

спектральный, анализ, спектр, частота, аудио, файл, звук, сигнал

Ссылки

Источник: https: // www.dcode.fr/spectral-analysis

© 2021 dCode — Лучший «инструментарий» для решения любых игр / загадок / геокэшинга / CTF.

python — Как преобразовать файл .wav в спектрограмму в python3

Я исправил ошибки, с которыми вы столкнулись для http://www.frank-zalkow.de/en/code-snippets/create-audio-spectrograms-with-python.html
Эта реализация лучше, потому что вы можете изменить binsize (например, binsize = 2 ** 8 )

  импортировать numpy как np
из matplotlib импортировать pyplot как plt
импорт scipy.io.wavfile как wav
из numpy.lib импортировать stride_tricks

"" "кратковременное преобразование Фурье звукового сигнала" ""
def stft (sig, frameSize, overlapFac = 0.5, window = np.hanning):
    выигрыш = окно (размер кадра)
    hopSize = int (размер кадра - np.floor (overlapFac * frameSize))

    # нули в начале (таким образом, центр 1-го окна должен быть для образца № 0)
    образцы = np.append (np.zeros (int (np.floor (frameSize / 2.0))), sig)
    # столбцов для работы с окнами
    cols = np.ceil ((len (образцы) - frameSize) / float (hopSize)) + 1
    # нули в конце (таким образом, образцы могут быть полностью закрыты кадрами)
    образцы = np.добавить (образцы, np.zeros (размер кадра))

    frames = stride_tricks.as_strided (samples, shape = (int (cols), frameSize), strides = (samples.strides [0] * hopSize, samples.strides [0])). copy ()
    кадры * = победа

    вернуть np.fft.rfft (кадры)

"" "масштабировать ось частоты логарифмически" ""
def logscale_spec (spec, sr = 44100, factor = 20.):
    timebins, freqbins = np.shape (spec)

    scale = np.linspace (0, 1, freqbins) ** коэффициент
    масштаб * = (freqbins-1) / max (масштаб)
    scale = np.unique (np.round (масштаб))

    # создать спектрограмму с новыми частотными ячейками
    newspec = np.complex128 (np.zeros ([интервалы времени, len (масштаб)]))
    для i в диапазоне (0, len (масштаб)):
        если я == len (масштаб) -1:
            newspec [:, i] = np.sum (spec [:, int (scale [i]):], axis = 1)
        еще:
            newspec [:, i] = np.sum (spec [:, int (scale [i]): int (scale [i + 1])], axis = 1)

    # список центральной частоты ячеек
    allfreqs = np.abs (np.fft.fftfreq (freqbins * 2, 1./sr)[:freqbins+1])
    freqs = []
    для i в диапазоне (0, len (масштаб)):
        если я == len (масштаб) -1:
            freqs + = [np.mean (allfreqs [int (scale [i]):])]
        еще:
            freqs + = [np.среднее (allfreqs [int (scale [i]): int (scale [i + 1])])]

    вернуть newspec, freqs

"" "график спектрограммы" ""
def plotstft (audiopath, binsize = 2 ** 10, plotpath = None, colormap = "jet"):
    частота дискретизации, samples = wav.read (аудиопуть)

    s = stft (образцы, размер бункера)

    sshow, freq = logscale_spec (s, factor = 1.0, sr = samplerate)

    ims = 20. * np.log10 (np.abs (sshow) / 10e-6) # амплитуда в децибелах

    timebins, freqbins = np.shape (ims)

    print ("интервалы времени:", интервалы времени)
    print ("freqbins:", freqbins)

    plt.figure (figsize = (15, 7.5))
    plt.imshow (np.transpose (ims), origin = "lower", aspect = "auto", cmap = colormap, interpolation = "none")
    plt.colorbar ()

    plt.xlabel ("время (с)")
    plt.ylabel ("частота (Гц)")
    plt.xlim ([0, интервалы времени-1])
    plt.ylim ([0, freqbins])

    xlocs = np.float32 (np.linspace (0, интервалы времени-1, 5))
    plt.xticks (xlocs, ["% .02f"% l для l в ((xlocs * len (samples) / timebins) + (0.5 * binsize)) / samplerate])
    ylocs = np.int16 (np.round (np.linspace (0, freqbins-1, 10)))
    plt.yticks (ylocs, ["% .02f"% freq [i] для i в ylocs])

    если путь к сюжету:
        plt.savefig (путь к сюжету, bbox_inches = "плотно")
    еще:
        plt.show ()

    plt.clf ()

    вернуть имс

ims = plotstft (путь к файлу)
  

Международный журнал научных и технологических исследований

ДОБРО ПОЖАЛОВАТЬ В IJSTR (ISSN 2277-8616) —

Международный журнал научных и технологических исследований — это международный журнал с открытым доступом из различных областей науки, техники и технологий, в котором особое внимание уделяется новым исследованиям, разработкам и их приложениям.

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

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

IJSTR является частью экологически чистого сообщества и предпочитает режим электронной публикации, так как он является «ЗЕЛЕНЫМ журналом» в Интернете.

Мы приглашаем вас представить высококачественные статьи для обзора и возможной публикации во всех областях техники, науки и технологий.Все авторы должны согласовать содержание рукописи и ее представление для публикации в этом журнале, прежде чем она будет отправлена ​​нам. Рукописи следует подавать онлайн

IJSTR приветствует ученых, заинтересованных в работе в качестве добровольных рецензентов. Рецензенты должны проявить интерес, отправив нам свои полные биографические данные. Рецензенты определяют качественные материалы.Поскольку ожидается, что они будут экспертами в своих областях, они должны прокомментировать значимость рецензируемой рукописи и то, способствует ли исследование развитию знаний и развитию теории и практики в этой области. Заинтересованным рецензентам предлагается отправить свое резюме и краткое изложение конкретных знаний и интересов по адресу [email protected]

.

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

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

Спектрограмма

Спектрограмма в волновом окне показывает частотный спектр в зависимости от времени.

  • Чтобы просмотреть спектр аудиофайла в редакторе аудио, нажмите «Спектр» под дисплеем формы волны.

  • Чтобы просмотреть спектр аудиофайла и активировать режим редактирования спектра, выберите вкладку «Спектр» в редакторе аудио.

  • Чтобы переключаться между просмотром спектра для левого / правого каналов и среднего / бокового каналов, нажмите кнопку LR / MS в нижнем левом углу спектрограммы.

Каждая вертикальная линия представляет собой частотный спектр в определенное время.

  • Вы можете выбрать время и частоту в спектрограмме.

    Если вы выбираете частоту в спектрограмме, вы можете использовать инструменты редактирования спектра WaveLab Pro на вкладке «Спектр» для редактирования спектрограммы. Если вы наведете курсор мыши на определенный выбор частоты, всплывающая подсказка отобразит частотный диапазон и временной диапазон для текущего выбора.

    Вы также можете использовать инструменты редактирования WaveLab Pro на вкладке «Правка» для редактирования спектрограммы.

  • Низкие частоты отображаются внизу дисплея, а высокие — вверху.

  • В диалоговом окне «Параметры спектрограммы» вы можете определить способ отображения частотного спектра.

  • Вертикальная линейка слева показывает частотный диапазон в Гц.

  • В строке состояния отображается время / частота курсора мыши.

  • Если вы находитесь в режиме редактирования спектра, вы можете щелкнуть спектрограмму правой кнопкой мыши, чтобы открыть контекстное меню с дополнительными параметрами.

Понимание функций аудиоданных, преобразования Фурье, БПФ и спектрограммы для системы распознавания речи | Картик Чаудхари

Быстрое преобразование Фурье (БПФ) — математический алгоритм, который вычисляет Дискретное преобразование Фурье (ДПФ) заданной последовательности.Единственное различие между FT (преобразование Фурье) и FFT состоит в том, что FT рассматривает непрерывный сигнал, а FFT принимает дискретный сигнал в качестве входного. DFT преобразует последовательность (дискретный сигнал) в ее частотные составляющие точно так же, как FT для непрерывного сигнала. В нашем случае у нас есть последовательность амплитуд, выбранных из непрерывного звукового сигнала. Алгоритм DFT или FFT может преобразовать этот дискретный сигнал временной области в частотный.

Обзор алгоритма БПФ

Простая синусоида для понимания БПФ

Чтобы понять результат БПФ, давайте создадим простую синусоиду.Следующий фрагмент кода создает синусоидальную волну с частотой дискретизации = 100, амплитудой = 1 и частотой = 3 . Значения амплитуды вычисляются каждые 1/100 секунды (частота дискретизации) и сохраняются в списке с именем y1. Мы передадим эти дискретные значения амплитуды для вычисления ДПФ этого сигнала с помощью алгоритма БПФ.

Если вы нанесете эти дискретные значения (y1), сохраняя номер выборки на оси x и значение амплитуды на оси y, он сгенерирует красивый график синусоидальной волны, как показано на следующем снимке экрана —

Теперь у нас есть последовательность амплитуд, сохраненная в список y1.Мы передадим эту последовательность алгоритму БПФ, реализованному scipy. Этот алгоритм возвращает список yf из комплексных амплитуд частот , найденных в сигнале. Первая половина этого списка возвращает термины с положительной частотой, а другая половина возвращает термины с отрицательной частотой, которые аналогичны положительным. Вы можете выбрать любую половину и вычислить абсолютные значения для представления частот, присутствующих в сигнале. Следующая функция берет образцы в качестве входных данных и строит график частот —

На следующем графике мы построили частоты для нашей синусоидальной волны, используя указанную выше функцию fft_plot.Вы можете видеть, что этот график ясно показывает одно значение частоты, присутствующее в нашей синусоиде, которое равно 3. Кроме того, он показывает амплитуду, связанную с этой частотой, которую мы оставили равной 1 для нашей синусоидальной волны.

Чтобы проверить выходной сигнал БПФ для сигнала, имеющего на более одной частоты , давайте создадим еще одну синусоидальную волну. На этот раз мы оставим , частота дискретизации = 100, амплитуда = 2 и значение частоты = 11 . Следующий код генерирует этот сигнал и строит синусоидальную волну —

Сгенерированная синусоида выглядит как на графике ниже.Было бы более плавно, если бы мы увеличили частоту дискретизации. Мы сохранили частоту дискретизации = 100 , потому что позже мы добавим этот сигнал к нашей старой синусоиде.

Очевидно, функция БПФ также покажет одиночный всплеск с частотой = 11 и для этой волны. Но мы хотим увидеть, что произойдет, если мы сложим эти два сигнала с одинаковой частотой дискретизации, но с разными значениями частоты и амплитуды. Здесь последовательность y3 будет представлять результирующий сигнал.

Если мы построим сигнал y3, он будет выглядеть примерно так —

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

БПФ для нашего аудиосигнала

Теперь, когда мы увидели, как этот алгоритм БПФ дает нам все частоты в данном сигнале. давайте попробуем передать в эту функцию наш исходный аудиосигнал. Мы используем тот же аудиоклип, который мы ранее загрузили в питон, с частотой дискретизации = 16000 .

Теперь посмотрите на следующий график частот. Этот сигнал «длиной 3 секунды» состоит из тысяч различных частот. Амплитуды значений частот> 2000 очень малы, так как большинство этих частот, вероятно, вызвано шумом.Мы наносим на график частоты в диапазоне от 0 до 8 кГц, потому что наш сигнал был дискретизирован с частотой дискретизации 16k, и согласно теореме дискретизации Найквиста он должен иметь только частоты ≤ 8000 Гц (16000/2).

Сильные частоты находятся в диапазоне от 0 до 1 кГц только потому, что этот аудиоклип был человеческой речью. Мы знаем, что в типичной человеческой речи этот диапазон частот преобладает.

Звуковой визуализатор

Звуковой визуализатор

Визуализация, анализ и аннотирование музыкальных аудиозаписей

Тони
Состав Sonic
Звуковой визуализатор

Sonic Visualiser — бесплатное приложение с открытым исходным кодом для
Windows, Linux и Mac — первая программа, которую вы
достигните, когда вы хотите внимательно изучить музыкальную запись.Это
предназначен для музыковедов, архивистов, обработки сигналов
исследователей и всех, кто ищет дружелюбный взгляд на
то, что находится внутри аудиофайла.

Sonic Visualiser версии 4.3 был выпущен 18 января 2021 года. Загрузите его здесь!

Sonic Visualiser — одно из четырех приложений:

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

Цитирование: Если вы используете Sonic Visualiser в исследовательской работе для публикации, процитируйте (pdf | bib) Chris Cannam, Christian Landone и Mark Sandler, Sonic Visualiser: приложение с открытым исходным кодом для просмотра, анализа, и аннотирование музыкальных аудиофайлов , в материалах Международной конференции ACM Multimedia 2010.