Le format WAV (contraction de « WAVEform audio format ») est un standard de stockage de données audio numérique défini par Microsoft et IBM.
Il s'agit probablement du format de stockage audio le plus répandu, étant donné qu'il s'agit du format natif des sons du système d'exploitation Microsoft Windows.
Le format WAV n'est pas en réalité un format de codage mais un format de conteneur audio. Ainsi, un fichier WAV est structuré selon le standard RIFF (Resource Interchange File Format), définissant une structure permettant d'encapsuler des données multimédias.
Un fichier WAV peut ainsi contenir
Le format WAV définit une structure de données permettant d'accueillir des données audio sous forme de morceaux (en anglais chunks). Il s'agit de structures de données imbriquées, à la manière de poupées russes.
La structure globale du fichier est la suivante :
| Adresse (octet) | Nom | Taille (oct.) | Description |
|---|---|---|---|
| 00h | rID | 4h | Mot «RIFF» |
| 04h | rLen | 4h | Taille du morceau de données (chunk) |
| 08h | rData | rLen | Morceau de données (chunk) |
La section rData contient le chunk, codé sous la forme suivante :
| Adresse (octet) | Nom | Taille (octet) | Description |
|---|---|---|---|
| 00h | wID | 4 | Terme “WAVE” |
| 04h | Format Chunk | 18 | Format utilisé |
| 1Ch | WAVE Data Chunk | ? | Données |
| Décalage (octet) | Nom | Taille (octet) | Description |
|---|---|---|---|
| 00h | fId | 4 | Terme «fmt » (l'espace est nécessaire) |
| 04h | fLen | 4 | ?? |
| 08h | wFormatTag | 2 | Format (en général 1 pour le format Microsoft Pulse Code Modulation) |
| 0Ah | nChannels | 2 | Nombre de canaux (1=mono, 2=stéréo) |
| 0Ch | nSamplesPerSec | 4 | Fréquence d’échantillonage (en Hz) |
| 10h | nAvgBytesPerSec | 4 | nChannels * nSamplesPerSec * (nBitsPerSample/8) Permet d'estimer la taille du tampon nécessaire |
| 14h | nBlockAlign | 2 | nChannels * (nBitsPerSample / 8) Permet l’alignement du tampon |
| 16h | FormatSpecific | 2 | Longueur d’un échantillon en bits (8 ou 16) |
| Adresse (octet) | Nom | Taille (octet) | Description |
|---|---|---|---|
| 00h | dId | 4 | Terme «data» |
| 04h | dLen | 4 | Longueur du champ dData (en octets) |
| 08h | dData | dLen | Données du son échantillonné |
Le champ dData est formatté comme suit :