algorithm performance audio signal-processing psychoacoustics

algorithm - Determinar la mejor calidad de audio



performance signal-processing (10)

¿Cómo se puede determinar la mejor calidad de audio en una lista de archivos de audio del mismo clip de audio, sin mirar el encabezado del archivo de audio ? La parte difícil es que todos los archivos provienen de diferentes formatos y velocidades de bits, y todos fueron transcodificados al mismo formato y velocidad de bits. ¿Cómo se puede hacer esto de manera eficiente?


Creo que la respuesta del despropósito es buena, suponiendo que solo estás tratando de estimar un conjunto de parámetros. Desafortunadamente, también debe definir una función de comparación para los parámetros que ha estimado.

¿Qué sucede si dos compresiones han aplicado un filtro de paso de banda con rangos de frecuencia igualmente grandes, pero una de las admite frecuencias más altas que la otra? ¿Es uno de ellos mejor? ¿Cúal?

La respuesta probablemente dependa de qué frecuencias se usan más en los archivos con los que está trabajando.

Una medida objetiva sería ver qué archivo ha perdido menos entropía . Desafortunadamente, esto no es fácil de hacer correctamente.


Muchas de las respuestas esbozadas aquí se refieren a mediciones de audio comunes como THD + N, SNR, etc. Sin embargo, estas no siempre se correlacionan bien con el oído humano de los artefactos de audio. Las técnicas de compresión de audio con pérdidas suelen funcionar aumentando THD + N y SNR, pero pretenden hacerlo de formas que el oído humano no puede detectar. Una técnica de medición de audio más tradicional puede encontrar SNR disminuida en una cierta banda de frecuencia, pero ¿eso importa si hay tanta energía en las bandas adyacentes que nadie notará la diferencia?

El trabajo de investigación titulado " Una medida de calidad de audio perceptual basada en una representación de sonido psicoacústico " describe un algoritmo para cuantificar la capacidad del oído humano para detectar diferencias audibles, según un modelo de cómo escucha el oído. Tiene en cuenta los factores que se correlacionan con la calidad de audio tal como la perciben los humanos. El documento incluye un estudio que compara los resultados de su algoritmo con pruebas subjetivas doble ciego, para darle una idea de qué tan bien funciona su modelo.

No pude encontrar una copia gratuita de este documento, pero una biblioteca universitaria decente debería tenerla archivada.

Implementar el algoritmo requeriría cierto conocimiento del procesamiento de la señal de audio en el dominio de la frecuencia. Un estudiante con experiencia en DSP debería ser capaz de implementarlo. Si no tiene la forma de onda de referencia, puede utilizar la información de este documento para cuantificar cómo pueden ser los artefactos objetables.

El algoritmo funcionaría en audio PCM, preferiblemente alineado en el tiempo, y ciertamente no requiere conocimiento del tipo de archivo o encabezado.


No estoy muy seguro de esto, pero este es un buen lugar para comenzar:

http://en.wikipedia.org/wiki/Signal-to-noise_ratio

No creo que puedas calcular la SNR a partir de una señal, pero si tienes una colección de señales, entonces podrías calcular la SNR comparándolas todas.

Hay algunos enlaces interesantes en la parte inferior de la página que también podrían proporcionar algunas rutas de interés si eso no es posible.

Además, no soy ingeniero de audio, pero sé un poco sobre el procesamiento de la señal, ¿hay alguna manera de medir los niveles de cuantificación en las señales de audio? Quizás algo para investigar.


No soy un desarrollador de software (soy ingeniero de audio) y lo que oyes cuando comprimes con algoritmos mp3 es: - menos frecuencias altas: para que puedas verificar una pérdida en la energía de la gama más alta - estéreo distorsionado: entonces puedes hacer una matriz Mid / Side, y verificar la THD en la coherencia de fase Side-less: quizás puedas verificar eso con un correlador

Espero que ayude, ¡es una tarea difícil para una computadora!


Primero, no soy ingeniero de audio , pero he estado tratando de mantenerme al tanto sobre la compresión de audio porque tengo una gran colección de mp3 y tengo algunas ideas para compartir sobre el tema.

¿Es la mejor calidad de audio que estás buscando desde una perspectiva humana? Si es así, no se puede medir por "medios objetivos" como comparar spectograms y tal.

Si un spectogram es feo, no necesariamente significa que la calidad es terrible. Lo que importa es si alguien puede distinguir un archivo codificado de una fuente original haciendo una prueba ciega. Período. Si desea verificar la calidad de una pista de audio codificada, debe realizar una prueba ABX a ciegas .

LAME (y todos los demás tipos de compresores MP3, AAC, AC3, DTS, ATRAC ... con pérdida) se denomina codificador perceptual. Explota ciertos hechos sobre la naturaleza de la percepción del audio humano. Entonces, no puedes confiar solo en los espectrogramas para evaluar su calidad.

Fuente

Ahora, si sus objetivos son de maneras / perspectivas objetivas, podría usar EAQUAL , que significa Evaluación de calidad de audio:

Es una técnica de medición objetiva utilizada para medir la calidad de los archivos de audio codificados / decodificados (muy similar a PEAQ)

(...)

Los resultados, sin embargo, cuando se usan metodologías de prueba objetivas aún no son concluyentes y, en su mayoría, solo son utilizados por desarrolladores e investigadores de códecs.

... o la herramienta de análisis estadístico Friedman .

(...) realiza varios análisis estadísticos en conjuntos de datos, lo cual es particularmente adecuado para escuchar datos de prueba.

No digo que los analizadores de espectro sean inútiles. Es por eso que publiqué algunas utilidades. Solo digo que tenga cuidado con todos estos métodos estadísticos: como dijo una vez alguien de la comunidad de Hydrogenaudio, no escucha con los ojos. (mira este hilo que publiqué también, es un gran recurso). Para realmente probar la calidad del audio desde una perspectiva humana, debes probar oídos y no gráficos.

Este es un tema complicado, y en mi humilde opinión le sugiero que busque una comunidad de audio especializada como Hydrogenaudio .


Si el archivo transcodificado está en un formato sin pérdida, puede revertir el audio a su muestra original y velocidad de bits.

Si los archivos han sido transcodificados de lossless a lossy, entonces es probable que sea imposible entender su muestra anterior y las velocidades de bits. Creo que los algoritmos y / o las técnicas de observación para identificar cualquier muestra comprimida con pérdida y las tasas de bits de sus originales están pidiendo demasiado para una tarea que al final no es tan útil de todos modos.

Desafortunadamente también en este caso, las técnicas de compresión sin pérdida no se usan ampliamente porque la cantidad de compresión que producen es relativamente pequeña.

¡Mira este muy buen artículo sobre el tema!

Él dice que: "Una técnica de compresión sin pérdida es aquella que produce una señal comprimida a partir de la cual la señal original puede reconstruirse perfectamente".

Asumiendo que probablemente esté usando datos de audio comprimido con pérdida, diría que su pregunta es casi imposible sin mucha investigación y el desarrollo de un algoritmo complejo para detectar correlaciones de tasa de muestreo y tasa de bits.

Además, tengo que decir: ¿por qué quieres hacer esto? ¿Es para convertir mp3 con pérdida de nuevo en audio de alta calidad?

editar: Ese artículo también dice "es necesario saber, o ser capaz de averiguar, la frecuencia de muestreo, resolución, firma y endianidad de los datos" con respecto a la interpretación de datos de audio.

Si la compresión que está utilizando es mp3, entonces es prácticamente imposible a menos que se utilice una compresión sin pérdida y no se eliminen datos de bits de los marcos de muestra.

¡¡¡Buena suerte, aunque podría estar equivocado !! :)


Si entiendo correctamente, tienes un montón de archivos de audio que comenzaron en diferentes formatos con calidad variable. Todos han sido convertidos al mismo formato, por lo que no puede usar el encabezado para determinar cuáles originalmente eran de alta calidad y cuáles no.

Es este un problema difícil. Existen potencialmente algunos trucos que podrían detectar algunos problemas de calidad, pero detectar, digamos, algo que se haya convertido a partir de un algoritmo de compresión de baja velocidad de bits como MP3 sería muy difícil.

Algunos trucos fáciles:

  • Verifique la amplitud máxima: si es baja, la calidad no será buena.
  • Mida la frecuencia más alta: si es baja, es posible que el original haya tenido una frecuencia de muestreo menor.

Si no tienes el audio original, probablemente esto sea mucho trabajo; es casi seguro que es fundamentalmente imposible en un sentido absoluto, ya que no se puede decir qué peculiaridades de la pista son intencionales y cuáles falsas. Incluso puede tener codificaciones de diferentes grabaciones o mezclas, en cuyo caso la comparación simple es bastante insignificante en cualquier caso.

Por lo tanto, suponiendo que no tiene el original, lo mejor que probablemente pueda hacer es un enfoque heurístico, que probablemente funcionará bastante bien, pero será un gran esfuerzo implementarlo.

  • Invierte en software y habilidades de procesamiento de audio; Úselo para crear software para identificar defectos comunes del codificador basados ​​heurísticamente únicamente en el resultado. Dichos defectos pueden ser una localidad temporal deficiente de los golpes de sonido (sugerencia sobre ventanas grandes en la compresión), alta correlación entre las señales izquierda y derecha, rango de frecuencia limitado, etc. (una persona con la experiencia correcta puede enumerar probablemente docenas).
  • Califique la calidad del audio en cada heurística en una escala móvil.
  • Use el sentido común y la mayor cantidad de tiempo + personas para las pruebas, ya que tiene que sopesar los diversos factores por relevancia. Por ejemplo, aunque podría ser bueno tener una reproducción de frecuencia de hasta 24 kHz, no es muy importante; por otro lado, la falta de nitidez puede ser más molesta.

Si tiene suerte, alguien ha hecho el trabajo antes que usted, porque esto suena como una propuesta costosa.


Si tiene el original, puede estimar cómo se modificó estimando una función de transferencia. Tendrá que asumir algún modelo, tal vez comenzar con un filtro de paso bajo, agregar algunas manchas (convolución) y luego ejecutar un estimador para producir una medida de calidad. Podrías echar un vistazo en el artículo de wikipedia sobre Estimation_theory


Una nueva medida de calidad perceptual para audio reducido en frecuencia de bits http://citeseer.ist.psu.edu/cache/papers/cs/15888/http:zSzzSzwww-ft.ee.tu-berlin.dezSzPublikationenzSzpaperszSzAES1996Copenhagen.pdf/a-new- calidad perceptual.pdf

Los algoritmos de codificación de audio perceptual realizan una reducción de irrelevancia drástica con el fin de lograr una alta ganancia de codificación. Los componentes de la señal que se supone son imperceptibles no se transmiten y el ruido de codificación tiene una forma espectral según el umbral de enmascaramiento de la señal de audio. Las medidas simples de calidad (p. Ej., Relación señal / ruido, distorsiones armónicas), que no pueden separar estos artefactos inaudibles de los errores audibles, no pueden utilizarse para evaluar el rendimiento de dichos codificadores.

Para la evaluación de la calidad de los códecs de audio perceptivos, se necesitan algoritmos de medición apropiados, que detecten y evalúen los artefactos audibles mediante la comparación de la salida del códec con la referencia no codificada. Se presenta un modelo perceptual basado en un banco de filtros, que ofrece una resolución temporal mejor que los enfoques basados ​​en FFT y permite un modelado más preciso de pre y post enmascaramiento y un análisis refinado de las envolventes dentro de cada canal de filtro.

Ver también
http://academic.research.microsoft.com/Paper/201987.aspx?viewType=1