Про работу звука в компьютере - №1. Как звук становится числами

Было время, когда я активно использовал FL Studio, но я никогда не задумывался о том, как устроена программа и сам звук. Что ж, ввиду моего активного погружения в программирование в последние полтора месяца, пришло время наверстать это.

Для начала разберем, что такое звук и как компьютер его оцифровывает.

Что такое звук

Для начала разберёмся, что вообще из себя представляет звук.

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

Ухо улавливает эти колебания — и мы слышим звук.

Важно вот что:
в аналоговом, реальном мире звук — это непрерывная волна.
Она не состоит из отдельных шагов или точек, она течёт плавно и без остановок.

Оцифровка звука

Компьютер устроен иначе.
Он не понимает волн, воздуха или вибраций. Он умеет работать только с числами — в самом простом виде это 0 и 1.

Поэтому, чтобы компьютер «понял» звук, его нужно перевести с языка волн на язык чисел.

Как это происходит?

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

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

Много раз в секунду» — это сколько? Самое распространённое значение — 44 100 раз в секунду (44,1 кГц).

Это число выбрано не случайно. Оно связано с теоремой Найквиста—Шеннона, но суть можно объяснить без математики:

  • Человеческое ухо слышит звуки примерно до 20 кГц.
  • Чтобы корректно записать такую волну, нужно измерять её как минимум в два раза чаще, чем самая высокая частота.

Если измерять слишком редко:

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

Поэтому:

  • 20 кГц — это предел слуха,
  • ~40 кГц — минимально допустимая частота измерений,
  • 44,1 кГц — безопасный стандарт с запасом.

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

Резюмируя

  • в реальном мире звук — это непрерывная волна
  • компьютер волн не понимает
    • он измеряет волну много раз в секунду
    • результат — это набор чисел
    • чем чаще измерения, тем точнее звук

В следующей части разберу, почему звук - это не просто числа