Pregunta

¿Existe algún algoritmo o alguna heurística para decidir si los datos de audio digital son recorte?

¿Fue útil?

Solución

Si alguna vez recibe valores al máximo o al mínimo, entonces, por definición, está recortando.Esos valores representan su valor particular, así como todos los valores más allá, por lo que es mejor utilizarlos como detectores de límites externos.

-Adán

Otros consejos

La respuesta simple es que si alguna muestra tiene el valor máximo o mínimo (-32768 y +32767 respectivamente para muestras de 16 bits), puede considerarla recorte.Esto no es estrictamente cierto, ya que ese valor puede ser en realidad el valor correcto, pero no hay manera de saber si +32767 realmente debería haber sido +33000.

Para una respuesta más complicada:Existen detectores de recorte de conteo de muestras que requieren que x muestras consecutivas estén en el valor máximo/mínimo para que se consideren recortes (donde x puede ser tan alto como 7).La teoría aquí es que el recorte en sólo unas pocas muestras no es audible.

Dicho esto, hay equipos de audio que cortan bastante audible incluso con valores por debajo del máximo (y por encima del mínimo).Por este motivo, el consejo típico es masterizar la música hasta alcanzar un máximo de -0,3 dB en lugar de 0,0 dB.Es posible que desee considerar cualquier muestra por encima de ese nivel como recorte.Todo depende de para qué lo necesites.

Para los datos de audio digital, el término "recorte" realmente no tiene mucho significado aparte de "amplitud máxima".En el mundo analógico, los datos de audio provienen de algún hardware que generalmente contiene un "registro de recorte", que permite la posibilidad de una amplitud máxima que no esté recortada.

Lo que podría ser más adecuado para el audio digital es establecer algún umbral basado en las limitaciones de su salida D/A.Si utiliza VOIP, elija algún umbral típico de los teléfonos móviles y llámelo "recorte" si su audio digital supera ese umbral.Si está transmitiendo a sistemas de cine en casa de alta gama, probablemente no tendrá ningún "recorte".

Me acabo de dar cuenta de que incluso hay algunas implementaciones interesantes.

Por ejemplo en Audacia:
AnalizarBuscar recorte…

Lo que dijo Adán.También podría agregar algo de lógica para detectar valores de amplitud máxima durante un período de tiempo y solo marcarlos, pero la esencia es determinar si la señal alcanza la amplitud máxima y cuándo.

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