#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:
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)
Se fue un dedazo en el c贸digo
, 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:
Esperamos verte por aqui nuevamente.
Espero te sirva y si tienes dudas