Foros del Web » Programación para mayores de 30 ;) » Java »

Extraer informacion de archivos de audio

Estas en el tema de Extraer informacion de archivos de audio en el foro de Java en Foros del Web. Hola, Estoy trabajando en una aplicacion que debe extraer informacion de los archivos de audio. A partir de un archivo MP3 soy capaz de convertirlo ...
  #1 (permalink)  
Antiguo 15/06/2009, 11:27
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Extraer informacion de archivos de audio

Hola,

Estoy trabajando en una aplicacion que debe extraer informacion de los archivos de audio.

A partir de un archivo MP3 soy capaz de convertirlo a formato WAV y guardarlo (la conversion es correcta, el archivo se reproduce correctamente y el tamaño del nuevo archivo es bastante mas grande, como era de esperar)

Para extraer la informacion no es necesario hacer esta conversion; puedo obtener un objeto de tipo AudioFormat, que lleva el formato WAV.

Soy capaz de guardar en un array los bytes que voy extrayendo del archivo de audio. De acuerdo con lo que he podido averiguar Java usa los datos en formato big endian. Los datos del archivo de audio que guardo en el array tienen el siguiente formato:

AA BB CC DD EE...--> byte [] sampleArray ;

Cada muesta son 16 bits (little endian, signed); de esta forma AA es el low-order byte de la muestra 1 y BB es el high-order byte de la misma muestra.

Ahora llego al parte que me tiene confundido; necesito almacenar el valor de cada muestra en una variable de tipo double, para despues calcular la DFT. Creo que lo que hay que hacer es invertir el orden del los bytes, para tener BBAA (porque java usa big endian), pero ademas tenemos que tener en cuenta el signo,(el valor de cada muestra esta en complemento a 2).


Es aqui donde me pierdo, ¿como hago para convertir correctamente los bytes AA BB que tengo en el array a un valor de tipo double sobre el que despues pueda aplicar operaciones matematicas?

Muchas gracias de antemano a los que leais el post.

Última edición por dedalo81; 15/06/2009 a las 11:31 Razón: gramatica
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:13.