2012-06-18 11 views
5

¿Cómo puedo extraer información como frecuencia de muestreo, velocidad de bits, etc. de un archivo AMR-NB? Estrictamente hablando, quiero la frecuencia de muestreo o cualquier otra información que pueda alterar su tono o tempo.¿Cómo leer y modificar los datos de archivos de audio amr?

era fácil para los archivos WAV, pero aquí me veo obligado con formato AMR-NB (dispositivos J2ME)

He buscado mucho en google pero no puede conseguir cualquier cosa en él ...

¿AMR-NB está fijado a 8 kHz? o varía con cada muestra?

Respuesta

2

De acuerdo con el formato de archivo AMR en: http://developer.nokia.com/community/wiki/AMR_format Los archivos AMR tienen un encabezado de 6 bytes, seguido de un conjunto de marcos de audio, cada uno con un encabezado de 1 byte. Cada cuadro de audio tiene 20 ms de largo y tiene y la frecuencia de muestreo se da en el encabezado de cada cuadro. así que para leer la frecuencia de muestreo para el primer fotograma, necesita leer el séptimo byte en el archivo. Tome el séptimo byte y desplácelo hacia la derecha 3 bits, y enmascare los 4 bits más bajos del nuevo valor. En java esto es "((valor >> 3) & 0x0F)" donde value es el encabezado de 1 byte para el marco. Luego, compruebe ese número en la tabla siguiente para determinar la velocidad de bits de ese fotograma. luego, dado que cada fotograma tiene 20 ms de longitud, debe multiplicar la tasa de bits (lo dan como kb/s para multiplicar ese número por 1000 para obtener los bits por segundo) por 20 y dividir por ((8 bits por byte) * 1000ms por segundo) = 8000 para obtener la cantidad de bytes que se saltan para el siguiente encabezado de cuadro. Si desea modificar el contenido del marco, simplemente vuelva a copiar los cuadros en secuencia en un nuevo archivo, pero reemplace su nuevo marco por uno nuevo. Un archivo temporal es bueno para esto. He copiado la tabla de tasa de bits de la página fuente a continuación para referencia.

0 - AMR 4,75 - codifica al 4.75kbit/s

1 - AMR 5,15 - codifica al 5.15kbit/s

2 - AMR 5,9 - codifica al 5.9kbit/s

3 - AMR 6,7 - codifica al 6.7kbit/s

4 - AMR 7,4 - codifica al 7.4kbit/s

5 - AMR 7,95 - codifica al 7.95kbit/s

6 - AMR 10.2 - codifica al 10.2kbit/s

7 - AMR 12.2 - codifica al 12.2kbit/s

Cuestiones relacionadas