WAV () — формат аудіофайлу, розроблений компаніями Microsoft та IBM. WAVE базується на форматі RIFF, поширюючи його на інформацію про такі параметри аудіо, як застосований кодек, частота дискретизації та кількість каналів. WAV як і RIFF передбачався для комп'ютерів IBM PC, тому всі змінні записані у форматі little endian. Відповідником WAV для комп'ютерів PowerPC є AIFF.

Хоча файли WAVE можуть бути записані за допомогою будь-яких кодеків аудіо, зазвичай використовується нестиснений PCM, який призводить до великих обсягів файлу (близько 172 кБ на секунду для CD-якості). Іншим недоліком файлу є обмеження обсягу до 4 ГБ, через 32-бітну змінну. Формат WAV був частково витіснений стисненими форматами, проте, завдяки своїй простоті, надалі знаходить широке використання в процесі редагування звуку та на переносних аудіопристроях, як програвачі та цифрові диктофони.

Канонічний формат файлу

WAVE файл складається з двох частин: заголовку файлу і області даних.

Канонічний формат WAVE файлу починається з RIFF заголовку і двох підсекцій: "fmt " і "data". Підсекція "fmt " описує параметри даних звукозапису. У підсекції даних "data" міститься розмір даних і фактичні дані звукозапису.

+ Структура WAV файлу Позиція (HEX) Позиція Розмір Назва Пояснення

RIFF Заголовок 0000 0 4 байти ChunkID Містить літери "RIFF" в ASCII кодуванні

(0x52494646 у порядку байт big-endian) 0004 4 4 байти ChunkSize 36 + SubChunk2Size, або більш точно: 4 + (8 + SubChunk1Size) + (8 + SubChunk2Size)

Це розмір всього файлу в байтах, не враховуючи 8 байтів перших двох полів: ChunkID і ChunkSize. 0008 8 4 байти Format Містить літери "WAVE" (0x57415645 у порядку байт big-endian).

Підсекція "fmt " 000C 12 4 байти Subchunk1ID Містить літери "fmt "

(0x666d7420 у порядку байт big-endian). 0010 16 4 байти Subchunk1Size Приймає значення 16 для формату кодування PCM. Це розмір області цієї підсекції, що слідує після цього поля. 0014 20 2 байта AudioFormat PCM = 1 (Лінійне квантування)

Значення відмнінні від 1 вказують на наявність конкретного

кодування аудіо даних. 0016 22 2 байта NumChannels Кількість звукових каналів. Моно = 1, Стерео = 2, і т.д. 0018 24 4 байти SampleRate Частота дискретизації у Герцах. Наприклад, 8000, 44100, інші. 001С 28 4 байти ByteRate = SampleRate * NumChannels * BitsPerSample/8 0020 32 2 байта BlockAlign = NumChannels * BitsPerSample/8

Кількість байт, яка міститься в одному семплі враховуючи кількість каналів. 0022 34 2 байта BitsPerSample Кількість біт в одному семплі. Так звана "глибина" чи точність звучання.

8, 16, 32, і так далі. 2 байта ExtraParamSize Розмір поля з параметрами. Якщо PCM, ці два поля ExtraParamSize і ExtraParams не записуються. X ExtraParams Місце для запису додаткових параметрів

Підсекція "data" 0024 36 4 байти Subchunk2ID Містить літери "data"

(0x64617461 у порядку байт big-endian). 0028 40 4 байти Subchunk2Size Розмір даних звукозапису в байтах, які містяться в наступному полі.

Кількість семплів * NumChannels * BitsPerSample/8 002С 44 X Data Фактичні дані звукозапису. Програми редактори Sound Forge

Програми відтворювачі Winamp Aimp foobar2000

Посилання Opis budowy pliku (En) Список зареєстрованих кодеків звуку codenet (Rus) kazus (Rus) wav-pcm.narod.ru (Rus) Структура WAV файла (Rus) WAVE PCM soundfile format (En) WAV & BWF Metadata Guide (En)