Pregunta

Tengo una pregunta interesante hoy en día.

Necesito convertir algunos archivos de audio pokemon a una lista de muestras de 8 bits (0-255 valores). Estoy escribiendo una rutina de ensamblaje en el chipset MC6800 que requerirá estos sonidos para ser jugado. Planeo incluyendo una matriz con las muestras de 8 bits que el bucle se programa a través de cuando una función es llamada.

¿Alguien sabe una forma de convertir archivos de audio (WAV / MP3) en una lista separada por comas de los valores de la muestra de texto de 8 bits? o nada de este método respecto?

Muchas gracias de antemano!

¿Fue útil?

Solución

Puede utilizar la herramienta de línea de comandos "sox" o el editor de audio Audacity para convertir el archivo a un archivo en bruto, sin signo de 8 bits de audio mono.

En Audacity 1.3 o superior, abrir el audio a continuación, seleccione Exportar, elija "Wave, AIFF, y otros tipos sin comprimir" como el formato, a continuación, haga clic en Opciones ... - a continuación, elegir la opción "Otros ..." para el formato, "RAW" para la cabecera, y Firmado PCM de 8 bits como la codificación. (Lo sentimos, unsigned no está disponible.)

Desde la línea de comandos, intente sox con -c 1 para 1 canal, -t prima para ninguna cabecera, -u para lineal sin signo, y -1 para 1 byte por muestra.

A continuación, puede utilizar una herramienta como "hexdump" para volcar los bytes del archivo como números y pegarlos en su código.

Otros consejos

Medias no lo tiene, tendrá que utilizarlo para generar cruda (sin cabeceras) archivos y convertir los archivos rAW a sí mismo separada por comas.

EDIT: Medias tiene "datos de texto sin formato" como uno de sus formatos, desde la página web. Puede que sea convertir sus archivos de sonido a sin firmar muestras de 8 bits lineales en una primera pasada y probablemente obtener exactamente el resultado que desee mediante esta opción para la salida.

Para .wav es un proceso muy simple. Puede encontrar la especificación .wav fácilmente con una búsqueda en Google. Se compone de una cabecera entonces muestras simplemente primas. Debe leer el encabezado en primer lugar, a continuación, recorrer todas las muestras. Por lo general, son muestras de 16 bits, por lo que desea normalizarlos de entre -32768 y 32767 a su rango de 0-255. Sugiero escalamiento simple al principio. Si eso no es un éxito tal vez encontrar el mínimo y máximo real entre las muestras y ajustar su escala en consecuencia.

Bueno, mucho depende de su formato de audio. El formato de onda, por ejemplo, consiste en comprimir los datos PCM intercalada.

es decir, para un archivo estéreo de 8 bits cada muestra se organizarán de la siguiente manera.

[Sample Left 1] [Sample derecha 1] [Sample Left 2] [Derecha Sample2] ... [Muestra izquierda n] [muestra derecho n].

es decir, cada muestra estéreo 8 bit se almacena en 2 bytes. 1 para el canal izquierdo y 1 para la derecha. Este es el formato de datos de su hardware de sonido será más probable es que requieren.

Un archivo de audio 16 o 24 bits funcionará de cada camino, pero las muestras de izquierda y derecha será de 2 o 3 bytes cada uno, respectivamente.

Es evidente que un archivo de onda tiene una carga de extyra información contenida en él. De ello se sigue el formato RIFF. Puede encontrar información sobre ella y los archivos de la onda "trozos" utilizar en lugares tales como www.wotsit.org.

Para descomprimir un archivo MP3 es más complicado. Usted es el mejor de apoderarse de un descompresor y ejecutarlo en el audio codificado MP3. TI escupir datos PCM que arriba desde el otro lado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top