Leer archivo WAV en C.

Junio 29 20092 comentarios

Guardado en : Programaci贸n

#include <stdio.h>
#include <stdlib.h>
char bufer[500];
typedef struct swav
{
  char Riff[4];
  long longRiff;
  char Wave[4];			// 
  long longWave;
  char Fmt[4];
  long lonFmt;			// LONGITUD DE LOS DATOS 
  //QUE VIENEN A CONTINUACION  
  int catego;			//   2  
  int canales;			//  2  
  unsigned int frecuencia;	//2  
  int alinea;
  unsigned int especifico;
  char bloque[4];
  long cuerpo;
  // LONGITUD DEL CUERPO
} TipoWav;
void
main (void)
{
  FILE *arch;
  TipoWav dato;
  long nleer;
  printf ("%d % d ", sizeof (int), sizeof (long));
  arch = fopen ("iowa.wav", "rb");
  if (arch == NULL)
    {
      printf ("NO PUDE ABRIR \n");
      exit (0);
    }
  fseek (arch, 0L, SEEK_SET);
  fread (&dato, sizeof (TipoWav), 1, arch);
  nleer = dato.longitud - sizeof (TipoWav);
  printf ("VOY A LEER % ld ", nleer);
  fclose (arch);
}
Comparte esta informaci贸n:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • LinkedIn
  • Technorati
  • TwitThis

2 Respuestas a “Leer archivo WAV en C.”

  1. Alu dice:

    Hola, quisiera saber que longitud es la que va en la linea
    nleer = dato.longitud – sizeof (TipoWav);
    y si pudieras explicar con mas detalle los datos que conforman la estructura swav, lo que pasa es que tengo que hacer reconocimiento de voz, solo que primero debo sacar los lpc para lo cual necesito un vector que contiene los datos de un archivo wav para aplicarle varios algoritmos, te agradeceria me explicaras un poco mas(supongo que es la forma en la que esta estructurado un archivo wav)

  2. Daniel dice:

    Se fue un dedazo en el c贸digo :P , actualizo el c贸digo para DevCpp, los datos que forman la estructura WAV est谩n bastante bien explicados en muchos sitios (por ejemplo este en la Universidad de Stanford (http://ccrma.stanford.edu/courses/422/projects/WaveFormat/) ), la estructura b谩sica est谩 en la cabecera (los primeros dos bloques est谩n dedicados a marcar la cantidad de bloques, el siguiente a indicar el formato y posteriormente est谩 la informaci贸n propia del archivo (canales, muestreo, etc.).
    En este ejemplo leemos la cantidad de informaci贸n de sonido hay en el archivo, y desp煤es puedes irlos leyendo para realizar tus an谩lisis.

    Nota:

    1. El .WAV es un formato a bloques lo que lo hace m谩s complicado de entender a simple vista).
    2. Te recomiendo que si puedes, utilices un API (DirectSound, OpenAL, SDL) y te ahorres el trabajo a bajo nivel, para el manejo de archivos, en caso contrario, no dudes en preguntar algunas cosas, un poco m谩s espec铆ficas, desp煤es de haber googleado un poco.

    Esperamos verte por aqui nuevamente.

    Espero te sirva y si tienes dudas

Deja un comentario