Waveform Audio File Format

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

WAVE
Waveform Audio File FormatCaractéristiques
Extensions .wav, .WAV
Type MIME audio/vnd.wave, audio/wav, audio/wave, audio/x-wav, audio/x-pn-wav
PUID fmt/6
Signatures 52494646{4}57415645 (PRONOM regex)
WAVE (ascii)
57 41 56 45 (hexa)
Développé par IBM, Microsoft
Version initiale Août 1991
Conteneur de fichiers MPEG-1/2 Audio Layer 3, Dolby Digital, Adaptive Transform Acoustic Coding, Linear pulse code modulation, Adaptive Differential Pulse Code Modulation, MQA, MPEG-1 Audio Layer II (en)
Basé sur Resource Interchange File Format
Origine de BWF, RF64
Spécification Format ouvert

Le Waveform Audio File Format (WAVE, ou WAV en rapport avec son extension de fichier), est un format conteneur destiné au stockage de l'audio numérique mis au point par Microsoft et IBM et dont la version initiale fut publiée pour la première fois en août 1991. Le format WAVE est construit conformément au Resource Interchange File Format, c'est pourquoi on parle parfois de « RIFF/WAVE ».

Généralités

Le format WAV est un format conteneur capable de recevoir des flux audio aussi variés que le MP3, l'AC-3, l'ATRAC, l'ADPCM, le PCM. Ce dernier étant de très loin le plus courant, les fichiers .wav sont souvent, à tort, considérés comme correspondant à des fichiers audio « sans perte » (en anglais lossless).

L'emploi du format WAV est standardisé sous Windows ; son pendant sous la plate-forme Macintosh est l'AIFF/AIFC.

Emploi

Le format WAV associé à l'audio PCM demeure aujourd'hui encore le format de prédilection en production musicale et audiovisuelle. Il est largement employé comme format d'enregistrement par des systèmes comme Pro Tools, Pyramix, Fairlight ou encore par les fabricants d'enregistreurs matériels comme Sound Devices ou Nagra.

Ce succès est en partie dû au fait que, de par sa structure en blocs de données, le format WAV peut facilement s'adapter aux contraintes des logiciels d'enregistrement et d'édition, qui n'hésitent pas à ajouter de nouveaux blocs propriétaires au gré de leurs besoins, tout en maintenant une compatibilité parfaite avec les autres logiciels.

Aussi, plusieurs nouveaux blocs ont été standardisés par l'EBU avec le BWF (Broadcast Wave Format), permettant d'ajouter aux fichiers WAV diverses métadonnées comme le Time Code, la localisation, ou encore l'ajout de remarques sur la qualité de prise de son.

En revanche, le format WAV n'est pas ou peu employé pour la diffusion, où l'on préférera un format de compression qui permettra une réduction significative de la taille du flux tout en maintenant une qualité de restitution acceptable.

Limitations

De nombreuses implémentations de lecteurs grand public ne suivent pas le standard et simplifient grandement l'interprétation des fichiers WAV, omettant ainsi certains blocs de données. Par exemple, l'INFO List permet d'ajouter des métadonnées descriptives généralistes incluant l'artiste, le genre ou encore les informations de droit d'auteur.

Certains logiciels ont choisi d'implémenter d'autres solutions pour l'ajout de métadonnées descriptives plus adaptées à l'audio, comme l'ID3 ou l'APE tag (en). Mais le manque de standardisation pour l'inclusion de ces formats aux fichiers WAV implique souvent des difficultés quant à l’interopérabilité des logiciels.

Bien que là aussi, certains logiciels limitent les fichiers WAV à 2 Gio, le format WAV est en réalité limité à une taille de fichier de 4 Gio, ce qui peut être problématique dans certains domaines. Par exemple, 4 Gio équivaut à un peu moins de 40 minutes d'informations au format 5.1 en 24 bit/96 kHz. C'est une des raisons ayant incité Apple à développer un nouveau conteneur nommé Core Audio Format (CAF).

Cette limite de 4 Gio a cependant été repoussée avec le format RF64, qui l'étend jusqu'à 16 exbioctet. Le format RF64, bien que reposant sur le format WAV, n'est cependant pas rétro-compatible, et nécessite par conséquent un lecteur adapté.

Structure des fichiers WAV

Le format RIFF, sur lequel repose le format WAV, définit une structure de fichier qui repose sur une succession de blocs de données (chunks).

Chaque bloc est identifié par 4 octets (un identifiant FourCC : 4 symboles ASCII) suivi de la taille du bloc codé sur 4 octets. Si un lecteur rencontre un bloc qu'il ne connaît pas, il passe au suivant. Un fichier wav doit au minimum contenir un bloc appelé fmt␣(le glyphe « ␣ » représente une espace) (code signifiant format) et un bloc appelé data. Le bloc fmt␣(le glyphe « ␣ » représente une espace) doit être positionné en amont du bloc data.

En-tête de fichier WAV

L'en-tête d'un fichier WAV commence dès le premier octet (offset 0). Il a une taille de 44 octets, et est constitué des champs suivants (listés dans l'ordre) :

FileTypeBlocID (4 octets) : Constante « RIFF » (0x52,0x49,0x46,0x46) FileSize (4 octets) : Taille du fichier moins 8 octets FileFormatID (4 octets) : Format = « WAVE » (0x57,0x41,0x56,0x45) FormatBlocID (4 octets) : Identifiant « fmt␣(le glyphe « ␣ » représente une espace) » (0x66,0x6D, 0x74,0x20) BlocSize (4 octets) : Nombre d'octets du bloc - 16 (0x10) AudioFormat (2 octets) : Format du stockage dans le fichier (1: PCM entier, 3: PCM flottant, 65534: WAVE_FORMAT_EXTENSIBLE) NbrCanaux (2 octets) : Nombre de canaux (de 1 à 6, cf. ci-dessous) Frequence (4 octets) : Fréquence d'échantillonnage (en hertz) BytePerSec (4 octets) : Nombre d'octets à lire par seconde (c.-à-d., Frequence * BytePerBloc). BytePerBloc (2 octets) : Nombre d'octets par bloc d'échantillonnage (c.-à-d., tous canaux confondus : NbrCanaux * BitsPerSample/8). BitsPerSample (2 octets) : Nombre de bits utilisés pour le codage de chaque échantillon (8, 16, 24) DataBlocID (4 octets) : Constante « data » (0x64,0x61,0x74,0x61) DataSize (4 octets) : Nombre d'octets des données (c.-à-d. "Data", c.-à-d. taille_du_fichier - taille_de_l'entête (qui fait 44 octets normalement). DATAS : * Les Canaux : 1 pour mono, 2 pour stéréo 3 pour gauche, droit et centre 4 pour face gauche, face droit, arrière gauche, arrière droit 5 pour gauche, centre, droit, surround (ambiant) 6 pour centre gauche, gauche, centre, centre droit, droit, surround (ambiant) NOTES IMPORTANTES : Les octets des mots sont stockés sous la forme petit-boutiste (c'est-à-dire en little endian) JunkBlocId (4 octets) : Constante « JUNK » (0x4A,0x55,0x4E,0x4B) JunkBloc (32 octets): 0x1C (séparateur de fichier) puis 31 fois 0x00

Édition

Il existe de nombreux logiciels, nommés éditeurs audio, qui permettent d'éditer, amplifier, normaliser, de modifier la vitesse ou la hauteur du son, ou encore d'appliquer des effets (écho, fondu...) sur des fichiers WAV, par exemple : Ardour, Audacity, GoldWave, Ocenaudio, Sound Forge, WaveLab et WavePad.

Conversion

Références

  1. (en) « RFC2361 », sur ietf.org, juin 1998 (consulté le 16 juin 2017)
  2. (en) « Sound Devices - 688 », sur sounddevices.com (consulté le 17 juin 2017)
  3. (en) « Nagra Seven », sur nagraaudio.com (consulté le 17 juin 2017)
  4. (en) UER, « Tech 3306 - MBWF / RF64 : An extended File Format for Audio » , 2009 : « The reason for the 4 Gbyte barrier is the 32-bit addressing in RIFF/WAVE and BWF. With 32 bits a maximum of 4 294 967 296 bytes = 4 Gbyte can be addressed. », p. 7
  5. (en) IBM Corporation & Microsoft Corporation, Multimedia Programming Interface and Data Specifications 1.0 (Standard RIFF et WAVE), 1991 (lire en ligne), «Programs must expect (and ignore) any unknown chunks encountered, as with all RIFF forms. However, <fmt-ck> must always occur before <wave-data>, and both of these chunks are mandatory in a WAVE file.» p.56

Voir aussi

Articles connexes

Liens externes