# Huella digital acústica

Una huella digital acústica (en inglés: acoustic fingerprint) es un identificador para archivos de audio basados en el contenido del archivo. Con ella se puede identificar un patrón o “firma” de un archivo de audio, para que este pueda ser reconocido desde una base de datos de audio, sin necesidad de disponer información acerca de este. Su uso se basa en la detección de una muestra de audio y posterior envío a una base de datos (BD), para una vez analizada buscar coincidencias en esta y devolvernos información acerca de la muestra analizada. Actualmente ha evolucionado considerablemente ya que resulta un sistema muy rápido y fiable en recuperación e indexación de datos, así como la reducción del tamaño de los contenidos almacenados al no ser necesario tenerlos en el equipo, y por la asignación de una identidad a cada señal de audio, para posteriormente ser tratada.

## Requisitos de identificación

Basándose en la detección frecuencial, un algoritmo preciso de detección de huellas acústicas debe ser capaz de:
* Detectar con precisión un fragmento de audio, independientemente de la compresión, distorsión y/o interferencias del canal de transmisión.
* Dependiendo de la aplicación, ser capaz de reconocer el título del archivo con una duración de unos pocos segundos, que irá determinado por el método de tratamiento de la señal y sincronización entre la muestra adquirida y la base de datos.
* Reconocer la muestra incluso si está degradada/modificada por ecualización, pitch (velocidad de reproducción), efectos, ruidos externos, conversión y/o digitalización y codificación.
* Sistema eficiente, en función del tamaño de la muestra adquirida, la complejidad del algoritmo de búsqueda y la extracción de las huellas del archivo.
Dado un fragmento de audio y su correspondiente huella dactilar, se debe buscar la vía más rápida para encontrar su mejor coincidencia. Desde el número de iteraciones en la búsqueda hasta la longitud de la muestra, pueden resultar computacionalmente costosos. Para que la búsqueda sea eficiente, el método de búsqueda debe ser:
* Rápido: Capacidad de lectura en barrido en grandes bases de datos.
* Validez: Devolución de un resultado correcto y preciso.
* Eficiencia de la memoria: Necesidad de poco espacio en memoria.
* Actualizable: debe permitir actualizaciones, modificaciones y/o eliminación de objetos.

## Técnicas de detección

Se pueden detectar las huellas acústicas de un archivo de dos formas:
* Temporalmente: Reconocimiento del patrón del archivo en función de la intensidad de la señal y el tiempo. Se basa en la forma de onda en función del tiempo.
* Frecuencialmente: Reconocimiento del patrón del archivo en función de las frecuencias y sus picos de intensidad y el tiempo. Se basa en las características del sistema auditivo humano.
La principal diferencia entre las dos, se basa en la precisión. Un análisis temporal implica una detección de ruido bastante importante. El alto grado de varianza de las señales de audio hace muy complicado un análisis temporal preciso.
Utilizando el análisis frecuencial, se consigue detectar los valores máximos de las frecuencias más representativas, consiguiendo evitar el ruido de fondo. Esto implica:
* Mayor precisión y detección del archivo de audio.
* Menor vulnerabilidad al ruido y elementos externos.
* Menor valor máximo en detección (valor entrada).

## Proceso de identificación de archivos

Para la detección de un archivo de audio, hay dos procesos. En primer lugar se extrae la información más característica de la señal se tratará para que pueda ser modificada. Después se enviará para comprobar si existe alguna información acerca de nuestra muestra.

### Extracción de huellas digitales

Para la extracción de huellas digitales, se debe tener en cuenta que el proceso ha de ser capaz de:
* Capacidad de discriminación sobre un gran número de huellas.
* Invariancia por distorsiones.
* Compacto en ejecución.
* Necesidad computacional baja.
Conseguir estos requisitos requiere un equilibrio entre la reducción de la dimensionalidad y la pérdida de información.
Dicho bloque está compuesto por los bloques front-end y modelado de huellas digitales. Front-end se encargará de realizar las medidas y cálculos necesarios para extraer la información más importante del archivo, donde una vez calculada, se enviará al modelado de huellas digitales, para tratar estos datos y su respectiva representación, para su posterior acceso a la BD.

#### Front-End

Convierte la señal de audio en una secuencia de las características más relevantes de este. Para su correcto desarrollo se debe tener en cuenta que ha de conseguir:
* Reducción de la dimensionalidad.
* Parámetros significativos similares a los del sistema auditivo humano.
* Invariancia por parámetros externos.
* Correlación temporal.
En su interior se encuentran varios procesos que, en algunas aplicaciones, pueden contener By-Pass para preconfigurar el proceso.

##### Preprocesado

El audio se digitaliza (si es necesario) y se convierte a un formato de audio genérico (normalmente PCM 16 bits). Se analizará en función del número de canales y el tipo de audio. Además se normalizará y filtrará por bandas para adecuar la señal al procesado.

##### Framing y Overlap

Las señales acústicas se consideran estacionarias cuando su duración es del orden de milisegundos. Se subdivide la señal en muestras de tamaño tal que se puedan considerar estacionarias. El tamaño irá en función de la velocidad de variación de la señal.

##### Transformada. Estimación de espectro

La idea de las transformadas es conseguir un nuevo conjunto de características para reducir la redundancia de la señal. Hay técnicas óptimas para la transformación, como Karhunen-Lo`eve (KL) o Singular Value Decomposition (SVD), pero al tratarse de técnicas computacionalmente complejas, se utilizan técnicas más sencillas como Lourens, Kurth, etc. La técnica más común es la Transformada rápida de Fourier (FFT), aunque también son utilizadas la transformada discreta de coseno (DCT) o la transformada Haar, entre otras.

##### Extracción de características

Una vez conseguida la representación tiempo-frecuencia, se deben aplicar varios procesos para conseguir el vector característica final. El objetivo es nuevamente reducir la dimensionalidad e incrementar la invariancia por distorsiones. Se aplicarán diversas técnicas (Fig. 3) que aprovechan las limitaciones del sistema auditivo humano para conseguirlo, así como mediciones de energía, volumen, detectores de envolvente, etc.

##### Post-procesado

La mayoría de las características descritas hasta ahora son medidas absolutas. Para mejorar la caracterización de la señal, se añaden derivadas de orden mayor. El vector de características se creará con dicho parámetro, que variará en función del algoritmo utilizado. También es común aplicar una resolución muy baja en la cuantificación. De este modo se gana robusteza a distorsiones. Así se preparan los datos para que sean empaquetados en función de como serán mostrados y/o consultados.

#### Modelado de huellas digitales

Dicho bloque recibe los vectores características creados en el proceso anterior. Este se encargará de procesar los vectores y transformarlos en un único vector característica (recuérdese que se encuentran diferentes vectores, para cada banda frecuencial, energías, filtros, etc.), para posteriormente ser enviado. Nuevamente es de vital importancia la dimensionalidad de los algoritmos, para evitar enviar grandes cantidades de información a la BD. La adaptación de los vectores variará en función de cada programa, los cuales gestionarán el tamaño de la muestra adquirida y los vectores que utilizarán, entre otros parámetros. Estos programas han sido diseñados para trabajar con metadatos; mediante ellos se recibe la información referente a la muestra analizada. Actualmente se pueden encontrar diferentes programas.

### Coincidencia

Una vez creada la huella digital acústica, el siguiente paso es buscar coincidencias para devolvernos información acerca de nuestra muestra. Se enviará nuestro “patrón” y toda la posible información adicional creada (metadatos, cabeceras, etc.) a una base de datos, para buscar cualquier coincidencia. Se deben tener en cuenta dos factores que repercuten directamente en este proceso:

#### Distancia

A la hora de relacionar las características de la muestra, es de vital importancia la distancia tomada entre características cercanas. Técnicas como la distancia Euclidiana, la longitud Manhattan o Hamming, son utilizadas para calcular estas distancias. Para una correcta búsqueda, tanto el vector característica creado como el vector característica de la BD deben utilizar las mismas técnicas, para que sus huellas coincidan sin error de distancia.

#### Búsqueda

Por otro lado, se debe realizar de manera eficiente la búsqueda en la BD. Si después de crear un vector de dimensionalidad reducida, no se consigue un algoritmo de búsqueda eficiente, nuestro esfuerzo habrá sido en vano. La técnica más común se basa en la creación de índices, para estructurar la información. De esta forma se reduce considerablemente el rango de datos a consultar. Se puede encontrar diferentes técnicas de optimización de consulta de datos, basadas en índices, heurística, código de palabras, etc. Una vez encontrado (o no) la consulta, el sistema nos devolverá toda la información contenida en su BD acerca de nuestra muestra, incluyendo título, artista, año, álbum, etc.

#### Verificación hipótesis

Por último, durante la consulta en la BD, se crean resultados acerca del vector creado. Dichos resultados son utilizados para actualizar la BD. Con ellos se consigue actualizar resultados anteriores, añadir nuevos resultados y mejorar la precisión de las muestras almacenadas. En se puede consultar toda la información y nomenclatura utilizada en este último proceso.

## Aplicaciones

La mayoría de aplicaciones se encuentran en dispositivos móviles y equipos de sobremesa. Pese a esto se está empezando a aplicar en medicina e indexación de datos, por su alta velocidad de acceso a la información (consultas ADN, p.e).