TGViewer
Матчасть Матчасть @matchast · 881 subscribers
Post #246 854
Недавно наткнулся на клёвый курс по обработке аудио. Идея - объяснить математическое устройство звука и показать, как это устройство можно анализировать из python. На выходе слушатель будет способен извлекать из сырых wav-ок информативные фичи, которые можно и глазами разглядывать, и в нейросетку засовывать. Курс построен так, чтобы его могли понять музыканты, и объясняются все детали супер подробно.

По формату этот курс - ютубовский плейлист на насколько часов: https://www.youtube.com/playlist?list=PL-wATfeyAMNqIee7cH3q1bh4QJFAaeNv0. Пару мыслей из него я изложу ниже.

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

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

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

А ещё по спектрограмме можно вычислять более сложные фичи. В типичном звуке голоса много частот, пропорциональных друг другу, а значит, его спектр (после логарифмирования) тоже будет периодическим, и значит, его можно _ещё раз_ разложить в сумму синусоид. Математики назвали такое представление cepstrum (типа spectrum наоборот), а его коэффициенты, MFCC, уже лет 50 являются едва ли не самыми информативными признаками для распознавания речи.

Про все эти фичи (и кучу других) подробно рассказано (и показано) в курсе. Если хотите сразу попробовать анализ звука самостоятельно, берите пакет librosa, и в бой! А если вам интересны какие-то детали, то пишите в комментарии, и я расскажу подробнее (:
More from @matchast
  1. Sep 10, 2024Классный хабр от tech_priestess про внутреннюю размерность фигур и пространств эмбеддингов…
  2. Sep 4, 2024Почему почти у всех полезных матриц маленький ранг? В нашей с вами жизни матрицы малого ра…
  3. Sep 5, 2022Ищем в нашу команду Mathshub талантливых инструкторов в сфере machine learning! Кто мы? Ma…
  4. Aug 11, 2022photo post
  5. Aug 8, 2022Представляю бесплатный интенсив из 20 занятий по питону и математике для начинающих. Орган…
  6. Jul 18, 2022Слева: линейная, изотоническая, и сглаженная изотоническая регрессии. Справа: в зависимост…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →