Este es mi problema de hobby de "fin de semana".muestras de audio de 8 bits a 16 bit
Tengo algunas formas de onda de ciclo único muy apreciadas de las ROM de un sintetizador clásico.
Estas son muestras de 8 bits (256 valores posibles).
Como son solo 8 bits, el nivel de ruido es bastante alto. Esto se debe a un error de cuantificación. El error de cuantificación es bastante extraño. Desordena todas las frecuencias un poco.
Me gustaría tomar estos ciclos y hacer versiones "limpias" de 16 bits de ellos. (Sí, sé que a la gente le encantan las versiones sucias, así que dejaré que el usuario interpole entre sucio y limpio al grado que quiera.)
Parece imposible, claro, porque he perdido los 8 bits bajos para siempre , ¿derecho? Pero esto ha estado en la parte posterior de mi cabeza por un tiempo, y estoy bastante seguro de que puedo hacerlo.
Recuerde que se trata de formas de onda de ciclo único que se repiten una y otra vez para la reproducción, por lo que este es un caso especial. (Por supuesto, el sintetizador hace todo tipo de cosas para que el sonido sea interesante, incluyendo envolventes, modulaciones, filtros de fundido cruzado, etc.)
Para cada muestra de bytes individuales, lo que realmente sé es que es uno de 256 valores en la versión de 16 bits. (Imagine el proceso inverso, donde el valor de 16 bits se trunca o se redondea a 8 bits.)
Mi función de evaluación está tratando de obtener el mínimo ruido de fondo. Debería poder juzgar eso con una o más FFT.
Las pruebas exhaustivas probablemente llevarían una eternidad, así que podría tomar una primera resolución de baja resolución. ¿O simplemente presiono aleatoriamente valores elegidos aleatoriamente (dentro de los valores conocidos que mantendrían la misma versión de 8 bits) y realizo la evaluación y mantengo la versión más limpia? ¿O hay algo más rápido que pueda hacer? ¿Estoy en peligro de caer en los mínimos locales cuando podría haber algunos mínimos mejores en otra parte del espacio de búsqueda? He tenido que pasar en otras situaciones similares.
¿Hay alguna conjetura inicial que pueda hacer, tal vez al mirar los valores vecinos?
Editar: Varias personas han señalado que el problema es más fácil si elimino el requisito de que la nueva forma de onda sería probar con el original. Es verdad. De hecho, si solo estoy buscando sonidos más limpios, la solución es trivial.
No soy de ninguna manera un experto en DSP, pero una breve búsqueda (http://www.google.com/search?&q=improve++audio++bit+rate) publicó algunos documentos: http://www2.computer.org/portal/web/csdl/doi?doc=abs/proceedings/icme/2001/1198/00/11980031abs.htm, http://iwaenc05.ele.tue.nl/proceedings/papers/S04 -02.pdf. Tal vez eso te da algunas ideas para el próximo fin de semana ;-) –
Gracias divo! Leeré esos. – Nosredna
La mayoría de los documentos que he encontrado hablan de baja frecuencia de muestreo. Solo unos pocos hablan sobre la recuperación del error de cuantificación. Todavía no he decidido si voy a pensar en el error de frecuencia de muestreo, ya que ya tengo un buen interpolador de calidad de audio. – Nosredna