4.2 FORMATO
Este formato tiene por extensión “.wav” o “.riff” y es un formato diseñado por Microsoft que se convirtió en un estándar en audio digital para PC, estos archivos contienen información del audio del mundo real, esto es la representación digital de una señal analógica. Pueden ser de calidad pequeña como la de una transmisión de radio A.M o de alta calidad como un CD o inclusive mayor. La principal desventaja es su tamaño, un minuto de audio en este formato con calidad CD puede ocupar 10 MB aproximadamente.
Un fichero WAVE se compone de una cabecera formada por el descriptor RIFF seguido de un bloque de datos que consiste en dos subcampos, el campo “fmt” que especifica el formato de los datos y el campo de datos (“data”). A este formato se le conoce como Forma Canónica
Forma canónica del formato de ficheros Wave
OFFSET | TAMAÑO | NOMBRE | DESCRIPCIÓN | |
0 | 4 | ChunkID |
Contiene las letras “RIFF” en formato ASCII (0x52494646 big-endian3) |
|
4 | 4 | ChunkSize |
36 + SubChunk2Size, o más precisamente: 4 + (8+ SubCHunk1Size) + (8 + SubChunk2Size). Este es el tamaño del resto de flujo de datos que sigue a este número. Este es el tamaño del fichero entero en bytes menos los 8 bytes para los dos campos no incluidos en la cuenta anterior: ChunkID y ChunkSize.
|
|
8 | 4 | Format |
Contiene el string “WAVE” (0x57415645 bigendian).
|
|
12 | 4 | SubChunk1ID |
Contiene el string “fmt” (0x666d740 big-endian).
|
|
16 | 4 | SubChunk1Size |
16 para PCM. Este es el tamaño del resto de datos que siguen a este.
|
|
20 | 2 | AudioFormat |
Define como se encuentra codificado el audio en el fichero. Su valor debe ser siempre uno, que significa Pulse Code Modulation (PCM).
|
|
22 | 2 | NumChannels |
Número de canales de audio presentes en el fichero WAV. Para sonidos mono hay un canal, para sonidos estéreo hay dos canales.
|
|
24 | 4 | SampleRate |
El ratio de muestreo expresado en samples por segundo o herzios. El recíproco a este número es la cantidad de tiempo entre samples expresada por segundos. Valores típicos son 11025(calidad telefónica), 22050 (calidad radiofónica), y 44100 (calidad CD).
|
|
28 | 4 | ByteRate |
El número medio de bytes por segundo que un reproductor debe procesar para reproducir audio en tiempo real. Se puede calcular como: SampleRate*NumChannels* BitsPerSample/8.
|
|
32 | 2 | BlockAlign |
Este valor indica cuantos bytes se obtienen en la salida por unidad de tiempo. En PCM es el número de bytes por simple multiplicado por el número de canales.
|
|
34 | 2 | BitPer Sample |
Define el número de bits por amplitud de audio sampleada. Si se usa PCM no hay espacio para parámetros extras.
|
|
36 |
2
x 4 |
ExtraParamSize | ||
ExtraParam | ||||
SubChunk2ID |
Contiene el string “data” |
|||
40 | 4 | SubChunkSize |
Número de bytes de los datos. Se calcula como NumSamples * NumChannels * BitsPeSample/8. |
|
44 |
4 |
Data |
Datos de sonido
|
Como ejemplo a continuación se muestran 72 bytes de un fichero WAVE con los bytes mostrados como números hexadecimales.